Community effort to port 0dan0's custom firmware to the Type D variant of the Kodak Reels Super 8 / Regular 8mm film scanner.
Current stable D baseline: Phase 8 v3 — 1600×1200 @ 18fps working
Status: Active development. Phase 9 (FPS/rate control) causes capture loop freeze. Under investigation.
The Kodak Reels scanner ships in at least four hardware variants (A, B, C, D). 0dan0 has led firmware modification efforts for Types A, B, and C, achieving significant quality improvements over stock firmware. The Type D variant introduced a new imaging sensor, making it a substantially more complex port than previous variants. This repo tracks the Type D porting effort.
Key community resources:
Identifying a Type D unit: Serial numbers beginning with or similar to H2825148BKxxxxx
/docs/
feature-map.md ← Master feature port tracking table (start here)
address-offsets.md ← Offset methodology, exceptions, D-specific addresses
sensor-notes.md ← Notes specific to the new D imaging sensor
session-notes/ ← Dated session logs (what we tried, what happened)
/scripts/
compare_fw.py ← Binary comparison / offset detection script
find_hooks.py ← Hook candidate finder
patch_fw.py ← Firmware patching utility
validate_checksum.py ← Checksum validation after patching
/firmware/
README.md ← Instructions — do NOT commit firmware binaries to git
(too large; store locally or link to forum post)
- You need: Ghidra, Python 3, the stock Type C firmware (
FWDV280-C.rbn) and stock Type D firmware (FWDV280-D.rbn). Stock D firmware is available in Post #143 of the forum thread. - Read
docs/address-offsets.mdto understand the C→D offset methodology before doing anything else. - Check
docs/feature-map.mdfor current port status before exploring any address — don't re-explore ruled-out paths. - Log your session in
docs/session-notes/YYYY-MM-DD-description.mdeven if nothing worked. Failed attempts are valuable.
The firmware runs on a Novatek processor (MIPS LE 32-bit), loaded at base address 0x80000000. The firmware is a modified eCos RTOS build with Novatek SDK extensions.
Key architectural notes for D variant:
- New imaging sensor vs. Type C — pipeline register layout differs
- Consistent +0x1164 offset found between most C and D addresses
- Exceptions to the offset exist — these are where the new sensor code lives and require independent analysis
- Function entry hooks cause motor runaway on D; internal function hooks are safer
- 0dan0 — original firmware mod author (Types A, B, C); see his GitHub
- videodoctor — Type D port lead; first working D-variant firmware modification (1600×1200 @ 18fps)