Upgraded pyOpticfilm backend to use version 1.3.1 (from 1.3.0) which fixes some critical bugs and uncaught regression issues introduced in 1.3.0) - #1007
Merged
marcinz606 merged 2 commits intoAug 29, 2026
Conversation
…fixes some critical bugs and uncought regression issues introduced in 1.3.0)
jboneng
marked this pull request as ready for review
August 29, 2026 18:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This update introduces important bug fixes, and fixes uncaught regression issues introduced in 1.3.0:
[1.3.1] - 2026-08-29
Added
Scanner.scan(single_pass_exposure=..., me_short_exposure=..., me_long_exposure=...)send an exactREG_EXPOSUREfor the retained single-pass, ME short, or ME long pass, bypassing adaptive selection, PPI clamp, andme_hardware_max_exposure.me_long_exposuretakes precedence overme_exposure_mode. Values are validated for the 24-bit register range (1–0xFFFFFF); out-of-range values raiseValueError. All three default toNone(unchanged behavior) and never apply to the discarded GL128 priming pass. Scan Lab exposes matching Manual exposure overrides fields.Scanner.scan(gl128_prime=False)skips the discarded first-scan AGOHOME-park pass for that call (debug/testing only — expect ~30 px of first-scan position drift). Skipping does not mark the scanner as primed, so a later call without the override still primes normally.ScanStatus/on_statusgains"prime_skipped". Defaults toTrue(unchanged behavior). Scan Lab Disable priming pass (debug) applies to Prescan and Scan.Fixed
mirror_x) are a per-line USB dummy suffix plus the invert-white transition — shrinkingENDPIXELdoes not remove them. Decode drops that fixed width after shading; USBline_bytesstays locked to the programmed span. Heuristic post-decode edge trim is not used (pcap 7200 URB-wider-than-span trim stays). IR column flatten still uses inset edge levels and a gain cap so residual edge samples cannot blow up to ~56k. Pass registration fills shift borders from interior columns instead of replicating padding (which widened the IR bright band and caused NegPy ICE over-repaint). Scan Lab surfaces IR align shift in the status bar / IR caption.feed_to_scan_steps13128 (was 13704; fixes ~1 mm clipped at the top of full-frame scans), 7200 dpiLPERIOD16035 (was 15963), 7200 white-shading strip dummy clock 0x10 (was 0x17),max_image_lincnt_by_feed2{13128: 29012} (was SE preview entry 4836), andladder_feed2_steps13128 (was SE 13560).0xcd(home, buffer empty, lamp on, motor still enabled). Scan Lab reportedAFE strip: no stationary data ready within 5s (last status=0xcd)— including 1800→3600 with the same crop (DPI cache miss remesures calib). Stationary acquires now abort START, confirm SCAN/motor-off from hardware (park leaves0x02armed), program session-03 dark-strip clocks, write SCAN absolutely, and retry START once. Colour shading remesure reuses existing AFE codes when the last search was colour.Changed
Contributors