Closed goran-mahovlic closed 2 years ago
By "with the SDK" you mean without the Arduino framework? Yes, I did that :) However, the current Pico-DMX code only works if "full" DMX frames are sent. That means there is one start byte + 512 data bytes. Some DMX senders tend to send "short frames" when the rest of the universe is zero. Can you try setting DMX channel 512 (the last one) to some value other than 0 in your sending software to avoid short frames?
Nice LED-boards by the way ;)
By "with the SDK" you mean without the Arduino framework?
Well yes, that was my question, and tnx for answer :)
Can you try setting DMX channel 512 (the last one) to some value other than 0 in your sending software to avoid short frames?
Sure I can try, I did not use full 512 bytes as I have 100 RGB leds on bigger panel so it could be that. And I am using QLC+ with one board that just have FTDI to RS485 at some point I would like to replace that with RP2040 USB to RS485
Nice LED-boards by the way ;)
Tnx!
Unfortunately chip shortages kills all the fun :)
My next evil plan is to make new version more modular so I can just change module if some chip starts to be unavailable.
Sure I can try, I did not use full 512 bytes as I have 100 RGB leds on bigger panel so it could be that. And I am using QLC+ with one board that just have FTDI to RS485 at some point I would like to replace that with RP2040 USB to RS485
Yeah, with QLC+ it's easy, just go to "Simple Desk", "scroll" to the side and pull the last slider up ;)
If you want RP2040 USB to RS485 you might want to check out https://github.com/OpenLightingProject/rp2040-dmxsun. It always generates full DMX frames on all universes / RS485 outputs.
Unfortunately chip shortages kills all the fun :)
Very true. Fortunately, the RP2040, ESP32 and nRF24 are still easily available :)
I now have two pico boards, one is loaded with OUTPUT, second with LEDs is loaded as INPUT
I have now more then 512 values and they should all be filled with value 20
When I use blocking dmxInput.read(buffer); function everything is working.
And when I set async I am still not able to get any interrupts, and nothing changes on INPUT device.
https://gist.github.com/goran-mahovlic/6f173cfc83d0db7202b8254fd14a96da
If you want RP2040 USB to RS485 you might want to check out https://github.com/OpenLightingProject/rp2040-dmxsun. It always generates full DMX frames on all universes / RS485 outputs.
I did find that project but did not test, maybe it is right time to do so :)
Ups, I was missing function pointer - https://gist.github.com/goran-mahovlic/6f173cfc83d0db7202b8254fd14a96da#file-dmx_in_out-cpp-L86 It is working now, thank you! Will close this issue...
I did some tests and did not managed to get async version to generate interrupts, so I do not know if someone did test it with SDK?
Normal read function if working nicely. This is simple receiver test with WS leds.
https://www.youtube.com/watch?v=sD5nIOLsvXA&feature=youtu.be
I hope that I can port my firefly board to RP2040, as initial Atmega chip is not available for a long time...
https://kitspace.org/boards/github.com/intergalaktik/firefly/