====== Cheap MP3 FM transmitter ======
start pulse:
^ signal ^ time ^ description ^
| LOW | 8.9ms | start pulse |
| HIGH | 4.4ms | start pulse |
| LOW | 619 us | bit separator |
| HIGH | 520 us | bit 0 |
| HIGH | 1600 us | bit 1 |
* Short pulse is 0
* Long pulse is 1
* **LSBit is transmited first**
* First/left/most significant byte (MSbyte) is transmited first
Prefix **FF00** (Low byte transmitted first).
Example: **CH-** button full code would be BA45FF00, or in binary (LSBit transmitted first - right to left):
0101 1101 0010 0010 1111 1111 0000 0000
^ Col 1 ^ Col 2 ^ Col 3 ^
| **CH-** / BA45 | **CH** / B946 | **CH+** / B847 |
| **|<<** / BB44 | **>>|** / BF40 | **>||** / BC43 |
| **-** / F807 | **+** / EA15 | **EQ** / F609 |
| **0** / E916 | **FOL-** / E619 | **FOL+** / F20D |
| **1** / F30C | **2** / E718 | **3** / A15E |
| **4** / F708 | **5** / E31C | **6** / A55A |
| **7** / BD42 | **8** / AD52 | **9** / B54A |
===== Below information is WRONG (reversed) =====
I assumed the protocol wrongly. Below is "the wrong way" for reference of past projects.
start pulse:
^ signal ^ time ^ description ^
| LOW | 8.9ms | start pulse |
| HIGH | 4.4ms | start pulse |
| LOW | 619 us | bit separator |
| HIGH | 520 us | bit 1* |
| HIGH | 1600 us | bit 0* |
* assumed that short pulse is 1 long is 0. Not sure about that but if it's the other way - just invert all numbers below
Prefix **FF00** (High byte transmitted first)
^ Col 1 ^ Col 2 ^ Col 3 ^
| **CH-** / 5DA2 | **CH** / 9D62 | **CH+** / 1DE2 |
| **|<<** / DD22 | **>>|** / FD02 | **>||** / 3DC2 |
| **-** / 1FE0 | **+** / 57A8 | **EQ** / 6F90 |
| **0** / 9768 | **FOL-** / 6798 | **FOL+** / 4FB0 |
| **1** / CF30 | **2** / E718 | **3** / 857A |
| **4** / EF10 | **5** / C738 | **6** / A55A |
| **7** / BD42 | **8** / B54A | **9** / AD52 |