So I hate to do this, but I've been messing with software settings for the past day or so and I can't get my LEDs to respond in sync with my TV. No matter what I've tried my LED's will also update about .2 seconds after the TV input changes and especially when scenes change it is noticeable that the LED's are lagging behind.
One other important thing to mention is my PI never goes above ~50% total CPU utilization even when running the LEDs with some of the lower (better resolution, higher refresh) settings i've tried.
Running a Pi Zero with ~300 APA102 LEDs via a HDMI to USB Video grabber that is getting split off my PS5 to my TV and to the grabber.
I made some comments below in the code section about some changes I've made, from what i've googled and read around here and the most important things I think i've found is that smoothing is disabled (currently) or at a very low delay, I've messed with the baudrate, refresh rate of the grabber, resolution and Decimation a ton but the only setting that has any increase was lowering smoothing, disabling it doesn't increase it to a perfect, or near perfect synchronization to the TV.
If there is anything I missed please let me know or anything more I can try. I removed some of the section below like "LEDs" to make the config smaller on here.
{
"backgroundEffect": {
"color": [
255,
138,
0
],
"effect": "Warm mood blobs",
"enable": false,
"type": "color"
},
"blackborderdetector": {
"blurRemoveCnt": 1,
"borderFrameCnt": 50,
"enable": true,
"maxInconsistentCnt": 10,
"mode": "default",
"threshold": 5,
"unknownFrameCnt": 600
},
"boblightServer": {
"enable": false,
"port": 19333,
"priority": 128
},
"color": {
"channelAdjustment": [
{
...
...
...
"imageToLedMappingType": "multicolor_mean"
},
"device": {
"colorOrder": "bgr",
"hardwareLedCount": 1,
"invert": false,
"latchTime": 0, ## no clue what this does, Not modified it.
"output": "/dev/spidev0.0",
"rate": 3000000, ## I've seen this set as low as 50,000 and as high as 40,000,000
"rewriteTime": 10, ## default this is 200 I think? changing it doesn't seem to increase LED responsivness though
"type": "apa102"
},
"effects": {
"disable": [
""
],
"paths": [
"$ROOT/custom-effects"
]
},
"flatbufServer": {
"enable": true,
"port": 19400,
"timeout": 5
},
"foregroundEffect": {
"color": [
0,
0,
255
],
"duration_ms": 3000,
"effect": "Rainbow swirl fast",
"enable": false,
"type": "color"
},
"forwarder": {
"enable": false,
"flat": [
"127.0.0.1:19401"
],
"json": [
"127.0.0.1:19446"
]
},
"framegrabber": {
"cropBottom": 0,
"cropLeft": 0,
"cropRight": 0,
"cropTop": 0,
"display": 0,
"frequency_Hz": 10,
"height": 45,
"pixelDecimation": 8,
"type": "auto",
"width": 80
},
"general": {
"name": "My Hyperion Configv2",
"showOptHelp": true,
"watchedVersionBranch": "Stable"
},
"grabberV4L2": { #messed with resolution, resolution and FPS a ton nothing seems to increase LED responsiveness
"available_devices": "/dev/video0",
"blueSignalThreshold": 5,
"cecDetection": false,
"cropBottom": 10,
"cropLeft": 10,
"cropRight": 10,
"cropTop": 10,
"device": "/dev/video0",
"device_inputs": "auto",
"fps": 30,
"framerates": "30",
"greenSignalThreshold": 5,
"height": 648,
"input": -1,
"redSignalThreshold": 5,
"resolutions": "custom",
"sDHOffsetMax": 0.75,
"sDHOffsetMin": 0.25,
"sDVOffsetMax": 0.75,
"sDVOffsetMin": 0.25,
"signalDetection": false,
"sizeDecimation": 18,
"standard": "NTSC",
"width": 1152
},
"instCapture": {
"systemEnable": false,
"systemPriority": 250,
"v4lEnable": true,
"v4lPriority": 240
},
"jsonServer": {
"port": 19444
},
"ledConfig": {
"classic": {
...
...
...
},
"matrix": {
"cabling": "snake",
"ledshoriz": 1,
"ledsvert": 1,
"start": "top-left"
}
},
"leds": [
...
...
...
...
"logger": {
"level": "warn"
},
"network": {
"apiAuth": true,
"internetAccessAPI": false,
"ipWhitelist": [],
"localAdminAuth": true,
"localApiAuth": false,
"restirctedInternetAccessAPI": false
},
"protoServer": { ## Don't think i've seen this setting in the actual web config, not sure what it is or why its enabled
"enable": true,
"port": 19445,
"timeout": 5
},
"smoothing": { ## Tried enabled or disabled, speeds up responsiveness of the LEDs if at a very low number but disabling doesn't make it perfect
"continuousOutput": true,
"decay": 1,
"dithering": true,
"enable": false,
"interpolationRate": 60,
"outputRate": 60,
"time_ms": 25,
"type": "linear",
"updateDelay": 0,
"updateFrequency": 60
},
}
Display More