a love note to the ODroid Show2
Java Arduino Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



This is a love letter to a great part: the ODroid Show2. It's an Arduino with a screen! Does that sound familiar? Maybe you remember the MicroView Kickstarter. The MicroView is another Arduino with built-in display. In fact the Show2 and the MicroView use the same (ATMEL ATmega328P) Arduino SOC. Here is a look at both of them in action (attached to an ODroid-XU4):

Show2 and MicroView

So does the MicroView suck? Not at all! The MicroView is a very well designed and constructed part ... but I'm not in love with MicroView (any more) ... it's an emotional thing - I can't explain it; but I'll try anyway:

bigger is better - more pixels (320x200 vs. 64x48) and larger screen make for easier reading+2small is beautiful - it really depends on the application+1
Arduino driver sketch (apparently) written by Lady Ada+7Geek Ammo kickstarter team performed admirably+6
price: about $27+3Sparkfun has it for about $40, but you probably also want this this for $15 to go with.-25
bare/unfinished part0superb style and finish+12
breakout pins+12breakout pins+16
buttons and LEDs+6(crickets)0

(Scoring system approved by Her Majesty's royal auditors at Top Gear BBC.)

How do I express my love for the Show2? Read on ... (safe for work!) ...


  • Linux machine connected to Show2 via USB
  • Java 7 or 8 runtime

initial setup

First make sure Linux tool dependencies are installed:

sudo apt-get update
sudo apt-get install ant arduino git python-pip
sudo pip install ino

Then get Show2-Eboogaloo bits and run setup script:

git clone https://github.com/cjdaly/Show2-Eboogaloo.git
cd Show2-Eboogaloo/Show2-Eboogaloo-SETUP
ant -f setup.xml

Press the Show2 RESET button and note the message that is briefly displayed as the Show2 restarts. If you see the message Hello ODROID-SHOW! with version v1.6, this should be compatible with Show2-Eboogaloo. Otherwise, you may need to skip to the sections below on Arduino sketches and upload either show_main.ino or weatherThing.ino.

And now you should be ready for...

Hello World

normal usage

The top level Show2-Eboogaloo directory contains several bash scripts. The find-show2-ttys.sh script will search for connected Show2 devices and print their Linux device file path (e.g. /dev/ttyUSB0). The show2.sh script controls the Show2 by interpreting a series of command line arguments. Run ./show2.sh with no arguments to see a usage message. To produce an image like in the picture above:

./show2.sh siz4 fg3 +Hello fg6 '+ world!'

Note in this example how quotes are needed for the final argument, because it contains whitespace. If the Show2 is associated with a non-default device file, use the -T argument to specify the correct one:

./show2.sh -T/dev/ttyUSB1 +hello fg3 '+ world'

Arduino action

The setup.xml script clones the hardkernel ODROID-SHOW repo to the home directory and does a git checkout to the version mentioned above. Inside the ODROID-SHOW repo is the Arduino sketch (~/ODROID-SHOW/show_main/show_main.ino) that serves as the Show2 firmware.

The setup.xml script can copy the Arduino sketch into an Ino project structure in the Show2-Eboogaloo project and build it using the Arduino tool chain. To do this:

cd ~/Show2-Eboogaloo/Show2-Eboogaloo-SETUP
ant -f setup.xml Show2-sketch.build

If you need to make changes to the Arduino sketch, the quick-and-dirty command line way to rebuild and deploy goes like this:

cd ~/Show2-Eboogaloo/Show2-Eboogaloo-SETUP/show_main
ino clean
ino build
ino upload -p /dev/ttyUSB0

Depending on the orientation of your Show2, it may make sense to switch the default text rotation setting in the firmware sketch. To do this, edit the sketch file (.../show_main/src/show_main.ino) and look for this line:

uint8_t rotation = 1;

Valid values are 0-3. Change to a different value and then repeat the Ino clean, build, upload sequence described above.

weatherThing Arduino sketch

I have made some enhancements to the show_main.ino sketch, forking off a new sketch called weatherThing.ino. This supports new commands to enable (-WB) and disable (-wb) dumping of sensor data from the ODroid WeatherBoard, if one is attached to the I2C headers on the Show2.

Also new are the led commands. Use ledB to turn the blue LED on and ledb to turn it off. Similar commands control the green and red LEDs.


To build and deploy the weatherThing sketch:

cd ~/Show2-Eboogaloo/Show2-Eboogaloo-SETUP
ant -f setup.xml weatherThing.build
cd weatherThing/inoProject
ino upload -p /dev/ttyUSB0

fold extension channel

To use the Show2 with fold, copy the 2 jars in ~/Show2-Eboogaloo/Show2-Eboogaloo-SETUP/plugins to the ~/fold-runtime/extend/plugins directory and then run ./fold.sh extend from the fold-runtime directory.

fold channel