A User Guide and Reference to 0Dan0's Custom Firmware
Guide Created: October 27, 2025
Last Revised: December 5, 2025
Most Recent Firmware:
v7.4 (Dec 3, 2025)
Preamble
The purpose of this post is to provide a user guide and reference document for
0Dan0's custom firmware for the Kodak Reels Film Digitizer. This post will be revised alongside further revisions to 0Dan0's firmware. Please private message me if you have corrections, suggestions or requests for the cotents of this guide. This guide will
not include specific information regarding the hardware modifications that are also being made to this scanner, such as lens replacements (a summarizing post/guide would be a welcome addition to this community and will be cross referenced here if made available).
Required Reading on Previous Firmware Work
While the entire contents of this thread may be too long to fully digest, please consider reading over
Mac84's initial post for some helpful context to pervious pioneering efforts, primarily around Mac84's custom firmware. Particularly relevant, is information regarding the different versions/types of the Kodak Reels (A, B, C, etc).
Changing the Firmware on your Scanner
Warning: As with any firmware adjustment, exercise caution. While uncommon, permanent damage can occur during a change of the firmware (for example, removing power from unit during firmware adjustment).
The following is adapted from
Post #1, thanks to
Mac84!
Caution: Never power the device off while the firmware is being flashed.
- Using your computer, download a desired firmware file from this thread and copy it in the root of a FAT32 formatted SD card (32 GB or smaller).
Use the lookup tool here to help identify which version scanner you have, and therefore which firmware variant (A, B, or C) you should use
Check to ensure the file is named "FWDV280.BIN" (without quotes).
REMINDER: You MUST flash the correct version of the firmware to the correct version of the device, otherwise it will not function correctly.
- Create or copy a folder titled “NVTDELFW” (without quotes) in the root directory of your SD card.
This folder tells the device to delete the firmware file after it has finished flashing. If you don’t do this, it’ll flash the firmware on each boot unless you manually remove the file.
- Insert the SD card into your Kodak device while it is off.
- Turn on your device, the power LED will remain on and the screen will stay black for about 30 seconds.
Afterwards, it will resume the startup process using your newly flashed firmware!
The User Guide
Note: Use of a 32 GB SD card formated in Fat32 is recomended for capture
On-Screen Display: With the scanner in capture mode, an informational display is overlayed in the bottom left corner of the screen including the following components:
- RGB Histogram (useful for evaluating exposure and color)
- White Balance (WB) RGB values
- Frame Count & Auto Exposure bias value (Ev)
- FPS (frames per second)
- Qp Level (displays current and adjustable minimum Qp (compression) the device will try for)
- ISO & Exp statistics (exposure is Auto or Locked)
Controlable Settings
Note: some controls use the
Menu system (before capture), others use the
OSD (On-Screen Display) (during capture).
White Balance (Menu): Manually adjust the Red/Blue color values of your image
- Up (toward red)
- Down (toward blue)
- A value of 0 is generally neutral, based on the LED-sourced backlight.
- Due to LED backlight, this is trimmed as R: 496 and B: 256 on the OSD RGB list
Green Tint (OSD): Decrease or increase the green color value of your image
- The Green value is the 2nd of the 3 RGB color values listed on the OSD
- Before Capture, long press < or > (left/right arrow) buttons to adjust Green tint
- During Capture, press the up/down arrow buttons so that the middle number in the WB list is in brackets
- Then press the +/- buttons to adjust the Green value
- 256 is the default “neutral” value
- For more green, increase the value
- For less green, decrease the value
- Adjusts in 15 steps, from 144 to 368
Auto Exposure Bias (OSD): The firmware attempts to choose the best exposure, but you can adjust the Auto Exposure Bias to your preference.
- During Capture, press the up/down arrow buttons so that the OSD "ev" bias value is in brackets
- Then press the +/- buttons to adjust the "ev" bias
- Ranges from -7 to +7 (default is 0)
- For brighter exposure, increase the Ev bias
- For darker exposure, decrease the Ev bias
Frame Rate (OSD): 16, 18, or 24 frames per second.
- During Capture, press the up/down arrow buttons so that the OSD "FPS" value is selected in brackets
- Then press the +/- buttons to adjust the frame rate
- Is not written to the file until the capture is stopped
- 8mm film is 16 or 18 fps; Super8 film is 18 or 24 fps
Qp Level (OSD): Set the minimum compression level that the device will try for
- During Capture, press the up/down arrow buttons so that the second number in the Qp list is selected in brackets
- Then press the +/- buttons to adjust the Qp value
- For less compression (higher bitrate/quality), decrease the Qp value
- For more compression (lower bitrate/quality), increase the Qp value
- Ranges between 15 and 39
Exposure Lock (OSD): Lock the current exposure setting
- During Capture, press the up/down arrow buttons so that Exposure item is selected in brackets
- Then press the +/- buttons to adjust between [A] for Auto and [L] for Locked
Saturation (Menu): Increase or Decrease color gains
- 0 is a "normal" color value
- -2 removes color (for scanning black and white film)
- Not reflected in the RGB values on the OSD
Other Non-controllable features of this firmware:
- File resolution of 1600x1200 (actual resolving capability is dependant upon lens configuration)
- Disabled 3DNR (preserving some detail and rendering of film grain)
- Full Range fix (metadata in the MP4 file specifying Full Range instead of Broadcast range)
- Auto Stop (stops capture when it detects that no film is being scanned)
- Custom Boot/Shutdown graphic displaying features, instructions, version number and firmware release date
- Captured folder name to include firmware version number (ie "FilmScnC7.4/Movie/MovieXXXX.MP4")
- File Creation Date set to Firmware release date
- Custom settings typically survive a subsequent firmware update
Known Issues
(Summarized from in-thread reports and discussion; Issues are not necesarily introduced by custom firmware)
Encoder Crash. When using 0Dan0 custom firmware (and especially with a sharper, non-stock lens), the encoder is unable to process the high data rate due to images containing large amounts of detail/grain, and so it crashes, causing the scanner to stop capturing. Users prevent this by (1) increasing the Qp Level (which decreases the processing load), (2) lowering the sharpness setting during capture, and (3) simply rewind a little, and attempt again with same settings. Referenced in post
#855.
4GB File Size Limit. Captured files cannot exceed 4GB. The software will crash at 4GB, requiring a reboot (by holding down the power button) but the file safely closes. With 0Dan0 custom firmware, after capturing aproximately 15 minutes of 18fps footage (~16,000 frames). Referenced in post
#846.
SD Card Incompatibility. Certain SD Cards may cause scanner to not function properly. Generally, it seems that smaller capacity cards (32GB and below) have more liklihood of functioning well. Some workarounds discussed in posts
#856,
#861.
ExFat Formatted SD Cards May Fail: Capturing with ExFat formatted cards may result in no files being captured despite the appearance of such. Instead, use Fat32 formatted cards.
Frame Instability (aka Jitter). In some situations, captured files show a distorted or warped image (compressed or expanded at the top or bottom of the frame) when compared to adjacent frames (see bottom of frame in this
sample footage). This relates to the film being in motion as the imager is scanning the film frame
over the course of time. This issue can last the entire duration of the capture, or can increase/decrease in severity over time. Re-scanning those segments often results in no issue. This issue continues to be evaluated and discussed. Reference posts
#390,
#471 and
#846 and many others.
Scanner Cannot Playback Captured Files. Some firmware versions have broken the scanner's playback capability. Workaround is to transfer your files to a computer for reviewing/editing/storage. Discussed in post
#870 and elsewhere in thread.
Unconfirmed Bricking. One user has reported an issue after updating firmware on an EU version of the scanner (RODREELSEU) such that control buttons are no longer functioning and so far unable to roll back the unit to a functioning firmware. It's unknown if/how a firmware update would have this effect and therefore is likely co-incidental and unrelated to firmware updating. See Post
#887 and following.
Version History
Summarizing the notes that accompanied the release. Click the link on the version number to visit the post that includes attached firmware. Note that these should all be considered "Work-in-Progress" as they may contain bugs or expose limitations of the hardware.
v7.4
Dec 3, 2025
For Scanner Types A, B and C.
- Added User-controllable Exposure Lock
- [A] for Auto exposure (default) and [L] for Locked exposure
- The current exposure setting are now at the bottom of the list
- Exposure lock, white balance, sharpness and saturation will now survive firmware updates (for the update after this one)
v7.3
Dec 2, 2025
For Scanner Types A, B and C.
- Adds Manual Qp level control (16-40). Previously this was fixed at 20, but this may have caused some jitter drift (unconfirmed) on some units
- During capture there is a new settings controls which should be easier then remember all the buttons. Up and down arrows move the square braces between controllable settings, +/- change the settings.
v7.2
Nov 30, 2025
For Scanner Types A, B and C.
- This add more debugging
- Qp level (show the current encoding quality)
- Alive frame counter (mainly showing the 25 fps update rate.)
- When running the English language mode, "Tint" has been replaced with "Saturation".
Hacks relates to jitter, even less is running at encoder start.
v7.1.1
Oct 21, 2025
For Scanner Types A, B and C.
- Exposure: Went back to ISO 100-400, as was seeing more exposure stepping with ISO 50
- White balance: 0 is now normalized to color of the backlight
- FPS: is now selectable between 16, 18 and 24fps. Long hold on up or down, arrows to increase or decrease the frame rate. You will be remembered, and can be changed during capture, as the value is only used when the capture is stopped
Note: v7.1 was quickly replaced by 7.1.1 to fix the adjustable frame rate feature
v7.0
Oct. 20, 2025
For Scanner Types A, B and C.
- Added auto exposure back into preview
- Added ISO 50 back to the exposure range
- Added Tint -2.0 is now true B&W
Comment: Let me know if you seeing much jitter in 7.0, as the preview auto exposure was originally disabled to reduce jitter. Now the preview auto exposure biases to a short shutter, hopefully to achieve the same jitter reduction. I'm not seeing any jitter my brief testing.
v6.9
Oct. 15, 2025
For Scanner Types A, B and C.
- Exposure stats on the LCD
- Green Tint < or > (buttons)
- EV bias using the + or - buttons in capture
Comment: I reduced the EV range to be more subtle, so larger values might be required. I was reacting to this comment "EV1 is a little to dark, ev 2 is too bright". EV +2 now more is like the last EV +1. This does not make the scan brighter or darker directly, instead it biases the input to the auto exposure. As the exposure logic tries to limit unnecessary brightness changes, it is more intended for a scene change, some EV values may no appear to change the brightness, this is normal. You can trick the unit into thinking there is a scene change by temporarily placing your finger between the camera and film.
v6.8
Sept. 22, 2025
For Scanner Types A, B and C.
- We now have white balance control for Kelvin and Tint, so full manual
- We also have a RGB Histogram to help with you white balancing
- The white balance control in pictures settings will only change the red to blue balance (Kelvin) with 9 discrete settings
- Out side of the picture settings, even during capture, you can change the tint (green) by a longer press in Left or Right buttons (decrease or increase the green)
- The green tint will be remember, even beyond a firmware update
So many other small changes. I'm no longer seeing jitter on my hardware, but I have some code in there to help, just in case. It seems I skipped v6.7 (or never released it.)
Several of the extensions are now in C code, so let me know if you want to see that.
v6.7 (Skipped or never released)
v6.6
July 22, 2025
For Scanner Types A, B, and C.
- This one implements user controlled manual white balance
- Under the picture setting "Exposure" is replaced with "White Bal", for a manual, but fixed, white balance control
- You should not need to reflash FW to change the white balance any more
v6.5
July 12, 2025
For Scanner Types A, B, and C.
- All Kodak Reels units now work (A, B and C)
- File stamps - Now 2025/7/12
- White balance - 1.75,1.0,1.0
v6.4
July 8, 2025
For Scanner Types B and C.
- More work to stabilize the frame
- Upgrade the auto exposure to be smoother when it needs to change, sometimes on a cut, but to nothing if the histogram is good (90% of the time.)
v6.3
July 7, 2025
For Scanner Types B and C.
- Bug Fix for B & C
- I have mostly resolved the frame stability issue
- So no new features, just more reliable captures
- Also Type B, the end of reel detection was improved
- It turn out the longer shutter, and lower ISO, for lower noise, was causing the frame start sometimes slightly too late. As this hack is a still good quality improvement, it will not use a shorter shutter before capture, switching to the longer shutters while encoding
v6.2
June 28, 2025
For Scanner Types B and C.
- First stable release for Type B
v6.1
June 11, 2025
For Scanner Types B and C.
- In an attempt to make the frame more stable, dark images can now increase to ISO 200 (range 50-200), rather than a 16ms shutter time (4ms is the max in v6.1.)
- Type B now has working exposure controls. In 6.0, the histogram was working, but the exposure controls where still pointing to Type C address
- Type B is not not look as detailed as type C, don't why yet
v6.0
June 3, 2025
For Scanner Types B and C.
- I have now Type B and C running all the current hacks
- My default (fixed/manual) white balance has moved to better match the modern film I'm scanning. Manually editing the .rbn for other WB values is not too hard
After initially posting, edited for minor fix: I just fixed the color reversal error in Type B. I had just missed a 4 bytes in the port from Type C.
v5.8
Mar 18, 2025
For Scanner Type C.
- This version correctly sets the full range flag within the `avcC` MP4 atom.
- So not a big change, but will save you the workflow steps having to correct the files will FFMPEG after capture
- The end result of this is more dynamic range without color correction or manually editing the header in the file
v5.7
Mar 16, 2025
For Scanner Type C.
- Exposure work:
- I had to give up on full manual exposure, as you really needed to scan most reels at least twice, to handle under and overexposed scenes seperately
- The exposure rules are only to decrease when clipping, or increase when at least a stop underexposed, all changes are fast, in half stop increments. So on a scene change it may change exposure, otherwise the exposure is somewhat locked
- All exposure changes are using shutter time only, ISO is locked at 50 for the lowest noise (unlike stock FW)
- Shutter speeds supported between ~1ms to ~16ms (about 4 stops of range.) This is significant reduction for the stock FW range, which gains up black film way too much
- Note: The EV bias is no longer used
- I have improved the auto stop, which would trigger for completely overexposed segments. It now waits for 32 frames of completely blank images
- Histogram is now stable.
- Currently the histogram only runs during capture, not preview
- I disabled 3DNR, multi-frame noise reduction, which compares frames for "better" denoising
v5.6
Mar 10, 2025
For Scanner Type C.
- This is the first version with both manual white balance and exposure
- The code for the boot/shutdown screen now uses the same address for both, freeing up a large amount of space for code extensions
- All my hacks are now at 338f28 to ~ 33a190 with room to grow
- I have restore all the old "audio" code
- New boot screen displaying Firmware specs/features/version
v5.5
Mar 8, 2025
For Scanner Type C.
- This new firmware includes a grey frame detector to stop the capture automatically when the file is run out at the end
- While I haven't had it fail. I do have the sprocket hole visible, as the detector is using the luma minimum to maximum in the frame, a low difference is the sign of a grey frame
Shared Document on all the changes:
https://docs.google.com/document/d/1AT6ePRO7csoXD_1yUocJsVlNRvMUsktMsBqlPPmCwbo/edit?usp=sharing
v5.4
Mar 4, 2025
For Scanner Type C.
- I was able to find a way to stop the motors in the event of encoder crash
- While running at 50Mb/s has its risks, now at least you only have to wind back 5-6 frames, restart the unit, and continue
- Some code has been moved to create more coding space, plus some work in progress that is not activate yet
- Changes at 0x1a9ff8 this used to do be a call to print the last error message on an encoder crash, now in calls my shutdown code at 0x1fc540
- The shutdown code is super crude, sends 0xffs to 0xb0260000 - 0xb0267fff, this freaks the unit out enough to turn off the motors
v5.3
Feb 26, 2025
For Scanner Type C.
- Just bit-rate stability:
- Last version would lower the Qp to a limit of 16, but for some reels this would crash
- This build uses 19 at the lowest Qp value, no other code changes.
- Bit-rate averaging 48Mb/s
v5.2
Feb 23, 2025
For Scanner Type C.
- The bit-rate now averages around 55Mb/s, and gentler version of the new rate control
- At 80Mb/s there was still a few capture failures, so still some work to do
- This build also adds 18fps as the default. At address 0x1ef984 use 0x60EA for 20fps and 0xF0D2 for 18Hz
v5.1
Feb 21, 2025
For Scanner Type C.
- This release has same functionality as v5.0, but has the code cleaned up
v5.0
Feb 20, 2025
For Scanner Type C.
- Locked quantization: QP25
- Locked white balance: RGB weights 1.75, 1.0, 1.0
- Pipeline resolution: 1600x1200
- Encode resolution: 1600x1200
- I moving the seconds input buffer any to just after the encoding working space, but before the compressed output. There is little more unused memory when encoding at 1600x1200. This improved reliability
v4.2
Feb 19, 2025
For Scanner Type C.
- (Previous version) still occasionally saw a buffer collision between the compression data, and the second input frame buffer. This firmware should address that
v4.1
Feb 19, 2025
For Scanner Type C.
- I was incorrectly running QP23, which failed on some scenes, so this is running QP28
v4.0
Feb 18, 2025
For Scanner Type C.
- I wasn't able to limit the size of the H264 compression buffer, but by dropping the processing resolution to 1600x1200, on was able to fit one of the two buffers lower in memory, and now have no conflicts
- QP of 25: 30-60Mb/s
- This firmware will work with a stock lens, but the resolution benefits will require a different lens with a narrower FOV
v3.1
Feb 16, 2025
For Scanner Type C.
- I was finally able to move the input buffers so that will not collide with each other
- So I can now capture 1920x1440, process and encode at that resolution -- for about 130 frames.

- The new main issue is the while I moved the input frames to the very end of the memory, the H264 compression buffer is huge, and it eventually runs to the end of memory (same locations.)
- Next step is to reduce the size of the compression loop buffer.
- The compression at 1920x1440, is way worse. I'm about to average around 20Mb/s, yet as this is not a 700px image scaled up to 1920 any more, there is more entropy to encode, so this bit-rate is too low
v3.0
Feb 8, 2025
For Scanner Type C.
- I have now proven this hardware is capable for a 2K scan (1920x1440)
- Clearly the sharpness was tuned for this resolution
- If you zoom-in the capture works correctly, like stock FW, as the working frame buffer shrinks to 840x632 (and smaller.) All the code changes is the width, height and pitch of the frame
v2
Feb 3, 2025
For Scanner Type C.
- Use the existing reframing controls to scan everything the sensor sees
- This is great for hardware hack that want to do 16mm scan with the existing lens, or replace the lens for high-res scans of 8mm
- This hack increases the zoom-out range 2.3X over the stock firmware
- A lot of new code added between 0x1fbdb4 and 0x1fc000. This replaced a lot of old dashcam code related to audio, so I have this area to do new development
- The Post linked above and others in following days documents discoveries about the code
1.2 (assumed)
Jan 23, 2025
For Scanner Type B
- I decided to try a Type-B to confirm it can be done with a hexeditor, without using decompiling tools like Ghidra
- 1600x1200 with a ~25Mb/s
- Fixed (non-auto) white balance
v1.1 (assumed)
Jan 20, 2025
For Scanner Type C.
- 1600x1200 @ 24Mb/s
- Tweaked the manual white balance (2.0, 1.0, and 0.75; guessing around 5600K)
- Boot screen will show the current settings
v1.0 (assumed)
Jan 18, 2025
For Scanner Type C.
- I can now build firmware with a fixed white balance, with independent red, green and blue gains