Board-dat/SCU/SCU1059-dat/SCU1059-dat.md
... ...
@@ -5,6 +5,8 @@
5 5
6 6
[product url - 720 Coreless Micro Motor High Speed + Propeller Kit](https://www.electrodragon.com/product/720-coreless-micro-motor-high-speed-propeller-kit/)
7 7
8
+== [[coreless-motor-dat]]
9
+
8 10
### Board Map, Dimension, Pins, etc.
9 11
10 12
- Voltage: 3.7 V
... ...
@@ -17,6 +19,6 @@
17 19
18 20
## ref
19 21
20
-- [[]]
22
+- [[SCU1059]]
21 23
22 24
- legacy wiki page
Board-dat/SMO/SMO1011-dat/SMO1011-dat.md
... ...
@@ -14,7 +14,7 @@
14 14
15 15
## Applications, category, tags, etc.
16 16
17
-- [[compass-sensor-dat]] - [[pressure-sensor-dat]] - [[sensor-temperature-dat]]
17
+- [[compass-sensor-dat]] - [[sensor-pressure-dat]] - [[sensor-temperature-dat]]
18 18
19 19
20 20
## Demo Code and Video
Board-dat/STH/STH1068-dat/STH1068-dat.md
... ...
@@ -7,7 +7,7 @@
7 7
8 8
onboard available sensors
9 9
10
-- [[BMP280-dat]] - [[barometer-sensor-dat]] - [[pressure-sensor-dat]]
10
+- [[BMP280-dat]] - [[barometer-sensor-dat]] - [[sensor-pressure-dat]]
11 11
12 12
- [[BH1750FVI-dat]] - [[light-sensor-dat]]
13 13
Chip-cn-dat/WCH-dat/CH32V003-dat/CH32V003-dat.md
... ...
@@ -1,6 +1,13 @@
1 1
2 2
# CH32V003-dat
3 3
4
+- [[CH32V103-dat]]
5
+
6
+
7
+
8
+
9
+
10
+
4 11
## HDK
5 12
6 13
![](2023-09-27-17-15-24.png)
Chip-cn-dat/WCH-dat/CH549-dat/2025-08-19-17-00-42.png
... ...
Binary files /dev/null and b/Chip-cn-dat/WCH-dat/CH549-dat/2025-08-19-17-00-42.png differ
Chip-cn-dat/WCH-dat/CH549-dat/CH549-dat.md
... ...
@@ -6,6 +6,12 @@
6 6
理论上DAPLink和逻辑分析仪都可以使用ESP32S3来实现,采用分立器件实现这两个功能成本较高,但好处是可以通过USBHUB并行使用这些功能。
7 7
8 8
9
+
10
+## SCH
11
+
12
+![](2025-08-19-17-00-42.png)
13
+
14
+
9 15
## ref
10 16
11 17
- [[WCH-dat]]
... ...
\ No newline at end of file
Chip-cn-dat/WCH-dat/WCH-DAT.md
... ...
@@ -12,7 +12,7 @@
12 12
13 13
- [[CH549-dat]]
14 14
15
-- [[CH32V003-dat]]
15
+- [[CH32V003-dat]] - [[CH32V103-dat]]
16 16
17 17
18 18
Chip-cn-dat/suosemi-dat/SX1308-dat/SX1308-dat.md
... ...
@@ -1,9 +1,15 @@
1 1
2 2
# SX1308-dat
3 3
4
+- [[battery-dat]]
5
+
6
+
4 7
![](2024-03-28-17-53-04.png)
5 8
6 9
10
+
11
+
12
+
7 13
## ref
8 14
9 15
- [[dcdc-boost-dat]] - [[power-dat]]
Chip-dat/InvenSense-dat/MPU6050-DAT/2025-08-19-17-08-52.png
... ...
Binary files /dev/null and b/Chip-dat/InvenSense-dat/MPU6050-DAT/2025-08-19-17-08-52.png differ
Chip-dat/InvenSense-dat/MPU6050-DAT/MPU6050-DAT.md
... ...
@@ -1,9 +1,16 @@
1 1
2 2
# MPU-6050 DAT
3 3
4
-- interface I2C
4
+- interface [[I2C-dat]]
5 5
6 6
7 7
## SCH
8 8
9
-![](2024-03-26-16-29-25.png)
... ...
\ No newline at end of file
0
+![](2024-03-26-16-29-25.png)
1
+
2
+![](2025-08-19-17-08-52.png)
3
+
4
+
5
+## ref
6
+
7
+- [[sensor-motion-dat]] - [[invensense-dat]]
... ...
\ No newline at end of file
Chip-dat/Nordic-dat/NRF24L01-dat/2025-08-19-17-10-38.png
... ...
Binary files /dev/null and b/Chip-dat/Nordic-dat/NRF24L01-dat/2025-08-19-17-10-38.png differ
Chip-dat/Nordic-dat/NRF24L01-dat/NRF24L01-dat.md
... ...
@@ -70,12 +70,23 @@ with arduino
70 70
71 71
![](2024-09-05-17-24-52.png)
72 72
73
+## Core SCH
74
+
75
+![](2025-08-19-17-10-38.png)
76
+
77
+
73 78
## demo code
74 79
75 80
- http://electrodragon.com/?p=1134
76 81
82
+
83
+
84
+
85
+
77 86
## ref
78 87
88
+- [[antenna-dat]]
89
+
79 90
- [legacy wiki page](https://w.electrodragon.com/w/Category:NRF24)
80 91
81 92
[[A7105-dat]]: - [[NWL1058-dat]]
... ...
\ No newline at end of file
Chip-dat/ST-dat/STM32-clone-dat/STM32-clone-dat.md
... ...
@@ -3,11 +3,16 @@
3 3
4 4
- [[chipsea-dat]]
5 5
6
+- [[CH32V103-dat]] - [[wch-dat]]
7
+
8
+
6 9
## code
7 10
8 11
https://github.com/Edragon/STM32_Clone-Chip
9 12
10 13
14
+
15
+
11 16
## ref
12 17
13 18
- [[HDSC-dat]]
Chip-dat/ST-dat/STM32-dat/STM32F103-dat/2025-08-19-17-07-36.png
... ...
Binary files /dev/null and b/Chip-dat/ST-dat/STM32-dat/STM32F103-dat/2025-08-19-17-07-36.png differ
Chip-dat/ST-dat/STM32-dat/STM32F103-dat/2025-08-19-17-23-10.png
... ...
Binary files /dev/null and b/Chip-dat/ST-dat/STM32-dat/STM32F103-dat/2025-08-19-17-23-10.png differ
Chip-dat/ST-dat/STM32-dat/STM32F103-dat/STM32F103-dat.md
... ...
@@ -32,6 +32,15 @@ https://www.st.com/en/microcontrollers-microprocessors/stm32f103c6.html
32 32
33 33
- [[Lora-HDK-dat]]
34 34
35
+
36
+## min. Core SCH
37
+
38
+![](2025-08-19-17-07-36.png)
39
+
40
+
41
+![](2025-08-19-17-23-10.png)
42
+
43
+
35 44
## ref
36 45
37 46
- [[STM32-dat]]
... ...
\ No newline at end of file
Chip-dat/bosch-dat/BME280-dat/BME280-dat.md
... ...
@@ -1,7 +1,7 @@
1 1
2 2
# BME280-dat
3 3
4
-- [[humidity-sensor-dat]] - [[pressure-sensor-dat]] - [[sensor-temperature-dat]]
4
+- [[humidity-sensor-dat]] - [[sensor-pressure-dat]] - [[sensor-temperature-dat]]
5 5
6 6
- [[temp-hum-sensor-dat]]
7 7
... ...
@@ -96,4 +96,4 @@ https://github.com/Edragon/Arduino/blob/master/Sketchbook/04_sensor/bme280test/b
96 96
97 97
## ref
98 98
99
-- [[bosch-dat]] - [[sensor-dat]] - [[pressure-sensor-dat]]
... ...
\ No newline at end of file
0
+- [[bosch-dat]] - [[sensor-dat]] - [[sensor-pressure-dat]]
... ...
\ No newline at end of file
Chip-dat/raspberry-pi-dat/RP2040-dat/2025-08-19-17-00-21.png
... ...
Binary files /dev/null and b/Chip-dat/raspberry-pi-dat/RP2040-dat/2025-08-19-17-00-21.png differ
Chip-dat/raspberry-pi-dat/RP2040-dat/RP2040-dat.md
... ...
@@ -22,6 +22,9 @@
22 22
逻辑分析仪采用的是基于树莓派RP2040的方案,支持八通道(原方案是24通道,本项目引出了八通道)最大100MHz采样率,外挂FLASH为W25Q16JVSSIQ,2MB容量。
23 23
24 24
25
+## min. Core SCH
26
+
27
+![](2025-08-19-17-00-21.png)
25 28
26 29
## ref
27 30
SDK-dat/RT-Thread-dat/RT-Thread-dat.md
... ...
@@ -1,14 +0,0 @@
1
-
2
-# RT-Thread-dat
3
-
4
-- [[allwinner-dat]]
5
-
6
-https://github.com/RT-Thread/rt-thread
7
-
8
-Nano 也得到了优秀国产物联网操作系统 RT-Thread 的官方支持,有rtt相关知识或经验,我们就可以对 Nano 进行快速高效的开发;
9
-
10
-RTT官方已经给出由 uestczyh222 所维护的 Nano固件详细的编译、烧录过程,搬运至此:
11
-
12
-https://github.com/RT-Thread/rt-thread/blob/master/bsp/allwinner_tina/README.md
13
-
14
-git clone https://github.com/RT-Thread/rt-thread.git
... ...
\ No newline at end of file
SDK-dat/freertos-dat/freertos-dat.md
... ...
@@ -1,218 +0,0 @@
1
-
2
-# freertos-dat
3
-
4
-
5
-## freeRTOS debug
6
-
7
-Your sketch is written for ESP32 but you’re compiling it for ESP8266, and that’s why it’s failing.
8
-
9
-Why
10
-
11
-SemaphoreHandle_t, xSemaphoreCreateBinary(), xSemaphoreGive(), xSemaphoreTake(), and portMAX_DELAY are FreeRTOS API calls.
12
-
13
-ESP32 Arduino comes with FreeRTOS by default.
14
-
15
-ESP8266 Arduino does not use FreeRTOS — so those types and functions don’t exist unless you add a separate RTOS layer.
16
-
17
-
18
-
19
-
20
-
21
-
22
-## ✅ When is it a Good Time to Use FreeRTOS?
23
-
24
-**FreeRTOS** is a real-time operating system designed for microcontrollers. It lets you split your application into multiple tasks that run seemingly in parallel.
25
-
26
----
27
-
28
-### 🧠 Use FreeRTOS When:
29
-
30
-#### 1. 🧵 **You Need to Run Multiple Tasks Concurrently**
31
-- Example: Reading sensor data, updating a display, and handling WiFi at the same time.
32
-- Each task can run independently using `xTaskCreate()`.
33
-
34
-#### 2. ⏱️ **You Require Real-Time Responsiveness**
35
-- Critical tasks (e.g., handling motor feedback or interrupts) can be given **higher priority**.
36
-- Guarantees **predictable response time**.
37
-
38
-#### 3. 🕓 **You Need Precise Timing or Scheduling**
39
-- Use `vTaskDelay()`, `xTimerCreate()`, etc., to run tasks at specific intervals.
40
-- Better than using `delay()` or busy-wait loops.
41
-
42
-#### 4. 📶 **You Have Asynchronous Events to Handle**
43
-- Great for UART, I2C, network communication, button presses, etc.
44
-- Use **queues**, **semaphores**, and **event groups** for clean async handling.
45
-
46
-#### 5. 🔄 **You Want to Structure a Large Project Cleanly**
47
-- Modular task-based design.
48
-- Easier to manage and debug than a giant `loop()` function.
49
-
50
-#### 6. 📦 **You're Using ESP32 or STM32 with Multiple Cores or Peripherals**
51
-- ESP32 has dual-core (PRO & APP cores).
52
-- FreeRTOS lets you **pin tasks to cores**, assign priority, and manage memory better.
53
-
54
----
55
-
56
-### 🧊 Not Always Necessary If:
57
-| Situation | Recommendation |
58
-|----------------------------------|---------------------------|
59
-| Simple blink or sensor reading | No need for FreeRTOS |
60
-| Single function, low resource | Use `loop()` and interrupts |
61
-| Ultra-low-power apps | May be better without RTOS |
62
-
63
----
64
-
65
-### ✅ Example: Good Use Case (ESP32 with Camera, Webserver, Sensors)
66
-
67
-- 📷 Task 1: Camera image capture
68
-- 🌐 Task 2: Web server and WiFi communication
69
-- 🌡️ Task 3: Sensor data read and logging
70
-- 🎯 Task 4: OTA update check
71
-
72
-All these tasks can run smoothly in parallel using FreeRTOS, each with its own stack and priority.
73
-
74
----
75
-
76
-### 🚀 Summary
77
-
78
-| Feature | Why FreeRTOS Helps |
79
-|--------------------------|-----------------------------------------|
80
-| Multitasking | Run multiple functions in parallel |
81
-| Real-time priority | Critical tasks get CPU first |
82
-| Precise scheduling | Timers, delays, and periodic execution |
83
-| Clean architecture | Organized, modular task-based design |
84
-| Event handling | Easy async using semaphores & queues |
85
-
86
----
87
-
88
-Let me know if you'd like a simple FreeRTOS project example!
89
-
90
-
91
-
92
-
93
-## Use FreeRTOS primitives:
94
-
95
-Queue: for passing sensor/audio/display data between tasks
96
-
97
-Semaphore: to lock I2C bus or protect shared resources
98
-
99
-Timer: for periodic updates (e.g., sensor every 1s)
100
-
101
-
102
-
103
-## 🧩 Inter-Task Communication
104
-
105
-✅ 1. SSD1306 (I2C)
106
-
107
-Use Adafruit SSD1306 or u8g2 with I2C.
108
-
109
-Share I2C bus with BMP280.
110
-
111
-Protect with mutex semaphore.
112
-
113
-xSemaphoreTake(i2c_mutex, portMAX_DELAY);
114
-// update display
115
-xSemaphoreGive(i2c_mutex);
116
-
117
-
118
-✅ 2. BMP280 Sensor (I2C)
119
-
120
-Read temperature & pressure every 1–2 seconds.
121
-
122
-Send data to DisplayTask via queue.
123
-
124
-### Example Queues and Semaphores:
125
-
126
- QueueHandle_t sensor_data_queue;
127
- QueueHandle_t display_msg_queue;
128
- SemaphoreHandle_t i2c_mutex;
129
-
130
-### Sensor to Display Queue Message:
131
-
132
- typedef struct {
133
- float temperature;
134
- float pressure;
135
- } sensor_data_t
136
-
137
-
138
-## Pseudocode Overview
139
-
140
- void SensorTask(void *pvParams) {
141
- sensor_data_t data;
142
- while (1) {
143
- xSemaphoreTake(i2c_mutex, portMAX_DELAY);
144
- data = read_bmp280();
145
- xSemaphoreGive(i2c_mutex);
146
-
147
- xQueueSend(sensor_data_queue, &data, 0);
148
- vTaskDelay(pdMS_TO_TICKS(1000));
149
- }
150
- }
151
-
152
- void DisplayTask(void *pvParams) {
153
- sensor_data_t data;
154
- while (1) {
155
- if (xQueueReceive(sensor_data_queue, &data, portMAX_DELAY)) {
156
- xSemaphoreTake(i2c_mutex, portMAX_DELAY);
157
- update_display(data.temperature, data.pressure);
158
- xSemaphoreGive(i2c_mutex);
159
- }
160
- }
161
- }
162
-
163
-
164
-
165
-## cores
166
-
167
- xTaskCreatePinnedToCore(task1, "Task1", 2048, NULL, 1, NULL, 0); // Run on Core 0
168
- xTaskCreatePinnedToCore(task2, "Task2", 2048, NULL, 1, NULL, 1); // Run on Core 1
169
-
170
-Core 0: PRO_CPU (usually handles Wi-Fi, BT stack)
171
-
172
-Core 1: APP_CPU (often used for your application)
173
-
174
-## compare
175
-
176
-| Feature / RTOS | FreeRTOS | Zephyr RTOS | ThreadX (Azure RTOS) | Bare-Metal (No RTOS) |
177
-| ----------------------- | --------------------------------- | ---------------------------------------- | ---------------------------------- | ------------------------------ |
178
-| **License** | MIT (Permissive, Free) | Apache 2.0 (Permissive, Free) | Microsoft EULA (Free, but limited) | None |
179
-| **Footprint** | Very Small (<10 KB) | Medium (~50–100 KB) | Small (~10–20 KB) | Very Small |
180
-| **Real-Time** | Yes (preemptive, deterministic) | Yes (configurable RT, preemptive) | Yes (deterministic RTOS) | Depends on implementation |
181
-| **Ease of Use** | Simple API, easy learning curve | More complex, powerful config system | Easy API, good documentation | Full control but more effort |
182
-| **Hardware Support** | Very wide (ARM, RISC-V, etc.) | Very wide + device trees | Good (mainly ARM, RISC-V, x86) | Manual per-device work |
183
-| **Task Management** | Yes (tasks, priorities) | Yes (threads, priorities, SMP) | Yes (threads, priorities) | Manual state machine |
184
-| **Synchronization** | Semaphores, mutexes, queues | Semaphores, FIFOs, message queues | Semaphores, mutexes, event flags | Manual implementation |
185
-| **File System Support** | External (e.g., FatFs) | Native FS (e.g., LittleFS, FatFS) | With Azure FileX | Manual or third-party |
186
-| **Networking** | External (e.g., lwIP) | Native (TCP/IP stack, 6LoWPAN) | Azure NetX Duo (IPv4/IPv6) | External, complex to integrate |
187
-| **Power Management** | Basic, user-implemented | Advanced (built-in PM framework) | Good (some MCU-specific features) | Manual |
188
-| **Security/IoT** | AWS IoT support (via Amazon RTOS) | Secure boot, crypto, OTA, TLS | Azure IoT support, TLS, OTA | Manual, very limited |
189
-| **Trace & Debug** | Tools: SystemView, Tracealyzer | Zephyr logging & tracing | NetX, ThreadX tracing tools | Manual logging |
190
-| **Community Support** | Huge, mature ecosystem | Growing fast, backed by Linux Foundation | Good, backed by Microsoft | None (solo dev) |
191
-
192
-## simple example 1
193
-
194
- #include "FreeRTOS.h"
195
- #include "task.h"
196
- #include <stdio.h>
197
-
198
- void vTask1(void *pvParameters) {
199
- while (1) {
200
- printf("Task 1 running\n");
201
- vTaskDelay(pdMS_TO_TICKS(1000)); // Delay 1000 ms
202
- }
203
- }
204
-
205
- void vTask2(void *pvParameters) {
206
- while (1) {
207
- printf("Task 2 running\n");
208
- vTaskDelay(pdMS_TO_TICKS(2000)); // Delay 2000 ms
209
- }
210
- }
211
-
212
- int main(void) {
213
- xTaskCreate(vTask1, "Task1", 128, NULL, 1, NULL);
214
- xTaskCreate(vTask2, "Task2", 128, NULL, 1, NULL);
215
-
216
- vTaskStartScheduler(); // Start FreeRTOS
217
- while (1);
218
- }
... ...
\ No newline at end of file
Tech-dat/Sensor-dat/pressure-sensor-dat/pressure-sensor-dat.md
... ...
@@ -1,13 +0,0 @@
1
-
2
-# pressure-sensor-dat.md
3
-
4
-[legacy wiki page](https://w.electrodragon.com/w/Category:Pressure_Sensor)
5
-
6
-- [[BME280-dat]] - [[bosch-dat]]
7
-
8
-- [[goermicro-dat]]
9
-
10
-
11
-## ref
12
-
13
-- [[sensor-dat]]
... ...
\ No newline at end of file
Tech-dat/Sensor-dat/sensor-dat.md
... ...
@@ -9,7 +9,7 @@
9 9
10 10
- [[gas-sensor-dat]]
11 11
12
-- [[thermocouple-dat]] - [[thermostat-dat]] - [[Peltier-dat]] - [[sensor-temperature-dat]] - [[humidity-sensor]] - [[pressure-sensor-dat]] - [[temp-hum-sensor-dat]]
12
+- [[thermocouple-dat]] - [[thermostat-dat]] - [[Peltier-dat]] - [[sensor-temperature-dat]] - [[humidity-sensor]] - [[sensor-pressure-dat]] - [[temp-hum-sensor-dat]]
13 13
14 14
- [[power-sensor-dat]] - [[dc-current-sensor-dat]] - [[AC-voltage-monitor-dat]] - [[dc-voltage-monitor-dat]] - [[voltage-supervisor-dat]]
15 15
... ...
@@ -20,7 +20,7 @@
20 20
21 21
- [[liquid-sensor-dat]]
22 22
23
-- [[pressure-sensor-dat]]
23
+- [[sensor-pressure-dat]]
24 24
25 25
26 26
Tech-dat/Sensor-dat/sensor-motion-dat/sensor-motion-dat.md
... ...
@@ -54,7 +54,7 @@ most simple motion sensor
54 54
| -------- | ---------- |
55 55
| LIS3DHTR | 30+: ¥2.17 |
56 56
57
-- [[3-Axis-Magnetic-Sensor-dat]] - [[3-axis-Accelerometer-dat]] - [[3-axis-gyroscope-dat]] - [[pressure-sensor-dat]]
57
+- [[3-Axis-Magnetic-Sensor-dat]] - [[3-axis-Accelerometer-dat]] - [[3-axis-gyroscope-dat]] - [[sensor-pressure-dat]]
58 58
59 59
- [[6-axis-dat]][[sensor-TOF-dat]]
60 60
... ...
@@ -74,7 +74,7 @@ most simple motion sensor
74 74
75 75
| Board | sensor 1 | func1 | sensor 2 | func2 |
76 76
| --------------- | ---------------- | ---------------------- | -------------- | ---------------------------------------------------- |
77
-| [[SMO1011-dat]] | [[HMC5983-dat]] | [[compass-sensor-dat]] | [[BMP180-dat]] | [[pressure-sensor-dat]] - [[temperature-sensor-dat]] |
77
+| [[SMO1011-dat]] | [[HMC5983-dat]] | [[compass-sensor-dat]] | [[BMP180-dat]] | [[sensor-pressure-dat]] - [[temperature-sensor-dat]] |
78 78
| [[SMO1013-dat]] | [[MAX30102-dat]] | [[pulse-rate-dat]] | | |
79 79
80 80
Tech-dat/Sensor-dat/sensor-pressure-dat/2025-08-19-17-09-48.png
... ...
Binary files /dev/null and b/Tech-dat/Sensor-dat/sensor-pressure-dat/2025-08-19-17-09-48.png differ
Tech-dat/Sensor-dat/sensor-pressure-dat/sensor-pressure-dat.md
... ...
@@ -0,0 +1,19 @@
1
+
2
+# sensor-pressure-dat.md
3
+
4
+[legacy wiki page](https://w.electrodragon.com/w/Category:Pressure_Sensor)
5
+
6
+- [[BME280-dat]] - [[bosch-dat]]
7
+
8
+- [[goermicro-dat]]
9
+
10
+
11
+## SPL06-001
12
+
13
+![](2025-08-19-17-09-48.png)
14
+
15
+
16
+
17
+## ref
18
+
19
+- [[sensor-dat]]
... ...
\ No newline at end of file
Tech-dat/acturator-dat/motor-dat/coreless-motor-dat/2025-08-19-17-11-16.png
... ...
Binary files /dev/null and b/Tech-dat/acturator-dat/motor-dat/coreless-motor-dat/2025-08-19-17-11-16.png differ
Tech-dat/acturator-dat/motor-dat/coreless-motor-dat/coreless-motor-dat.md
... ...
@@ -0,0 +1,22 @@
1
+
2
+# coreless-motor-dat
3
+
4
+
5
+720 - [[SCU1059-dat]]
6
+
7
+715
8
+
9
+710
10
+
11
+
12
+
13
+
14
+## drive SCH
15
+
16
+![](2025-08-19-17-11-16.png)
17
+
18
+
19
+
20
+## ref
21
+
22
+- [[motor-dat]]
... ...
\ No newline at end of file
Tech-dat/acturator-dat/motor-dat/motor-dat.md
... ...
@@ -3,6 +3,8 @@
3 3
4 4
- [[motor-driver-dat]]
5 5
6
+
7
+
6 8
## motor specs
7 9
8 10
- [[torque-dat]] - [[start-capacitor-dat]]
Tech-dat/antenna-dat/2025-08-19-17-27-28.png
... ...
Binary files /dev/null and b/Tech-dat/antenna-dat/2025-08-19-17-27-28.png differ
Tech-dat/antenna-dat/antenna-DAT.md
... ...
@@ -136,6 +136,15 @@ Therefore, the layout of the module antenna location and routing is recommended
136 136
137 137
![](2025-07-09-15-34-06.png)
138 138
139
+
140
+
141
+## ceramic antenna
142
+
143
+![](2025-08-19-17-27-28.png)
144
+
145
+
146
+
147
+
139 148
## ref
140 149
141 150
- [[M2M-dat]]
Tech-dat/interactive-dat/WS2812-dat/ws2812-dat.md
... ...
@@ -64,4 +64,7 @@ ESP32
64 64
65 65
## ref
66 66
67
+
68
+- smd3535
69
+
67 70
- [[led-strip-dat]] - [[ws2812-dat]]
... ...
\ No newline at end of file
Tech-dat/interactive-dat/joystick-dat/2025-08-19-17-21-21.png
... ...
Binary files /dev/null and b/Tech-dat/interactive-dat/joystick-dat/2025-08-19-17-21-21.png differ
Tech-dat/interactive-dat/joystick-dat/2025-08-19-17-22-28.png
... ...
Binary files /dev/null and b/Tech-dat/interactive-dat/joystick-dat/2025-08-19-17-22-28.png differ
Tech-dat/interactive-dat/joystick-dat/joystick-dat.md
... ...
@@ -5,4 +5,19 @@
5 5
6 6
7 7
8
-![](2024-01-22-17-32-19.png)
... ...
\ No newline at end of file
0
+![](2024-01-22-17-32-19.png)
1
+
2
+
3
+## version 2
4
+
5
+![](2025-08-19-17-21-21.png)
6
+
7
+throttle, yard, etc.
8
+
9
+![](2025-08-19-17-22-28.png)
10
+
11
+
12
+
13
+## ref
14
+
15
+- [[joystick]] - [[interactive]]
... ...
\ No newline at end of file
Tech-dat/interactive-dat/switch-dat/2025-08-19-16-58-06.png
... ...
Binary files /dev/null and b/Tech-dat/interactive-dat/switch-dat/2025-08-19-16-58-06.png differ
Tech-dat/interactive-dat/switch-dat/switch-dat.md
... ...
@@ -40,6 +40,11 @@ https://www.electrodragon.com/product/88-lock-non-homing-switch/
40 40
41 41
- [[PE4259-dat]] - [[UPG2179-dat]]
42 42
43
+## thumbwheel switch
44
+
45
+![](2025-08-19-16-58-06.png)
46
+
47
+
43 48
44 49
## ref
45 50
Tech-dat/system-dat/RT-Thread-dat/RT-Thread-dat.md
... ...
@@ -0,0 +1,20 @@
1
+
2
+# RT-Thread-dat
3
+
4
+- [[allwinner-dat]]
5
+
6
+https://github.com/RT-Thread/rt-thread
7
+
8
+Nano 也得到了优秀国产物联网操作系统 RT-Thread 的官方支持,有rtt相关知识或经验,我们就可以对 Nano 进行快速高效的开发;
9
+
10
+RTT官方已经给出由 uestczyh222 所维护的 Nano固件详细的编译、烧录过程,搬运至此:
11
+
12
+https://github.com/RT-Thread/rt-thread/blob/master/bsp/allwinner_tina/README.md
13
+
14
+git clone https://github.com/RT-Thread/rt-thread.git
15
+
16
+
17
+
18
+## ref
19
+
20
+- [[system-dat]]
... ...
\ No newline at end of file
Tech-dat/system-dat/freertos-dat/freertos-dat.md
... ...
@@ -0,0 +1,218 @@
1
+
2
+# freertos-dat
3
+
4
+
5
+## freeRTOS debug
6
+
7
+Your sketch is written for ESP32 but you’re compiling it for ESP8266, and that’s why it’s failing.
8
+
9
+Why
10
+
11
+SemaphoreHandle_t, xSemaphoreCreateBinary(), xSemaphoreGive(), xSemaphoreTake(), and portMAX_DELAY are FreeRTOS API calls.
12
+
13
+ESP32 Arduino comes with FreeRTOS by default.
14
+
15
+ESP8266 Arduino does not use FreeRTOS — so those types and functions don’t exist unless you add a separate RTOS layer.
16
+
17
+
18
+
19
+
20
+
21
+
22
+## ✅ When is it a Good Time to Use FreeRTOS?
23
+
24
+**FreeRTOS** is a real-time operating system designed for microcontrollers. It lets you split your application into multiple tasks that run seemingly in parallel.
25
+
26
+---
27
+
28
+### 🧠 Use FreeRTOS When:
29
+
30
+#### 1. 🧵 **You Need to Run Multiple Tasks Concurrently**
31
+- Example: Reading sensor data, updating a display, and handling WiFi at the same time.
32
+- Each task can run independently using `xTaskCreate()`.
33
+
34
+#### 2. ⏱️ **You Require Real-Time Responsiveness**
35
+- Critical tasks (e.g., handling motor feedback or interrupts) can be given **higher priority**.
36
+- Guarantees **predictable response time**.
37
+
38
+#### 3. 🕓 **You Need Precise Timing or Scheduling**
39
+- Use `vTaskDelay()`, `xTimerCreate()`, etc., to run tasks at specific intervals.
40
+- Better than using `delay()` or busy-wait loops.
41
+
42
+#### 4. 📶 **You Have Asynchronous Events to Handle**
43
+- Great for UART, I2C, network communication, button presses, etc.
44
+- Use **queues**, **semaphores**, and **event groups** for clean async handling.
45
+
46
+#### 5. 🔄 **You Want to Structure a Large Project Cleanly**
47
+- Modular task-based design.
48
+- Easier to manage and debug than a giant `loop()` function.
49
+
50
+#### 6. 📦 **You're Using ESP32 or STM32 with Multiple Cores or Peripherals**
51
+- ESP32 has dual-core (PRO & APP cores).
52
+- FreeRTOS lets you **pin tasks to cores**, assign priority, and manage memory better.
53
+
54
+---
55
+
56
+### 🧊 Not Always Necessary If:
57
+| Situation | Recommendation |
58
+|----------------------------------|---------------------------|
59
+| Simple blink or sensor reading | No need for FreeRTOS |
60
+| Single function, low resource | Use `loop()` and interrupts |
61
+| Ultra-low-power apps | May be better without RTOS |
62
+
63
+---
64
+
65
+### ✅ Example: Good Use Case (ESP32 with Camera, Webserver, Sensors)
66
+
67
+- 📷 Task 1: Camera image capture
68
+- 🌐 Task 2: Web server and WiFi communication
69
+- 🌡️ Task 3: Sensor data read and logging
70
+- 🎯 Task 4: OTA update check
71
+
72
+All these tasks can run smoothly in parallel using FreeRTOS, each with its own stack and priority.
73
+
74
+---
75
+
76
+### 🚀 Summary
77
+
78
+| Feature | Why FreeRTOS Helps |
79
+|--------------------------|-----------------------------------------|
80
+| Multitasking | Run multiple functions in parallel |
81
+| Real-time priority | Critical tasks get CPU first |
82
+| Precise scheduling | Timers, delays, and periodic execution |
83
+| Clean architecture | Organized, modular task-based design |
84
+| Event handling | Easy async using semaphores & queues |
85
+
86
+---
87
+
88
+Let me know if you'd like a simple FreeRTOS project example!
89
+
90
+
91
+
92
+
93
+## Use FreeRTOS primitives:
94
+
95
+Queue: for passing sensor/audio/display data between tasks
96
+
97
+Semaphore: to lock I2C bus or protect shared resources
98
+
99
+Timer: for periodic updates (e.g., sensor every 1s)
100
+
101
+
102
+
103
+## 🧩 Inter-Task Communication
104
+
105
+✅ 1. SSD1306 (I2C)
106
+
107
+Use Adafruit SSD1306 or u8g2 with I2C.
108
+
109
+Share I2C bus with BMP280.
110
+
111
+Protect with mutex semaphore.
112
+
113
+xSemaphoreTake(i2c_mutex, portMAX_DELAY);
114
+// update display
115
+xSemaphoreGive(i2c_mutex);
116
+
117
+
118
+✅ 2. BMP280 Sensor (I2C)
119
+
120
+Read temperature & pressure every 1–2 seconds.
121
+
122
+Send data to DisplayTask via queue.
123
+
124
+### Example Queues and Semaphores:
125
+
126
+ QueueHandle_t sensor_data_queue;
127
+ QueueHandle_t display_msg_queue;
128
+ SemaphoreHandle_t i2c_mutex;
129
+
130
+### Sensor to Display Queue Message:
131
+
132
+ typedef struct {
133
+ float temperature;
134
+ float pressure;
135
+ } sensor_data_t
136
+
137
+
138
+## Pseudocode Overview
139
+
140
+ void SensorTask(void *pvParams) {
141
+ sensor_data_t data;
142
+ while (1) {
143
+ xSemaphoreTake(i2c_mutex, portMAX_DELAY);
144
+ data = read_bmp280();
145
+ xSemaphoreGive(i2c_mutex);
146
+
147
+ xQueueSend(sensor_data_queue, &data, 0);
148
+ vTaskDelay(pdMS_TO_TICKS(1000));
149
+ }
150
+ }
151
+
152
+ void DisplayTask(void *pvParams) {
153
+ sensor_data_t data;
154
+ while (1) {
155
+ if (xQueueReceive(sensor_data_queue, &data, portMAX_DELAY)) {
156
+ xSemaphoreTake(i2c_mutex, portMAX_DELAY);
157
+ update_display(data.temperature, data.pressure);
158
+ xSemaphoreGive(i2c_mutex);
159
+ }
160
+ }
161
+ }
162
+
163
+
164
+
165
+## cores
166
+
167
+ xTaskCreatePinnedToCore(task1, "Task1", 2048, NULL, 1, NULL, 0); // Run on Core 0
168
+ xTaskCreatePinnedToCore(task2, "Task2", 2048, NULL, 1, NULL, 1); // Run on Core 1
169
+
170
+Core 0: PRO_CPU (usually handles Wi-Fi, BT stack)
171
+
172
+Core 1: APP_CPU (often used for your application)
173
+
174
+## compare
175
+
176
+| Feature / RTOS | FreeRTOS | Zephyr RTOS | ThreadX (Azure RTOS) | Bare-Metal (No RTOS) |
177
+| ----------------------- | --------------------------------- | ---------------------------------------- | ---------------------------------- | ------------------------------ |
178
+| **License** | MIT (Permissive, Free) | Apache 2.0 (Permissive, Free) | Microsoft EULA (Free, but limited) | None |
179
+| **Footprint** | Very Small (<10 KB) | Medium (~50–100 KB) | Small (~10–20 KB) | Very Small |
180
+| **Real-Time** | Yes (preemptive, deterministic) | Yes (configurable RT, preemptive) | Yes (deterministic RTOS) | Depends on implementation |
181
+| **Ease of Use** | Simple API, easy learning curve | More complex, powerful config system | Easy API, good documentation | Full control but more effort |
182
+| **Hardware Support** | Very wide (ARM, RISC-V, etc.) | Very wide + device trees | Good (mainly ARM, RISC-V, x86) | Manual per-device work |
183
+| **Task Management** | Yes (tasks, priorities) | Yes (threads, priorities, SMP) | Yes (threads, priorities) | Manual state machine |
184
+| **Synchronization** | Semaphores, mutexes, queues | Semaphores, FIFOs, message queues | Semaphores, mutexes, event flags | Manual implementation |
185
+| **File System Support** | External (e.g., FatFs) | Native FS (e.g., LittleFS, FatFS) | With Azure FileX | Manual or third-party |
186
+| **Networking** | External (e.g., lwIP) | Native (TCP/IP stack, 6LoWPAN) | Azure NetX Duo (IPv4/IPv6) | External, complex to integrate |
187
+| **Power Management** | Basic, user-implemented | Advanced (built-in PM framework) | Good (some MCU-specific features) | Manual |
188
+| **Security/IoT** | AWS IoT support (via Amazon RTOS) | Secure boot, crypto, OTA, TLS | Azure IoT support, TLS, OTA | Manual, very limited |
189
+| **Trace & Debug** | Tools: SystemView, Tracealyzer | Zephyr logging & tracing | NetX, ThreadX tracing tools | Manual logging |
190
+| **Community Support** | Huge, mature ecosystem | Growing fast, backed by Linux Foundation | Good, backed by Microsoft | None (solo dev) |
191
+
192
+## simple example 1
193
+
194
+ #include "FreeRTOS.h"
195
+ #include "task.h"
196
+ #include <stdio.h>
197
+
198
+ void vTask1(void *pvParameters) {
199
+ while (1) {
200
+ printf("Task 1 running\n");
201
+ vTaskDelay(pdMS_TO_TICKS(1000)); // Delay 1000 ms
202
+ }
203
+ }
204
+
205
+ void vTask2(void *pvParameters) {
206
+ while (1) {
207
+ printf("Task 2 running\n");
208
+ vTaskDelay(pdMS_TO_TICKS(2000)); // Delay 2000 ms
209
+ }
210
+ }
211
+
212
+ int main(void) {
213
+ xTaskCreate(vTask1, "Task1", 128, NULL, 1, NULL);
214
+ xTaskCreate(vTask2, "Task2", 128, NULL, 1, NULL);
215
+
216
+ vTaskStartScheduler(); // Start FreeRTOS
217
+ while (1);
218
+ }
... ...
\ No newline at end of file
Tech-dat/system-dat/system-dat.md
... ...
@@ -9,7 +9,7 @@
9 9
10 10
- [[openthread-dat]] - [[micropython-dat]]
11 11
12
-
12
+- [[RT-Thread-dat]]
13 13
14 14
15 15
app-dat/RC-dat/FPV-dat/FPV-controller-dat/FPV-controller-dat.md
... ...
@@ -1,6 +1,19 @@
1 1
2 2
# FPV-receiver-dat
3 3
4
+
5
+
6
+
7
+- [[NRF24L01-dat]]
8
+
9
+## common calibration methods
10
+
11
+校准遥控器:左摇杆油门拉到最低,右摇杆往左下方打,遥控器出现 calibrating.... ,释放右摇杆
12
+
13
+
14
+
15
+
16
+
4 17
- [[ELRS-dat]] - [[TBS-dat]]
5 18
6 19
... ...
@@ -11,3 +24,6 @@
11 24
- [DJI RC Motion 3, FPV Smart Controller with Immersive Motion Control, Compact and Portable, One-Click Emergency Brake, AR Cursor, Intuitive Drone Controller, Multi-Model Compatibility](https://www.amazon.com/DJI-Controller-Immersive-Multi-Model-Compatibility/dp/B0CS6LDCKC/ref=sr_1_11?dib=eyJ2IjoiMSJ9.85xi15ftM4OWw33_siXrDRGNOKuf3CgQct4cVlBOFqI1ZAAZD4Gz_S4U_wqEKgjxWcsGOZPlWkdGdEASaTJntO1H_pFgsXO61wuEgveKAmLTLHR-cjsa5SOhaKUXU0vVHE7oijzqLoIPsx-H55gYNPr_F8aMX98OqPfwk64Ma12qrNSidLDVokmdegWL621v3U-5PDEaMNTjdACgOTHEBxAGhtxksaYVouWcSkxMCTI-jr0FkvxyQeZmO6S-UjXJcEcChxa4sPMjVyiK7070XhJlH2EnXqgnv0KScl80Jqc.AzbbGJAa2ls6bQWRCrudB-jGcm6vKV7pRItsIyBMpdA&dib_tag=se&keywords=FPV&qid=1744201259&sr=8-11)
12 25
13 26
27
+## ref
28
+
29
+- [[FPV-dat]]
... ...
\ No newline at end of file
app-dat/RC-dat/FPV-dat/FPV-simulation-dat/FPV-simulation-dat.md
... ...
@@ -1,6 +1,9 @@
1 1
2 2
# FPV-simulation-dat
3 3
4
+
5
+
6
+
4 7
## Popular FPV Simulators for PC
5 8
6 9
| Simulator | Highlights | Price |
... ...
@@ -80,8 +83,6 @@ https://store.steampowered.com/app/1278060/FPV_SkyDive__FPV_Drone_Simulator/
80 83
➡️ Check out **OpenFPV** or **Multirotor Sim** on GitHub
81 84
82 85
83
-
84
-
85 86
## ref
86 87
87 88
app-dat/RC-dat/quadcopter-dat/quadcopter-dat.md
... ...
@@ -1,6 +1,8 @@
1 1
2 2
# quadcopter-dat
3 3
4
+- [[Coreless-Motor-dat]] - [[motor-dat]]
5
+
4 6
5 7
## opensource
6 8
power-dat/battery-dat/2025-08-19-17-12-34.png
... ...
Binary files /dev/null and b/power-dat/battery-dat/2025-08-19-17-12-34.png differ
power-dat/battery-dat/battery-dat.md
... ...
@@ -103,7 +103,11 @@ Usage: Devices that require more energy or have higher power consumption tend to
103 103
104 104
105 105
106
+## battery stable circuit
106 107
108
+- [[SX1308-dat]] - [[ME6206-dat]]
109
+
110
+![](2025-08-19-17-12-34.png)
107 111
108 112
## ref
109 113