Hacking the Kodak Reels 8mm Film Digitizer (New Thread)

videodoctor

New Tinkerer
Jan 8, 2026
13
8
3
No guide for the case mod, but I've done four now. However, you should begin the hardware modification until the new firmware is available for Type D units.

1) Remove the camera cover, there are two clip on top and two on bottom, it will just pop off with a little work.
2) Unscrew the four screws from camera module from the mount. Save those screws.
3) pull gently on the ribbon cable to have some room to move the camera out of the way.
4) The hard part, cut the plastic above ~5mm by ~25mm, above the camera mount (without hurting the ribbon cable.) I have use the tip of soldering iron to do most of the cutting.
5) then add the 3D print parts (two screws for each layer)

Use https://printathing.com/order/ to order the parts.

View attachment 25895
@0dan0 , thank you for the pointer to the 3D fabrication service! I haven't done any 3D printing yet---can you tell me which options I should choose on this service?

* FFF (Fused Filament Fabrication) or SLA (Stereolithography)
* Infill (Should this be 100% "Solid Object"?)
* Layer thickness (0.1mm, 0.2mm, >0.2mm)
* Material -- PLA or ABS

Thanks again for your help! Can't wait to get this hardware mod in place. I've ordered the lens and its components already. I've also started to use Ghidra to compare your repo's firmwares to the stock D firmware.
 
  • Like
Reactions: SkipBurg

videodoctor

New Tinkerer
Jan 8, 2026
13
8
3
@0dan0 , I did some Ghidra work over the weekend. I created this issue in your Github repo:


I'm not sure if this is helpful at all. Here's a copy of what I posted:

I've analyzed the D variant firmware and calculated memory address offsets:

- frameno: +0x258 (0x80f8214c → 0x80f823a4)
- nvm_base: +0x1E74 (0x80E0B78C → 0x80E0D600)
- active_settings: +0xE20 (0x80DDC11C → 0x80DDCF3C)

I've compiled a test mod with these addresses. Can you provide guidance on:

1. Where to inject the code in D variant firmware?
2. What tools/process to use for injection?

Happy to test on my hardware once injection methodology is confirmed.
 
  • Love
Reactions: 0dan0

0dan0

Active Tinkerer
Jan 13, 2025
348
517
93
@0dan0 , I did some Ghidra work over the weekend. I created this issue in your Github repo:


I'm not sure if this is helpful at all. Here's a copy of what I posted:

I've analyzed the D variant firmware and calculated memory address offsets:

- frameno: +0x258 (0x80f8214c → 0x80f823a4)
- nvm_base: +0x1E74 (0x80E0B78C → 0x80E0D600)
- active_settings: +0xE20 (0x80DDC11C → 0x80DDCF3C)

I've compiled a test mod with these addresses. Can you provide guidance on:

1. Where to inject the code in D variant firmware?
2. What tools/process to use for injection?

Happy to test on my hardware once injection methodology is confirmed.

I was about to confirm these offset with the D2825 unit I just relieved. However, it seems to run fine on Type B firmware. Have you tried Type B?

There is a lot more work before the C code can be added.
 
  • Like
Reactions: videodoctor

0dan0

Active Tinkerer
Jan 13, 2025
348
517
93
@0dan0 , thank you for the pointer to the 3D fabrication service! I haven't done any 3D printing yet---can you tell me which options I should choose on this service?

* FFF (Fused Filament Fabrication) or SLA (Stereolithography)
* Infill (Should this be 100% "Solid Object"?)
* Layer thickness (0.1mm, 0.2mm, >0.2mm)
* Material -- PLA or ABS

Thanks again for your help! Can't wait to get this hardware mod in place. I've ordered the lens and its components already. I've also started to use Ghidra to compare your repo's firmwares to the stock D firmware.
FFF
Infill - Defaults are fine as this is so small it will so near solid anyway
Layer - 0.1mm (will help to have a fine print)
Material - either as this is not have to hold anything heavy.
 
  • Like
Reactions: videodoctor

videodoctor

New Tinkerer
Jan 8, 2026
13
8
3
I was about to confirm these offset with the D2825 unit I just relieved. However, it seems to run fine on Type B firmware. Have you tried Type B?

There is a lot more work before the C code can be added.
No, I didn't try the Type B firmware. I'll give that a try this afternoon!
 

0dan0

Active Tinkerer
Jan 13, 2025
348
517
93
Now for the weirdness of D2825 units. This is different firmware (then I have seen, doesn't match any of @Mac84 originals), but it only so slightly different, as it seems to have a small code patch to Type B, yet Type B firmware works as is.

It has 8 bytes more code at 0x1042C8. Just:
1768239964898.png


There could be other code additions, although this alters the alignment and code address offsets. Seems D2825 are just newer code releases for Type B.

H2825 still looks much more different, but I don't have this hardware, delaying my support.

Attached in the D2825 firmware for reference.
 

Attachments

  • D2825-firmware.zip
    5.6 MB · Views: 9
Last edited:

Tony

New Tinkerer
Dec 29, 2025
3
1
3
Aptina AR0330. Yes on all models I've seen. This not the sensor claimed on the back of the unit.

Looked over the spec sheet on the AR0330 and it uses a Bayer filter on 3.5million photosites (RGGB) that are masticated / demosaiced into a 2304x1536 array by combining 4 adjacent cells into each "pixel" which results in resolution error due to upscaling. I would assume there is at least two extra columns and rows of photosites on the edges of the sensor to accommodate the edge cases as well. Removing the Bayer filter and instead flashing colors (RGB) separately would be outrageously accurate and eliminate any of the demosaic error. Given the speed of the solution (1 FPS) its an achievable approach with a monochromatic sensor (which this isn't and can't be modified).

The sensor does have raw12 (not mosaiced) output at 2bytes (12bit) per photosite (7MB/3.5Mp image | 500MB/foot | 25GB/50ft ). But what the sensor tries to put out is a highly compressed "video" stream rather than the 7MB/frame @24 or 18 or 12 FPS. Given that the Reels is not operating in "reel time" , seems more appropriate to either collect the individual images in sequence and post-process into a video in a stage where all the white balance, timing, frame alignment, etc. can be controlled and appropriately resourced (e.g. laptop or desktop) to maintain maximum accuracy, rather than dependency on all the hidden uncertainties in the sensor chip and limitations of the microcontroller. (Yes - I got the memo on make "this device" as good as it can be, not what we wish for)

I get the lens issue as well - it is just like a photographic darkroom enlarger where three elements (image - lens - sensor) need to be in balance. For those unfamiliar with this issue, it has to do with selecting a lens that both minimizes distortion of projecting a flat image to a flat surface (spherically and chromatically) as well as positioning for focus and size. Reels chose to under scan with their lens, which minimizes the spherical aberrations at the cost of resolution (image information density). "Macro" lenses tend to do a better job of sharpness across the frame, while the extension tube provides the focal adjustment range for the positional relationship of the film, lens, and sensor. Including an APO (Apochromatic) element or achromatic filter would help fine edge detail too ($$$).

Which makes me wonder how a more standard "test pattern" could be produced to evaluate the image reconstruction? Perhaps a series of horizontal fine black lines on white background or radial lines with centered circles along with a standard color bar/grid as well so that various adjustments can be objectively evaluated. The usage of flowers, amusement parks, and street scenes are very entertaining, but difficult to establish repeatable detail or color measurements.

Given the "Effective" resolution of 4000dpi on film - each frame (edge to edge) is 1255x670 dots rendering questionable the usage of any higher resolution as just making the grain noise more detailed rather than extracting any additional information. Thus, configuring the sensor output to 1152x768 (binning) is about optimum if the image area is tightly bounded by the film width and frame length. Getting the mechanical alignment is the challenge.

I recommend getting a USB serial adapter rather than using a zero or pi to connect to the serial port.

Everyone here is doing great work! I am still on the fence to spend $1k to convert 2500ft of film professionally or do-it-myself (they clean and stabilize as well as do high res capture).

Just my two cents ---

T
 

lrdgreen89

New Tinkerer
Jan 12, 2026
2
0
1
Hello!
Following Mac84's lookup tool instruction, I'm sharing my SN which appears to need firmware D?


Reels SN: H2825148BK00356​


Readout:
"Your serial number was NOT found on the list.
Use Firmware B labeled files for your device."
 

0dan0

Active Tinkerer
Jan 13, 2025
348
517
93
Hello!
Following Mac84's lookup tool instruction, I'm sharing my SN which appears to need firmware D?

Reels SN: H2825148BK00356​


Readout:
"Your serial number was NOT found on the list.
Use Firmware B labeled files for your device."
Yes, that would appear to be type D. Through which seller do you buy this?
 

videodoctor

New Tinkerer
Jan 8, 2026
13
8
3
Now for the weirdness of D2825 units. This is different firmware (then I have seen, doesn't match any of @Mac84 originals), but it only so slightly different, as it seems to have a small code patch to Type B, yet Type B firmware works as is.

It has 8 bytes more code at 0x1042C8. Just:
View attachment 25953

There could be other code additions, although this alters the alignment and code address offsets. Seems D2825 are just newer code releases for Type B.

H2825 still looks much more different, but I don't have this hardware, delaying my support.

Attached in the D2825 firmware for reference.
@0dan0 , hmm.... I have the H2825 unit, not the D2825. Should I still try the Type B firmware on this unit, or is that already known to not work with the H2825 serial numbers? I didn't attempt to get the firmware directly from my unit---all of my code comparisons with the Type D came from the stock D that's in your repo. I ordered this H2825 unit from Amazon.com last week. I don't presume that all new orders at Amazon will be this serial number series, but mine was.
 

lrdgreen89

New Tinkerer
Jan 12, 2026
2
0
1
Yes, that would appear to be type D. Through which seller do you buy this?
I got this off eBay from a user who apparently bought it new, used it once for his batch of reels. It just arrived today.

My grandmother was an avid home-video maker. I have 112 reels, from the 1950s-1980s, both 8mm and Super 8.
 

0dan0

Active Tinkerer
Jan 13, 2025
348
517
93
@0dan0 , hmm.... I have the H2825 unit, not the D2825. Should I still try the Type B firmware on this unit, or is that already known to not work with the H2825 serial numbers? I didn't attempt to get the firmware directly from my unit---all of my code comparisons with the Type D came from the stock D that's in your repo. I ordered this H2825 unit from Amazon.com last week. I don't presume that all new orders at Amazon will be this serial number series, but mine was.
If you can add the serial port, then you can dump the firmware, this must be before any update attempts (if you want exactly what your firmware contains.) A serial port is extremely helpful for any development you want to try.

We do know there are type D units out there, and it seems that only H2825 is type D (as D2825 is type B). So this is only very limited chance the older firmware would work.

Now that we have Type D firmware (assuming no type Es) you can flash your unit, and recover by flashing with the correct firmware.
 

0dan0

Active Tinkerer
Jan 13, 2025
348
517
93
I got this off eBay from a user who apparently bought it new, used it once for his batch of reels. It just arrived today.
Thank you. I have attempted to get an H2825 model from eBay, but many sellers will not respond to enquires about serial number (even ask for only the first 5 characters.)
 

videodoctor

New Tinkerer
Jan 8, 2026
13
8
3
If you can add the serial port, then you can dump the firmware, this must be before any update attempts (if you want exactly what your firmware contains.) A serial port is extremely helpful for any development you want to try.

We do know there are type D units out there, and it seems that only H2825 is type D (as D2825 is type B). So this is only very limited chance the older firmware would work.

Now that we have Type D firmware (assuming no type Es) you can flash your unit, and recover by flashing with the correct firmware.
As much as I do not want to add a serial port to the device, it seems prudent of course! @0dan0 , can you recommend the UART USB serial board to use? This might seem like a silly question, but what does the existing micro USB port on the back of the Kodak Reels do? I didn't see it mentioned in the user guide, but the unit came with a USB cable too.
 

0dan0

Active Tinkerer
Jan 13, 2025
348
517
93
As much as I do not want to add a serial port to the device, it seems prudent of course! @0dan0 , can you recommend the UART USB serial board to use? This might seem like a silly question, but what does the existing micro USB port on the back of the Kodak Reels do? I didn't see it mentioned in the user guide, but the unit came with a USB cable too.
The existing USB port has a different function, it is not connecting to the debug interface that's on the main board. I just added serial ports using an Arduino nano with USB-C to two units yesterday, helping a friend do it.

This is what I used https://a.co/d/5uqn1jQ
 

videodoctor

New Tinkerer
Jan 8, 2026
13
8
3
The existing USB port has a different function, it is not connecting to the debug interface that's on the main board. I just added serial ports using an Arduino nano with USB-C to two units yesterday, helping a friend do it.

This is what I used https://a.co/d/5uqn1jQ
@0dan0, which gauge wire did you use for your UART connector to the Reelz board? The tutorial mentions 34 AWG. Is 22 AWG too thick for the soldering points?
 

Deano

New Tinkerer
Jul 24, 2025
7
7
3
Hello everyone,

Just before the New Year, I received the components necessary for upgrading the lens on my Type C system. Since then, I've finished all of the physical upgrades, and thought everyone might find my process informative. My first approach was to utilize the part files 0dan0 had graciously provided, but as I progressed, I decided to design my own parts. I've got FDM and MSLA part printing capabilities at home, so iterating the designs was relatively simple and they did the job I needed.

At the end, I've put together a comparison image attempting to show the detail improvements I see with all of the physical upgrades. I hadn't seen this type of comparison before, and I found it helpful to qualify the investment I've put into this humble consumer scanner. I hope that it helps answer questions about whether or not upgrading the lens is worth it (I'm convinced!). Note however that I've only been using V6.6 firmware up to this point and that's reflected in the comparison image. I'm looking forward to trying the newest FW versions in the coming weeks!

Hardware Upgrade Process
Accessing the lens and image board-
I've seen stills from others, but I thought a quick video would be helpful.


Removing stock lens- The adhesive fixing the focus on the original lens and preventing its removal appears to be a type of hot glue stick. Applying some heat (high heat not necessary) for about a minute softened it enough to pull off with pliers.

IMG_8225 Medium.jpeg


Removing the image board- Remove the four outermost screws. I measured the screws holding the board to the system and concluded mine are M1.7. Probably self threading. An unusual size. I stuck with M1.7's for better or worse. You might get away with slightly larger screws if they're easier to procure.
IMG_8229 Medium.jpeg

IMG_8230 Medium.jpeg

IMG_8242 Medium.jpeg


Removing the image board from the ribbon cable- I used a spudger to rotate the black retention feature up. The cable then easily slips out. Be careful lifting the retention feature, it's fragile and not meant for repeated actuations
.
IMG_8238 Medium.jpeg

IMG_8241 Medium.jpeg


Removing enclosure material above the image board- The new lens will need to relocate the image board higher from the film. Unsure how high to go, I printed 0Dan0's two piece riser and measured 9mm when I put them together. So I removed 9mm of material from the enclosure as well. Ultimately I used my own riser design which was only 7mm's high. I presume 7mm removal would be fine as well, although the 9mm's gave me a bit more room to fold the ribbon cable out of the way when reinstalling.

I didn't want to remove the front enclosure to perform the cutting, and I didn't want to use any power tools which in my hands would have been a disaster. Instead, I kept the unit assembled, tucked the ribbon cable out of the way, and used some metal tape that's been in my family for decades to act as a template for hand scoring the opening. I used a carbide tipped tool used by scale modelers to scribe panel lines in their models to start the process, removed the tape, then transitioned to an Exacto knife to finish cutting through. It took me about half an hour to cut through. Thankfully with little drama other than the scratches I caused when my scoring tool slipped out of the groove when I wasn't being careful enough.
IMG_8247 Medium.jpeg

IMG_8251 Medium.jpeg

IMG_8253 Medium.jpeg


Installing new lens (https://www.rmaelectronics.com/azure-photonics-azure-1228mac/), 7mm extension ring (https://www.m12lenses.com/7mm-Metal-Extension-Ring-for-M12-Mount-p/pt-erm12-700m.htm), and lock ring (https://www.m12lenses.com/M12x0-5-Lock-Ring-CNC-Machined-Aluminum-p/pt-lrm12-2.0m.htm) onto the image board-

I don't have specific photos showing the installation of these components onto the image board, but it's relatively simple. First screw the 7mm extension ring onto the existing plastic lens mount. Be carful screwing it in. the metal threads of the extension ring can easily strip the plastic threads of the lens mount. Next screw the lock ring onto the lens, then screw that assembly onto the installed extension ring.

Re-attach ribbon cable to the image board
Hardware update details.jpg


Installing riser- I decided to design a one-piece riser for elevating the lens/image board. I made 4mm, 5mm, 6mm, 7mm, 8mm, and 9mm versions. The only one that didn't give me fits trying to focus was the 7mm design. It's printed on my MSLA printer to retain the small alignment pin details.

IMG_8575 Medium.jpeg

IMG_8576 Medium.jpeg


I purchased M1.7 x 12mm screws for installation. They're tough to find, but I found a supplier on eBay. Unfortunately their thread does not match the original screws, but they bit into the existing unit's plastic threads fine.
IMG_8578 Medium.jpeg


IMG_8581 Medium.jpeg


Reduced aperture cap- I printed a 3mm aperture hole cover for the lens per recommendations made by 0dan0. Printed in ABS which gives it just enough stiction to hold onto the lens well. I didn't really appreciate how useful this would be until I tried getting a good focus with the new lens. It's helps immensely!
IMG_8607 Medium.jpeg

IMG_8609 Medium.jpeg


Backlight mask- Taking inspiration from 0dan0's mask, I built this piece to help mask any light bleed from outside the film edges. It fits snuggly in the film strip opening and appears to provide a bit of contrast improvement. I'm looking to do another version where it fits behind the film instead of above it.
IMG_8612 Medium.jpeg

IMG_8613 Medium.jpeg


Cover-Lastly, inspired by Federico's mods, I decided to design a cover for the lens and image board. I rather like looking at the exposed lens and its components, but there's a benefit to keeping it all covered and protected. It's a resin MSLA part finished and painted black.
IMG_8615 Medium.jpeg

IMG_8616 Medium.jpeg

IMG_8617 Medium.jpeg


Image comparisons- Lastly, I put this image together to better understand in what manner and quality all of these hardware (and FW 6.6) enhancements provided. I focused on one subject in a particular frame which had some decent focus. Each of the comparative images are at 1:1 pixel scale to each other. The last image to the far right is an image I took of the film frame taken through an inexpensive pocket microscope (Carson Microflip Pocket Microscope). I was trying to find a method to better see the film's grain to compare with the scanner captures. If I had a higher resolution camera on my iPhone, I probably would have captured the grain even better, but I think it conveys what I needed it to ok. I originally thought this was going to be an expensive path to follow, but was pleasantly surprised at how inexpensively and well this turned out.

I'd appreciate your thoughts!

Full frame with area of interest highlighted. This image was captured with the Reels original 2.0 FW and stock lens.
AOI-Original FW E-1.0, S-1.0, T0.0 original lens.png


Comparative images (copy full image to zoom in)
Side by side comparisons.png

Carson Microflip Pocket Microscope
MP-250_main.jpg

Thank you everyone for the amazing work you put into improving this device!
3D (STL) models of my parts are attached to this document.
 

Attachments

  • 3mm_Iris_Lens_Cap-Kodak Reels.stl.zip
    14.4 KB · Views: 3
  • Backlight Shield-Kodak Reels.stl.zip
    44 KB · Views: 3
  • 7mm_Riser-Image_Board--Kodak Reels.stl.zip
    70.9 KB · Views: 3
  • Cover-Lens_and_Imager_Board-Kodak Reels.stl.zip
    291.9 KB · Views: 4
Last edited:

videodoctor

New Tinkerer
Jan 8, 2026
13
8
3
Wow, excellent write up, @Deano ! (Your icon connotes that you're in the Seattle area? I used to live on Bainbridge Island. :) ) This should be on a dedicated page on the site here.

Would you mind sharing your 3D files? There's so much information from @0dan0 and others spread through lots of posts here---I didn't know that @Federico had a custom cover design, or that @0dan0 had a backlight mask and aperture hole cover! Thank you in advance!
 
  • Like
Reactions: Deano