TUTORIAL NOTES:
This tutorial is intented as a companion to my ▶ YouTube Video, and its instructions apply ONLY to that specific hardware configuration! If you have not followed the video, please click above and do so -- otherwise these instructions may not work for your particular hardware setup!
No Warranties are Implied -- if you fry your Raspberry Pi, your Television or anything else, we are not responsible!
If you landed here without going through the other steps, please start here
Dismiss This Message
Configure HyperHDR
▶ NOTE: Many of the settings we are choosing are SPECIFICALLY to keep the CPU load down. This does two things:- Keeps the Raspberry Pi cool and consuming less power, and
- Keeps the latency as low as possible
If you are getting odd colors, be sure to scroll down to the Quirks section!
Set up LED Instance
Hopefully you counted how many LEDs are on each side of the TV, as well as the top. Click on LED Hardware in the left pane. Then, for Controller Type, select ws281x under RPi PWM. You may have to scroll up to find this option.SK6812 Note: Choose this option even if you are using the SK6812 LEDs. Just be sure to select Use RGBW Protocol as the data format is slightly different.
You will get a stern warning from HyperHDR. IF you are using my One-Way Level Shifter, you can of course safely ignore this warning. My Level Shifter only presents about a 10kΩ impedance to that GPIO pin.
If you are using any other wiring method, you do so at your own risk to the sensitive GPIO pins of the Pi!
For most WS2812b strips, the RGB Byte Order is GRB, so start there.
For now, leave Refresh Time as-is at 0.
For Maximum LED Count, unless you have more than 256 LEDs you can just leave 256 there.
Make sure GPIO Number is set to 18
Leave the rest of the settings alone, and scroll down and click Save Settings.
At this point, you may see the FIRST LED on your strip light up; this is normal, and shows that we're on the right track!
LED Layout
After the confirmation message disappears, scroll back up and click on LED Layout. If it's not already, expand Classic Layout (LED Frame). You should see something like this:
This is where you will enter the number of LEDs for the Top, Left and Right. Leave the Bottom, Gap Length and Gap Position all at zero.
HyperHDR assumes you start your LEDs at the upper-left corner, so you need to specify the ACTUAL start position. To do this, add up the TOP and one of the SIDEs (circled in green) to get your Input Position (circled in red), and enter that total.
▶ If you started your LED strip on the RIGHT side of the TV, click Reverse Direction above.
Now click Save Layout.
Advanced Settings
Next, expand Advanced Settings. I recommend using the numbers below as a good starting point:
Once again, click Save Layout.
If done correctly, you should see something like this:
The BLACK pixel (rectangle) should be where you STARTING LED is; either the bottom-left or the bottom-right.
Video Capture
Now on the left pane, select Video Capturing:
For Device, select your capture device -- usually it's the first option, and will say (video0). Leave Input on Automatic.
For Device Resolution, depending on your capture device, you can select various options. If possible, choose 720x480 or even 640x480 -- the aspect ratio does not matter here, and we're only looking for general color information so we do NOT need to look at an HD signal.
Using a lower resolution will require much less processing load on the Pi's CPU.
Choose 30 for Frames per Second. This will NOT affect the frame rate of your Television signal.
Select mjpeg for the grabber's video format.
Tick the box next to Quarter of frame mode -- this further reduces CPU usage.
Quirks!!!
With certain capture devices, the default Hardware Picture settings are often very much wrong.To find the actual Minimum and Maximum values for each of these settings, type the following command in your SSH terminal:
v4l2-ctl -l
📋 COPY - then PASTE, then press ENTER
You might see something crazy like the following:
Those default values are the result of a bug in the Capture driver. Pay attention to the min and max values -- each of those items, brightness, contrast, saturation and hue, all have their own values depending on your capture device. You will want to set each of these, within HyperHDR, to the middle of the range, except never set them to ZERO.
More sane recommended values, going by the above example, are as follows:
Be sure to set all of these settings (within HyperHDR) as above at least to start, but NEVER set any of them to 0 (zero).
Setting Min Max Value Brightness:-1281271Contrast:0255127Saturation:0255127Hue-1281271
Setting any of these values to ZERO tells HyperHDR to use the device default setting, which in most cases is very wrong. So making the Brightness and Hue 1 is just enough to override that default, without altering the actual value much.
If you manually set these settings using v4l2-ctl, they will reset every time you restart the Pi! So use HyperHDR to configure these settings!
The above recommendations basically sets everything in the middle of the range; from there we can further customize it in software, in the next step.
We will set up the Automatic Signal Detection a bit later, so for now just scroll down and click Save Settings.
You should see your strip fully lit based on whatever is on the screen at this point.
You might have to pull up something bright on your Source device to get all of the LEDs to light.
▶ Next: Color Calibration
◀ Prev: Configure the Software
↩ Back to the Beginning
