Hello LEGO Trainenthousiasts,
I've made a PowerFunctions-IRcontroller for 4 trains + lights + 3 railswitches with servo's based on an Arduino Uno R3 : https://forum.arduin...?topic=369292.0
One of demands was also using the older LEGO RC-trains.
But on the internet no information was found.
So with aid of a logicanalyzer I proudly presents the outcome of this investigation:
An experiment to make this functional: http://forum.arduino...?topic=320405.0
LEGO RC TRAINS PROTOCOL
note:
mu s means micro seconds
channel 4 means combichannel 1+2+3
This is not the LEGO PowerFunctions IR protocol version 1.20 as described at http://www.philohome...ons_RC_v120.pdf
This protocol described below is the predecessor of LEGO PF.
Start = Stop is bitstream 36kHz with 10 bits and pauze 1930 mu s
Uno is bitstream 36kHz with 10 bits and pauze 280 mu s
Zero is bitstream 36kHz with 10 bits and pauze 844 mu s
1 bit has a duty-cycle 16 mu s high and 11,5 mu s low
pauze (common factor 18 ms, so factors for
Channel actie bitstreams blok-pauze-blok-pauze-blok-pauze-blok)
1 up Start 1111 1111 1110 0001 Stop 3+2+2 = bitstream1 pauze = 3*18ms bitstream2 pauze = 2*18ms bitstream3 pauze = 3*18ms bitstream4
1000 0111 1111 1110 1001 1000 4+5+3
1 down Start 1111 1111 1101 0010 Stop 2+2+3
Start 0111 1111 1101 1010 Stop 3+2+3
1 stop Start 0111 1111 1111 1000 Stop 3+2+2
Start 1111 1111 1111 0000 Stop --------
1 horn Start 1111 1111 1100 0011 Stop --------
Start 0111 1111 1100 1011 Stop --------
2 up Start 1110 1111 1110 0010 Stop 2+3+5
Start 0110 1111 1110 1010 Stop --------
2 down Start 1110 1111 1101 0011 Stop 5+3+3
Start 0110 1111 1101 1011 Stop --------
2 stop Start 1110 1111 1111 0001 Stop 5+4+4
Start 0110 1111 1111 1001 Stop --------
2 horn Start 1110 1111 1100 0100 Stop --------
Start 0110 1111 1100 1100 Stop --------
3 up Start 1101 1111 1110 0011 Stop 5+4+2
Start 0101 1111 1110 1011 Stop --------
3 down Start 1101 1111 1101 0100 Stop 3+2+2
Start 0101 1111 1101 1100 Stop --------
3 stop Start 1101 1111 1111 0010 Stop 5+4+5
Start 0101 1111 1111 1010 Stop --------
3 horn Start 1101 1111 1100 0101 Stop --------
Start 0101 1111 1100 1101 Stop --------
4 up Start 1100 1111 1110 0100 Stop 2+3+5
Start 0100 1111 1110 1100 Stop --------
4 down Start 1100 1111 1110 0101 Stop 3+2+3
Start 0100 1111 1110 1101 Stop --------
4 stop Start 0100 1111 1111 1011 Stop 3+2+3
Start 1100 1111 1111 0011 Stop 2+3+3
4 horn Start 1100 1111 1100 0110 Stop --------
Start 0100 1111 1100 1110 Stop --------
(STOP- button keeps repeating when hold, all others (UP, DOWN, HORN) send only once a message
1e nibble: bit1 bit2 bit3 bit4
Kanaal 1 toggle 1 1 1
Kanaal 2 toggle 1 1 0
Kanaal 3 toggle 1 0 1
Kanaal 4 toggle 1 0 0
2e nibble 1 1 1 1
bit1 bit2 bit3 bit4
3e nibble 1 1
Up 1 0
Down 0 1
Stop 1 1
Horn 1 0
4e nibble toggle ? ? ? (checksum ???)
Togglebit reverse from 1st nibble bit1
Any additions/suggestions? I like them