sui77 / rc-switch

Arduino lib to operate 433/315Mhz devices like power outlet sockets.
1.91k stars 659 forks source link

Ex-Military Emergency Landing Lights Protocol #338

Open alexanderturner opened 4 years ago

alexanderturner commented 4 years ago

Title's not wrong - I came across a set of ex Army aircraft runway lights which consist of 21 wireless LED units of different configurations and a control unit which also consists of a AM VHF receiver so a pilot is able to turn the lights on from an aircraft.

The lights have s 433.92Mhz super het receiver in them and with a bit of fiddling with RTL_SDR I managed to determine the "ON" and "OFF" signals for the lights:

Detected OOK package    2020-05-06 15:46:17
Analyzing pulses...
Total count:   36,  width: 91.36 ms     (22841 S)
Pulse width distribution:
 [ 0] count:   10,  width: 2052 us [2048;2064]  ( 513 S)
 [ 1] count:   26,  width:  376 us [376;388]    (  94 S)
Gap width distribution:
 [ 0] count:   10,  width:  160 us [160;164]    (  40 S)
 [ 1] count:   24,  width: 1840 us [1836;1844]  ( 460 S)
 [ 2] count:    1,  width: 15156 us [15156;15156]   (3789 S)
Pulse period distribution:
 [ 0] count:   34,  width: 2216 us [2208;2228]  ( 554 S)
 [ 1] count:    1,  width: 15536 us [15536;15536]   (3884 S)
Level estimates [high, low]:  15965,     21
RSSI: -0.1 dB SNR: 28.8 dB Noise: -28.9 dB
Frequency offsets [F1, F2]:   19116,      0 (+72.9 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with multiple packets
Attempting demodulation... short_width: 376, long_width: 2052, reset_limit: 15160, sync_width: 0
Use a flex decoder with -X 'n=name,m=OOK_PWM,s=376,l=2052,r=15160,g=1848,t=668,y=0'
pulse_demod_pwm(): Analyzer Device
bitbuffer:: Number of rows: 2
[00] {18} 7c 3f c0  : 01111100 00111111 11
[01] {18} 7c 3f c0  : 01111100 00111111 11

01111100 00111111 01 //on 01111100 00111111 11 //off

Simple enough? Pulse width is interesting, it appears as if it's around 380us, with 1 pulse, 4 blank for a 1, and 0 pulses for a 1.

I tried to add the protocol into rc-switch as follows however I'm just getting a blank serial monitor on any input. I've tried a few different receivers and Arduinos - so I'm not entirely sure where its getting caught up.

{ 380, { 0, 0 }, { 5, 0 }, { 1, 4 }, false }

I've tried a few different values here after connecting my oscilloscope to the receiver digital pin to see what it was reading. Using the measurement function on the scope, I determined the following:

With this information I tried: { 300, { 0, 0 }, { 7, 0 }, { 1, 6 }, false }

Without success. Any ideas?

patrickdk77 commented 3 years ago

Wonder if it will take this timing or not { 275, { 0,0 }, { 7,1 }, { 1,7 }, false }

If not, maybe try 280 and 285, think higher than that is going stretch it out too much.