if anyone's interested, I got a usbasp working today with Hyperion and https://github.com/poljvd/hyperion-usbasp It's a $2 USB device designed to program avr microcontrollers but can be reflashed to drive ws2801 or ws281x led strips < 256 LEDs long. If you don't already have an avr programmer you need to buy 2 of them so you can reflash one. Let me know if you want more details or the pre compiled hex code for it
I'm maintaining this at https://github.com/hyperion-project/hyperion-usbasp It actually has some documentation now
Hey penfold. thank you for your work. Thats exactly what i am searching for. Unfortunately i have the APA102 LED Stripe. Are you able to add support for it? Greetings Julian
It might already have support ? If not, it won’t be far off. I notice there’s ws2801 support which is also SPI ?
I don’t have any SPI addressable led strips so can’t test anything but can point you in the right direction here
that would be great, thank you. I ordered the usbadp already and it should arrive thursday. I'll write my experience
While this is a neat thing to do when you have some USBASP laying about, why wouldn't you just get a 2$ Arduino Nano with more CPU power and full FastLED support if you are ordering "fresh"?
Hmm good point, i am new with this. Searching for Arduino nano i only get Artikles with ~20$. I want a compact controller to plug in my Windows computer. From there i want to play Movies via HDMI on my TV and controll die LED´s directly. The USBASP was for me the cheapest solution i found. Can you link me a better alternative?
https://www.az-delivery.de/pages/f_1_1?ls=de here you can get 1 for free... it works...i have also one from them
Wow great my swabian hearth is lucky Ok than i will use this instead. But because i already ordered the USBASP i will give feedback if APA102 is working. Thank you very much.
Thing is, you need 2 USBASP or an USBASP and an Arduino to flash the USBASP in the first place. On aliexpress, you can get the nano for 2$, and it can be programmed with USB directly.
Oh i didn´t know that. I just experimented with the raspberry pi as controller when i saw your USBASP alternative. Ok i will try to cancel my Order and use the nano instead So in my opinion there is no advantage using your USBASP!? (Except you already own one)
Hello, i am using Hyperion 2.0.0 alpha 8 on an Intel NUC7PJYH with Kubuntu 20.04 running on it. If i choose the hyperion-usbasp as the LED-controller in the LED-Hardware section under LED-Control, hyperiond stops working. This happens with and without the hyperion-usbasp hardware connectet. If i leave the usbasp connectet i am not able to start hyperiond again. If i disconnect it i can start hyperion again. But as soon as i try to turn on the LED-Hardware with usbasp configured as controller, hyperiond stops again. Anybody have the same problem?
Are you able to start hyperiond from the Commandline in Debug Mode -d Option? And then share the log output?
Here you can see the output after i tried to start hyperiond in the commandline with the command "hyperiond -d" and the USBasp device connected: Code: 2020-11-03T00:05:33.025 hyperiond MAIN : <INFO> Set user data path to '/home/florian/.hyperion' 2020-11-03T00:05:33.037 hyperiond DAEMON : <DEBUG> PythonInit.cpp:44:PythonInit() | Initializing Python interpreter 2020-11-03T00:05:33.062 hyperiond SETTINGSMGR : <DEBUG> SettingsManager.cpp:107:SettingsManager() | Settings database initialized 2020-11-03T00:05:33.062 hyperiond DAEMON : <INFO> CEC handler created 2020-11-03T00:05:33.065 hyperiond EFFECTFILES : <INFO> 39 effects loaded from directory :/effects/ 2020-11-03T00:05:33.066 hyperiond EFFECTFILES : <INFO> 22 effect schemas loaded from directory :/effects/schema/ 2020-11-03T00:05:33.066 hyperiond EFFECTFILES : <INFO> 0 effects loaded from directory /home/florian/.hyperion/custom-effects 2020-11-03T00:05:33.076 hyperiond SETTINGSMGR : <DEBUG> SettingsManager.cpp:107:SettingsManager() | Settings database initialized 2020-11-03T00:05:33.076 hyperiond BLACKBORDER : <DEBUG> BlackBorderProcessor.cpp:64:handleSettingsUpdate() | Set mode to: default 2020-11-03T00:05:33.076 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | Blackborder detector: enabled 2020-11-03T00:05:33.087 hyperiond LEDDEVICE : <INFO> Start LedDevice 'udpraw'. 2020-11-03T00:05:33.087 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | Smoothing: enabled 2020-11-03T00:05:33.087 hyperiond LEDDEVICE : <DEBUG> LedDevice.cpp:147:init() | deviceConfig: [{"colorOrder":"grb","currentLedCount":82,"hardwareLedCount":82,"host":"192.168.178.12","latchTime":0,"port":19446,"type":"udpraw"}] 2020-11-03T00:05:33.087 hyperiond LEDDEVICE : <DEBUG> LedDevice.cpp:403:setLatchTime() | LatchTime updated to 0ms 2020-11-03T00:05:33.087 hyperiond LEDDEVICE : <DEBUG> LedDevice.cpp:429:setRewriteTime() | RewriteTime updated to 0ms 2020-11-03T00:05:33.088 hyperiond LEDDEVICE : <DEBUG> ProviderUdp.cpp:44:init() | Successfully parsed 192.168.178.12 as an IP-address. 2020-11-03T00:05:33.088 hyperiond LEDDEVICE : <DEBUG> ProviderUdp.cpp:74:init() | UDP socket will write to 192.168.178.12:19446 2020-11-03T00:05:33.088 hyperiond FLATBUFCONN : <INFO> Connecting to Hyperion: 127.0.0.1:19401 2020-11-03T00:05:33.088 hyperiond EFFECTENGINE : <INFO> Run effect "Rainbow swirl fast" on channel 0 2020-11-03T00:05:33.089 hyperiond EFFECTENGINE : <DEBUG> EffectEngine.cpp:183:runEffectScript() | Start the effect: name [Rainbow swirl fast], smoothCfg [2] 2020-11-03T00:05:33.089 hyperiond HYPERION : <DEBUG> PriorityMuxer.cpp:159:registerInput() | Register new input 'System/EFFECT' with priority 0 as inactive 2020-11-03T00:05:33.089 hyperiond HYPERION : <INFO> Initial foreground effect 'Rainbow swirl fast' started 2020-11-03T00:05:33.089 hyperiond EFFECTENGINE : <INFO> Run effect "Warm mood blobs" on channel 254 2020-11-03T00:05:33.089 hyperiond EFFECTENGINE : <DEBUG> EffectEngine.cpp:183:runEffectScript() | Start the effect: name [Warm mood blobs], smoothCfg [2] 2020-11-03T00:05:33.089 hyperiond HYPERION : <DEBUG> PriorityMuxer.cpp:159:registerInput() | Register new input 'System/EFFECT' with priority 254 as inactive 2020-11-03T00:05:33.089 hyperiond HYPERION : <INFO> Inital background effect 'Warm mood blobs' started 2020-11-03T00:05:33.090 hyperiond HYPERION : <DEBUG> PriorityMuxer.cpp:159:registerInput() | Register new input 'System/GRABBER' with priority 250 as inactive 2020-11-03T00:05:33.090 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | Framegrabber: enabled 2020-11-03T00:05:33.090 hyperiond BOBLIGHT : <DEBUG> BoblightServer.cpp:28:BoblightServer() | Instance created 2020-11-03T00:05:33.090 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | LED device: enabled 2020-11-03T00:05:33.092 hyperiond SETTINGSMGR : <DEBUG> SettingsManager.cpp:107:SettingsManager() | Settings database initialized 2020-11-03T00:05:33.092 hyperiond BLACKBORDER : <DEBUG> BlackBorderProcessor.cpp:64:handleSettingsUpdate() | Set mode to: default 2020-11-03T00:05:33.092 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | Blackborder detector: enabled 2020-11-03T00:05:33.098 hyperiond DAEMON : <INFO> set screen capture device to 'qt' 2020-11-03T00:05:33.098 hyperiond QTGRABBER : <DEBUG> Grabber.cpp:30:setVideoMode() | Set videomode to 0 2020-11-03T00:05:33.098 hyperiond QTGRABBER : <ERROR> No displays found to capture from! 2020-11-03T00:05:33.098 hyperiond DAEMON : <INFO> Qt grabber created 2020-11-03T00:05:33.098 hyperiond V4L2:AUTO : <DEBUG> Grabber.cpp:30:setVideoMode() | Set videomode to 0 2020-11-03T00:05:33.098 hyperiond V4L2:AUTO : <INFO> Signal threshold set to: {12, 12, 12} 2020-11-03T00:05:33.098 hyperiond V4L2:AUTO : <INFO> CEC detection is now disabled 2020-11-03T00:05:33.098 hyperiond V4L2:AUTO : <INFO> Signal detection is now disabled 2020-11-03T00:05:33.099 hyperiond V4L2:AUTO : <INFO> Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000 2020-11-03T00:05:33.099 hyperiond DAEMON : <DEBUG> hyperiond.cpp:568:handleSettingsUpdate() | V4L2 grabber created 2020-11-03T00:05:33.099 hyperiond JSONSERVER : <DEBUG> JsonServer.cpp:27:JsonServer() | Created instance 2020-11-03T00:05:33.100 hyperiond JSONSERVER : <INFO> Started on port 19444 2020-11-03T00:05:33.100 hyperiond PROTOSERVER : <INFO> Started on port 19445 2020-11-03T00:05:33.101 hyperiond FLATBUFSERVE : <INFO> Started on port 19400 2020-11-03T00:05:33.101 hyperiond HYPERION : <INFO> Hyperion instance 'First LED Hardware instance' has been started 2020-11-03T00:05:33.101 hyperiond WEBSERVER : <DEBUG> WebServer.cpp:32:initServer() | Initialize Webserver 2020-11-03T00:05:33.102 hyperiond WEBSERVER : <DEBUG> WebServer.cpp:32:initServer() | Initialize Webserver 2020-11-03T00:05:33.104 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | Smoothing: enabled 2020-11-03T00:05:33.104 hyperiond EFFECTENGINE : <INFO> Run effect "Rainbow swirl fast" on channel 0 2020-11-03T00:05:33.104 hyperiond EFFECTENGINE : <DEBUG> EffectEngine.cpp:183:runEffectScript() | Start the effect: name [Rainbow swirl fast], smoothCfg [2] 2020-11-03T00:05:33.104 hyperiond HYPERION : <DEBUG> PriorityMuxer.cpp:159:registerInput() | Register new input 'System/EFFECT' with priority 0 as inactive 2020-11-03T00:05:33.104 hyperiond HYPERION : <INFO> Initial foreground effect 'Rainbow swirl fast' started 2020-11-03T00:05:33.105 hyperiond EFFECTENGINE : <INFO> Run effect "Warm mood blobs" on channel 254 2020-11-03T00:05:33.105 hyperiond EFFECTENGINE : <DEBUG> EffectEngine.cpp:183:runEffectScript() | Start the effect: name [Warm mood blobs], smoothCfg [2] 2020-11-03T00:05:33.105 hyperiond HYPERION : <DEBUG> PriorityMuxer.cpp:159:registerInput() | Register new input 'System/EFFECT' with priority 254 as inactive 2020-11-03T00:05:33.105 hyperiond HYPERION : <INFO> Inital background effect 'Warm mood blobs' started 2020-11-03T00:05:33.105 hyperiond HYPERION : <DEBUG> PriorityMuxer.cpp:159:registerInput() | Register new input 'System/GRABBER' with priority 250 as inactive 2020-11-03T00:05:33.105 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | Framegrabber: enabled 2020-11-03T00:05:33.105 hyperiond Qt : <DEBUG> GrabberWrapper.cpp:48:start() | Grabber start() 2020-11-03T00:05:33.105 hyperiond BOBLIGHT : <DEBUG> BoblightServer.cpp:28:BoblightServer() | Instance created 2020-11-03T00:05:33.105 hyperiond HYPERION : <INFO> Hyperion instance 'usbasp_test' has been started 2020-11-03T00:05:33.106 hyperiond LEDDEVICE : <INFO> Start LedDevice 'hyperionusbasp'. 2020-11-03T00:05:33.106 hyperiond LEDDEVICE : <DEBUG> LedDevice.cpp:147:init() | deviceConfig: [{"colorOrder":"rbg","currentLedCount":26,"hardwareLedCount":1,"latchTime":10,"ledType":"ws2812","rewriteTime":1000,"type":"hyperionusbasp"}] 2020-11-03T00:05:33.106 hyperiond LEDDEVICE : <DEBUG> LedDevice.cpp:403:setLatchTime() | LatchTime updated to 10ms 2020-11-03T00:05:33.106 hyperiond LEDDEVICE : <DEBUG> LedDevice.cpp:423:setRewriteTime() | Refresh interval = 1000ms 2020-11-03T00:05:33.106 hyperiond LEDDEVICE : <DEBUG> LedDevice.cpp:429:setRewriteTime() | RewriteTime updated to 1000ms 2020-11-03T00:05:33.110 hyperiond LEDDEVICE : <DEBUG> LedDeviceHyperionUsbasp.cpp:65:init() | USB context initialized 2020-11-03T00:05:33.110 hyperiond WEBSERVER : <DEBUG> WebServer.cpp:90:handleSettingsUpdate() | Apply Webserver settings 2020-11-03T00:05:33.111 hyperiond WEBSERVER : <DEBUG> WebServer.cpp:108:handleSettingsUpdate() | Set document root to: :/webconfig terminate called after throwing an instance of 'int' 2020-11-03T00:05:33.111 hyperiond WEBSERVER : <DEBUG> WebServer.cpp:90:handleSettingsUpdate() | Apply Webserver settings Hyperion caught signal :SIGABRT 2020-11-03T00:05:33.111 hyperiond WEBSERVER : <DEBUG> WebServer.cpp:108:handleSettingsUpdate() | Set document root to: :/webconfig 2020-11-03T00:05:33.111 hyperiond WEBSERVER : <INFO> Started on port 8090 name 'Hyperion Webserver' 2020-11-03T00:05:33.112 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0) [0x7f9d20dec3c0] 2020-11-03T00:05:33.112 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb) [0x7f9d1f44018b] 2020-11-03T00:05:33.112 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b) [0x7f9d1f41f859] 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libstdc++.so.6(+0x9e951) [0x7f9d1f7f4951] 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libstdc++.so.6(+0xaa47c) [0x7f9d1f80047c] 2020-11-03T00:05:33.113 hyperiond WEBSERVER : <DEBUG> WebServer.cpp:174:handleSettingsUpdate() | Setup SSL certificate 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libstdc++.so.6(+0xaa4e7) [0x7f9d1f8004e7] 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libstdc++.so.6(+0xaa799) [0x7f9d1f800799] 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> hyperiond(+0x28b15c) [0x559a6514e15c] 2020-11-03T00:05:33.113 hyperiond WEBSERVER : <DEBUG> WebServer.cpp:190:handleSettingsUpdate() | Setup private SSL key 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> hyperiond(LedDeviceHyperionUsbasp::testAndOpen(libusb_device*)+0x6f) [0x559a6514e1cf] 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> hyperiond(LedDeviceHyperionUsbasp::init(QJsonObject const&)+0x366) [0x559a6514e806] 2020-11-03T00:05:33.113 hyperiond WEBSERVER : <INFO> Started on port 8092 name 'Hyperion Webserver' 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> hyperiond(LedDevice::start()+0xb1) [0x559a65157e11] 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> /usr/share/hyperion/bin/../lib/libQt5Core.so.5(QMetaObject::activate(QObject*, int, int, void**)+0x9ae) [0x7f9d1fe86b1e] 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> /usr/share/hyperion/bin/../lib/libQt5Core.so.5(+0xaed2f) [0x7f9d1fc8bd2f] 2020-11-03T00:05:33.113 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libpthread.so.0(+0x9609) [0x7f9d20de0609] 2020-11-03T00:05:33.114 hyperiond CORE : <ERROR> /lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7f9d1f51c293] Abgebrochen (Speicherabzug geschrieben)
@ModuloFS Thanks for providing the output. That was helpful! I opened an issue for you on the given problem: https://github.com/hyperion-project/hyperion.ng/issues/1076 I might need getting back to you for testing a fix, if this would be ok for you?
@ModuloFS I reworked the code and hopefully got it fixed. What would be the best way to get it tested? Do you compile hyperion yourself, then I will share the updated code files with you. Or do you need a pre-build package (for what platform - Ubuntu)?