Resource icon

Branch of 7.7.1 to Limit Shutter Duration

Branch of 7.7.1 to Limit Shutter Duration​

Created: 5/18/26

The "Waviness" Issue and Investigation​

One strange issue I encountered recently while scanning with 0dan0's firmware (7.7.1 on a Type C scanner) is intermittent waviness of the captured images, easily seen on vertical lines. The waviness would occur on bright footage, but not dark footage. While the root cause of this issue is not determined, my investigation pointed to be a correlation between higher shutter speeds and the waviness issue. Naturally, with bright footage, the shutter speed runs fast ( = lower exposure (μs) number = short exposure duration), also with a low IS0 (50) and that's when I would see waviness.

Note: this issue is absolutely different than the commonly experienced "frame stutter" issue, which is generally understood, despite not having a perfect fix to mitigate.

As a matter of conjecture, the root cause of this waviness issue is likely not anything to do with any firmware, but instead is likey caused by some faulty piece of hardware (especially related to power supply). There is probably a power-related issue with the sensor prior to digitizing that is somehow causing this visual artifact. No one else in the community has reported this problem and could certainly be a "fluke" -- not very likely for other users to experience.

Mitigation​

The theory I've been working off of is that if I can trick the scanner into not using a very fast shutter speed during capture, the waviness would not be present. After first attempting to "dim" the footage by applying a Neutral Density gel (ND .3) directly on top of the LED backlight of the scanner, I decided to instead attempt an adjustment to the firmware to add a limit/floor/clamp to the shutter speed. After trying both 3ms minimum and then 4ms minimum speeds, I landed on 3ms. With a 3ms floor the waviness was essentially gone (maybe a very miniscule amount remained), whereas with 4ms minimum the bright footage got a bit too close to overexposure, even though the waviness appears to be completely gone). 3ms strikes a good balance between affectively mitigating the waviness and allowing the AE logic to keep bright footage within a comfortable exposure range.

As an aside, I did attempt an alternative firmware adjustment that prevented the scanner from using ISO 50, but that seemed to not solve the problem, and introduced other Auto Exposure related issues.

Implementation​

To make this slight adjustment to the firmware, I heavily utilized Claude to walk me step-by-step through the process to adjust the 0dan0 C code, compile it, and package it with an updated custom boot screen. It was a good learning opportunity for me and I'm quite impressed that (eventually) I was able to make the change I desired (and even better that the change seems to have successfully mitigated the issue).

For documentation, the shutter floor of 3ms (3000us) and preceeding comment was added into this section of the hist.c code (addition is highlighted):
while(nextexpo >= 8000)
{
nextexpo /= 2;
}
// Prevent shutter going faster than 3000us on bright frames (waviness fix)
if(nextexpo < 3000) nextexpo = 3000;

}

Notes/Concerns​

For now, I will keep this forked version for myself, but you can reach out to me if you are experiencing a similar issue.

One unresolved issue is that my firmware fork was not able to successfully complete the flashing process as other firmware releases have (with the auto-delete feature via the NVTDELFW folder). So, unfortunately, the FW update process is a bit scary: I power the unit on with the firmware file on the SD Card, wait well beyond the standard 30 seconds (maybe 2 minutes to be safe), and then power the unit off (hold the power button). I then remove the SD card, wipe it with my computer, re-insert it into the scanner, and power it on (and see the custom boot screen to verify it's successfully flashed).
BootScreenC 3ms.png


I'll revise this resource going forward if there are any significant changes or findings that may be helpful for the community.

Big thanks go to 0dan0, Mac84, and others for all of the work and expertise put into the development of this firmware.
Author
ThePhage
Views
27
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from ThePhage