home home about about blog blog music music tech tech photos photos art art photoshop photoshop
blog post
back to blog main

extracting eyemodule pictures in 2022

2022-11-01 @ 00:44 UTC
filed under: tech

recently i've developed a tool to help extract pictures from eyemodule and eyemodule2 camera modules for the handspring visor PDA. i've since gotten some people asking me how to actually extract the palm os databases necessary for the tool, so here's a brief guide


first, you need a way to hotsync your visor to a computer. if you're using windows the latest palm desktop (version 6.2.2) still works on windows 10 provided you install the 64-bit drivers provided by ACCESS. make sure "Package Install" is disabled under the HotSync Manager otherwise it may crash your visor, once you disable it the hotsync process should happen without issues. make sure all the databases you need (eyemoduleDB, eyemoduleVGADB, burkeDB, burkeVGADB) are marked to be backed up. you can do this by using the Filez application and toggling the Backup attribute on each one of them. after that is done, you should be able to find the backed up databases after a successful hotsync in Documents\Palm OS Desktop\<Username>\Backup for version 6.2.2 or Program Files (x86)\Palm\<Username>\Backup for version 4.1.

under unix systems (linux and mac os) you can use pilot-link. since this is a command-line application, it gives you a little more freedom in how the sync is handled, such as being able to specifically download only the eyemodule databases instead of having to perform a full device sync or needing them to be marked for backup.

the de-facto communication method for pilot-link is libusb, which access the usb device directly. on some modern computers, such as ones which only have USB 3.0 ports, i've had difficulty getting this to work. the alternative is to use a kernel module called visor which creates virtual serial ports as a middle step instead, which can be more reliable albeit slower. to try the libusb method:

pilot-xfer -p usb: -f eyemoduleDB

this will attempt to fetch the eyemoduleDB database to your current directory. run that command first and then hit the hotsync button on your device. if nothing happens, kill the process with control-c and try the visor method. by default a pilot-link installation will blacklist the visor kernel module so that the direct libusb method takes precedence. therefore, before hotsyncing using serial you need to run:

sudo modprobe visor

this will temporarily load the visor module despite the blacklist. to not have to run this on each session, you need to remove the blacklist. this might be in /etc/modprobe.d/libpisock9.conf but it can depend on your system. once you have the visor module loaded, hit the hotsync button first so your computer generates the serial ports. these will be the first two /dev/ttyUSB ports available, usually 0 and 1, and the hotsync conduit will be on the second one, so usually /dev/ttyUSB1:

pilot-xfer -p /dev/ttyUSB1 -f eyemoduleDB

if you get an error about being unable to bind to the port, check your system's dmesg to make sure the serial devices are being populated correctly.

if everything worked out correctly, you should now have a .pdb file in your working directory which you can upload to eyemodtool and extract the pictures from it! feel free to contact me if you have any more questions, or try asking in the Palm subreddit.


<- anxiety twitter erased most of my online presence ->