neopixel spec
This commit is contained in:
@@ -12,4 +12,5 @@ This repository specifies the control protocol implemented by [gex-core](https:/
|
|||||||
|
|
||||||
- [UNIT_DO.md](UNIT_DO.md) - Digital Output
|
- [UNIT_DO.md](UNIT_DO.md) - Digital Output
|
||||||
- [UNIT_DI.md](UNIT_DI.md) - Digital Input
|
- [UNIT_DI.md](UNIT_DI.md) - Digital Input
|
||||||
|
- [UNIT_NEOPIXEL.md](UNIT_NEOPIXEL.md) - NeoPixel driver
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# NeoPixel
|
||||||
|
|
||||||
|
Implements the NeoPixel protocol for driving addressable LED strips.
|
||||||
|
The strip length is configured in the unit settings.
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
### CLEAR (0x00)
|
||||||
|
Set all pixels to black. This is automatically executed on start-up to clear the strip.
|
||||||
|
|
||||||
|
### LOAD (0x01)
|
||||||
|
Load packed RGB data to the strip.
|
||||||
|
|
||||||
|
*Payload:*
|
||||||
|
|
||||||
|
- a byte array `(R,G,B)` x length
|
||||||
|
|
||||||
|
### LOAD_U32_LE (0x02)
|
||||||
|
Load 32-bit `0x00BBGGRR` words encoded in little-endian as `(R,G,B,0)`.
|
||||||
|
This is more convenient for the PC script, but wastes 1/4 of the payload by padding
|
||||||
|
null bytes.
|
||||||
|
|
||||||
|
*Payload:*
|
||||||
|
|
||||||
|
- a byte array `(R,G,B,0)` x length
|
||||||
|
|
||||||
|
### LOAD_U32_BE (0x03)
|
||||||
|
Load 32-bit `0x00BBGGRR` words encoded in big-endian as `(0,B,G,R)`.
|
||||||
|
|
||||||
|
*Payload:*
|
||||||
|
|
||||||
|
- a byte array `(0,B,G,R)` x length
|
||||||
|
|
||||||
|
|
||||||
|
### GET_LEN (0x04)
|
||||||
|
Read the neopixel strip length as configured in the settings.
|
||||||
|
|
||||||
|
*Response:*
|
||||||
|
|
||||||
|
- u16 - number of pixels
|
||||||
|
|
||||||
|
## Events
|
||||||
|
|
||||||
|
*No events defined for this unit type.*
|
||||||
Reference in New Issue
Block a user