Not logged in - Login
< back

RFShowControl Protocol Explained


RFPixelControl utilizes an On-Air protocol which was originally designed and implemented by Joe Johnson for use with the RFColor2_4 project. Inspired by this, and with the intent of being fully interoperable with Joe's RFColor2_4 GECE controllers, the RFPixelControl library was built to simplify the setup and configuration of the transmitters and receivers.

Current / Beta RFPixelControl Protocol

The RFPixelControl protocol is built within the limitations of Nordic Semiconductor's nRF24L01+ tranceiver.

  • Transmission Rate: 250kbps250kbps, 1Mbps, 2Mbps - Configurable
  • RFChannels Available for Transmitters: 125 ( allows for up to 64,000 individual channels or 21,000 pixels!!!)
    • One Transmitter per RFChannel, Each transmitter can transmit up to 512 channels.

Packet Structure
RFPixelControl utilizes a 32 byte packet, So we need more than 1 packet to send an entire 512 channels (if needed).
  • 30 bytes of channel data
  • 1 offset byte ( this 0 indexed byte is multiplied by 30 to determine what channels are in the packet)
  • one reserved byte (not currently used)

Because of the restrictions of 30 "data channels" per packet we need 18 packets to send an entire 512 channels. Transmitters can broadcast fewer than 512 channels and will use less packets to do so if needed.

OneRF Packet                                
Packet Inxex012345678910111213141516171819202122232425262728293031
An Example of the First 60 channels (20 pixels of data with 24 bit color data) color Red (0xFF0000)

Channel 1-30 Packet                              0*30=0 
Packet Index012345678910111213141516171819202122232425262728293031
Byte Contents255002550025500255002550025500255002550025500255000NOTUSED
Channel 31-60 Packet                              1*30=30 
Packet Index012345678910111213141516171819202122232425262728293031
Byte Contents255002550025500255002550025500255002550025500255001NOTUSED

Proposed Changes to the RFPixelControl Protocol (not yet implemented)

Support for (OPTIONAL) Over-The-Air-Configuration

  • First priority for changes
  • This OTA Configuration will be optional, hard coded firmware will be provided
  • Proposed Implementation:
    • Dedicated Configuration Transmitter
    • Receivers will default to RFChannel 125 for 1 minute when first powered up.
      • Receivers will announce to the Configuration transmitter the Receivers Name or uinque ID, once the name has been received by the Configuration Node, Receiver will Listen for configuration information.
      • Configuration node will lookup the Receiver Name and send a multipacket response to the receiver which will contain all needed configuration information. Each configuration packet will begin with the Receiver UID. The exact contents of the configuration packets is TBD. It will contain at a minimum, RFChannel to receive on, the Start Channel to listen for, and the number of channels to listen for.
      • Once configuration is complete the Receiver will change to the configured RFChannel and start listening for the data it was configured for.

Other Proposed Changes

  • Support for multiple "Logical" controllers, This will allow for easier configuration. This option will support the use of a single RF1 (or compatible) device to control multiple devices.
    • Needed to support the RF1_12V controlling a string of pixels & a DumbRGB expansion