HyperHDR v17(beta) preview

I have great expectations for the next version of HyperHDR as it brings us closer to my final goal. The number of new features/changes/improvements/bug-fixing: 6 times compared to previous v16, illustrates the amount of work involved in this release.

You can find test release with a full list of changes here (UPDATE 5/9/2021: beta 2 is available):
https://github.com/awawa-dev/HyperHDR/releases/tag/v17.0.0.0beta2

A stable version will be available at a later date, after the testing phase.


The stable version is already available (15/9/2021):
https://github.com/awawa-dev/HyperHDR/releases/tag/v17.0.0.0
Thanks all testers for help!

Key highlights

  1. Bootstrap 5 (interface)

    Upgrade from ancient Bootstrap 3 to Bootstrap 5. It's the backbone of the application interface. What does it mean? Modern components, better controls, better usability in smartphone browsers, cleaner code that allows to remove most of old hack(on hack) ^ n-th power workarounds that allowed the old code to function. What were the consequences for HyperHDR? Almost the entire HTML interface had to be migrated to the new standards.

  2. New layout & controls (interface)

    Upgrading Bootstrap was only a beginning. In next phase some of key UI components were also updated or replaced with better & modern alternatives. Since Bootstrap 5 was released recently some of them did not supported it. So had to create Bootstrap 5 themes
    myself, which was quite a challenge. And that's the result of HyperHDR new layout:

    black1black2black3
    white1white2white3

    As you can see in the screenshots:

    • The main menu has changed, now it has all the controls inside. You no longer need to search for specific controls on the left or top. Most of the icons and data structures remained the same, so migration should be easy. But underneath everything has changed.



    • Another small but very important feature is the instance label on the forms that managed them. A very common mistake was to override settings of the wrong instance with new ones, or it was not clear whether the settings are global or per instance.

    • Editor panels now have dynamic help panels: when you click the "help" button, the corresponding panel appears on the right. Provides a much cleaner look as you usually don't have to open them all at once.


    • The old version of the steppers (+/- buttons use to increase/decrease number values in the forms) were so small that they were almost useless. It's fixed now.



    • New vanilla JS color picker


    • New themes for light/dark mode, hope you'll like it
    • Where possible, smartphone usability was a priority. For example: you don't need to search or try to resize the live video preview window now (which was sometimes impossible) on your smartphone. Bootstrap 5 and our custom themes provides forms support to render them in the best possible way.

  3. Software screen grabbers

    Those who have known the project longer may say that hell has frozen over ;) But not quite...
    For our video/movie playback experience using the hardware grabbers is still the best possible solution. If you go with software capturing then you may cause some glitches with the system, video acceleration or you can bounce off the DRM. But for everyday work with a PC, with a monitor with a LED strip installed that can be an alternative. Or for gaming (Windows). Also check out new LED grouping feature than can make that experience even more enjoyable.

    So there are 3 software screen grabbers for now:
    • Windows: DirectX11 (my favorite among these 3) with optional HDR tone mapping

      screen-dx

    • Linux: X11 as independent component to avoid problems with headless systems

      screen-x11

    • macOS: CoreGraphic make sure that you follow the installation manual on the screenshot

      screen-macos

  4. Automatic signal detection / power saving option

    Are you tired of being a sniper operating your "military" grade ambient system
    (some even offer a helpful crosshair on the interface) to target a certain area at the grabber's "no-signal" board? Then you may like new automatic signal detection: just give HyperHDR a chance to learn your grabber's 'no signal' board and it will take care of it. Works especially well with 'rainbow' no signal boards characteristic for popular MS2109 clones. There is also new CPU power saving option available for reducing frame processing when the 'no signal' is triggered.

    automatic1automatic2automatic3automatic4automatic5automatic6

  5. Re-implemented import / export feature

    The backup feature, after all, works as it should from the start.
    You will no longer be surprised that after loading your old backup, you have just restored one of the many previously configured instances. Now all the instances will be restored. The obvious consequence is the new backup format incompatible with previous versions.

    backup

  6. Support for my new HyperSPI project

    It offers you an alternative and very fast way to connect you Raspberry Pi to the ESP device. Why it might be necessary when you use your grabber and Adalight driver on the same USB2.0 bus, you can find out here : https://github.com/awawa-dev/HyperSPI

    You don't need to have a 2Mb capable chip on your ESP board which is necessary for HyperSerialESP8266 or HyperSerialWLED: for SPI connection you can go easily over 25Mb.

    config

  7. AARCH release for Raspberry Pi 3&4

    Great news! Performance of the new release HyperHDR for 64 bits OS (AARCH64)  increased up to 30% compared to the standard 32 bits Raspberry Pi 3 & 4 armv7l

    1280x720:
    32bit OS:rpi3-32bit-1280-720-17ms  64bit OS:rpi3-64bit-1280-720-12ms

    1920x1080:
    32bit OS:rpi3-32bit-1920-1080-38ms  64bit OS:rpi3-64bit-1920-1080-26ms

  8. JSON API documentation in a form of live playground

    Now you can remotely control the behavior of HyperHDR without any programming knowledge. Just click on the desired functionality and the wizard will generate a link to the command for you. It couldn't be easier.

    There is also new command for video cropping available in the API.

    api

  9. LED grouping aka PC mode aka gradient mode

    Sometimes dynamic high density LED strip is not a good solution especially when used for providing ambient solution for your PC monitor. New feature can help with eye fatigue when used with the monitor, each LED in the group has same average color. You can even improve the effect with the anti-flickering filter (Processing tab > Smoothing) with threshold set to 255.

    gradient

  10. Add timeout option for the anti-flickering filter

    In certain situations it's good to allow discreet color change after some timeout even it the step is below the minimum. Why? For example: because there is a difference between slightly 'reddish' RGB(2,1,1) and 'black' RGB(1,1,1) at the ending credits on the 'black' background.

    timeout

  11. CEC support

    HyperHDR v17 includes support for CEC commands for Raspberry Pi thanks to libCEC library. The main problem was the outdated libCEC versions available in the popular distroes (they were also almost unusable on new AARCH64 platform). So decided to provide for HyperHDR version based on the latest release. You can control which instance's video or system grabber will turn on/off together with your TV. You must provide path for CEC commands from the TV to the Raspberry (simple HDMI connection): unfortunately most of grabbers with a loop don't provide CEC pass-through. You can also turn on/off HDR mapping with your TV remote although it may depend on libCEC support for your TV.

     
    buttons

  12. New panel for video resolution & refresh mode selection

    Since choosing the correct video mode for your grabber with the drop-down controls alone is not a trivial task, we provide a new form that makes it much easier. For example: depending on the grabber certain refresh modes are available only for compressed format like MJPEG. When you try to enable it  for uncompressed YUV you may fallback to the different, not selected before combination.

    With new form you can select only valid combination and you can see them all on the list.

    button
     
    panel

Comments

Bloobik said…
There is a new firmware to ezcap 320 and ezcap 321 (both versions 1.4.3), but ezcap 320 stop working on RPi hyperhdr 17. 320 stop giving pictures on tv and ambilight doesn't work too. When I connect 320 to usb port on my laptop, I have a picture on tv. On Old firmware 1.3.8 everything works fine until I change source on my hdmi hub, then I have a picture on tv, but ambilight stop working. So I use a hdmi splitter (PureTools PT-SP-HD12D) and then everything works.
awawa said…
Yes, there are problems with latest Ezcap 320 firmware https://github.com/awawa-dev/HyperHDR/discussions/107#discussioncomment-1241873, wonder why they didn't pull it back from the page. You can write to Ezcap support and they will send you previous version (if they won't I have 1.3.8.2 to downgrade from them to offer).

awawa said…
You can try to enable 'auto-resume' option for that "changing source on your hdmi" problem as a workaround and report if it helps. It helped other USB grabber that "likes" to disconnect even if the resolution has changed.
Bloobik said…
Thank you, but I have old firmware too. I don't know why my ambilight stop working when I don't use a splitter, and olnly use hdmi in, and out of ezcap 320. I was tried both usb 2.0 and 3.0.
awawa said…
Maybe the grabber disconnects from the system or reports error when it losses HDMI connection: if it doesn't last long then auto-resume should help. But you must verify HyperHDR log's taken while you switch the source on your hub to confirm that's the problem.
Bloobik said…
Ok, thanks i will check this.
Vince said…
Hey, I was wondering which module I should buy for WLED. What is bad about the nodemcu CP2102? Would you recommend a different one?

Also: whats the easiest way to level shift the signal? Do I need to level shift for my use case? I plan on only connecting the data pin to the ESP.

My plan is to just have the WLED module hanging behind the tv. I want to power it from the TV's usb port if thats possible without sacrifizing anything? I mean the USB port should provide enough power for the ESP, correct?

I then want to have 2 long cables (ground and power) going to my lowboard under the tv. That way I would only have the small ESP behind the tv. How can I level shift with this set up?

Also which grabber is the absolute best you recommend right now? I will get a good feintech hdmi matrix which has 2 outputs. 1 in 4k for the tv and 1 in fhd for the grabber. Will use it with an amazon fire tv stick mainly. I consider getting the rullz one. The 2.0 is the good one, right? Or should I get the 3.0?
Any ezcap is no upgrade for my use case right? And also more expensive..

I want good hdr colors - I will use hyperhdr of course.

I know - many questions :D
I hope you can help me!

Thanks for the great work!
awawa said…
1) I currently use SN74AHCT125N as the voltage level shifter because I need to switch between different types of LED strip. Have no problem at all so I can recommend it.
2) CP2102 is limited only to 1Mb USB serial port speed so it is not compatible with HyperSerialEsp8266/HyperSerialESP32 if you experience problems with the Wifi signal stability and want to switch for the cable solution.
3) ESP module with enabled Wifi can draw up to 800ma from the USB port. USB2.0 standard limit is 500ma so it depends on your TV USB port implementation.
4) Voltage level shifting is for data line, not ground and power. But watch out for the voltage drop if there are really long, use thick cables. +5V for a level shifter should be taken from that power cable just before the LED strip (not for example from +5V ESP module because they could be different due to the voltage drop).
5) For all in one solution: Ezcap 320, for HDMI splitter + grabber: Ezcap 321 (really fast and true USB3.0) or budget solution MS2109 (there are different implementation...if it's true USB3.0 and still can offer YUV then it could be a better choice, anyway it's a lottery. USB2.0 version from proven seller/brand is also good choice).
Bloobik said…
For Ezcap 321 you need a grabber that can disable hdcp protection.
awawa said…
You are right. Ezcap 320 also doesn't allow HDCP signal so it needs to be removed by the splitter.
Vince said…
Okay. So I would need to buy a splitter that supports hdcp 2.2, arc, cec etc. and connect this with the ezcap 321? I'd need another splitter anyways as I want to have a fire tv 4k and my ps4/pc connected. I don't want to switch manual all the time..

Has the ezcap 321 the "best" colors compared to ms2109 and the older ezcap models or are the colors the same and its just the lack of delay with that device thats good?

Also I thought you had many problems with the ezcap 320 - but the 321 will work fine with hyperhdr?
Bloobik said…
I have a Ezcoo Ez-sp12has splitter with downscaling on out2 and Ezcap 321 on 1.4.8 firmware. I use 1080p/120/NV12 to video grabber on default LUT Tab, and everything works fine. On PureTools splitter ezcap 321 doesn't get video Signal. I think PureTools didn't downscaling 4k to 1080p on out1 or 2. In manual they say it does but, i think it's not becouse i have only no video message on hyperhdr. Ezcoo turn off hdcp protection too. I Just cheking nVidia shield tv and netflix, and don't get hdcp protection message.
awawa said…
I think you need a HDMI switch not a second HDMI splitter: (multiple devices on input, one output: fire tv, ps4, pc) -> HDMI switch -> HDMI splitter connected to the TV and the video grabber.

Ezcap 321 has a bit superior image quality compared to ms2109...I don't know if it's related that my ms2109 is using non-standard full range YUV and we need to crop some values outside valid range. But still ms2109 image quality is great, much better even than last year hit Ezcap 269. The main difference between ms2109 and ezcap 321/320 is latency but most users probably won't notice a difference when they are using optimized software ;-) You can start with $10 ms2109 and then decide if it fits you.

I'm using ezcap 320 and after epic problems let's say it's working fine (problem with Dolby bitstream pass-through but DTS works) ...if you don't try to update to the latest firmware. From the beginning I don't have any problem with ezcap 321. On paper ezcap 322 looks very similar to ezcap 321/320: just without a loop.
awawa said…
Maybe with a matrix you can replace both switch and splitter. Something like FeinTech VMS04201 but didn't test it.
Vince said…
I've used the feintech matrix in my last build and it worked great. Looking for a cheaper alternative atm tho.

I just bought the 3.0 RULLZ capture card - lets see if its really 3.0 - you know a way to test it? Should be here in about 7 days.

As for the matrix I thought about buying this: US $34.34 23% Rabatt | Kebidu 4x2 Matrix Switch Splitter mit SPDIF und L/R 3,5mm HDR HDMI-kompatibel Schalter 4x2 Unterstützung HDCP 2,2 ARC 3D 4K @ 60Hz
https://a.aliexpress.com/_uAwHSo

Do you think that it should work? Seems to fit all my needs (same specs like the feintech for the most part)

I will use the same level shifter you have.
I just checked out my tv USB port. It says 1A - so I will power the ESP and level shifter from the usb port.
Is CH340 the best choice?

From my understanding I connect the power of the tv to the ESP and the level shifter. Then from the ESP I connect the level shifter and from it I connect the led stripe? Is that correct? Thanks for your help guys! I want to make this build as professional as it gets.

Can you recommend me a power supply? I have 60led/m for a 55inch tv, so I think about getting 5v 20a. I would prefer a closed PSU and not a semi open/ dangerous one. I thought about connecting it with the led stripe with WAGO connectors. I did it in my last build and it worked good and was safe...
Bloobik said…
This matrix from aliexpress can't downscaling sources on one of two outputs. So with ezcap 321 you will have a problem. I just bought feintech matrix VMS04201, i will have this on thuesday. Feintech can passthrough dolby vision, and have a scaler. I was buy it for about 68-69 $ but they send stuff only in Poland.
awawa said…
@Vince Aliexpress matrices are almost always a lottery just like their power suppliers...don't like them and don't buy them anymore: bad experience. On the other hand FeinTech VSP01201 is not supposed to have a scaler but it can downscale 4k to 1080p.

If you can find closed power supply with a detail specification like for MEAN WELL LRS-100-5 then let me know ;) I haven't found something like that and have bad experience about that type of power suppliers especially for higher wattage.

For esp choose CH340G (most common for ESP8266), CH9201x or CP2104 (these 2 are most common for ESP32) although there are counterfeits. ESP32 is superior compare to ESP8266: for us most important is flexible pin mapping. But both will work well.

SN74AHCT125N is recommended voltage level shifter, it even simpler than "poor man's one" from my earlier build-log on the blogger ;) https://community.home-assistant.io/t/solved-how-do-i-drive-a-relay-that-uses-5v-from-a-d1-mini/316775
+5v you must take from the same supply line as your LED strip, not from ESP or TV. LED strip and the ESP/voltage level shifter must have common ground that's why I don't like to power supply such devices directly from the TV (beside of risk of USB power overload): ESP is not a mice or keyboard.

Bloobik You bought it on Allegro? ;-) Let me know if everything is OK and can you recommend the seller: I also need one :-)
awawa said…
@Vince: I just bought the 3.0 RULLZ capture card - lets see if its really 3.0 - you know a way to test it? Should be here in about 7 days.

When you receive it, send me 'lsusb' output and let me know about supported video modes and codecs 'v4l2-ctl --list-formats-ext'.
Bloobik said…
Yes, from Allegro :-) but this seller have only one matrix. You can buy even cheeper but other seller ( i think there is a one seller but different names) selling stuff with the same Photo on every auction, so I bought from seller who have a more legit Photo.
Bloobik said…
HyperHDR Lighting System
I have this FeinTech Matrix VMS04201 and Dolby Vision, Dolby Atmos, DTS:x everything works, but changing source is really slow: 8 sec when changing from tv to Xbox Series x, from Xbox to tv 5 sec. When changing hyperhdr from tv to Xbox it's 11 sec. On my combination (switch Ligawo and splitter ezcoo) I've got maybe 2 sec and my instalation is: Ligawo - - > in JBL 9.1 out - - > ezcoo splitter - - > tv and ezcap 321. (my tv have only ARC not EARC) So feintech is slower than combination switch + splitter.
saml said…
Hello.

I recently upgraded to the v17 64 bit release. I have it up and running on my raspberry pi 3 and it gets the USB video signal input just fine, but for some reason it can't find the adalight LED output anymore. No matter what I try I always get this response "[leddevice] device disabled, device 'adalight' signals error: 'timeout writing data to..." on any output path I choose. Do you have any idea what to do to fix this?

I'm using HyperWLED on an ESP8266 module, but it just won't detect it for some reason.
awawa said…
Hi
And what USB COM paths do you have in the adalight available output lists: https://postimg.cc/1fq3hypw ?
saml said…
I have similar paths as in the picture:

(/dev/ttyAMA0)
FT232R USB UART (/dev/ttyUSB0)

The first path gives the error as you hinted in the picture it would.
The second one used to be giving me the same error, but now it's logging this message:
"[WEBSOCKET] (JsonAPI.cpp:1300) log streaming activated for client ::ffff:192.168.1.29"

Is it now trying to send it over Wi-Fi instead of the the USB port?
awawa said…
First path is Raspberry Pi internal bluetooth device (ttyAMA0) and it was probably the source of that error. Your adalight device is detected correctly under /dev/ttyUSB0, so select it manually from the list and save it (the Adalight output 'auto' setting is not bullet-proof and may choose wrong device). If you have 2Mb capable serial chip on the ESP board, you are using 2Mb HyperSerialWLED firmware and it worked before then it must work now. Unless there are other mis-configurations in your current HyperHDR setup. The log line that you pasted is not an error and has nothing to do with the LED driver: it's just a trace of your activity while using HyperHDR www admin panel.