app-dat/RC-dat/RC-code-dat/PWM-2ch-v2.ino
... ...
@@ -0,0 +1,68 @@
1
+// RC signal input pins
2
+#define THROTTLE_PIN 2 // Channel 1 (forward/back)
3
+#define STEERING_PIN 3 // Channel 2 (left/right)
4
+
5
+// Motor control pins (L298N)
6
+#define LEFT_ENA 9
7
+#define LEFT_IN1 4
8
+#define LEFT_IN2 5
9
+
10
+#define RIGHT_ENB 10
11
+#define RIGHT_IN3 6
12
+#define RIGHT_IN4 7
13
+
14
+int throttle, steering;
15
+
16
+void setup() {
17
+ pinMode(THROTTLE_PIN, INPUT);
18
+ pinMode(STEERING_PIN, INPUT);
19
+
20
+ pinMode(LEFT_IN1, OUTPUT);
21
+ pinMode(LEFT_IN2, OUTPUT);
22
+ pinMode(LEFT_ENA, OUTPUT);
23
+
24
+ pinMode(RIGHT_IN3, OUTPUT);
25
+ pinMode(RIGHT_IN4, OUTPUT);
26
+ pinMode(RIGHT_ENB, OUTPUT);
27
+
28
+ Serial.begin(9600);
29
+}
30
+
31
+void loop() {
32
+ // Read PWM input
33
+ throttle = pulseIn(THROTTLE_PIN, HIGH, 25000);
34
+ steering = pulseIn(STEERING_PIN, HIGH, 25000);
35
+
36
+ // Center = 1500, range = 1000–2000
37
+ int throttleVal = map(throttle, 1000, 2000, -255, 255);
38
+ int steeringVal = map(steering, 1000, 2000, -100, 100); // less aggressive
39
+
40
+ // Motor mixing (differential drive)
41
+ int leftSpeed = constrain(throttleVal + steeringVal, -255, 255);
42
+ int rightSpeed = constrain(throttleVal - steeringVal, -255, 255);
43
+
44
+ setMotor(LEFT_IN1, LEFT_IN2, LEFT_ENA, leftSpeed);
45
+ setMotor(RIGHT_IN3, RIGHT_IN4, RIGHT_ENB, rightSpeed);
46
+
47
+ // Debug
48
+ Serial.print("Throttle: "); Serial.print(throttleVal);
49
+ Serial.print(" Steering: "); Serial.print(steeringVal);
50
+ Serial.print(" L: "); Serial.print(leftSpeed);
51
+ Serial.print(" R: "); Serial.println(rightSpeed);
52
+
53
+ delay(20);
54
+}
55
+
56
+void setMotor(int in1, int in2, int ena, int speed) {
57
+ if (speed > 0) {
58
+ digitalWrite(in1, HIGH);
59
+ digitalWrite(in2, LOW);
60
+ } else if (speed < 0) {
61
+ digitalWrite(in1, LOW);
62
+ digitalWrite(in2, HIGH);
63
+ } else {
64
+ digitalWrite(in1, LOW);
65
+ digitalWrite(in2, LOW);
66
+ }
67
+ analogWrite(ena, abs(speed));
68
+}
app-dat/RC-dat/RC-code-dat/RC-code-dat.md
... ...
@@ -5,6 +5,12 @@
5 5
6 6
- [[SDR1064-dat]]
7 7
8
+## code
9
+
10
+- [[PWM-1ch.ino]] - [[PWM-2ch.ino]] - [[PWM-2ch-v2.ino]]
11
+
8 12
## ref
9 13
10
-- [[PWM-dat]]
... ...
\ No newline at end of file
0
+- [[PWM-dat]]
1
+
2
+- [[RC-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-dat.md
... ...
@@ -12,9 +12,9 @@
12 12
13 13
- [[UAV-dat]]
14 14
15
-## RC - protocols
15
+## RC - signal
16 16
17
-- [[RC-protocols-dat]]
17
+- [[RC-signal-dat]]
18 18
19 19
## RC - systems
20 20
app-dat/RC-dat/RC-protocols/CRSF-dat/CRSF-dat.md
... ...
@@ -1,74 +0,0 @@
1
-
2
-# CRSF-dat
3
-
4
-CRSF (Crossfire Serial Protocol) is a low-latency, high-speed serial protocol developed by **Team BlackSheep (TBS)** for communication between radio receivers (like TBS Crossfire Nano RX) and flight controllers.
5
-
6
-It’s used in RC applications (especially FPV drones) to transmit RC channel data, telemetry, and link status over a compact serial format.
7
-
8
-CRSF packets are binary data. Here's the basic structure of a CRSF packet:
9
-
10
-## CRSF Packet Structure (General)
11
-
12
-| Byte Index | Name | Description |
13
-|------------|----------------|---------------------------------------------|
14
-| 0 | Device Address | Who is sending (e.g., RX, TX) |
15
-| 1 | Frame Length | Length of payload + 1 (type byte + data) |
16
-| 2 | Frame Type | Type of data (e.g., RC channels, telemetry) |
17
-| 3 - N | Payload | Actual data, varies by Frame Type |
18
-| Last Byte | CRC | Checksum for packet validation |
19
-
20
-
21
-This is how a typical RC channel data packet might look (in hex):
22
-
23
-C8 18 16 A1 84 3F C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9E
24
-
25
-## RC Channel Encoding (Packed 11-bit)
26
-
27
-Each RC channel is packed as 11-bit little-endian integers, with up to 16 channels per frame. Example values:
28
-
29
-- 1000 → channel center
30
-- 172 → min
31
-- 1811 → max
32
-
33
-## read data via serial
34
-
35
-Yes, you can use a serial port to read CRSF data, because CRSF is a serial protocol — specifically, a half-duplex, asynchronous UART protocol using 8N1 (8 data bits, no parity, 1 stop bit).
36
-
37
-### 📡 CRSF over Serial – Quick Guide
38
-
39
-- **Baud rate**: 420000 or 115200 (depends on TX/RX version or setting)
40
-- **Protocol**: UART (8N1)
41
-- **Signal direction**: Half-duplex (same wire for TX and RX)
42
-- **Voltage**: 3.3V (NOT 5V safe on most Crossfire receivers)
43
-- **Typical usage**: Read CRSF data from TBS Nano RX or TX
44
-
45
-#### 🧰 What You Need:
46
-- A microcontroller or board with UART support (e.g., Arduino, ESP32, STM32, Raspberry Pi)
47
-- Logic-level conversion (if needed for 3.3V safety)
48
-- CRSF-compatible device (e.g., TBS Crossfire Nano RX)
49
-
50
-Code Concept (Pseudocode)
51
-
52
-
53
- Serial.begin(420000); // Or 115200 for some TX modules
54
-
55
- void loop() {
56
- if (Serial.available()) {
57
- uint8_t byte = Serial.read();
58
- // Process CRSF packet bytes here
59
- }
60
- }
61
-
62
-
63
-
64
-## via ardupilot
65
-
66
-If you wish to use telemetry then a receiver can be connected to a UART utilizing the CRSF protocol.
67
-
68
-CRSF is a full-duplex protocol that supports integrated telemetry and a number of other features. Connect the RX pin of the UART to the CRSF TX pin of the CRSF device and vice versa. Currently a full-duplex UART connection is required. For best performance a UART with DMA capability on its RX port is desirable, but not required. A message will be displayed once on the GCS console, if connected to a UART without this capability on an F4/F7 based autopilot.
69
-
70
-https://ardupilot.org/rover/docs/common-tbs-rc.html#common-tbs-rc
71
-
72
-## ref
73
-
74
-- [[FPV-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/ELRS-dat/2025-04-25-17-30-48.png
... ...
Binary files a/app-dat/RC-dat/RC-protocols/ELRS-dat/2025-04-25-17-30-48.png and /dev/null differ
app-dat/RC-dat/RC-protocols/ELRS-dat/2025-04-25-17-34-11.png
... ...
Binary files a/app-dat/RC-dat/RC-protocols/ELRS-dat/2025-04-25-17-34-11.png and /dev/null differ
app-dat/RC-dat/RC-protocols/ELRS-dat/2025-05-04-15-29-54.png
... ...
Binary files a/app-dat/RC-dat/RC-protocols/ELRS-dat/2025-05-04-15-29-54.png and /dev/null differ
app-dat/RC-dat/RC-protocols/ELRS-dat/2025-05-04-15-31-56.png
... ...
Binary files a/app-dat/RC-dat/RC-protocols/ELRS-dat/2025-05-04-15-31-56.png and /dev/null differ
app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-915M-dat.md
... ...
@@ -1,4 +0,0 @@
1
-
2
-# ELRS-915M-dat.md
3
-
4
-![](2025-04-25-17-30-48.png)
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-CHS-PWM-dat.md
... ...
@@ -1,4 +0,0 @@
1
-
2
-# ELRS-CHS-PWM-dat.md
3
-
4
-![](2025-04-25-17-34-11.png)
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-RX-dat/2025-04-25-16-52-56.png
... ...
Binary files a/app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-RX-dat/2025-04-25-16-52-56.png and /dev/null differ
app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-RX-dat/2025-04-25-16-55-05.png
... ...
Binary files a/app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-RX-dat/2025-04-25-16-55-05.png and /dev/null differ
app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-RX-dat/ELRS-RX-dat.md
... ...
@@ -1,43 +0,0 @@
1
-
2
-# ELRS-RX-dat
3
-
4
-
5
-## T-anntena version
6
-
7
-![](2025-04-25-16-52-56.png)
8
-
9
-## SMD antenna version
10
-
11
-## info
12
-
13
-Nano2400-RX receiver with power amplifier (PA+LNA).
14
-
15
-Therefore, it has 100mW telemetry output and better sensitivity at longer distances.
16
-
17
-It uses an IPEX1 antenna connector.
18
-
19
-Paired with an external dipole T-antenna (customized by a professional factory, each antenna is tested with professional instruments to ensure quality, lightness, and durability).
20
-
21
-The CYCLONE series receivers are based on the open-source architecture and program of ExpressLRS.
22
-
23
-We have released 3 types of RX receiver modules. All use the [[ESP8285-dat]] [[MCU-dat]]. You can upgrade the firmware via [[WIFI-dat]], which is very user-friendly.
24
-
25
-Typically, after powering the receiver and with the remote controller turned off, the ExpressLRS hotspot can be found after a default of 60 seconds. Connect to this hotspot using a computer or mobile phone.
26
-
27
-The password is "expresslrs", and then you can access 10.0.0.1 to upload the receiver firmware.
28
-
29
-## Product Features
30
-
31
-- High refresh rate 100mW telemetry output;
32
-- Supports convenient and fast firmware flashing via WIFI connection;
33
-- Firmware Version: 3.3.0 [BETAFPVLite2400RX]
34
-- Equipped with a power amplifier (PA+LNA), providing 100mW telemetry output and better response speed;
35
-- Theoretically compatible with most ELRS 2.4G transmitter modules on the market (requires firmware version 2.0 or above).
36
-
37
-![](2025-04-25-16-55-05.png)
38
-
39
-
40
-
41
-## ref
42
-
43
-- [[ELRS-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-dat.md
... ...
@@ -1,143 +0,0 @@
1
-
2
-# ELRS-dat
3
-
4
-Info - [[ELRS-frequency-dat]] - [[ELRS-faq-dat]]
5
-
6
-
7
-## ELRS-link
8
-
9
-ELRS-remote-console-tx
10
-
11
-- BETAFPV literadio 3
12
-- BETAFPV literadio 2
13
-
14
-- [[edge-tx-dat]] - [[radiomaster-dat]] - [[lightradio-dat]]
15
-
16
-- [[ELRS-RX-dat]] - [[SX1276-dat]] - [[ESP8285-dat]] - [[ESP32-dat]] - [[SX1281-dat]] - [[SX1208-dat]]
17
-
18
-protocol output - - [[CRSF-dat]]
19
-
20
-- [[CC2500-dat]]
21
-
22
-- [[ELRS-915M-dat]] - [[ELRS-CHS-PWM-dat]] - [[ELRS-2.4Ghz-dat]]
23
-
24
-- [[ELRS]]
25
-
26
-## resources
27
-
28
-https://github.com/ExpressLRS/ExpressLRS
29
-
30
-https://www.expresslrs.org/quick-start/getting-started/
31
-
32
-[ExpressLRS-Configurator-releases](https://github.com/ExpressLRS/ExpressLRS-Configurator/releases)
33
-
34
-
35
-
36
-## **ExpressLRS (ELRS) 2.4GHz Standard Explained**
37
-
38
-**ExpressLRS (ELRS) 2.4GHz** is an open-source **long-range, low-latency radio control link** developed for FPV drones and RC applications. It offers **high performance, ultra-fast response times, and robust signal reliability** compared to traditional RC protocols like FrSky, Crossfire, and Ghost.
39
-
40
----
41
-
42
-### **🔹 Key Features of ELRS 2.4GHz**
43
-- **Ultra-Low Latency** (~5ms in high-speed mode).
44
-- **Long-Range Performance** (Up to **30km+** with proper setup).
45
-- **High Packet Rate (Up to 1000Hz)** for **smooth & responsive controls**.
46
-- **Open-Source & Customizable** (Community-driven development).
47
-- **Affordable Hardware** (Compared to Crossfire or Ghost).
48
-- **Wide Compatibility** (Supported on many **radio transmitters & receivers**).
49
-
50
----
51
-
52
-### **🔹 ELRS 2.4GHz vs. Other RC Links**
53
-| Feature | ELRS 2.4GHz | TBS Crossfire | Ghost 2.4GHz | FrSky R9M |
54
-| --------------- | ------------ | ------------- | ------------ | ----------- |
55
-| **Frequency** | 2.4GHz | 900MHz | 2.4GHz | 900MHz |
56
-| **Max Range** | ~30km+ | ~50km+ | ~15km | ~10-20km |
57
-| **Latency** | 5-7ms | 15-50ms | ~4ms | ~20ms |
58
-| **Packet Rate** | Up to 1000Hz | 50-150Hz | 500Hz | ~100Hz |
59
-| **Open Source** | ✅ Yes | ❌ No | ❌ No | ❌ No |
60
-| **Cost** | 💰 Affordable | 💰💰 Expensive | 💰💰 Expensive | 💰 Mid-Range |
61
-
62
----
63
-
64
-### **🔹 ELRS 2.4GHz Modes & Performance**
65
-| Mode | Packet Rate | Latency | Range |
66
-| --------- | ----------- | ------- | --------------------- |
67
-| **500Hz** | 500Hz | ~5ms | Short (~3km) |
68
-| **250Hz** | 250Hz | ~7ms | Mid (~10km) |
69
-| **150Hz** | 150Hz | ~10ms | Long (~20km) |
70
-| **50Hz** | 50Hz | ~20ms | Extreme Long (~30km+) |
71
-
72
-🔹 **Higher packet rate = Lower latency, but reduced range**
73
-🔹 **Lower packet rate = Higher range, but increased latency**
74
-
75
----
76
-
77
-### **🔹 Recommended ExpressLRS 2.4GHz Hardware**
78
-#### **🛠️ Transmitters (TX)**
79
-- **RadioMaster Zorro ELRS 2.4GHz**
80
-- **Jumper T20S (Built-in ELRS)**
81
-- **Happymodel ES24TX Pro (External ELRS Module)**
82
-- **BetaFPV ELRS Micro TX Module**
83
-
84
-#### **📡 Receivers (RX)**
85
-- **Happymodel EP2 (Tiny, best for micro quads)**
86
-- **BetaFPV ELRS 2.4GHz Nano RX**
87
-- **Radiomaster RP1 / RP2 RX (Great range & reliability)**
88
-
89
----
90
-
91
-### **🔹 Why Choose ELRS 2.4GHz?**
92
-✅ **Best for FPV Racing & Freestyle** → **Low latency & fast response**
93
-✅ **Perfect for Long-Range FPV** → **Good range at lower packet rates**
94
-✅ **Affordable & Open-Source** → **Cheaper than Crossfire & Ghost**
95
-
96
-🚀 **If you need ultra-low latency for FPV racing or long-range performance at an affordable price, ExpressLRS 2.4GHz is the best choice!** 🔥
97
-
98
-
99
-## 2.4hz compare to LORA 915mhz
100
-
101
-| Feature | DJI NC3 (OcuSync 2.0) | ELRS 2.4GHz (100mW) | ELRS 915MHz (100mW, SX1276) |
102
-|----------------------------|---------------------------|------------------------------|-------------------------------|
103
-| Protocol Type | Proprietary digital (DJI) | Open-source LoRa/FLRC | Open-source LoRa |
104
-| Frequency Band | 2.4GHz + 5.8GHz | 2.4GHz | 915MHz |
105
-| Max Packet Rate | N/A (digital control/video)| Up to 500Hz | Up to 50Hz |
106
-| Latency (best-case) | ~120 ms (control + video) | ~2.5 ms (500Hz) | ~20 ms (50Hz) |
107
-| Typical Latency | ~120–150 ms | ~6–13 ms | ~22–30 ms |
108
-| Max Range (LOS, FCC) | ~10 km | ~2 km | ~10 km |
109
-| Penetration (Obstacles) | Moderate | Moderate | Strong |
110
-| Interference Resistance | High (hopping + digital) | Moderate | Strong |
111
-| Video Support | Yes (integrated) | No | No |
112
-| Use Case | DJI drones (Mini, Air) | FPV racing, freestyle | Long-range FPV, endurance |
113
-| Antenna Size | Small | Small | Larger |
114
-| Custom Flight Controllers | Not supported | Fully supported | Fully supported |
115
-
116
-
117
-❌ No — ELRS does not support 5.8GHz (as of now).
118
-
119
-- [[LORA-dat]] - [[RF-2.4ghz-dat]]
120
-
121
-- [[5.8Ghz-dat]]
122
-
123
-
124
-## WebUI
125
-
126
-### Via "ExpressLRS RX" Access Point
127
-
128
-![](2025-05-04-15-29-54.png)
129
-
130
-Load the Web UI on your browser using these addresses:
131
-
132
-http://10.0.0.1/ - If you have connected to the ExpressLRS RX Access Point
133
-
134
-### Via button press
135
-
136
-![](2025-05-04-15-31-56.png)
137
-
138
-
139
-## ref
140
-
141
-- [[FPV-dat]]
142
-
143
-- [[ELRS]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-faq-dat.md
... ...
@@ -1,26 +0,0 @@
1
-
2
-# ELRS-faq-dat
3
-
4
-## Frequently Asked Questions (FAQ)
5
-
6
-**Q1: Can this receiver bind with a transmitter module (TX module) from brand XXX?**
7
-**A:** The ELRS project is open-source. Therefore, as long as the TX module uses the ELRS protocol, regardless of the brand, they can bind with each other, provided three conditions are met:
8
- 1. **Same Frequency:** Both must operate on the same frequency band (e.g., both 2.4GHz or both 915MHz).
9
- 2. **Matching Firmware Version:** The firmware versions must be identical. For example, if the TX module is flashed with firmware version 2.5.0, the receiver must also be flashed with version 2.5.0.
10
- 3. **Binding Phrase:** Either both devices have no binding phrase set, or they both have the exact same binding phrase configured.
11
-
12
-**Q2: How do I enter binding mode?**
13
-**A:** After soldering the receiver, quickly power cycle the aircraft three times: power on then immediately power off, power on then immediately power off, power on and leave it on. Each power cycle interval should be less than 1.5 seconds. If performed correctly, the receiver's LED will flash quickly twice in a repeating pattern, indicating it is in binding mode. Then, use the bind function/button on your remote controller (often found in the ELRS Lua script). Once binding is successful, the receiver's LED will turn solid.
14
-
15
-**Q3: The first time I used my receiver, it wouldn't enter binding mode, and the LED stayed solid. Why?**
16
-**A:** We've encountered this issue in support cases. It's often caused by an abnormality on the flight controller's TX/RX UART port, which forces the receiver into bootloader/firmware flashing mode upon power-up. Switching the receiver connection to a different, functional TX/RX UART port on the flight controller usually resolves this.
17
-
18
-**Q4: Why is my receiver's LED flashing quickly and continuously?**
19
-**A:** If the receiver is powered on but doesn't enter binding mode (or if it's already bound but the remote controller is off), it will automatically enter Wi-Fi firmware update mode after approximately 60 seconds of not receiving a signal. The fast flashing indicates Wi-Fi mode is active.
20
-
21
-**Q5: How do I enter Wi-Fi mode to update the receiver's firmware?**
22
-**A:** As mentioned above, simply power on the receiver and wait. If it doesn't connect to a transmitter within about 60 seconds, it will automatically enter Wi-Fi update mode, indicated by the rapidly flashing LED.
23
-
24
-
25
-## ref
26
-
app-dat/RC-dat/RC-protocols/ELRS-dat/ELRS-frequency-dat.md
... ...
@@ -1,20 +0,0 @@
1
-
2
-# ELRS-frequency-dat.md
3
-
4
-| Feature | ELRS 915MHz (LoRa) | ELRS 2.4GHz (LoRa/FLRC) |
5
-|---------------------|-----------------------------|------------------------------|
6
-| Frequency Band | 915 MHz | 2.4 GHz |
7
-| Range (LOS, 100mW) | ✅ 5–10+ km | ⚠️ 1–2 km |
8
-| Penetration | ✅ Strong (trees, buildings) | ⚠️ Moderate |
9
-| Latency | ❌ ~20–30 ms | ✅ ~2.5–13 ms |
10
-| Max Packet Rate | ❌ ~50Hz | ✅ Up to 500Hz |
11
-| Antenna Size | ❌ Large | ✅ Small |
12
-| Interference Avoidance | ✅ Less crowded band | ⚠️ More Wi-Fi/Bluetooth noise |
13
-| Use Case | Long-range, endurance | Freestyle, racing |
14
-| Power Efficiency | ✅ High (lower data rate) | ✅ High (LoRa + FLRC modes) |
15
-| Hardware Support | Older SX1276 modules | Newer SX1280 + ESP modules |
16
-
17
-
18
-## ref
19
-
20
-- [[ELRS-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/FrSky-dat/FrSky-dat.md
... ...
@@ -1,4 +0,0 @@
1
-
2
-# FrSky-dat
3
-
4
-- [[CC2500-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/PPM-dat/PPM-dat.md
... ...
@@ -1,27 +0,0 @@
1
-
2
-# PPM-dat
3
-
4
-- [[Wfly-dat]]
5
-
6
-- [[PWM-dat]]
7
-
8
-PPM (Pulse Position Modulation) is a type of analog signal used in radio control (RC) systems to transmit multiple channels of control information (like throttle, steering, elevator, etc.) over a single wire.
9
-
10
-In simple terms:
11
-
12
-- It sends a series of pulses.
13
-- The position (or timing) of each pulse within a repeating frame represents the value for a specific channel.
14
-- A longer "sync" pulse marks the end of one frame and the beginning of the next.
15
-
16
-So, instead of needing a separate wire for each control channel, PPM combines them into one sequential signal.
17
-
18
-## demo video
19
-
20
-[RC #PPM PWM send and receive at Arduino, note the four channels color](https://youtube.com/shorts/BDdSFPlh9KE?si=n1oF2KUIMqEeH1QW)
21
-
22
-
23
-
24
-
25
-## ref
26
-
27
-- [[RC-protocols-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/RC-protocols-dat.md
... ...
@@ -1,16 +0,0 @@
1
-
2
-# RC-protocols-dat.md
3
-
4
-- [[edge-tx-dat]]
5
-
6
-- [[CRSF-dat]]
7
-
8
-- [[FrSky-dat]] == [[CC2500-dat]]
9
-
10
-- [[ELRS-dat]]
11
-
12
-- [[SBUS-dat]] - [[PPM-dat]]
13
-
14
-## ref
15
-
16
-- [[RC-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-protocols/SBUS-dat/SBUS-dat.md
... ...
@@ -1,75 +0,0 @@
1
-
2
-# SBUS-dat
3
-
4
-- [[futaba-dat]]
5
-
6
-## 📡 What is SBUS? — Simple Explanation
7
-
8
-**SBUS (Serial Bus)** is a digital protocol used in RC systems to send multiple control signals (channels) over a single wire.
9
-
10
----
11
-
12
-### 🧩 Key Features
13
-
14
-- 🔢 **Up to 16 channels** in one signal
15
-- 💬 **Digital serial protocol**
16
-- 📦 Sends data in **serial frames**
17
-- ⏱️ **100,000 baud**, **inverted UART**
18
-- ↪️ Invented by **Futaba**, widely used (FrSky, Radiolink, etc.)
19
-- 🧠 Needs **inversion** to be read by normal UART (hardware or software)
20
-
21
----
22
-
23
-### 🧱 Simple Analogy
24
-
25
-> SBUS is like 16 people taking turns speaking very fast on one microphone.
26
-> Each frame contains all channel values packed tightly together.
27
-
28
----
29
-
30
-### 🧪 Data Frame Structure
31
-
32
-Each SBUS frame is 25 bytes:
33
-
34
-| 1 byte | 22 bytes | 1 byte | 1 byte |
35
-| ------ | ----------- | ------ | ------ |
36
-| Header | 16 channels | Flags | End |
37
-
38
-
39
-
40
-- **Header**: 0x0F
41
-- **End**: 0x00
42
-- Sent **every ~9ms** (111Hz refresh rate)
43
-
44
----
45
-
46
-### 🔌 Common Use Cases
47
-
48
-- RC Receiver → Flight Controller (e.g., FrSky RX to Betaflight FC)
49
-- RC Receiver → Microcontroller (Arduino, ESP32)
50
-- RC → Servo controller boards (if SBUS supported)
51
-
52
----
53
-
54
-### ⚖️ SBUS vs PWM vs PPM
55
-
56
-| Feature | SBUS | PWM | PPM |
57
-|---------------|-------------|---------------|---------------|
58
-| Channels | 16 | 1 per wire | 8 (typically) |
59
-| Wires needed | 1 | 1 per channel | 1 |
60
-| Type | Digital | Analog pulse | Analog pulse |
61
-| Speed | Very fast | Slow | Medium |
62
-| Latency | Very low | High | Medium |
63
-
64
----
65
-
66
-### 🧰 Tip for Developers
67
-
68
-To read SBUS using a microcontroller:
69
-- Use **UART** at **100000 baud**, **8E2**, **inverted signal**
70
-- Some MCUs (like ESP32) support inversion natively
71
-- Otherwise, use an **inverter circuit** or a software decoder
72
-
73
-## ref
74
-
75
-- [[network-dat]]
app-dat/RC-dat/RC-protocols/edge-tx-dat/edge-tx-dat.md
... ...
@@ -1,4 +0,0 @@
1
-
2
-# edge-tx-dat
3
-
4
-https://github.com/EdgeTX/edgetx
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/CRSF-dat/CRSF-dat.md
... ...
@@ -0,0 +1,74 @@
1
+
2
+# CRSF-dat
3
+
4
+CRSF (Crossfire Serial Protocol) is a low-latency, high-speed serial protocol developed by **Team BlackSheep (TBS)** for communication between radio receivers (like TBS Crossfire Nano RX) and flight controllers.
5
+
6
+It’s used in RC applications (especially FPV drones) to transmit RC channel data, telemetry, and link status over a compact serial format.
7
+
8
+CRSF packets are binary data. Here's the basic structure of a CRSF packet:
9
+
10
+## CRSF Packet Structure (General)
11
+
12
+| Byte Index | Name | Description |
13
+|------------|----------------|---------------------------------------------|
14
+| 0 | Device Address | Who is sending (e.g., RX, TX) |
15
+| 1 | Frame Length | Length of payload + 1 (type byte + data) |
16
+| 2 | Frame Type | Type of data (e.g., RC channels, telemetry) |
17
+| 3 - N | Payload | Actual data, varies by Frame Type |
18
+| Last Byte | CRC | Checksum for packet validation |
19
+
20
+
21
+This is how a typical RC channel data packet might look (in hex):
22
+
23
+C8 18 16 A1 84 3F C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9E
24
+
25
+## RC Channel Encoding (Packed 11-bit)
26
+
27
+Each RC channel is packed as 11-bit little-endian integers, with up to 16 channels per frame. Example values:
28
+
29
+- 1000 → channel center
30
+- 172 → min
31
+- 1811 → max
32
+
33
+## read data via serial
34
+
35
+Yes, you can use a serial port to read CRSF data, because CRSF is a serial protocol — specifically, a half-duplex, asynchronous UART protocol using 8N1 (8 data bits, no parity, 1 stop bit).
36
+
37
+### 📡 CRSF over Serial – Quick Guide
38
+
39
+- **Baud rate**: 420000 or 115200 (depends on TX/RX version or setting)
40
+- **Protocol**: UART (8N1)
41
+- **Signal direction**: Half-duplex (same wire for TX and RX)
42
+- **Voltage**: 3.3V (NOT 5V safe on most Crossfire receivers)
43
+- **Typical usage**: Read CRSF data from TBS Nano RX or TX
44
+
45
+#### 🧰 What You Need:
46
+- A microcontroller or board with UART support (e.g., Arduino, ESP32, STM32, Raspberry Pi)
47
+- Logic-level conversion (if needed for 3.3V safety)
48
+- CRSF-compatible device (e.g., TBS Crossfire Nano RX)
49
+
50
+Code Concept (Pseudocode)
51
+
52
+
53
+ Serial.begin(420000); // Or 115200 for some TX modules
54
+
55
+ void loop() {
56
+ if (Serial.available()) {
57
+ uint8_t byte = Serial.read();
58
+ // Process CRSF packet bytes here
59
+ }
60
+ }
61
+
62
+
63
+
64
+## via ardupilot
65
+
66
+If you wish to use telemetry then a receiver can be connected to a UART utilizing the CRSF protocol.
67
+
68
+CRSF is a full-duplex protocol that supports integrated telemetry and a number of other features. Connect the RX pin of the UART to the CRSF TX pin of the CRSF device and vice versa. Currently a full-duplex UART connection is required. For best performance a UART with DMA capability on its RX port is desirable, but not required. A message will be displayed once on the GCS console, if connected to a UART without this capability on an F4/F7 based autopilot.
69
+
70
+https://ardupilot.org/rover/docs/common-tbs-rc.html#common-tbs-rc
71
+
72
+## ref
73
+
74
+- [[FPV-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/ELRS-dat/2025-04-25-17-30-48.png
... ...
Binary files /dev/null and b/app-dat/RC-dat/RC-signal/ELRS-dat/2025-04-25-17-30-48.png differ
app-dat/RC-dat/RC-signal/ELRS-dat/2025-04-25-17-34-11.png
... ...
Binary files /dev/null and b/app-dat/RC-dat/RC-signal/ELRS-dat/2025-04-25-17-34-11.png differ
app-dat/RC-dat/RC-signal/ELRS-dat/2025-05-04-15-29-54.png
... ...
Binary files /dev/null and b/app-dat/RC-dat/RC-signal/ELRS-dat/2025-05-04-15-29-54.png differ
app-dat/RC-dat/RC-signal/ELRS-dat/2025-05-04-15-31-56.png
... ...
Binary files /dev/null and b/app-dat/RC-dat/RC-signal/ELRS-dat/2025-05-04-15-31-56.png differ
app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-915M-dat.md
... ...
@@ -0,0 +1,4 @@
1
+
2
+# ELRS-915M-dat.md
3
+
4
+![](2025-04-25-17-30-48.png)
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-CHS-PWM-dat.md
... ...
@@ -0,0 +1,4 @@
1
+
2
+# ELRS-CHS-PWM-dat.md
3
+
4
+![](2025-04-25-17-34-11.png)
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-RX-dat/2025-04-25-16-52-56.png
... ...
Binary files /dev/null and b/app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-RX-dat/2025-04-25-16-52-56.png differ
app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-RX-dat/2025-04-25-16-55-05.png
... ...
Binary files /dev/null and b/app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-RX-dat/2025-04-25-16-55-05.png differ
app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-RX-dat/ELRS-RX-dat.md
... ...
@@ -0,0 +1,43 @@
1
+
2
+# ELRS-RX-dat
3
+
4
+
5
+## T-anntena version
6
+
7
+![](2025-04-25-16-52-56.png)
8
+
9
+## SMD antenna version
10
+
11
+## info
12
+
13
+Nano2400-RX receiver with power amplifier (PA+LNA).
14
+
15
+Therefore, it has 100mW telemetry output and better sensitivity at longer distances.
16
+
17
+It uses an IPEX1 antenna connector.
18
+
19
+Paired with an external dipole T-antenna (customized by a professional factory, each antenna is tested with professional instruments to ensure quality, lightness, and durability).
20
+
21
+The CYCLONE series receivers are based on the open-source architecture and program of ExpressLRS.
22
+
23
+We have released 3 types of RX receiver modules. All use the [[ESP8285-dat]] [[MCU-dat]]. You can upgrade the firmware via [[WIFI-dat]], which is very user-friendly.
24
+
25
+Typically, after powering the receiver and with the remote controller turned off, the ExpressLRS hotspot can be found after a default of 60 seconds. Connect to this hotspot using a computer or mobile phone.
26
+
27
+The password is "expresslrs", and then you can access 10.0.0.1 to upload the receiver firmware.
28
+
29
+## Product Features
30
+
31
+- High refresh rate 100mW telemetry output;
32
+- Supports convenient and fast firmware flashing via WIFI connection;
33
+- Firmware Version: 3.3.0 [BETAFPVLite2400RX]
34
+- Equipped with a power amplifier (PA+LNA), providing 100mW telemetry output and better response speed;
35
+- Theoretically compatible with most ELRS 2.4G transmitter modules on the market (requires firmware version 2.0 or above).
36
+
37
+![](2025-04-25-16-55-05.png)
38
+
39
+
40
+
41
+## ref
42
+
43
+- [[ELRS-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-dat.md
... ...
@@ -0,0 +1,143 @@
1
+
2
+# ELRS-dat
3
+
4
+Info - [[ELRS-frequency-dat]] - [[ELRS-faq-dat]]
5
+
6
+
7
+## ELRS-link
8
+
9
+ELRS-remote-console-tx
10
+
11
+- BETAFPV literadio 3
12
+- BETAFPV literadio 2
13
+
14
+- [[edge-tx-dat]] - [[radiomaster-dat]] - [[lightradio-dat]]
15
+
16
+- [[ELRS-RX-dat]] - [[SX1276-dat]] - [[ESP8285-dat]] - [[ESP32-dat]] - [[SX1281-dat]] - [[SX1208-dat]]
17
+
18
+protocol output - - [[CRSF-dat]]
19
+
20
+- [[CC2500-dat]]
21
+
22
+- [[ELRS-915M-dat]] - [[ELRS-CHS-PWM-dat]] - [[ELRS-2.4Ghz-dat]]
23
+
24
+- [[ELRS]]
25
+
26
+## resources
27
+
28
+https://github.com/ExpressLRS/ExpressLRS
29
+
30
+https://www.expresslrs.org/quick-start/getting-started/
31
+
32
+[ExpressLRS-Configurator-releases](https://github.com/ExpressLRS/ExpressLRS-Configurator/releases)
33
+
34
+
35
+
36
+## **ExpressLRS (ELRS) 2.4GHz Standard Explained**
37
+
38
+**ExpressLRS (ELRS) 2.4GHz** is an open-source **long-range, low-latency radio control link** developed for FPV drones and RC applications. It offers **high performance, ultra-fast response times, and robust signal reliability** compared to traditional RC protocols like FrSky, Crossfire, and Ghost.
39
+
40
+---
41
+
42
+### **🔹 Key Features of ELRS 2.4GHz**
43
+- **Ultra-Low Latency** (~5ms in high-speed mode).
44
+- **Long-Range Performance** (Up to **30km+** with proper setup).
45
+- **High Packet Rate (Up to 1000Hz)** for **smooth & responsive controls**.
46
+- **Open-Source & Customizable** (Community-driven development).
47
+- **Affordable Hardware** (Compared to Crossfire or Ghost).
48
+- **Wide Compatibility** (Supported on many **radio transmitters & receivers**).
49
+
50
+---
51
+
52
+### **🔹 ELRS 2.4GHz vs. Other RC Links**
53
+| Feature | ELRS 2.4GHz | TBS Crossfire | Ghost 2.4GHz | FrSky R9M |
54
+| --------------- | ------------ | ------------- | ------------ | ----------- |
55
+| **Frequency** | 2.4GHz | 900MHz | 2.4GHz | 900MHz |
56
+| **Max Range** | ~30km+ | ~50km+ | ~15km | ~10-20km |
57
+| **Latency** | 5-7ms | 15-50ms | ~4ms | ~20ms |
58
+| **Packet Rate** | Up to 1000Hz | 50-150Hz | 500Hz | ~100Hz |
59
+| **Open Source** | ✅ Yes | ❌ No | ❌ No | ❌ No |
60
+| **Cost** | 💰 Affordable | 💰💰 Expensive | 💰💰 Expensive | 💰 Mid-Range |
61
+
62
+---
63
+
64
+### **🔹 ELRS 2.4GHz Modes & Performance**
65
+| Mode | Packet Rate | Latency | Range |
66
+| --------- | ----------- | ------- | --------------------- |
67
+| **500Hz** | 500Hz | ~5ms | Short (~3km) |
68
+| **250Hz** | 250Hz | ~7ms | Mid (~10km) |
69
+| **150Hz** | 150Hz | ~10ms | Long (~20km) |
70
+| **50Hz** | 50Hz | ~20ms | Extreme Long (~30km+) |
71
+
72
+🔹 **Higher packet rate = Lower latency, but reduced range**
73
+🔹 **Lower packet rate = Higher range, but increased latency**
74
+
75
+---
76
+
77
+### **🔹 Recommended ExpressLRS 2.4GHz Hardware**
78
+#### **🛠️ Transmitters (TX)**
79
+- **RadioMaster Zorro ELRS 2.4GHz**
80
+- **Jumper T20S (Built-in ELRS)**
81
+- **Happymodel ES24TX Pro (External ELRS Module)**
82
+- **BetaFPV ELRS Micro TX Module**
83
+
84
+#### **📡 Receivers (RX)**
85
+- **Happymodel EP2 (Tiny, best for micro quads)**
86
+- **BetaFPV ELRS 2.4GHz Nano RX**
87
+- **Radiomaster RP1 / RP2 RX (Great range & reliability)**
88
+
89
+---
90
+
91
+### **🔹 Why Choose ELRS 2.4GHz?**
92
+✅ **Best for FPV Racing & Freestyle** → **Low latency & fast response**
93
+✅ **Perfect for Long-Range FPV** → **Good range at lower packet rates**
94
+✅ **Affordable & Open-Source** → **Cheaper than Crossfire & Ghost**
95
+
96
+🚀 **If you need ultra-low latency for FPV racing or long-range performance at an affordable price, ExpressLRS 2.4GHz is the best choice!** 🔥
97
+
98
+
99
+## 2.4hz compare to LORA 915mhz
100
+
101
+| Feature | DJI NC3 (OcuSync 2.0) | ELRS 2.4GHz (100mW) | ELRS 915MHz (100mW, SX1276) |
102
+|----------------------------|---------------------------|------------------------------|-------------------------------|
103
+| Protocol Type | Proprietary digital (DJI) | Open-source LoRa/FLRC | Open-source LoRa |
104
+| Frequency Band | 2.4GHz + 5.8GHz | 2.4GHz | 915MHz |
105
+| Max Packet Rate | N/A (digital control/video)| Up to 500Hz | Up to 50Hz |
106
+| Latency (best-case) | ~120 ms (control + video) | ~2.5 ms (500Hz) | ~20 ms (50Hz) |
107
+| Typical Latency | ~120–150 ms | ~6–13 ms | ~22–30 ms |
108
+| Max Range (LOS, FCC) | ~10 km | ~2 km | ~10 km |
109
+| Penetration (Obstacles) | Moderate | Moderate | Strong |
110
+| Interference Resistance | High (hopping + digital) | Moderate | Strong |
111
+| Video Support | Yes (integrated) | No | No |
112
+| Use Case | DJI drones (Mini, Air) | FPV racing, freestyle | Long-range FPV, endurance |
113
+| Antenna Size | Small | Small | Larger |
114
+| Custom Flight Controllers | Not supported | Fully supported | Fully supported |
115
+
116
+
117
+❌ No — ELRS does not support 5.8GHz (as of now).
118
+
119
+- [[LORA-dat]] - [[RF-2.4ghz-dat]]
120
+
121
+- [[5.8Ghz-dat]]
122
+
123
+
124
+## WebUI
125
+
126
+### Via "ExpressLRS RX" Access Point
127
+
128
+![](2025-05-04-15-29-54.png)
129
+
130
+Load the Web UI on your browser using these addresses:
131
+
132
+http://10.0.0.1/ - If you have connected to the ExpressLRS RX Access Point
133
+
134
+### Via button press
135
+
136
+![](2025-05-04-15-31-56.png)
137
+
138
+
139
+## ref
140
+
141
+- [[FPV-dat]]
142
+
143
+- [[ELRS]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-faq-dat.md
... ...
@@ -0,0 +1,26 @@
1
+
2
+# ELRS-faq-dat
3
+
4
+## Frequently Asked Questions (FAQ)
5
+
6
+**Q1: Can this receiver bind with a transmitter module (TX module) from brand XXX?**
7
+**A:** The ELRS project is open-source. Therefore, as long as the TX module uses the ELRS protocol, regardless of the brand, they can bind with each other, provided three conditions are met:
8
+ 1. **Same Frequency:** Both must operate on the same frequency band (e.g., both 2.4GHz or both 915MHz).
9
+ 2. **Matching Firmware Version:** The firmware versions must be identical. For example, if the TX module is flashed with firmware version 2.5.0, the receiver must also be flashed with version 2.5.0.
10
+ 3. **Binding Phrase:** Either both devices have no binding phrase set, or they both have the exact same binding phrase configured.
11
+
12
+**Q2: How do I enter binding mode?**
13
+**A:** After soldering the receiver, quickly power cycle the aircraft three times: power on then immediately power off, power on then immediately power off, power on and leave it on. Each power cycle interval should be less than 1.5 seconds. If performed correctly, the receiver's LED will flash quickly twice in a repeating pattern, indicating it is in binding mode. Then, use the bind function/button on your remote controller (often found in the ELRS Lua script). Once binding is successful, the receiver's LED will turn solid.
14
+
15
+**Q3: The first time I used my receiver, it wouldn't enter binding mode, and the LED stayed solid. Why?**
16
+**A:** We've encountered this issue in support cases. It's often caused by an abnormality on the flight controller's TX/RX UART port, which forces the receiver into bootloader/firmware flashing mode upon power-up. Switching the receiver connection to a different, functional TX/RX UART port on the flight controller usually resolves this.
17
+
18
+**Q4: Why is my receiver's LED flashing quickly and continuously?**
19
+**A:** If the receiver is powered on but doesn't enter binding mode (or if it's already bound but the remote controller is off), it will automatically enter Wi-Fi firmware update mode after approximately 60 seconds of not receiving a signal. The fast flashing indicates Wi-Fi mode is active.
20
+
21
+**Q5: How do I enter Wi-Fi mode to update the receiver's firmware?**
22
+**A:** As mentioned above, simply power on the receiver and wait. If it doesn't connect to a transmitter within about 60 seconds, it will automatically enter Wi-Fi update mode, indicated by the rapidly flashing LED.
23
+
24
+
25
+## ref
26
+
app-dat/RC-dat/RC-signal/ELRS-dat/ELRS-frequency-dat.md
... ...
@@ -0,0 +1,20 @@
1
+
2
+# ELRS-frequency-dat.md
3
+
4
+| Feature | ELRS 915MHz (LoRa) | ELRS 2.4GHz (LoRa/FLRC) |
5
+|---------------------|-----------------------------|------------------------------|
6
+| Frequency Band | 915 MHz | 2.4 GHz |
7
+| Range (LOS, 100mW) | ✅ 5–10+ km | ⚠️ 1–2 km |
8
+| Penetration | ✅ Strong (trees, buildings) | ⚠️ Moderate |
9
+| Latency | ❌ ~20–30 ms | ✅ ~2.5–13 ms |
10
+| Max Packet Rate | ❌ ~50Hz | ✅ Up to 500Hz |
11
+| Antenna Size | ❌ Large | ✅ Small |
12
+| Interference Avoidance | ✅ Less crowded band | ⚠️ More Wi-Fi/Bluetooth noise |
13
+| Use Case | Long-range, endurance | Freestyle, racing |
14
+| Power Efficiency | ✅ High (lower data rate) | ✅ High (LoRa + FLRC modes) |
15
+| Hardware Support | Older SX1276 modules | Newer SX1280 + ESP modules |
16
+
17
+
18
+## ref
19
+
20
+- [[ELRS-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/FrSky-dat/FrSky-dat.md
... ...
@@ -0,0 +1,4 @@
1
+
2
+# FrSky-dat
3
+
4
+- [[CC2500-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/PPM-dat/PPM-dat.md
... ...
@@ -0,0 +1,27 @@
1
+
2
+# PPM-dat
3
+
4
+- [[Wfly-dat]]
5
+
6
+- [[PWM-dat]]
7
+
8
+PPM (Pulse Position Modulation) is a type of analog signal used in radio control (RC) systems to transmit multiple channels of control information (like throttle, steering, elevator, etc.) over a single wire.
9
+
10
+In simple terms:
11
+
12
+- It sends a series of pulses.
13
+- The position (or timing) of each pulse within a repeating frame represents the value for a specific channel.
14
+- A longer "sync" pulse marks the end of one frame and the beginning of the next.
15
+
16
+So, instead of needing a separate wire for each control channel, PPM combines them into one sequential signal.
17
+
18
+## demo video
19
+
20
+[RC #PPM PWM send and receive at Arduino, note the four channels color](https://youtube.com/shorts/BDdSFPlh9KE?si=n1oF2KUIMqEeH1QW)
21
+
22
+
23
+
24
+
25
+## ref
26
+
27
+- [[RC-protocols-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/RC-signal-dat.md
... ...
@@ -0,0 +1,109 @@
1
+
2
+# RC-signal-dat.md
3
+
4
+## RC-signals
5
+
6
+- [[WIFI-dat]]
7
+
8
+
9
+### Proprietary modulation schemes(专有调制方案)
10
+
11
+Toy RC systems may use other modulation methods like [[DSSS-dat]], [[FHSS-dat]], or non-standard GFSK configurations.
12
+
13
+- [[GFSK-dat]] = [[NRF24L01-dat]]
14
+
15
+- [[SBUS-dat]] - [[PPM-dat]] - [[PWM-dat]]
16
+
17
+Frequency Hopping:
18
+
19
+Many toy-grade RC transmitters hop between frequencies.
20
+
21
+#### DSSS (Direct Sequence Spread Spectrum)
22
+
23
+DSSS (Direct Sequence Spread Spectrum) is a method of transmitting radio signals by spreading the signal over a wider frequency band than the original data rate requires.
24
+
25
+**How DSSS Works:**
26
+
27
+The original data signal is multiplied by a "chipping code", a sequence of faster bits called "chips."
28
+
29
+This process spreads the energy of the signal over a wider bandwidth.
30
+
31
+The receiver, knowing the same chipping code, can reconstruct the original data.
32
+
33
+**Key Features:**
34
+
35
+Spreads signal across wide frequency band (increases resistance to interference and jamming).
36
+
37
+More secure and harder to intercept.
38
+
39
+Improves signal robustness in noisy environments.
40
+
41
+**DSSS in Real-World Use:**
42
+
43
+Used in older Wi-Fi standards (like 802.11b).
44
+
45
+Also found in some military and commercial RF systems.
46
+
47
+Some toy-grade 2.4GHz systems may use simple DSSS-like techniques to reduce cost and avoid interference.
48
+
49
+**Comparison with FHSS:**
50
+
51
+DSSS spreads signal continuously across a wide band.
52
+
53
+FHSS (Frequency Hopping Spread Spectrum) hops between frequencies in a sequence.
54
+
55
+### Compare with WIFI
56
+
57
+| Feature | Wi-Fi (ESP8266) | DSSS RC (Toy/Hobby) |
58
+| ----------- | --------------------------- | ------------------------------ |
59
+| Range | 30–100m typical | 20m (toy) to >1km (hobby) |
60
+| Latency | Medium | Very low |
61
+| Robustness | Lower (affected by routers) | High (designed for RF control) |
62
+| Ease of Use | Easy (phone control) | Needs RC Tx/Rx |
63
+
64
+
65
+## RC-protocols
66
+
67
+- [[edge-tx-dat]]
68
+
69
+- [[CRSF-dat]]
70
+
71
+- [[FrSky-dat]] == [[CC2500-dat]]
72
+
73
+- [[ELRS-dat]]
74
+
75
+
76
+## SDR
77
+
78
+Reverse engineering with a software-defined radio (SDR) (like RTL-SDR or HackRF).
79
+
80
+ You could record the RF signal and analyze it to reverse engineer the protocol.
81
+
82
+ This is complex and requires RF/digital signal processing (DSP) knowledge.
83
+
84
+Sniffing with NRF24L01+ in promiscuous mode (some hacks exist, but limited).
85
+
86
+ Might capture packets from other NRF24L01 devices only.
87
+
88
+ Won’t work for general 2.4GHz devices.
89
+
90
+- [[RTL-SDR-dat]] - [[hackrf-dat]]
91
+
92
+
93
+## Step-by-Step: How to Sniff 2.4GHz RC Signal
94
+
95
+1. Gather Tools
96
+2.
97
+RTL-SDR dongle (most only go up to ~1.7 GHz → Not enough for 2.4GHz)
98
+
99
+→ You need:
100
+
101
+- A HackRF One (recommended – covers 1 MHz to 6 GHz)
102
+- OR a CC2500 module (common 2.4GHz transceiver used in RC gear)
103
+- OR an ESP32 with promiscuous mode (works only for Wi-Fi packets)
104
+
105
+
106
+
107
+## ref
108
+
109
+- [[RC-dat]] - [[logic-analyzer-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/RTL-SDR-dat/RTL-SDR-dat.md
... ...
@@ -0,0 +1,52 @@
1
+
2
+# RTL-SDR-dat
3
+
4
+1. What You Need
5
+
6
+An RTL-SDR USB dongle (e.g., RTL2832U with R820T2)
7
+
8
+A Windows, Linux, macOS, or Android device
9
+
10
+An antenna (usually included)
11
+
12
+Software (like SDR# or Universal Radio Hacker)
13
+
14
+SDRSharp
15
+
16
+
17
+4. Signal Analysis (for reverse engineering)
18
+
19
+Use Universal Radio Hacker (URH):
20
+
21
+Record raw signals from 2.4GHz toy remote (if within range)
22
+
23
+Analyze bit patterns, timing, modulation
24
+
25
+Use Audacity to visualize audio-like modulated signals.
26
+
27
+5. On Android (Optional)
28
+
29
+Use SDR Touch with an OTG cable and RTL-SDR dongle.
30
+
31
+Works well for listening to FM, air band, etc.
32
+
33
+What You Can Do With RTL-SDR
34
+
35
+- Listen to FM radio, air traffic, police, weather stations
36
+- Track airplanes (ADS-B)
37
+- Capture RF from garage remotes, key fobs, toy RC
38
+- Reverse engineer simple RF protocols
39
+
40
+
41
+
42
+## Alternative: Use an SDR to Sniff Raw RF
43
+
44
+To analyze the actual RF signal, you need a Software Defined Radio (SDR) like:
45
+
46
+HackRF, LimeSDR, or USRP
47
+
48
+Record the 2.4GHz spectrum
49
+
50
+Analyze bursts from the remote
51
+
52
+Use Universal Radio Hacker (URH) or GNU Radio to decode the signal
... ...
\ No newline at end of file
app-dat/RC-dat/RC-signal/SBUS-dat/SBUS-dat.md
... ...
@@ -0,0 +1,75 @@
1
+
2
+# SBUS-dat
3
+
4
+- [[futaba-dat]]
5
+
6
+## 📡 What is SBUS? — Simple Explanation
7
+
8
+**SBUS (Serial Bus)** is a digital protocol used in RC systems to send multiple control signals (channels) over a single wire.
9
+
10
+---
11
+
12
+### 🧩 Key Features
13
+
14
+- 🔢 **Up to 16 channels** in one signal
15
+- 💬 **Digital serial protocol**
16
+- 📦 Sends data in **serial frames**
17
+- ⏱️ **100,000 baud**, **inverted UART**
18
+- ↪️ Invented by **Futaba**, widely used (FrSky, Radiolink, etc.)
19
+- 🧠 Needs **inversion** to be read by normal UART (hardware or software)
20
+
21
+---
22
+
23
+### 🧱 Simple Analogy
24
+
25
+> SBUS is like 16 people taking turns speaking very fast on one microphone.
26
+> Each frame contains all channel values packed tightly together.
27
+
28
+---
29
+
30
+### 🧪 Data Frame Structure
31
+
32
+Each SBUS frame is 25 bytes:
33
+
34
+| 1 byte | 22 bytes | 1 byte | 1 byte |
35
+| ------ | ----------- | ------ | ------ |
36
+| Header | 16 channels | Flags | End |
37
+
38
+
39
+
40
+- **Header**: 0x0F
41
+- **End**: 0x00
42
+- Sent **every ~9ms** (111Hz refresh rate)
43
+
44
+---
45
+
46
+### 🔌 Common Use Cases
47
+
48
+- RC Receiver → Flight Controller (e.g., FrSky RX to Betaflight FC)
49
+- RC Receiver → Microcontroller (Arduino, ESP32)
50
+- RC → Servo controller boards (if SBUS supported)
51
+
52
+---
53
+
54
+### ⚖️ SBUS vs PWM vs PPM
55
+
56
+| Feature | SBUS | PWM | PPM |
57
+|---------------|-------------|---------------|---------------|
58
+| Channels | 16 | 1 per wire | 8 (typically) |
59
+| Wires needed | 1 | 1 per channel | 1 |
60
+| Type | Digital | Analog pulse | Analog pulse |
61
+| Speed | Very fast | Slow | Medium |
62
+| Latency | Very low | High | Medium |
63
+
64
+---
65
+
66
+### 🧰 Tip for Developers
67
+
68
+To read SBUS using a microcontroller:
69
+- Use **UART** at **100000 baud**, **8E2**, **inverted signal**
70
+- Some MCUs (like ESP32) support inversion natively
71
+- Otherwise, use an **inverter circuit** or a software decoder
72
+
73
+## ref
74
+
75
+- [[network-dat]]
app-dat/RC-dat/RC-signal/edge-tx-dat/edge-tx-dat.md
... ...
@@ -0,0 +1,4 @@
1
+
2
+# edge-tx-dat
3
+
4
+https://github.com/EdgeTX/edgetx
... ...
\ No newline at end of file
tools-dat/logic-analyzer-dat/logic-analyzer-dat.md
... ...
@@ -0,0 +1,8 @@
1
+
2
+# logic-analyzer-dat
3
+
4
+You typically cannot connect a logic analyzer to raw RF data because:
5
+
6
+- It’s analog high-frequency RF, not logic-level digital signals
7
+- Logic analyzers work at MHz range, not GHz
8
+- The data from the antenna to the chip is demodulated inside the chip, not accessible externally
... ...
\ No newline at end of file