Skip to content

Releases

PGenerator+ 2.13.43

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 07 Nov 10:36

OTA update for Raspberry Pi 4 (pi4-biasi).

Maintenance release: nothing changes on the device except the version number.

It is the first release published with the reworked release pipeline: every check (syntax, code-value tests, signal audit, package and removed-file checks) now passes before anything is pushed, and the tests run once instead of twice.

🤖 Generated with Claude Code

PGenerator+ 2.13.42

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 07 Nov 08:28

OTA update for Raspberry Pi 4 (pi4-biasi).

Changes:

  • Target Black and Target White show every digit. A measured 0.0188 no longer reads 0.018 in the field; the fields hold eight characters in any browser font
  • Near black, one value now reads the same everywhere: the chart tooltip, live reading, read message, Min line, Black Level card and report table use the digits of the Target field. 0.0188 no longer shows as 0.019 or 0.02
  • README: Dolby Vision through Calman needs the Portrait Displays G1 source. Over UPGCI, Calman can only switch HDR on and off

Tested on a Pi 4 with the simulated meter and in Chrome, not yet with a real meter or in Firefox and Safari.

🤖 Generated with Claude Code

PGenerator+ 2.13.41

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 06 Nov 22:18

OTA update for Raspberry Pi 4 (pi4-biasi).

Changes:

  • Low Light Averaging: the 2, 3 and 5 read options took one reading on every meter except the specbos. Series, Read Once and AutoCal now take 1 to 5 real readings and average them in linear XYZ
  • Only below Y limits averaging to patches whose target Y is under the chosen value. White reads once. Continuous, ICC profiling and meters that wait for a ready prompt read once too. Saved settings carry over
  • The greyscale chart tooltip shows the number of reads and their spread. A zero that survives its re-reads ends the set and stays out of the mean; the tooltip then says, for example, 2 of 3 reads
  • A lit patch with ire 0, such as HCFR's Red 0%, keeps its zero guard in a series
  • On a phone the Meter Profile popover no longer runs off the screen

Averaging is tested with the simulated meter, not yet with a real one. An average does not protect against a single bad reading near black, so check the spread in the tooltip on dark patches.

🤖 Generated with Claude Code

PGenerator+ 2.13.40

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 06 Nov 19:31

OTA update for Raspberry Pi 4 (pi4-biasi).

Changes:

  • Reads send the daemon's codes: Read Selection, a tile click and a single read now take their patches from the daemon, the same steps a run would send (POST /api/meter/series/preview). If the daemon cannot answer, nothing is sent and the page says so
  • LG 26: SDR 8-bit Limited sends the right codes again (black 16, not 4 at the renderer). In HDR10 the series follows the range: 8-bit Limited black is 16, 10-bit Full runs 0 to 1023
  • Saturations, Colours, Auto gamut and LG 26: the page's patches now match the daemon's, and codes from an 8-bit run are no longer scaled twice after a change to 10 bit
  • Greyscale ΔE: the average and maximum leave out the patch that is actually black, not simply the first slot. A CHC import keeps its slots when the 0% reading is missing
  • Range Default on YCbCr is Limited on the WebUI path: backgrounds, named colours, APL and stabilization no longer use Full codes (the scanout read Y=0, below black). The first patch no longer writes Full into the settings, and a Full left there on a YCbCr link becomes Limited with the next pattern. RGB is unchanged

🤖 Generated with Claude Code

PGenerator+ 2.13.39

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 06 Nov 09:38

OTA update for Raspberry Pi 4 (pi4-biasi).

Changes:

  • Black reads: the 0.02 cd/m² black floor and the session's zero-black shortcut now apply only to true-black panels (OLED class). Projectors and LCDs keep their measured black, so contrast is no longer shown as Infinite and BT.1886 keeps its black
  • Greyscale ΔE: the average and maximum leave out the 0% step, as HCFR does; at black the ΔE is meter noise. The chart, report card and Auto Cal summary follow this, the 0% bar and report row stay, and colour series are unchanged
  • Patch strip: a click selects the patch under the pointer; White Ref and Black Ref no longer push the row one tile off
  • Read Selection: sends the patches you clicked, or stops with a message when they are no longer in the series, never a different code
  • PiTPG: hdmi_info reads the real mode string instead of answering "No display connected" with a display on; GRANGER pattern files are ready 30 s after hello instead of 90 s
  • Live Information: a cut or failed kernel log read is reported as not updated, never shown as current
  • WebUI polish: calmer palette, clearer selected, disabled and switch states in every theme, better phone sizes

🤖 Generated with Claude Code

PGenerator+ 2.13.38

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 05 Nov 20:17

OTA update for Raspberry Pi 4 (pi4-biasi).

Changes:

  • HCFR saturation sweep: SDR targets follow the selected target curve, so the expected Y is no longer too high with gamma 2.4 or BT.1886; the 0% steps no longer count as black
  • BT.1886 targets: with a measured black, Y and xy of every colour patch change; black now lifts each channel instead of the patch as a whole, which matters most for projectors
  • Live Information: infoframes and link follow the signal on their own, a note shows when a read failed, SPD line added; HDMI Infoframes and CEC cards back on Tablet and Phone

🤖 Generated with Claude Code

PGenerator+ 2.13.37

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 04 Nov 07:55

OTA update for Raspberry Pi 4 (pi4-biasi).

Changes:

  • Observer: no reset without a meter; a restore under another observer keeps the readings
  • Conf writes follow the file; renderer log written as it comes
  • Claude: verify_stop Stop hook
  • Pi guard: confirmations go through permission ask rules
  • Pi tooling: per-checkout busy, snapshot ownership, pgen-pi fetch; self-test: a disabled HDR slot is "not sent"

🤖 Generated with Claude Code

PGenerator+ 2.13.36

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 01 Nov 15:46

OTA update and flashable image for Raspberry Pi 4 (pi4-biasi). Devices on 2.13.x install it as an update and then reboot once (the update ships a new vc4 HDMI driver, which loads at the next boot). Devices on 2.12.x or upstream PGenerator+ flash the image.

Signal:

  • Standard Dolby Vision: the AVI infoframe names the VIC of the timing on the cable (1080p24 → 32, 1080p30 → 34, 2160p24 → 93 …) instead of a fixed 16 (1080p60), as CTA-861 requires. Checked at the cable and on an LG OLED in all 13 Standard DV modes.
  • Dolby Vision tunnel: the metadata pixels are exactly 3072 for every mode width. 4K left stray white tunnel pixels before.
  • pgsethdr sends the same HDR infoframe as the renderer and PGenerator 1.6, byte for byte (primaries order, HLG fields zero, P3 indices).
  • Calman: the first pattern of a new connection no longer restarts the renderer (a display resync) when the output already matches, also after settings the renderer took over without a restart (luminance, primaries).

ColourSpace:

  • ColourSpace's PiTPG hardware entry works with PGenerator+: PiTPG protocol 2 on port 85, with frame timing, signal settings, the PiTPG test patterns and EDID / HDMI / infoframe texts. See the README for the differences from a PiTPG.

Dolby Vision and HDR:

  • The Dolby Vision card shows the mastering display the Standard DV metadata carries (by default 0.005–4,000 cd/m², as in PGenerator 1.6).
  • HDR10: the measurement strip flags greyscale patches above the peak the display's EDID declares.

Device:

  • Test EDID: a file PGenerator-test-EDID.bin in the root of the boot partition replaces the display's EDID from the next start; Output shows a banner while it is in use.
  • USB: the Pi's USB-C network now starts as CDC-NCM (Linux, macOS, Windows 11 without a driver); older Windows still get RNDIS after 5 s.

Flashing the image

GitHub limits release files to 2 GiB, so the image is split into PGenerator_Plus_v2.13.36_pi4.img.xz.001 and .002. Download both, then:

  • Windows: open .001 with 7-Zip (it joins the parts) and extract the .img.xz, or flash it directly with balenaEtcher after joining.
  • macOS / Linux: cat PGenerator_Plus_v2.13.36_pi4.img.xz.00* > PGenerator_Plus_v2.13.36_pi4.img.xz

Check the joined file against PGenerator_Plus_v2.13.36_pi4.img.xz.sha256, then flash the .img.xz with Raspberry Pi Imager or balenaEtcher.

Coming from 2.12.x or upstream: export your settings in the WebUI first, flash, then import them.

🤖 Generated with Claude Code

PGenerator+ 2.13.35

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 28 Oct 09:42

OTA update for Raspberry Pi 4 (pi4-biasi).

Changes:

  • HDR stays BT.2020 on every path; YCbCr refuses opRGB and BT.2020 CL
  • Self-test checks infoframe fields, HLG, colours and 12-bit; mode follows timing
  • Renderer: SD modes without colorimetry encode BT.601 (CTA-861-F 5.1)

🤖 Generated with Claude Code

PGenerator+ 2.13.34

Choose a tag to compare

@BlackJoker90 BlackJoker90 released this 27 Oct 18:54

OTA update for Raspberry Pi 4 (pi4-biasi).

Changes:

  • HLG targets per ITU-R BT.2100, and review fixes: uploads, conf writes, saturation targets
  • WebUI: System icon, Software Update tiles size to their chip; screenshots retaken
  • CLAUDE.md: robustness per touched function, earlier claims, code removal, independent review
  • Renderer: round source codes finer than the output once (BT.2100 Table 9)

🤖 Generated with Claude Code