Repository navigation
Releases
PGenerator+ 2.13.43
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
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
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
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
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
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
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
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.
pgsethdrsends 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
PiTPGhardware 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.binin 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
.001with 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
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
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