Skip to content

v1.3.0

Choose a tag to compare

@jboneng jboneng released this 27 Aug 17:27
· 37 commits to main since this release
fa93a0c

[1.3.0] - 2026-08-27

Added

  • GL128 first-scan priming: before the first retained scan after open, run a discarded small pass (default 600 dpi, area (0, 0, 1, 0.12)) so image-pass AGOHOME parks the carriage for repeatable start position. Override with POF_GL128_PRIME (full or <dpi>:x0,y0,x1,y1).
  • Adaptive ME long exposure (GL128): after the short colour pass, choose a frame-specific long REG_EXPOSURE from RGB dense percentiles, then clamp through a separate safety envelope (42k–85k, max ratio 7×). Failures fall back to fixed 42000. Opt out with me_exposure_mode="fixed".
  • Scan Lab Fixed 42k long (A/B) checkbox; USB/status log shows proposed / selected long exposure and clamp reason.
  • MeScanDebug.exposure_proposed / exposure_reason for lab observability.
  • Optional on_status callback on Scanner.scan and exported ScanStatus ("priming" / "scanning") so hosts can show GL128 priming; Scan Lab status bar and USB log surface it.

Fixed

  • GL128 discarded priming pass always forces geometry=None, apply_calib=False, and mode="color", so hosts that pass bring-up geometry (e.g. Scan Lab) no longer stretch the prime into a full request-PPI shading+scan cycle.
  • GL128 adaptive quiet USB drain now sleeps the full LPERIOD deficit (plus a small lag) instead of capping at 3 ms/line, so 7200 dpi image creep is no longer ~15% ahead of the ASIC line clock.

Changed

  • GL128 multi-exposure colour-long REG_EXPOSURE is clamped by PPI (8200i SE + 8100 V2): max 42000 at 7200 dpi (SilverFast known-good); 14000–85000 at other resolutions.
  • PyPI development status classifier is now 4 - Beta (was 3 - Alpha).
  • README now points the "Latest release" link at v1.3.0.
  • README and docs/ now document the hardware-tested set as 8200i SE + 8100 (V2) (and distinguish GL845 8100 07b3:130c from GL128 8100 V2 07b3:1824).
  • Comments, docstrings, and user-facing errors now describe the two-model scan-ready set; Scan Lab README matches. Internal bring-up helper renamed is_opticfilm_8200i_seis_gl128_opticfilm.
  • ME long-pass pixel clocks are selected via an explicit long-pass flag (not only exposure >= 42000); REG_EXPOSURE is hard-clamped to me_hardware_max_exposure at configure time.

Contributors

  • @TobbyTravel for GL128 first-scan priming and for OpticFilm 8100 (V2) exposure-ladder research showing REG_EXPOSURE has no hardware ceiling and that the multi-exposure long bin should be raised toward film-dependent ~56–64k targets (not a 42k limit).