Thorian RGB LED Strip Controller Technical Data

 

 

Please note that this project has been replaced by the Thorian ESP8266 RGB light controller


RF Data Format

The RF data to control this device is arranged as follows:

Preamble:

  • On signal (1): ≤ 8.8 ms
  • Off signal (0): ≤ 4.4 ms
  1. 8‑bit address + complement
  2. 8‑bit data word + complement
  3. Data detection ends
  4. Two additional data+complement bytes (unused)

Bit Timing:

  • 0: on 500 µs, off 600 µs (~550 µs total)
  • 1: on 500 µs, off 1 600 µs (~1 050 µs total)
 
Circuit Diagram
Circuit diagram for RGB control
 

Construction Tips

You don’t strictly need the exact regulator parts shown—substitute with any 5 V regulator:

  • 78L05
  • LM317T (adjust with resistor values)
 
LM317T regulator setup
 

Use ~32 cm single‑core wire for the RF receiver aerial, wound into a spiral.

Testing LEDs:

  • 5 mm IR LED: 1–2 m range
  • 5 mm red LED: 10–20 cm range
 

Operation Overview

  1. RF signal to RA1 (pin 18) on PIC.
  2. PIC checks errors & address match.
  3. If valid, sends IR code at 38 kHz to strip controller.

LED indicator feedback:

  • Long flash: valid code
  • Brief flash: error or wrong address
 
First‑Build Photos
First build front viewFirst build side viewFirst build PCB layout
 

 

Future Enhancements

  • Add transmitter module for signal confirmation.
  • Consider smaller PIC (e.g. PIC12F1572).

Current PIC16F88 is common but wastes many I/O pins.

 

Why No Full RGB Control?

Setting 64 levels per channel via IR takes 20–30 s per color—impractical.

Use built‑in presets and recall via PC software.

 

 

 

 

 

 

 

 

 

 

 

 

 

Reverse enginerring the RGB LED Striplight infra red transmission and encoding

This is documentation written previously to the information above..

This information is based on these unigs below, but may also be compatable with others.

 

 

First of all, this has already been covered here:
http://blog.allgaiershops.com/2012/05/10/reversing-an-rgb-led-remote/, however some things are incorrect which I discovered the hard way when trying to get a PIC micro to recreate the signal to an infrared LED to operate the receiver.

If you have already read my other page covering X10, the protocol for this lighting is almost identical.

See image that was taken directly from the infrared remote IR LED
Insert image below from the scope

Oscilloscope trace of RF data
 

Timings
The timings again are just the same as X10.
The data starts with a mark (LED on) for 9mS, then a space (LED off) for 4.5mS.
Immediately afterwards the data starts.
Bit 0 consists of:
Mark = 670 uS
space = 470 uS
bit 1 consists of:
Mark = 670 uS
space = 1600 uS

Confirm timings used

The first 8 bits are the address, Bit 8 is sent first
The next 8 bits are the address compliment
The next 8 bits are the command/button
The next 8 bits are the command compliment.

The final bit is a stop bit with the same timing as 0

The whole block of data is only sent once, although it looks like the remote then sends some sort of blanks which I suspect cause the button to repeat the command.

After a lot of hours testing and failing, I worked out a couple of things:

1, the other website (linked above) has the address wrong. They suggest the address is always 0xFF (all 1’s) but in actual fact its 0x00 (all zeros).
I can confirm that I tried the code for matrix for all buttons this was correct though.

2, the other issue which had me scratching my head was that the infra red transmission must be modulated on a 38 Khz carrier. After half building a 555 timer circuit to do this, I realised that the microcontroller could achieve this instead saving on additional parts.

 

 

 


 

← Back to Projects