Back up your Pakon scanner's calibration
Every Pakon F-135 and F-135+ carries a small memory chip holding data that is unique to that one scanner: its serial number, its motor speeds, and its colour correction for negatives. If that chip fails there is nothing to download and no way to recreate it. This page reads it and gives you the files to keep. It reads only; it never writes to the scanner's chips.
1. Plug in and power on the scanner, then connect
Turn the scanner on, wait for the lights to settle, then click Connect. Chrome will show a small window listing USB devices; the scanner appears as Unknown device [0f05:f235] (it has no name until its firmware is loaded). Select it and click Chrome's Connect. This page is for the F-135 and F-135+; it will recognise an F-235 or F-335 and stop.
You can back up the EEPROM now, but this is the less complete option. Something has already loaded the scanner's firmware since it was last switched on, so this would not be the first read after power-on, and the boot loader has already handed over and can no longer report the personality.
If you want the most archival backup of your EEPROM, switch the scanner off and on, reload this page, and start again from step 1. That way the read is the first one of the power cycle, which is the one to trust, and the boot loader's own report is captured as well.
2. Load the scanner's original firmware
The scanner keeps its working program in memory that is wiped every time it is switched off, so whatever software you use, this load happens every time it powers on. This page sends Kodak's own firmware for your scanner's revision (checked against a known fingerprint first). It goes into working memory only, not into the chip we are backing up. When it finishes the scanner disconnects and reconnects by itself; give it five seconds.
3. Read the chip
Click Read; Chrome shows the picker again, and this time the scanner has its name: F135-USB Film Scanner. Select it and click Chrome's Connect. Reading takes about ten seconds and uses the same two requests the original Kodak software uses at every launch.
Result
Kodak stores the data twice: two sections, each with a primary copy and a backup copy, each protected by a checksum. Here is what your scanner holds:
One read per power-on: to read again (a good idea, to confirm), turn the scanner off and on and repeat steps 1–3; the files should come out byte-identical.
| Copy | Where | Bytes | Checksum | Notes |
|---|
Files
Keep all of them together. The SHA256SUMS file lets you (or
anyone) check later that they haven't been damaged. The
0x51-boot-personality file is the scanner's boot chip entire, whose
first 8 bytes are the record giving the scanner its USB identity, followed by one
byte nobody has explained and then padding. The
personality-8-bytes-from-loader file is that same 8-byte record as the
boot loader reported it in step 2. Both are the same on every F-135 and can be
rewritten from known values, so unlike the calibration chip they are kept for
completeness rather than because they could not be replaced.
Something went wrong. Turn the scanner off and on again, reload this page, and start from step 1. If it keeps happening, copy the log below when asking for help.
Log
How this page interacts with your scanner
- To load the firmware (when you click the button in step 2): the standard Cypress FX2
memory-load requests (
0xA0,0xA3) carrying Kodak's own firmware image for your scanner's revision, plus the loader's init (0xA4with value0xA1). The firmware image's hash is checked before a byte is sent; the revision the loader reports must match the one the scanner announced on USB and must be the F-135's (aa07), or the page stops before sending Kodak's firmware. (By then the small generic Cypress loader is already in the scanner's working memory; that is harmless, and switching the scanner off clears it.) - To read the calibration chip (step 3):
0xA4with value0x00A5(select the chip, read direction) then0xA9at increasing offsets, 32 bytes at a time. This is the sequence Kodak's own engine (TLB.dll) issues at every launch, taken from a capture of it. - Then the boot chip, the same way, with value
0x00A3in the select. That chip holds the nine bytes giving the scanner its USB identity. It is read last, so if your scanner does not answer, the calibration data is already read and kept; the page says so and carries on. Kodak's engine does not make this particular read, although the select value is the documented one for that chip. - Never:
0xA2(the EEPROM write request), or any command to the scanner's motor and light controllers. The page contains no code for either. The only values it ever puts on0xA4are the two selects above and the loader's init (0xA1). Both selects are odd numbers, which is the read direction; the even counterparts, which would select a chip for writing, appear nowhere in the page. - The page makes no network requests except loading its own files. Nothing you read leaves your computer.
Which computers this works on
- Mac with Chrome or Edge: works, nothing to install.
- Linux with Chrome or Edge: works after you allow your user to open the scanner (the page shows the one-line rule when it detects Linux).
- Windows: this page does not work on Windows; the Pakon driver keeps the scanner to itself. Use a Mac, or boot a Linux live USB on the same PC and open this page in Chrome there; nothing gets installed either way.
- Safari, Firefox, phones, tablets: no.
Credits
This page builds on work by others to let you back up your EEPROM without installing anything locally:
- The read sequence (the two requests, decoded from a capture of Kodak's own
engine) is from Pablo Navarro's
pakon-tlx-macos,
tools/eedump.py. - The layout of the chip (two sections, two copies, the checksums, what each
field is) is from Guy Langford-Lee's
pakon-mac,
docs/69. - The firmware-load procedure is FX35Loader's, as ported in pakon-tlx-macos
server/pakonload.py; the small generic loader is Cypress's. - What is per-unit on these scanners and why it matters: pakon-reference, per-unit data and safety.
If you'd rather do this on your own machine
Both pakon-tlx-macos
and pakon-mac have
command-line tools that read the same chip the same way, if you prefer not to
use a web page: tools/eedump.py in the first, tools/eeprom_backup.py
in the second. Each needs a terminal and a Python setup.
Source for this page: github.com/alibosworth/pakon-eeprom-backup-web.