hi Guys
I have a question about the digi-dot booster it is a led driver that translates the spi protocol into WS2812.
Is it possible to connect the BOOSTER via hypercon?
DIAMEX DIGI-BOOSTER
- Alexander
- Erledigt
-
-
No, not yet - someone would have to write a led device driver for it.
It seems kinda neat, but mostly wasted functionality if used with Hyperion.
-
I use the ri zero with spi input on a ws2813B.
With the oscilloscope I can measure a send clock of 50ms (20Hz).
the packets are sent bundled with 446kHz.
Can I change the send clock in the driver? -
Are you sure it’s 446 ?
What’s the device{} section of your config look like ?
The 20ms is probably the smoothing settings
-
// Automatically generated configuration file for Hyperion ambilight daemon
// Notice: All values are explained with comments at our wiki: wiki.hyperion-project.org (config area)
// Generated by: HyperCon (The Hyperion deamon configuration file builder)
// Created with HyperCon V1.03.3 (22.10.2017)
{
// DEVICE CONFIGURATION
"device" :
{
"name" : "MyHyperionConfig",
"type" : "ws2812spi",
"colorOrder" : "grb"
},
// COLOR CALIBRATION CONFIG
"color" :
{
"channelAdjustment" :
[
{
"id" : "default",
"leds" : "*",
"pureRed" :
{
"redChannel" : 255,
"greenChannel" : 0,
"blueChannel" : 0
},
"pureGreen" :
{
"redChannel" : 0,
"greenChannel" : 255,
"blueChannel" : 0
},
"pureBlue" :
{
"redChannel" : 0,
"greenChannel" : 0,
"blueChannel" : 255
}
}
],
"temperature" :
[
{
"id" : "default",
"leds" : "*",
"correctionValues" :
{
"red" : 255,
"green" : 255,
"blue" : 255
}
}
],
"transform" :
[
{
"id" : "default",
"leds" : "*",
"hsl" :
{
"saturationGain" : 1.0000,
"luminanceGain" : 0.3500,
"luminanceMinimum" : 0.0000
},
"red" :
{
"threshold" : 0.0000,
"gamma" : 2.5000
},
"green" :
{
"threshold" : 0.0000,
"gamma" : 2.5000
},
"blue" :
{
"threshold" : 0.0000,
"gamma" : 2.5000
}
}
],
// SMOOTHING CONFIG
"smoothing" :
{
"type" : "linear",
"time_ms" : 200,
"updateFrequency" : 100.0000,
"updateDelay" : 0
}
},
// NO V4L2 GRABBER CONFIG
// FRAME GRABBER CONFIG
"framegrabber" :
{
"width" : 115,
"height" : 64,
"frequency_Hz" : 10.0,
"priority" : 890
},
// BLACKBORDER CONFIG
"blackborderdetector" :
{
"enable" : true,
"threshold" : 0.0,
"unknownFrameCnt" : 600,
"borderFrameCnt" : 50,
"maxInconsistentCnt" : 10,
"blurRemoveCnt" : 1,
"mode" : "osd"
},
// BOOTEFFECT CONFIG
"bootsequence" :
{
"color" : [0,0,0],
"effect" : "Rainbow swirl fast",
"duration_ms" : 20000,
"priority" : 700
},
// JSON SERVER CONFIG
"jsonServer" :
{
"port" : 19444
},
// PROTO SERVER CONFIG
"protoServer" :
{
"port" : 19445
},
// EFFECT PATH
"effects" :
{
"paths" :
[
"/storage/hyperion/effects",
"/usr/share/hyperion/effects"
]
},
// NO KODI CHECK CONFIG
// NO BOBLIGHT SERVER CONFIG
// NO JSON/PROTO FORWARD CONFIG
// LED CONFIGURATION
"leds" :
[
{
"index" : 0,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
},
{
"index" : 1,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.9756, "maximum" : 1.0000 }
},
{
"index" : 2,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.9512, "maximum" : 0.9756 }
},
{
"index" : 3,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.9268, "maximum" : 0.9512 }
},
{
"index" : 4,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.9024, "maximum" : 0.9268 }
},
{
"index" : 5,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.8780, "maximum" : 0.9024 }
},
{
"index" : 6,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.8537, "maximum" : 0.8780 }
},
{
"index" : 7,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.8293, "maximum" : 0.8537 }
},
{
"index" : 8,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.8049, "maximum" : 0.8293 }
},
{
"index" : 9,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.7805, "maximum" : 0.8049 }
},
{
"index" : 10,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.7561, "maximum" : 0.7805 }
},
{
"index" : 11,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.7317, "maximum" : 0.7561 }
},
{
"index" : 12,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.7073, "maximum" : 0.7317 }
},
{
"index" : 13,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.6829, "maximum" : 0.7073 }
},
{
"index" : 14,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.6585, "maximum" : 0.6829 }
},
{
"index" : 15,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.6341, "maximum" : 0.6585 }
},
{
"index" : 16,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.6098, "maximum" : 0.6341 }
},
{
"index" : 17,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.5854, "maximum" : 0.6098 }
},
{
"index" : 18,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.5610, "maximum" : 0.5854 }
},
{
"index" : 19,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.5366, "maximum" : 0.5610 }
},
{
"index" : 20,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.5122, "maximum" : 0.5366 }
},
{
"index" : 21,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.4878, "maximum" : 0.5122 }
},
{
"index" : 22,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.4634, "maximum" : 0.4878 }
},
{
"index" : 23,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.4390, "maximum" : 0.4634 }
},
{
"index" : 24,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.4146, "maximum" : 0.4390 }
},
{
"index" : 25,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.3902, "maximum" : 0.4146 }
},
{
"index" : 26,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.3659, "maximum" : 0.3902 }
},
{
"index" : 27,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.3415, "maximum" : 0.3659 }
},
{
"index" : 28,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.3171, "maximum" : 0.3415 }
},
{
"index" : 29,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.2927, "maximum" : 0.3171 }
},
{
"index" : 30,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.2683, "maximum" : 0.2927 }
},
{
"index" : 31,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.2439, "maximum" : 0.2683 }
},
{
"index" : 32,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.2195, "maximum" : 0.2439 }
},
{
"index" : 33,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.1951, "maximum" : 0.2195 }
},
{
"index" : 34,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.1707, "maximum" : 0.1951 }
},
{
"index" : 35,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.1463, "maximum" : 0.1707 }
},
{
"index" : 36,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.1220, "maximum" : 0.1463 }
},
{
"index" : 37,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.0976, "maximum" : 0.1220 }
},
{
"index" : 38,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.0732, "maximum" : 0.0976 }
},
{
"index" : 39,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.0488, "maximum" : 0.0732 }
},
{
"index" : 40,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.0244, "maximum" : 0.0488 }
},
{
"index" : 41,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0244 }
}
],
"endOfJson" : "endOfJson"
} -
With the 20 Hz I understand it is the refresh frequency
But where can the data frequency look up or where in the code is written.
Because about the oscilloscope I measure about 446kHz +/- 10Hz data -
From https://github.com/hyperion-pr…vice/LedDeviceFactory.cpp
rate = deviceConfig.get("rate", 2857143).asInt();Each ws2812 bit is sent using 4 SPI bits so the default rate will be 714kHz
Sounds like the core clock on your Pi isn’t fixed (which is a requirement for Hyperion)
I use force_turbo = 1 but there are probably nicer ways
-
The problem is that with the setting up to 40 LEDs it works very well with 225 LEDs
they start to flicker.
I suspect that the data packets are not 100% correctly timed.I think I install an ardoino nano in between
spi ws2801 to aduino nano ws2813b / ws2812b
what do you think about the idea?
-
The nano works wel too - use this sketch https://github.com/hyperion-pr…ino/adalight/adalight.ino
Back to the SPI bus: if you haven’t done anything to stop the Pi core clock changing dynamically you will have problems
-
Can I use this skatch without usb? I have no more usb ports on the pi zero wh free. I'm just talking about the spi out on spi in from the arduino. if so, what physical pin are those on the arduino nano.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!