Modding the Kodak Reels 8mm Film Digitizer (Firmware Hack)

  • It's #MARCHintosh 2025! Join in on the fun and post your project or play with some new stuff in our #MARCHintosh 2025 thread.

Pascal1972

New Tinkerer
Mar 9, 2025
3
2
1
With great pleasure I reached this community and page. For digitizing (S)VHS, video8, Hi8, Digital8 and VHS-C was already possible for me, digitizing Super8 is new. So I bought the kodak Reels, brand new serialnr.: H2324148B.... used firmware C, placed the BIN file on the root, the device restarts, button on top is white, black screen for 25-30 sec. Everything seems ok, scan soms film, ejected the SD card, inserted in my pc, checked the file details but it stays on 7697 kbs bitrate. What to do next? Any help is appreciated.. The screen in the menu "About" in the kodak machine says version 2.0
 

Attachments

  • Schermafbeelding 2025-03-10 073436.jpg
    Schermafbeelding 2025-03-10 073436.jpg
    21.4 KB · Views: 26

Hawke

New Tinkerer
Dec 30, 2024
18
7
3
With great pleasure I reached this community and page. For digitizing (S)VHS, video8, Hi8, Digital8 and VHS-C was already possible for me, digitizing Super8 is new. So I bought the kodak Reels, brand new serialnr.: H2324148B.... used firmware C, placed the BIN file on the root, the device restarts, button on top is white, black screen for 25-30 sec. Everything seems ok, scan soms film, ejected the SD card, inserted in my pc, checked the file details but it stays on 7697 kbs bitrate. What to do next? Any help is appreciated.. The screen in the menu "About" in the kodak machine says version 2.0
Try to add the folder NVTDELFW to your SD-Card and try to flash again, if the firmware is still on your SD-Card, than the flashing failed. Mostly not correct formatted file system.
 

0dan0

Tinkerer
Jan 13, 2025
80
114
33
Version 5.6 attached

This is the first version with both manual white balance and exposure. While the code changes for manual exposure are small, there a lot other changes in this build. With each version I change the boot screen and shutdown screen JPGs. There are the same image, yet they are stored twice. The code now uses the same address for boot and shutdown, 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. This might make porting easier.

New boot screen:
1741648712294.png
 

Attachments

  • FWDV280-V5.6-0dan0.zip
    5.7 MB · Views: 32

0dan0

Tinkerer
Jan 13, 2025
80
114
33
I keep find things the developers did wrong, or didn't care.

H264 has two common color spaces, Rec709 broadcast range, and Rec709 full range. A decade ago (where this tech originates) many developers didn't set the flag to say which (like on Reels.) The assumption with no flag for media players is broadcast range (16-235), yet Reels is using full range. So your editor and playback tools are crushing the shadows and clipping highlights.

Here is a lossless/fast ffmpeg fix:
ffmpeg -i input.mp4 -c copy -bsf:v h264_metadata=video_full_range_flag=1 output.mp4

Left is wrong, it is how Reels output will be displayed and presented on youtube etc. The right has the flag set correctly, see how it is less contrasty and doesn't blow-out the tree branches to white. The histogram shows the left also has crushed green and red channel data to black.
1741665229500.png


Curious, I am weird for caring about this stuff?
 

Andreas

New Tinkerer
Oct 15, 2024
8
5
3
Grand! I am thrilled about the progress. Because my Reels has firmware B and I can't use your firmware version, I would be interested in where I can find the exposure. I have already successfully corrected the white balance. I also tried the adjustment to 18 frames per second, but it created an unstable image. (Translated from German with the Android app "Translator")
Keep it up
 

ThePhage

New Tinkerer
Oct 30, 2024
7
4
3
I keep find things the developers did wrong, or didn't care....

Curious, I am weird for caring about this stuff?
I would say definitively that you are NOT weird for caring about this stuff. I'm so very thankful for the work you and others are doing here and so willingly sharing with the community. There is so much improvement being made in the quality of this product. You're all rock stars, as far as I'm concerned. While I had mostly finished up scanning my families 8/S8 film (over the course of about 4 months, using one of the earlier firmware versions), I will probably re-do the scans soon (before I actually start editing the footage) with more recent firmware (if/when available in model b version). The change from auto to manual white balance alone will save me time with color adjustments. But I'll have to figure out if I can/should attempt a lens swap to take advantage of the resolution increase. I'm not as tinker-y as many of you and afraid I will break the unit.
 

0dan0

Tinkerer
Jan 13, 2025
80
114
33
Grand! I am thrilled about the progress. Because my Reels has firmware B and I can't use your firmware version, I would be interested in where I can find the exposure. I have already successfully corrected the white balance. I also tried the adjustment to 18 frames per second, but it created an unstable image. (Translated from German with the Android app "Translator")
Keep it up

What did the unstable image look like?

I don't know if the manual exposure control is at the same address. We need someone with Type B unit, add has a serial port, to test this.
 
Last edited:

0dan0

Tinkerer
Jan 13, 2025
80
114
33
I leveled up on my hacking skills. Here is Reels displaying it own histogram.

1741739409114.png


I'm now compiling C code, and adding it the firmware. Previously it was all hand assembly (brain hurt). This histogram code is not ready to share, as it currently flickers and is only on during capture. This is a step toward building my own auto exposure control.
 

Andreas

New Tinkerer
Oct 15, 2024
8
5
3
What did the unstable image look like?

I don't know if the manual exposure control is at the same address. We need someone with Type B unit, add has a serial port, to test this.
Look at this example with 18fps
At address 0x1ef984 use 0x60EA for 20fps and 0xF0D2 for 18Hz. I have found this sequence in Firmware B at Adresse 0x1ef974 and Not at 0x1e984
 
Last edited:

0dan0

Tinkerer
Jan 13, 2025
80
114
33
@Andreas I have seen that too, about 10% of my captures have it. Although I'm not sure it is due to the 18Hz, as that is only modifying the data written to the header of the MP4. It is a timing issue where the frame is grabbed, just as the motor start/end that frame feed. Notice how it is only part of the frame that is unstable. This is on my list to try and improve. Please try the 18Hz change again, to see if it returns. Maybe you are correct, and there is some weird interaction, but at the moment I can't see how.
 

ThePhage

New Tinkerer
Oct 30, 2024
7
4
3
@Andreas I have seen that too, about 10% of my captures have it. Although I'm not sure it is due to the 18Hz, as that is only modifying the data written to the header of the MP4. It is a timing issue where the frame is grabbed, just as the motor start/end that frame feed. Notice how it is only part of the frame that is unstable. This is on my list to try and improve. Please try the 18Hz change again, to see if it returns. Maybe you are correct, and there is some weird interaction, but at the moment I can't see how.
I agree with this, as I’ve had the same issue on several of my scans (20fps). Assumed it was timing issue with motor and camera firing; not sure how to prevent it.
 
  • Like
Reactions: 0dan0

Pascal1972

New Tinkerer
Mar 9, 2025
3
2
1
Try to add the folder NVTDELFW to your SD-Card and try to flash again, if the firmware is still on your SD-Card, than the flashing failed. Mostly not correct formatted file system.
When I create the mentioned folder, it flashes like expected (white button/30 sec and boot), when ejected the sd card and put into the pc, the BIN file is gone. The scanner software however has no change in bitrate output. The sd card is formatted FAT32 and is the same i use for scanning purposes
 

ThePhage

New Tinkerer
Oct 30, 2024
7
4
3
When I create the mentioned folder, it flashes like expected (white button/30 sec and boot), when ejected the sd card and put into the pc, the BIN file is gone. The scanner software however has no change in bitrate output. The sd card is formatted FAT32 and is the same i use for scanning purposes
@Pascal1972, specifically which firmware are you attempting to update to? You mentioned firmware C, but didn't share which numbered "version" (from 0dan0) or "option" (from Mac84 and team) you are using.
 

Pascal1972

New Tinkerer
Mar 9, 2025
3
2
1
@Pascal1972, specifically which firmware are you attempting to update to? You mentioned firmware C, but didn't share which numbered "version" (from 0dan0) or "option" (from Mac84 and team) you are using.
Yes I succeeded, in one of the pages someone posted a bunch of zip files: C-firmware original, 1440k + high bitrate, original resolution + high bitrate. So now I can scan in high res and high bitrate. Now compare some clips.
 
  • Like
Reactions: Mac84 and ThePhage

Andreas

New Tinkerer
Oct 15, 2024
8
5
3
@Andreas I have seen that too, about 10% of my captures have it. Although I'm not sure it is due to the 18Hz, as that is only modifying the data written to the header of the MP4. It is a timing issue where the frame is grabbed, just as the motor start/end that frame feed. Notice how it is only part of the frame that is unstable. This is on my list to try and improve. Please try the 18Hz change again, to see if it returns. Maybe you are correct, and there is some weird interaction, but at the moment I can't see how.
I have observed that the image is unstable at exactly those places at 18 fps where the exposure flickers at 20 fps and is too dark for a moment
 

0dan0

Tinkerer
Jan 13, 2025
80
114
33
Version 5.7 attached

BootLogo1600x1200-V5.7.png


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 8-bit Gamma 2.2 encoding can't handle the potential dynamic range. But I don't like the drifting nature of the stock auto exposure, so I made my own crude solution. 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 to auto stop, which would trigger for completely overexposed segments. It now waits for 32 frames of completely blank images.

Histogram is now stable. Not that this is completely useful, it was helpful in debugging exposure rules, it means I can now render other things over the video preview image. Currently the histogram only runs during capture, not preview.



Final change, I disabled 3DNR, multi-frame noise reduction, which compares frames for "better" denoising. If this was implemented at 25fps, the video camera's frame rate, it would likely have been an excellent option, but it was running at the encoding frame rate (2fps.) The issue is the difference between frames is not sensor noise, but film grain, and it was removing texture and details from the shadows.
 

Attachments

  • FWDV280-V5.7-0dan0.zip
    5.5 MB · Views: 6

ThePhage

New Tinkerer
Oct 30, 2024
7
4
3
Version 5.7 attached
This morning I loaded and tested this v5.7 firmware on my new "Firmware C compatible" Reels (serial K3124148BK...) and it works great. Obviously with a stock lens, the improvement over my previous captures (using a 1920x1440 17Mb/s firmware) is limited, but there is absolutely noticeable improvement here thanks to all of the improvements you've made:

  • I can definitely notice some improvement in detail (or rather, a definite decrease in compression artifacts thanks to higher bitrate and other compression tweaks).
  • The Manual White Balance looked great for the outdoor scene I tested; slightly cooler than what the stock AWB found, but probably a more accurate/neutral white. If I want to shift it warmer/cooler in post/editing, it wouldn't need much. And since it's locked, this will save so much time/headache in editing to not have to deal with shifting/hunting auto white balance!
  • Your Mostly Manual Exposure worked well for my brief test. It appeared to complete it's auto-adjustment (due to clipping) at a scene change after 1 frame. Overall, I liked the exposure it selected for my test footage which featured a lot of skin tone and concrete under direct sunlight. It selected it's exposure a hair brighter than my previous captures, but for the previous captures I had the EV bias to -0.5 so, the v5.7 test scan is probably selecting about the same exposure. Like the WB, I feel like I could make small exposure adjustments in Post without significant artifacts. Once I test some darker, under-exposed footage I'll provide some feedback on that.
  • The FFMPEG adjustment you suggested to convert Reels footage from Full Range to Broadcast range color space is terrific, such an important adjustment and I definitely noticed the difference in shadows and highlights on my footage! I imagine that's NOT a flag you can set with your firmware adjusments (otherwise you probably would've already made that change). ;)
  • Here's another improvement I've seen with your firmware. One of the compression quirks I've seen with the stock firmware and even the previous 17Mb/s upgraded firmware is that at the beginning on a new scan, frames 9 through ~16 displayed significant macro-blocking artifacts. The artifacts seem to fully resolve after about 16 frames, and then I don't really see it past that point. But now with the v5.7 (I hadn't tested any of your previous versions) I don't have that issue. (y)
  • I loved the bootup/shutdown screens. That was especially helpful after flashing to 5.7 to confirm the change.
  • The histogram is a nice touch, displayed solidly and didn't get in the way of anything I needed to see.
More testing to do in the next few days, but I'm very pleased with these improvements. One strange thing I encountered was that after I had manually stopped my first test capture with the v5.7 firmware, there was somehow a change in the image framing/zoom, such that it had Zoomed in on the film, at least as viewed on the preview display. When I noticed that I couldn't see the edges of the sprocket holes, I went into the framing menu and zoomed back out several steps back to where I had been when capturing. Again, this seemed to have all happened after the test capture had ended, so it wasn't reflected in the video file, and then I ran out of time to do further troubleshooting on that issue. I'll try to recreate that issue again and report back here if it happens again.

As an unrelated side note, it's also a brand new unit and I will probably need to adjust the tension/pressure on the metal press plates -- my test footage got stuck in a few places that my previous B unit didn't get stuck on.

Thanks for sharing your work with the community here!
 
Last edited:
  • Love
  • Like
Reactions: Chris0)(0 and 0dan0

0dan0

Tinkerer
Jan 13, 2025
80
114
33
Thank you for the detailed feedback.

1) The new compression rate control algorithm is doing for the best it can, but is still a tad flakly, as can crash the encoder. I get this crash maybe once or twice on a 5" reel. But like you see, I think the result are worth it.

2) I still what to make the manual white balance user settable. I need to work out how to sense button presses. This is not hard to change, if it is always too blue.

3) Manual exposure is still a work in progress, but it really depends on the source reel. I'm looking for way to enable or disable it, without a firmware change.

4) Currently they are not setting any flag for video range. But it should be fixable in firmware, I just haven't found it yet. They have to wrong data in the VUI (Video Usability Information) stored within the 'avcC' mp4 box in the headers. So it is fixable.

As for the random framing change, I've seen that too. It is not very common. My crude shutdown seems to sometime fake button presses.

Can you post good before and after images? I would love to see more users of these enhancements.