I guess you could connect two Espruino's together via I2C, SPI, UART and use one as a DMX processor the other as an Ethernet / Wifi / WS2811 processor. Although I'm not using WS2811 I'm trying to think of something that would be of most use to everyone.
Raw DMX running at full bore is just continuous data with a break every 513 bytes. Note you do not need to send 513 bytes it could be less. This would put quite a load on the receiving device so using one Espruino just to handle DMX receiving might be a good idea.
When I've implemented DMX before on other processors, I've cheated by detecting a framing error and assuming that this is a received break.
Transmitting 4 x 128byte chunks for the output would be fine I think as in my experience DMX recievers only wait to see a break to restart comms, so do not care about a slight gap in the data stream.
Does the STM chip warn when the TX buffer is getting empty, to give the software time to re-fill it? Or can it be fed from DMA?
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I guess you could connect two Espruino's together via I2C, SPI, UART and use one as a DMX processor the other as an Ethernet / Wifi / WS2811 processor. Although I'm not using WS2811 I'm trying to think of something that would be of most use to everyone.
Raw DMX running at full bore is just continuous data with a break every 513 bytes. Note you do not need to send 513 bytes it could be less. This would put quite a load on the receiving device so using one Espruino just to handle DMX receiving might be a good idea.
When I've implemented DMX before on other processors, I've cheated by detecting a framing error and assuming that this is a received break.
Transmitting 4 x 128byte chunks for the output would be fine I think as in my experience DMX recievers only wait to see a break to restart comms, so do not care about a slight gap in the data stream.
Does the STM chip warn when the TX buffer is getting empty, to give the software time to re-fill it? Or can it be fed from DMA?