Releases: awawa-dev/HyperHDR
HyperHDR 20.0.0.0
The HyperHDR v20 release was created with the participation of many users (thanks to everyone, especially to @AstaRom) and brings many important new features and fixes. More than several dozen thousand lines of code were changed, including almost the entire application base was rewritten using newer technologies, which then required several months of testing to make sure that it would not negatively affect stability. Thanks to the rebuilt LED rendering model, even more precise refreshing is achieved and the use of Smart Pointers gives us greater control over memory management. Software grabbers have been significantly improved, including hardware acceleration for Pipewire (Linux) and in particular a huge leap in performance and capabilities has occurred in the case of the DirectX grabber for Windows (native system HDR support without LUT and Pixel & Vertex Shader acceleration). At that time, a new HyperSerialPico project was also created, thanks to rp2040 PIO IO co-processor we received a driver offering even more precise timings for LED rendering than ESP32/Esp8266 and it allows the use of ready-made boards with a built-in level shifter: which significantly simplifies the construction of new HyperHDR setups regardless of the platform on which you host it.
Below is the full list of changes. Have fun!
New features:
- Windows/DirectX: use hardware acceleration (pixel & vertex shaders) for software capturing. Fixes issue #688 → #691
- Windows/DirectX: autodetect HDR mode.Fixes issue #690 → #691
- Pipewire DMA & EGL hardware support (Wayland/x11 grabber) #556
- Add video buffer memory caching to Pipewire grabber #691
- Automatic database backup before applying structure changes when installing new version, json backups are saved in standard HyperHDR configuration home directory #691
- Linux: audio stream auto-resume on EPIPE error #691
- Ability to change MQTT Topic. Fixes issue #619 → #691
- MQTT: auto-resume. Fixes issue #570 → #691
- MQTT ability to execute multiply commands in one request. Fixes issue #642 → #691
- Each MQTT subcommand will return full response in the overall result at HyperHDR/JsonAPI/response #691
- Colorized logs #640
- New device discovery service #605
- Add new effect: Rainbow Waves #607
- MQTT: hostname address resolver. Thanks @lougovsk #586
- New JsonAPI method to calculate average color of selected instance #611
- Add automatic LUT downloader & installer #568
- Allow LUT calibration when no USB grabber is present #518
- New JSON API method to update smoothing parameters #352
LED devices:
- Smoothing clock is integrated directly within led driver: no more two separated & unsynchronized clocks for smoothing and led driver, also much more precise refresh times. Discussed here → #691
- Add support for Raspberry Pi Pico (Rp2040) HyperSerialPico #560
- HyperHDR driver for WLED has been switched to WLED Audio-Reactive-Led-Strip (WARLS) protocol removing old 490 LEDs limit https://github.com/Aircoookie/WLED/wiki/UDP-Realtime-Control → #691
- Yeelight: Wizard now supports more models, workaround for music-mode reset, auto-resume support #750 Thanks @ratawhisk
- Force HyperSerial detection #732 Thanks @alex-013
- New features: disable LEDs/components on startup #737
- Support for Pico (rp2040) boards using HyperSPI #691
- Fix over 500LEDs limit for HyperSPI when RPi5 is used #691
- Add support for HD108 led strip, 16/48bits colors #527
- Live update WLED/udpraw LEDs number #564
- ArtNet LED Controller: add toggle to prevent pixel color data split across two artnet universes. Fixes issue #657 → #691
- Workaround for critical Rpi udev bug affecting serial ports #583
Core:
- Refactoring. Migration to C++ Smart Pointers. Move almost all main objects management under control of modern C++ smart pointers, fully control complicated life-cycle and ownership of HyperHDR components #691
- New interface: removed ancient Font Awesome 4 (so 2017...) Migrate to SVG: Bootstrap Icons and Google Material Icons/Symbols #605
- New features: stop processing when user has locked the system #737
- Remove folders nesting #363
- Improved headers including for faster compilation #691
- Pause the USB grabber when all LEDs are off to reduce load #608
- Use optional system libs for compiling #541
- Do not use TurboJPEG for RGB during calibration #508
- Make bonjour use logging utilities. Thanks @nurikk #529
- glibc requirements for DEB installer #402
Platform support:
- SD images are available again and are based on Debian Bullseye, so they will not fit RPi 5: use the official Raspberry Pi installer for this board. It is explained here: link1
- Add native build for Apple M1 / M2 / M3 (arm64) architecture #755
- Add Ubuntu support to HyperHDR and Github Pages APT repository #522
- Update build scripts and include Ubuntu 24.04 LTS
- Upgrade Fedora 38 to 39, Ubuntu 23.04 to 23.10 #667
- Add Arch Linux support #520
Updates:
- Update language file's. Thanks @AstaRom #505
- Upgrade Bootstrap to 5.2.3 / improved 'video live preview' on smartphones #336
- Update Github actions/checkout@v3 #403
- Update Github actions/download@v3 #372
- Update mbedtls to 3.4.0 #589
- Update flatbuffers to v23.5.26 #596
- Update language file's. Thanks @AstaRom #617
- switch libCEC to mainstream since version 6.x is widely available now #691
Bug fixing:
- Windows/DirectX: fix overexposed HDR stream with pixel shader. Fixes issue #689 → #691
- Fix: Fedora uses xz as the package name, not xz-utils #771 Thanks @hsmalley
- Fix LUT loading bug to reduce memory usage by 96MB #766
- Fix typo in LED strip name #670 Thanks @fluchfux
- Fix background music effect #761
- Fix typo #762 Thanks @laurens94
- Fix macOS build #638 #671 #672...
HyperHDR 20.0.0.0beta2
Full list of changes below, with details in the attached links. Update is also available in HyperHDR Debian/Ubuntu APT repository: link.
HyperHDR: v20beta2:
- SD images are available again and are based on Debian Bullseye, so they will not fit RPi 5: use the official Raspberry Pi installer for this board. It is explained here: link1
- Fix: Fedora uses xz as the package name, not xz-utils #771 Thanks @hsmalley
- Fix LUT loading bug to reduce memory usage by 96MB #766
- Fix background music effect #761
- Fix typo #762 Thanks @laurens94
- Yeelight: Wizard now supports more models, workaround for music-mode reset, auto-resume support #750 Thanks @ratawhisk
- Fix verbose command line option #723
- Add native build for Apple M1 / M2 (arm64) architecture #755
- New features: disable LEDs/components on startup #737
- New features: stop processing when user has locked the system #737
- Force HyperSerial detection #732 Thanks @alex-013
- Fix Linux DBus sleep/wakeup handler
- Fix pipewire grabber for non-contiguous DMA memory & EGL #711 Thanks @Mic92
- Update build scripts and include Ubuntu 24.04 LTS
- Fixes for v20beta1 #705
HyperHDR: v20beta1:
- Refactoring. Migration to C++ Smart Pointers. Move almost all main objects management under control of modern C++ smart pointers, fully control complicated life-cycle and ownership of HyperHDR components #691
- Windows/DirectX: use hardware acceleration (pixel & vertex shaders) for software capturing. Fixes issue #688 → #691
- Windows/DirectX: fix overexposed HDR stream with pixel shader. Fixes issue #689 → #691
- Windows/DirectX: autodetect HDR mode.Fixes issue #690 → #691
- Automatic database backup before applying structure changes when installing new version, json backups are saved in standard HyperHDR configuration home directory #691
- Smoothing clock is integrated directly within led driver: no more two separated & unsynchronized clocks for smoothing and led driver, also much more precise refresh times. Discussed here → #691
- HyperHDR driver for WLED has been switched to WLED Audio-Reactive-Led-Strip (WARLS) protocol removing old 490 LEDs limit https://github.com/Aircoookie/WLED/wiki/UDP-Realtime-Control → #691
- switch libCEC to mainstream since version 6.x is widely available now #691
- Linux: audio stream auto-resume on EPIPE error #691
- Improved headers including for faster compilation #691
- JSON API security vulnerability fixed #691
- Add video buffer memory caching to Pipewire grabber #691
- Fixed the LUT calibration page by removing potential scrollbars that could interfere with the final result #691
- Support for Pico (rp2040) boards using HyperSPI #691
- Fix over 500LEDs limit for HyperSPI when RPi5 is used #691
- Improved installers script #691
- Address CodeQL findings #691
- Fix logging tab that can be empty when opened and add button to copy logs #691
- ArtNet LED Controller: add toggle to prevent pixel color data split across two artnet universes. Fixes issue #657 → #691
- Ability to change MQTT Topic. Fixes issue #619 → #691
- MQTT: auto-resume. Fixes issue #570 → #691
- MQTT ability to execute multiply commands in one request. Fixes issue #642 → #691
- Each MQTT subcommand will return full response in the overall result at HyperHDR/JsonAPI/response #691
- Fix typo in LED strip name #670 Thanks @fluchfux
- Pipewire DMA & EGL hardware support (Wayland/x11 grabber) #556
- Upgrade Fedora 38 to 39, Ubuntu 23.04 to 23.10 #667
- Colorized logs #640
- Fix macOS build #638 #671 #672
- Update language file's. Thanks @AstaRom #617
- Make bonjour use logging utilities. Thanks @nurikk #529
- New interface: removed ancient Font Awesome 4 (so 2017...) Migrate to SVG: Bootstrap Icons and Google Material Icons/Symbols #605
- New device discovery service #605
- Stability improvements & bug fixing #605
- Fix QT5.15 issue when building on Windows #605
- Add new effect: Rainbow Waves #607
- MQTT: hostname address resolver. Thanks @lougovsk #586
- V4L: allow setting of V4L device input, fixes #537. Thanks @Thinner77 #540
- Update flatbuffers to v23.5.26 #596
- Pause the USB grabber when all LEDs are off to reduce load #608
- Add support for HD108 led strip, 16/48bits colors #527
- Use optional system libs for compiling #541
- Update mbedtls to 3.4.0 #589
- Add Ubuntu support to HyperHDR and Github Pages APT repository #522
- New JsonAPI method to calculate average color of selected instance #611
- Workaround for critical Rpi udev bug affecting serial ports #583
- Add Arch Linux support #520
- Fix chrome/edge fullscreen detection #519
- Add automatic LUT downloader & installer #568
- Allow LUT calibration when no USB grabber is present #518
- Live update WLED/udpraw LEDs number #564
- Add support for Raspberry Pi Pico (Rp2040) HyperSerialPico #560
- Do not use TurboJPEG for RGB during calibration #508
- Update Github actions/checkout@v3 #403
- glibc requirements for DEB installer #402
- Remove folders nesting #363
- New JSON API method to update smoothing parameters #352
- Update Github actions/download@v3 #372
- Remove depraciated ::set-output from Github Acti...
HyperHDR 20.0.0.0beta1
First test release of the upcoming next version of HyperHDR: v20beta1.
Update is also available in HyperHDR Debian/Ubuntu APT repository: link. Prebuild HyperHDR Raspberry Pi OS SD images status: link1 link2
Full list of changes below, with details in the attached links:
- Refactoring. Migration to C++ Smart Pointers. Move almost all main objects management under control of modern C++ smart pointers, fully control complicated life-cycle and ownership of HyperHDR components #691
- Windows/DirectX: use hardware acceleration (pixel & vertex shaders) for software capturing. Fixes issue #688 → #691
- Windows/DirectX: fix overexposed HDR stream with pixel shader. Fixes issue #689 → #691
- Windows/DirectX: autodetect HDR mode.Fixes issue #690 → #691
- Automatic database backup before applying structure changes when installing new version, json backups are saved in standard HyperHDR configuration home directory #691
- Smoothing clock is integrated directly within led driver: no more two separated & unsynchronized clocks for smoothing and led driver, also much more precise refresh times. Discussed here → #691
- HyperHDR driver for WLED has been switched to WLED Audio-Reactive-Led-Strip (WARLS) protocol removing old 490 LEDs limit https://github.com/Aircoookie/WLED/wiki/UDP-Realtime-Control → #691
- switch libCEC to mainstream since version 6.x is widely available now #691
- Linux: audio stream auto-resume on EPIPE error #691
- Improved headers including for faster compilation #691
- JSON API security vulnerability fixed #691
- Add video buffer memory caching to Pipewire grabber #691
- Fixed the LUT calibration page by removing potential scrollbars that could interfere with the final result #691
- Support for Pico (rp2040) boards using HyperSPI #691
- Fix over 500LEDs limit for HyperSPI when RPi5 is used #691
- Improved installers script #691
- Address CodeQL findings #691
- Fix logging tab that can be empty when opened and add button to copy logs #691
- ArtNet LED Controller: add toggle to prevent pixel color data split across two artnet universes. Fixes issue #657 → #691
- Ability to change MQTT Topic. Fixes issue #619 → #691
- MQTT: auto-resume. Fixes issue #570 → #691
- MQTT ability to execute multiply commands in one request. Fixes issue #642 → #691
- Each MQTT subcommand will return full response in the overall result at HyperHDR/JsonAPI/response #691
- Fix typo in LED strip name #670 Thanks @fluchfux
- Pipewire DMA & EGL hardware support (Wayland/x11 grabber) #556
- Upgrade Fedora 38 to 39, Ubuntu 23.04 to 23.10 #667
- Colorized logs #640
- Fix macOS build #638 #671 #672
- Update language file's. Thanks @AstaRom #617
- Make bonjour use logging utilities. Thanks @nurikk #529
- New interface: removed ancient Font Awesome 4 (so 2017...) Migrate to SVG: Bootstrap Icons and Google Material Icons/Symbols #605
- New device discovery service #605
- Stability improvements & bug fixing #605
- Fix QT5.15 issue when building on Windows #605
- Add new effect: Rainbow Waves #607
- MQTT: hostname address resolver. Thanks @lougovsk #586
- V4L: allow setting of V4L device input, fixes #537. Thanks @Thinner77 #540
- Update flatbuffers to v23.5.26 #596
- Pause the USB grabber when all LEDs are off to reduce load #608
- Add support for HD108 led strip, 16/48bits colors #527
- Use optional system libs for compiling #541
- Update mbedtls to 3.4.0 #589
- Add Ubuntu support to HyperHDR and Github Pages APT repository #522
- New JsonAPI method to calculate average color of selected instance #611
- Workaround for critical Rpi udev bug affecting serial ports #583
- Add Arch Linux support #520
- Fix chrome/edge fullscreen detection #519
- Add automatic LUT downloader & installer #568
- Allow LUT calibration when no USB grabber is present #518
- Live update WLED/udpraw LEDs number #564
- Add support for Raspberry Pi Pico (Rp2040) HyperSerialPico #560
- Do not use TurboJPEG for RGB during calibration #508
- Update Github actions/checkout@v3 #403
- glibc requirements for DEB installer #402
- Remove folders nesting #363
- New JSON API method to update smoothing parameters #352
- Update Github actions/download@v3 #372
- Remove depraciated ::set-output from Github Action #390
- Upgrade Bootstrap to 5.2.3 / improved 'video live preview' on smartphones #336
- Update language file's. Thanks @AstaRom #505
HyperHDR 19.0.0.0
I've published new updated build-log on my blog which includes needed components and how to build and configure the entire system. It can be useful even if you already have your system built, as it also includes optimization tips and the possibility to upgrade your setup to a multi-segment configuration.
https://www.hyperhdr.eu/2023/02/ultimate-guide-on-how-to-build-led.html
New features:
- Added support for entertainment api v2 (hue gradient strips) ( #471) Many thanks to @gibahjoe great job! Tutorial is here: link
- HyperHDR got new packages repository (Github Pages). More details: https://awawa-dev.github.io/ Also RPM and Arch Linux installers are available there.
- The SD images that come with this release are already linked to the HyperHDR repository, so a future update should be much simpler.
- Add support for ESP32-S2 mini board. It requires latest HyperSerialESP32 v9 . This firmware brings also support for parallel multi-segments, that allows to double the refresh rate of large sk6812/ws2812b setups for free (a proper LED strip design is required)
- ESP8266/ESP32 handshake for the AWA Adalight ( #432)
- Save/restore WLED state and set max brightness at startup ( #353)
- Adalight: auto-resume and ESP8266/ESP32 auto-discovery ( #494)
- Add support for utv007 / Linux ( #423)
- LED strip designer context menu incl. blink selected LED, zoom, edit, move, disable, delete single LED (more: #379)
- Modifiable SPI path with device auto-detection (more: #346)
- Flatbuffers: multiple custom LUT files support (more: #334)
Fix:
- Automatic signal detection timing (#410)
- Fix the black color for disabled LEDs (#419)
- Fix: critical unicolor averaging bug causing very dark colors (more: #379)
- Fix: web LED live simulator doesn't update (more: #337)
- Fix: Improved HyperHDR web server startup (more: #351)
- Fix: Restore support for ZasLuke Capture card (more: #335)
- Fix: Philips Hue: do not treat stream errors as critical when retrying
- Align SPI buffer for HyperSPI to 4 bytes
- Fix: Use longer reset pulse (#468) Thanks @nurikk
Improvements:
- Improved LED device performance (dropping frames that have exceeded the hardware capabilities of the LED device, UDP/SPI devices are not affected as the process is handled by the OS)
- Update de.json (#411) Thanks @Duese123
- Update nl.json (#491) Thanks @NicoLouis-be
- Update Github actions/upload@v3 (#373)
- Unified internal clocks (more: #355)
- Colored cmake output (more: #364)
- Support for precompiled headers (more: #359)
- Improved REST API network driver (WLED, Philips Hue etc) (more: #354)
- Github Action: upgrade runner to macos-12 (more: #341)
- Update actions/cache@v3 (more: #371)
HyperHDR 19.0.0.0beta2
I think that the number of changes and fixes introduced recently fully justifies the release of one more test version before the stable one.
New features:
- HyperHDR got new packages repository (Github Pages). More details: https://awawa-dev.github.io/ Also RPM packages are available there and Arch Linux installers are planned.
- The SD images that come with this release are already linked to the HyperHDR repository, so a future update should be much simpler.
- Add support for ESP32-S2 mini board. It requires latest HyperSerialESP32 v8 firmware https://github.com/awawa-dev/HyperSerialESP32/releases/tag/v8.0.0.0 . This firmware brings also support for multi-segments, that allows to double the refresh rate of large sk6812/ws2812b setups for free (well, at least a proper LED strip design is required)
- ESP8266/ESP32 handshake for the AWA Adalight (#432)
- Save/restore WLED state and set max brightness at startup (#353)
- Add support for utv007 / Linux (#423)
Fix:
Improvements:
HyperHDR 19.0.0.0beta1
Check out also latest HyperSerialEsp8266 and HyperSerialESP32 releases. Both projects were migrated to PlatformIO which greatly simplify customizations and building the firmware in case if you want e.g. to change default serial port speed or the pin-outs (support for Github Actions!). Also HyperHDR v19 new feature allows me to remove old "first LED enabled/disabled" firmware version, because now you can set it up in HyperHDR.
New features:
- LED strip designer context menu incl. zoom, edit, move, disable, delete single LED (more: #379)
- Modifiable SPI path with device auto-detection (more: #346)
- Flatbuffers: multiple custom LUT files support (more: #334)
Bug fixing:
- Fix: critical unicolor averaging bug causing very dark colors (more: #379)
- Fix: web LED live simulator doesn't update (more: #337)
- Fix: Improved HyperHDR web server startup (more: #351)
- Fix: Restore support for ZasLuke Capture card (more: #335)
- Fix: Philips Hue: do not treat stream errors as critical when retrying
Improvements:
HyperHDR 18.0.0.0
Changelog (v18 key highlights can be found on the HyperHDR blog link )
New features:
- Registering HyperHDR services with the MQTT broker
- System event support: hibernation/sleep/wake up/resume
- WLED Configuration Wizard can discover WLED devices on the network
- Added WLED auto-resume initialization and improved existing Philips Hue auto-resume feature
- Reworked network discovery service and added Windows support
- Frame Buffer software screen grabber (Linux)
- New config option to fix static flickering for DX11 grabber (#275)
- Improved Philips Hue wizard
- Protocol buffers HDR tone mapping (mainly for Android Screen Grabber #263)
- Replaced protobuf with a lightweight nanopb library
- Limit for software screen grabbers increased to 60FPS
- New software grabber for Linux: Wayland (pipewire/portal). Support for Ubuntu 22.04 LTS!
- Wayland grabber: support for pipewire/portal protocol version 4 persistent authentication
- New fully automatic LUT calibration for HDR/SDR/YUV
- New set of dedicated LUT tables for supported grabbers
- 30% improved performance for MJPEG HDR mode
- Add white channel calibration for RGBW led strips and latest HyperSerialEsp8266/HyperSerialESP32/HyperSPI (Adalight HyperSPI)
- New dynamic video cache buffers (improved performance, fixes #142)
- Performance information panel in the overview tab
- CPU performance and RAM usage (excluding Apple M1)
- CPU temperature reading (Linux only, when the sensor is present)
- Under-voltage detection (Raspberry Pi OS only)
- USB grabber performance (shows framerate and latency)
- Instance input images to LED colors performance
- LED device output performance
- New JSON API function to control USB grabber: brightness, contrast, saturation, hue
- USB grabber latency benchmark (link)
- HDR tone mapping for flatbuffers (PR #215 thanks @chbartsch)
- Dynamic LED layout resize on the container size changed
- Improved and refactored LED devices model and communication
- Flatbuffers: HDR tone mapping can use alternative filename: flat_lut_lin_tables.3d
- FlatBuffers: add support for high performance local sockets (link)
- The new build scheme allows graberless configuration and usage of external toolchains
- Add popular 'UDP raw' (WLED compatible) receiver for HyperHDR (link1 link2)
Bug Fixing:
- Fix variuos memory leaks reported by diagnostic tools
- Fix Philips Hue reconnection issues
- Synchronize interface to FlatBuffers HDR state when no USB grabbers are present in the build
- Fix for DirectX11 grabber secondary monitor capturing (fixes #223)
- Fix translations for parametrized items. Germany resources corrected (thanks @tuxuser)
- Fix for broken LED raw JSON editor (fixes #235)
- Fix looped communication in the remote tab
- Fix restart issue of X11 software screen grabber (fixes #167)
- Fix LED devices on/off race condition
- Fix saving Yeelight configuration (fixes #133)
- Fix inter-thread communication
- Fix saving changed Philips Hue configuration
- Fix LED devices state synchronization
- Fix invoking setting static color from the system menu
- Ignore Bluetooth devices during Adalight auto-discovery
- ProviderRestApi and ProviderUdpSSL are rewritten to fix variuos related issues
- ProviderUdpSSL (Philips Hue) ability to resume the connection when the communication stream is broken
- Fix for the undervoltage detection for newer Raspberry Pi OS
Improvements:
- Migration from Pi-gen to CustomPiOS (Rpi SD images)
- Utilizing and migration to C++ smart pointers
- Move the flatbuffer server to separate thread
- Upgrade MBEDTLS to version 3.1
- Upgrade FlatBuffers to version 2.0.0
- Switch to mainline libjpegturbo 2.x
- Use prebuild protobuf compiler for Windows or the system library for other targets
- Updated rpi_ws281x library
- Windows and macOS releases are using QT6.2 LTS
- Windows: migrate the solution and documentation to Visual Studio 2022
- Removed: tinkerforge and USB-HID support
- Removed: LED device latch time
Community:
- mjoshd Home Assistant HyperHDR integration plugin https://github.com/mjoshd/hyperhdr-ha
- appleimperio docker compose file for aarch64 https://github.com/appleimperio/docker-hyperhdr
- ihrapsa HA plugin to install HyperHDR https://github.com/ihrapsa/hassio-addons
v18.0.0.0beta3
Beta3
- Registering HyperHDR services with the MQTT broker
- System event support: hibernation/sleep/wake up/resume
- WLED Configuration Wizard can discover WLED devices on the network
- Added WLED auto-resume initialization and improved existing Philips Hue auto-resume feature
- Reworked network discovery service and added Windows support
- Frame Buffer software screen grabber (Linux)
- New config option to fix static flickering for DX11 grabber (#275)
- Improved Philips Hue wizard
- Protocol buffers HDR tone mapping (mainly for Android Screen Grabber #263)
- Replaced protobuf with a lightweight nanopb library
- Limit for software screen grabbers increased to 60FPS
- Fix for the undervoltage detection for newer Raspberry Pi OS
Beta2
New features:
- New software grabber for Linux: Wayland (pipewire/portal). Support for Ubuntu 22.04 LTS!
- Wayland grabber: support for pipewire/portal protocol version 4 persistent authentication
- New fully automatic LUT calibration for HDR/SDR/YUV
- New set of dedicated LUT tables for supported grabbers
- 30% improved performance for MJPEG HDR mode
- Add white channel calibration for RGBW led strips and latest HyperSerialEsp8266/HyperSerialESP32/HyperSPI (Adalight HyperSPI)
- New dynamic video cache buffers (improved performance, fixes #142)
- Performance information panel in the overview tab
- CPU performance and RAM usage (excluding Apple M1)
- CPU temperature reading (Linux only, when the sensor is present)
- Under-voltage detection (Raspberry Pi OS only)
- USB grabber performance (shows framerate and latency)
- Instance input images to LED colors performance
- LED device output performance
- New JSON API function to control USB grabber: brightness, contrast, saturation, hue
- USB grabber latency benchmark (link)
- HDR tone mapping for flatbuffers (PR #215 thanks @chbartsch)
- Dynamic LED layout resize on the container size changed
- Improved and refactored LED devices model and communication
- Flatbuffers: HDR tone mapping can use alternative filename: flat_lut_lin_tables.3d
- FlatBuffers: add support for high performance local sockets (link)
- The new build scheme allows graberless configuration and usage of external toolchains
- Add popular 'UDP raw' (WLED compatible) receiver for HyperHDR (link1 link2)
Bug Fixing:
- Fix variuos memory leaks reported by diagnostic tools
- Fix Philips Hue reconnection issues
- Synchronize interface to FlatBuffers HDR state when no USB grabbers are present in the build
- Fix for DirectX11 grabber secondary monitor capturing (fixes #223)
- Fix translations for parametrized items
- Fix for broken LED raw JSON editor (fixes #235)
- Fix looped communication in the remote tab
- Fix restart issue of X11 software screen grabber (fixes #167)
- Fix LED devices on/off race condition
- Fix saving Yeelight configuration (fixes #133)
- Fix inter-thread communication
- Fix saving changed Philips Hue configuration
- Fix LED devices state synchronization
- Fix invoking setting static color from the system menu
- Ignore Bluetooth devices during Adalight auto-discovery
- ProviderRestApi and ProviderUdpSSL are rewritten to fix variuos related issues
- ProviderUdpSSL (Philips Hue) ability to resume the connection when the communication stream is broken
Improvements:
- Migration from Pi-gen to CustomPiOS (Rpi SD images)
- Utilizing and migration to C++ smart pointers
- Move the flatbuffer server to separate thread
- Upgrade MBEDTLS to version 3.1
- Upgrade FlatBuffers to version 2.0.0
- Switch to mainline libjpegturbo 2.x
- Use prebuild protobuf compiler for Windows or the system library for other targets
- Updated rpi_ws281x library
- Windows and macOS releases are using QT6.2 LTS
- Windows: migrate the solution and documentation to Visual Studio 2022
- Removed: tinkerforge and USB-HID support
- Removed: LED device latch time
Community:
- mjoshd Home Assistant HyperHDR integration plugin https://github.com/mjoshd/hyperhdr-ha
- ihrapsa HA plugin to install HyperHDR https://github.com/ihrapsa/hassio-addons
v18.0.0.0beta2
New features:
- New software grabber for Linux: Wayland (pipewire/portal). Support for Ubuntu 22.04 LTS!
- Wayland grabber: support for pipewire/portal protocol version 4 persistent authentication
- New fully automatic LUT calibration for HDR/SDR/YUV
- New set of dedicated LUT tables for supported grabbers
- 30% improved performance for MJPEG HDR mode
- Add white channel calibration for RGBW led strips and latest HyperSerialEsp8266/HyperSerialESP32/HyperSPI (Adalight HyperSPI)
- New dynamic video cache buffers (improved performance, fixes #142)
- Performance information panel in the overview tab
- CPU performance and RAM usage (excluding Apple M1)
- CPU temperature reading (Linux only, when the sensor is present)
- Under-voltage detection (Raspberry Pi OS only)
- USB grabber performance (shows framerate and latency)
- Instance input images to LED colors performance
- LED device output performance
- New JSON API function to control USB grabber: brightness, contrast, saturation, hue
- USB grabber latency benchmark (link)
- HDR tone mapping for flatbuffers (PR #215 thanks @chbartsch)
- Dynamic LED layout resize on the container size changed
- Improved and refactored LED devices model and communication
- Flatbuffers: HDR tone mapping can use alternative filename: flat_lut_lin_tables.3d
- FlatBuffers: add support for high performance local sockets (link)
- The new build scheme allows graberless configuration and usage of external toolchains
- Add popular 'UDP raw' (WLED compatible) receiver for HyperHDR (link1 link2)
Bug Fixing:
- Fix variuos memory leaks reported by diagnostic tools
- Fix Philips Hue reconnection issues
- Synchronize interface to FlatBuffers HDR state when no USB grabbers are present in the build
- Fix for DirectX11 grabber secondary monitor capturing (fixes #223)
- Fix translations for parametrized items
- Fix for broken LED raw JSON editor (fixes #235)
- Fix looped communication in the remote tab
- Fix restart issue of X11 software screen grabber (fixes #167)
- Fix LED devices on/off race condition
- Fix saving Yeelight configuration (fixes #133)
- Fix inter-thread communication
- Fix saving changed Philips Hue configuration
- Fix LED devices state synchronization
- Fix invoking setting static color from the system menu
- Ignore Bluetooth devices during Adalight auto-discovery
- ProviderRestApi and ProviderUdpSSL are rewritten to fix variuos related issues
- ProviderUdpSSL (Philips Hue) ability to resume the connection when the communication stream is broken
Improvements:
- Migration from Pi-gen to CustomPiOS (Rpi SD images)
- Utilizing and migration to C++ smart pointers
- Move the flatbuffer server to separate thread
- Upgrade MBEDTLS to version 3.1
- Upgrade FlatBuffers to version 2.0.0
- Switch to mainline libjpegturbo 2.x
- Use prebuild protobuf compiler for Windows or the system library for other targets
- Updated rpi_ws281x library
- Windows and macOS releases are using QT6.2 LTS
- Windows: migrate the solution and documentation to Visual Studio 2022
- Removed: tinkerforge and USB-HID support
- Removed: LED device latch time
Community:
- mjoshd Home Assistant HyperHDR integration plugin https://github.com/mjoshd/hyperhdr-ha
- ihrapsa HA plugin to install HyperHDR https://github.com/ihrapsa/hassio-addons
v17.0.0.0
This is the most important HyperHDR update to date, bringing new features, fixes, and changes to: UI, video processing, JSON API, translation resources, software screen grabbers and LED drivers. SD card OS images include new AARCH64 version for Raspberry Pi 2 (rev. 1.2), 3 and 4 as tests showed performance improvements compared to the 32-bit armv7l.
Changelog (v17 key highlights can be found on the HyperHDR blog link ):
- fix for default LUT table for both SDR (yuv/nv12/i420) and HDR video stream: BT2020 color space matrix multiplication bug, truncating values to the allowed range and apply proper processing order. First & major LUT table update since v14 (important: included after v17 beta2 so testers need to upgrade HyperHDR and recalibrate automatic signal detection if used)
- upgrade ancient Bootstrap 3 to version 5 (the core of the user interface)
- replace and update most of UI components, new layout picture1, picture2, picture3, picture4, picture5, picture6
- software screen grabbers (Windows: DirectX11 / Linux:X11 / macOS:CoreGraphics) pictureWin
pictureLin pictureMac #46 - automatic signal detection with smart learning capability for USB grabbers (you can have only one algorithm enabled at the time: automatic one or the old, difficult to setup and unreliable manual one) picture1 picture2 picture3 picture4 picture5 picture6
- new feature: auto-resume option for video grabbers when capturing stops for some reason (for example: changing the resolution or refresh rate of the incoming video stream) picture1
- re-implemented backup import / export function for ALL instances settings in place of the old functionality that clumsily imitated creating of backups, which in many cases resulted in data loss picture1
- current video stream information in the 'overview' tab picture1
- support for my new HyperSPI project (https://github.com/awawa-dev/HyperSPI) with awa_spi LED driver picture1
- new video stream crop method in JSON API picture1 #64
- JSON API documentation in a form of live playground in 'Advanced' tab picture1
- new feature: execute multiple JSON commands via GET request using single link picture1
- LED grouping aka PC mode aka gradient mode, can help with eye fatigue when used with the monitor, each LED in the group has same average color picture1, you can even improve the effect with the anti-flickering filter with threshold set to 255
- add timeout for the anti-flickering filter picture1
- fix: in specific cases some devices could not react to 'no-signal' when it's triggered
- translation resources are updated
- new panel for easy video resolution & refresh mode selection picture1 picture2
- add release for AARCH64 architecture #68 PERFORMANCE INCREASED UP to 30% COMPARED to Rpi 32bits: 32bit 1280 32bit 1920 64bit 1280 64bit 1920
- fix for WLED new network protocol #90
- HDR tone mapping is available as a global component picture1 picture2 picture3
- new feature: add list of available COM ports for the adalight driver picture1
- removed redundant default JSON config in favour of JSON Schemas defaults
- fix missing Linux taskbar icon
- support for libCEC 6.0.2 to turn on/off video & system grabber picture1
- support for libCEC to turn on/off HDR tone mapping with remote buttons (CEC or libCEC is quite buggy here and dependent on the hardware, with LG C9 must restart TV to make them work) picture1
- HyperHDR is ready for QT6.2 (tested with the preview version/Vulkan/Windows)
- lower CPU usage when automatic signal detection triggers 'nosignal' ('save resources' for software framerate decimation) picture1 #93
- standardize libJPEG-turbo library (where it's necessary)
- fix values premature clipping in the LUT generator & SDR preview rendering fix, access available now from the menu ('Advanced' tab)
- suppress most of external components' warnings while building
- faster image to LED colors transformation
- import 'sparks' and 'system shutdown' effects to the new effect API #75
- upgrade: rpi_ws281x library
- better logging with instances' indexes
- fixed power saving issue in macOS version
- fixed memory leaks in SPI drivers
- Boblight changed from built-in to optional component