Request to support the Linear Megacode Protocol.
Frequency: 318MHz
Modulation: Amplitude Modulation (AM)
FCC ID: EF4 ACP00872 MODEL: Linear ACT-31B
FCC ID: EF4 ACP00728 MODEL: Linear MT-1B
FCC ID: EF4 ACP00729 MODEL: Linear MT-2B
Short: 1000 µs
Long: 1000 µs
Gap: 9000 µs
Reset: 20000 µs
A Linear Megacode transmission consists of 24 bit frames starting with the most significant bit and ending with the least. Each of the 24 bit frames is 6 milliseconds wide and always contains a single 1 millisecond pulse. A frame with more than 1 pulse or a frame with no pulse is invalid and a receiver should reset and begin watching for another start bit.
The position of the pulse within the bit frame determines if it represents a binary 0 or binary 1. If the pulse is within the first half of the frame, it represents binary 0. The second half of the frame represents a binary 1.
Example (From: https://triq.org/explorer/):
raw: 8DF78A
facility: 1 id: 48881 button: 2
bits: 10010000010000010000000010000010010000000010000010000010000010000010010000000010000010000010000010010000010000010000000010010000000010010… (up to 148 bits)
$ rtl_433 -g 100 -f 318M -X “n=Megacode,m=OOK_PCM,s=1000,l=1000,g=8000,r=10000”
Example (I created with my own remote):
Remote “A” has the code “17316”, a Facility Code of “3”, and a single button.
Start bit = 1
Facility Code 3 = 0011
Remote Code 17316 = 0100001110100100
Button 1 = 001
Result = 100110100001110100100001
1 becomes 000001
0 becomes 001000
The device needs to transmit with a 9000 µs gap between retransmissions:
000001 001000 001000 000001 000001 001000 000001 001000 001000 001000 001000 000001 000001 000001 001000 000001 001000 001000 000001 001000 001000 001000 001000 000001
wait 9000 µs
000001 001000 001000 000001 000001 001000 000001 001000 001000 001000 001000 000001 000001 000001 001000 000001 001000 001000 000001 001000 001000 001000 001000 000001
I’ve noticed that sometimes the transmission is actually:
1111111111111 001000 001000 000001 000001 001000 000001 001000 001000 001000 001000 000001 000001 000001 001000 000001 001000 001000 000001 001000 001000 001000 001000 000001
I created my own python script for generating the sub files and decoding the sub files so I know the flipper zero is able to encode and decode this protocol.
Useful links:
https://triq.org/explorer/
https://wiki.cuvoodoo.info/doku.php?id=megacode
FCC Info: https://wiki.cuvoodoo.info/lib/exe/fetch.php?media=megacode:megacode_1.pdf
FCC Info: https://fccid.io/EF4ACP00872/Test-Report/Megacode-2-112615.pdf
https://github.com/aaronsp777/megadecoder
https://github.com/rjmendez/Linear_keyfob
https://github.com/j07rdi/Linear_MegaCode_Garage_Remote
Files:
Code 17314 - Facility 3 - 1 Button - Model ACT-31B
Code 10798 - Facility 8 - 1 Button - Model MT-1B
Code 23642 - Facility 1 - 2 Button - Model MT-2B
Code 27751 - Facility 1 - 2 Button - Model MT-2B
Code 27865 - Facility 8 - 1 Button - Model MT-1B
10798.sub (8.6 KB)
17314.sub (11.5 KB)
23642_button1.sub (6.1 KB)
23642_button2.sub (9.4 KB)
27751_button1.sub (6.7 KB)
27751_button2.sub (10.7 KB)
27865.sub (8.3 KB)