From ST2205u wiki

Phack v1.4

I'd like this version to mature into stability: as is, it's working nicely and I don't think it misses really urgent things. The downloads will go from -pre1 up to whatever's necessary to gain enough stability. The patches to mplayer and lcd4linux will be submitted to their maintainers, we'll see if they accept my code :)


Download pre1 here. browse source

Metan's patch that fixes:

  • segfault on ppc (empty return in function returning int)
  • compilation fails because of missing -fPIC on x86_64
  • coding style formated according to linux kernel style
  • + various small fixups

Download here: [1].

There was my typo in runtime write_stream() that prepares aligned data in my patch, my apologies, should be fixed now.



  • Added DMA-transfers to LCD, speeding stuff up 60%.
  • Added prelim & non-working support for UC1697V LCD-controllers
  • Added untested/non-working devices: ebuyer, nextg
  • Added working/fixed device: coby dp-151 (hopefully), hknameless
  • Fixed an 1-off bug in the MPlayer-patch which gave a line of crap on the right and bottom
  • Added offset/bpp-testing tools to setpic
  • Added backlight support to setpic
  • Fixed README


Please use the 'edit' button to submit bugs. If you want to give more details about the bug you submitted, please use the Talk:Phackv1.4 page.

libst2205: I discovered a strange behavior when using libst2205 with lcd4linux (under openwrt): 1 time out of 8 starts of lcd4linux the output in the display is completely messed up. I traced the error down to the optimize procedure, which part of the screen should be blitted to the display. Here is a bad workarround:

--- st2205tool/libst2205/main.orig      2008-04-24 11:39:41.000000000 +0200
+++ st2205tool/libst2205/main.c 2008-04-24 11:40:44.000000000 +0200
@@ -281,7 +281,7 @@
Optimize for that by looking for the smallest bounding box containing
//all changes.
-       if (h->oldpix==NULL) {
+       if (1==1) {                                                                                                                                      
-           pcf8833_send_partial(h,pixinfo,0,0,h->width-1,h->height);
+           pcf8833_send_partial(h,pixinfo,0,0,h->width-1,h->height-1);

I guess the memory gets corrupted somehow (oldpix), but I really dont know where...--michu

IMPORTANT: edit ./ and change $1 to $2 on line 42

Coby DP-151: setpic's backlight control options have no visible effect. --r0tw4ng

Running "./ /dev/sdX" without specifying an already-existing firmware image backup results in error - "cp: missing destination file operand after `fwimage.bin'" --r0tw4ng

This is caused by the typo mentioned 3 times now on this page... change $1 to $2 on line 42. --Starwed 12:07, 27 December 2008 (CET)

I had some problems compiling on X86_64. Fixed by changing FLAGS to CFLAGS in ./libst2205/Makefile and (fw_descriptor*)((int)buff+a) to (fw_descriptor*)(&buff[a]) in ./libst2205/main.c line 160. --samtronic

  • Fixed in SVN. You (people in general) will have to just scream if my SVN changes break something because I have no tom-tec device to test against, only the (non-working) Ebuyer model. I've yet to find a supplier of tom-tec in the UK but if I do, I'll order it.(bifferos).

main.c (phack binary): there is a small bug:

 printf("Dump: %i paged dumped.\n");

cheers --michu

I have problems compiling on X86_64, from v1.2 and up. The compiler tells me something like this:

/usr/bin/ld: main.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

main.o: could not read symbols: Bad value

- I find this wierd, since i can see that -fPIC flag in the Makefile.. --CyanFur

Also found my DPF bricked twice after trying restore mem.. Program says succesfull, but device isn't responding anymore, not even after reboot/reconnect... --CyanFur

support larger displays (for example Technaxx Magno supports 240x320), so an 'unsigned char width' in the firmware is just too small

support other memory types (more or less memory)

There is a line in version 1.4pre1 of that says 'if [ -z "$1" ]; then'. I think the "$1" is supposed to be a "$2." It only makes sense that the scrip is supposed to be checking if the OPTIONAL second argument is there, not the manditory first argument. If you have any questions, email me at phack.5.andromodon (AT) spamgourmet (D0T) com

libst2205 on line 175 (function enddata) in main.c there is a line that says:

if (offset==0) return;

Now this function is supposed to return something but with an empty return statement the return is some random value that crashes on XScale/Arm processors. In all probability x86 compilers would have put offset into eax or something alike that and thus jumped over this. / Jonas Lund :


(Please make a note here if your display does or doesn't work. Please check the backlight function too.)

  • TomTec - works like a charm --Sprite tm
  • Hk nameless ebay thingy - works like a charm --Sprite tm
  • Coby DP-151 - can display images, no backlight control --r0tw4ng
  • Ebuyer - can display an image only with the setpic /dev/sda -test test.png. Hitting 'u' results in the image displayed, but shifted to the left by about 8 pixels. No backlight control.
  • nextg device has similar results to Ebuyer above. Can only display an image using 'setpic /dev/sdc -test test.png' whereas phack returns 'No photoframe found here'
    • So presumably nextg is recognised as ebuyer model? Try the script in the discussion, to see if it displays the image correctly. I believe Phack -l is no longer supported. --Bifferos 11:26, 28 January 2008 (CET)
  • TomTec - Can't get v1.4 (or 1.3) working.
 Firmware seems to update fine, but setpic doesnt show an image.
 v1.2 was working fine
 setpic and v1.4 now work using libst2205 from svn (revision 6 of main.c)
  • Ebuyer model - No backlight control, can only get image to display using the 3857 byte image back used in the python script (chrisf)
  • Tom-Tec 3 button model with date code 200712- shows pictures, but system has to reset the device all the time, Ending up in rejecting i/o to dead device. --MRX
  • Keypix - display work, backlight DOES NOT. check wiki page (devices) --Michu
  • Seemed to see an error in line 42 reads if [ -z "$1" ];. The $1 should be $2, I think, since it's testing whether a backup location is given.
  • I think I've got this working with a Senario "Vu-Me" keychain photoframe. I'll post info on the spec file once I'm sure it's ok.--Starwed 12:13, 27 December 2008 (CET)
  • Coby-151, version 8, purchased from amazon 2009-01 does not work by default. You will need [[2][these hack files]]. --girts, 2009-01-14