Background:
There
are many keychain size Digital Photo Frame products that use the st2205
chipset which can be hacked for use as a tiny USB powered color screen.
st2205term can provide a terminal interface onto your hacked device
when using Linux. It was originally created for use with a Seagate
Dockstar that was hacked to run Debian Linux but should work on most
Linux systems and has a minimal memory and CPU footprint.
Update: v0.11 added support for ax206 based picture frames (
thanks
ax206term)
Update: v0.10 added autodetection of keyboard and picframe devices. New
--secreensaver=... option.
Update: v0.09 now has an additional --command=... option and comes with
an example stats utility (dstat reformatter)
Update: v0.08 includes support for smooth scrolling on Displaylink and
blinkling cursor support
Update: v0.07 has its own font support and no longer requires libgd
Update: v0.06 supports hotplugging - keyboard, picframe or Displaylink
device
Update: v0.04 supports DisplayLink devices via libdlo.
Hacked Coby DP152 Picframe attached to Seagate Dockstar running Debian
Lynx running on st2205term
More Info:
Original Hack
Picframe
Project (
Device
list - Warning: list is out of date -
DO NOT buy a DP151SX from Amazon)
st2205tool
(contains libst2205 library required by st2205term)
Debian on Dockstar
PG's Picframe on
Dockstar hacking post
PG's
perl generate-hack.pl script to generate hacks for new st2205
devices
libdlo Linux
Displaylink library
hackfin's ax206 blog
Appotech
ax206 info on Picframe Project
Downloads:
st2205term v.0.10 source code
st2205term/ax206term v.011 source code
generate-hack.pl
Prerequisities:
You need libst2205 (part of st2205tool) and librote installed before
you can compile:
How to
compile st2205term:
# run as root
wget -nd http://jeff.doozan.com/debian/lcd/st2205term-0.10.tgz
tar xvfz st2205term-0.10.tgz
cd st2205term-0.10/
./mak # look at script if you want displaylink support
How to compile ax206term:
Note: ax206term source was contributed and my ax206 based picframe is currently not working so please consider this experimental for now.
# run as root
wget -nd http://jeff.doozan.com/debian/lcd/st2205term-0.11.tgz
tar xvfz st2205term-0.11.tgz
cd st2205term-0.11/
./mak-dpf # look at script and modify if necessary - it downloads and installs things
How to run
- autodetect
By default st2205term will try to
autodetect your keyboard and display. st2205term will also
look for keymapping data (us.kmap) and font data (fonts.txt) in the
same directory as the st22095term binary resides if they are not
explicitly set on the command line:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH # to find librote
./st2205term
How to run
if you have multiple keyboards/display devices
Find your picfame device:
# ls -al /dev/disk/by-id/ | grep SITRONIX
# lrwxrwxrwx 1 root root 9 Nov 24 21:04 usb-SITRONIX_MULTIMEDIA-0:0 -> ../../sdb
Plug in your USB keyboard and find the
input device:
# ls -al /dev/input/by-id/ | grep kbd
# lrwxrwxrwx 1 root root 9 Nov 24 11:17 usb-060b_USB_Keyboard-event-kbd -> ../event0
Start up st2205term (run as root):
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH # to find librote
./st2205term --font=tiny --picframe=/dev/sdb --keyboard=/dev/input/event0 --keymap=./us.kmap --fontdata=./fonts.txt
Command
Line Options:
--font=tiny
| small | large | giant - sets the font size - also
determines the terminal dimensions - default is tiny
--picframe=<device> or --dlo - sets the target ouput
Picframe device, or use displaylink device instead if --dlo specified
--keyboard=<device> -
sets the input keyboard device - this can be plugged/unplugged while
st2205term is running
--keymap=<file> - sets
the key mapping definitions used to map evdev keyboard events to Linux
keys
--command=<command> - run
a shell command rather than 'bash --login' when terminal is connected
--screensaver=<command> -
run a shell command as a screensaver when keyboard is idle
--fontdata=<file> - sets
the font definition file that determines what the fonts look like
--dlo-fast-scroll=yes | no -
enables/disables enhanced scrolling on Displaylink devices
--blink - makes the cursor blink
--verbose or -v - turns on debug output
Device Naming:
Real device paths like /dev/sdb or /dev/input/event0 may change at boot
time or depending on the order of detection or if devices are
added/removed. To help with hot plugging st2205term can also use udev
by-id symlinks to find the right device.
For example, on my PC my picframe is accessible by either /dev/sdb or
/dev/disk/by-id/usb-SITRONIX_MULTIMEDIA-0\:0
(remember to escape \ the :)
ls -al /dev/disk/by-id/* | grep sdb
lrwxrwxrwx 1 root root 9 Nov 29 22:09 /dev/disk/by-id/usb-SITRONIX_MULTIMEDIA-0:0 -> ../../sdb
Udev symlinks can be used to identify the keyboard as well (
ls -al /dev/input/by-id ).
Contact: Peter Gunn (email st2205term at wingovers dot com)