Chromoflex RGB LED

From LinuxMCE
Revision as of 22:18, 9 July 2009 by Hari (Talk | contribs) (registers)

Jump to: navigation, search


The Chromoflex is a RGB LED controller supporting serial control with rs232. The protocol is documented (USP3). One can atttach multiple units to a single interface (but only broadcasts supported for now).


The new Chromoflex_USP3 device template in 0810 supports the protocol, we've introduced a new "Light Device (RGB)" with a Set_Level_RGB command. On/Off/set level are mapped to rgb values. It is created as default child when adding the unit from the web admin. PnP won't be supported, as the unit does not send characters back, so no way to auto-detect it.

Video clip showing control of a RGB stripe from an IPAQ orbiter:

Protocol specification

Relevant registers

The „Level“ is the current value of a channel (0 is „OFF“, 255 is full „ON“). If different from the appropriate „Set“ it is adjusted periodically.

  • Adr 4: Red_Set
  • Adr 5: Green_Set
  • Adr 6: Blue_Set
  • Adr 7: X-Set

The „Set“ is the target value. Of course, to allow changes it must be >0.

  • Adr 8: Red_Increment
  • Adr 9: Green_Increment
  • Adr 10: Blue_Increment
  • Adr 11: X_Increment

The „Increment“ is the increment which is used to change the „Level“ until „Set“ is reached.

  • Adr 17: Track

The „Track“ determines the speed of the color transitions. It specifies the number of 1/100 seconds after which the „Level“ is adjusted to the „Set“. If set to 1 and „Increment“ is 1 too, a complete change from Level 0 to 255 of any color needs 2.55 seconds. For slower changes it is recommended to set al „Increments“ to 1 and to set Track to a value of >= 1.

  • Adr 18: Status

The Status Byte contains some bits for external control. „Status“ must be set to 1. In this case any on-board effect is stopped and only color changes (via „Level“, „Set“ and „Increment“ are performed).