Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


Odroid Show2 Display
#1
I recently ordered an Odroid Show2 display (http://www.hardkernel.com/main/products/...1743018597) for use in an automation project. It appealed to me as an inexpensive USB terminal I could move easily between laptop, Arduinos, and SBCs like the Raspberry Pi for diagnostic purposes. 

The Show2 contains a 2.2-in TFT color LCD controlled by an ATMEGA328P MCU and is powered via the USB connection. At the smallest font setting, it can display 14 lines of 26 characters and is also capable of displaying images. On paper, at least, it recognizes a subset of VT100 commands.

Once I had it on my desk, I realized I just had to try it with moOde.

I wrote a bash script to manage the Show2 and display information culled from moOde's currentsong.txt file. The script is called by moOde's LCD update engine. 

Here's two pix of the display, one while playing a radio station and the other while playing a track from my NAS.

[Image: 1VdQt8e.jpg]


[Image: e6KiQJr.jpg]

Displayed in the top banner is the hostname of the moOde player (useful because I usually have several on my LAN). 

This is followed by up to three lines each of the current song's artist, title, and album information. These lines are center justified but not intelligently split. As an aside, SomaFM transmits some very long descriptors for its stations. Not shown here, my script cuts out any subtext (eg, the ":..." stuff) from them.

The bottom banner displays moOde status information: play/pause/stop, mute (if on), track number (not present for radio stations), and volume setting.

finding compatible foreground/background color combinations proved to be a challenge since the firmware provides only 7 color choices (out of 64K!). It isn't easy to tell in this snaps but the track title is actually in light cyan.

I think the resulting display looks nice but it is slow to update, on the order of 2 seconds, which will not appeal to many. This is partly due to the hardware itself, partly due to its firmware, and partly due to my script's operating mode (clear the entire screen, then write to the screen) which I chose to work around some eccentricities in the firmware.

I already have ideas for improvement in my program design. As well, the existing firmware supposedly supports a handshaking protocol which, if it works reliably, could eliminate the arbitrary sleep commands sprinkled throughout my script to forestall the timing errors which cropped up. Further, I believe the firmware itself (think Arduino sketch) can be rewritten using newer Adafruit libraries to improve performance. I am uncertain, though, that the end result would justify the additional effort.

The Show2 display is a classic hacker board with connector pins on the front face which would complicate packaging it in a front panel.

All in all, this has been a fun holiday-weekend project. I (re)discovered the joys (?) of bash programming and (re)learned how bad (!) I am at it. In the end, I'm likely to end up with I2C- or GPIO-connected OLED displays on my moOde players, but this project has given me ideas of how I'd want them to behave.

Regards,
Kent
Reply
#2
(05-28-2018, 10:52 PM)TheOldPresbyope Wrote: ... I am at it. In the end, I'm likely to end up with I2C- or GPIO-connected OLED displays on my moOde players, but this project has given me ideas of how I'd want them to behave.

Regards,
Kent

Hi Kent,
Those are good news. I would like to replace my 16x2 oled with something slightly bigger that can display more information.
I will be following your progress in this journey.
Remy
Reply
#3
I think I still have the Py code for this project :-)
http://www.diyaudio.com/forums/pc-based/...pi-89.html

   
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#4
(05-30-2018, 01:43 AM)Tim Curtis Wrote: I think I still have the Py code for this project :-)
http://www.diyaudio.com/forums/pc-based/...pi-89.html


Hi, Tim.

Thanks for the pointer. I'm looking through the github repo for the RPi-Tron-Radio. That should be enough for now.

The Odroid Show2 "terminal" has a primitive graphics mode but it's not nearly fast enough for a UI like this. In any case it doesn't have a touch screen. Straight text with selectable fg/bg colors is its strong point.  For this, bash has been adequate even if its string handling is, shall we say, idiosyncratic.

Last night, I spliced in some handshaking code from  the Odroid Show2 repo and brought down my refresh time to about a second. I think I may be able to shave off a few more tenths. George Lucas got away with one-second screen wipes in the original Star Wars, so why can't I Tongue

I'm still doing market research on other display possibilities.

Regards,
Kent
Reply


Forum Jump: