1112a05d82116a5d9be78d7d030f17447bbf280b
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 |  |
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 | + |
|
| 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 |  |
| 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 | - |
|
| ... | ... | \ No newline at end of file |
| 0 | + |
|
| 1 | + |
|
| 2 | + |
|
| 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 |  |
| 72 | 72 | |
| 73 | +## Core SCH |
|
| 74 | + |
|
| 75 | + |
|
| 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 | + |
|
| 39 | + |
|
| 40 | + |
|
| 41 | + |
|
| 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 | + |
|
| 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 | + |
|
| 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 | + |
|
| 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 |  |
| 138 | 138 | |
| 139 | + |
|
| 140 | + |
|
| 141 | +## ceramic antenna |
|
| 142 | + |
|
| 143 | + |
|
| 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 | - |
|
| ... | ... | \ No newline at end of file |
| 0 | + |
|
| 1 | + |
|
| 2 | + |
|
| 3 | +## version 2 |
|
| 4 | + |
|
| 5 | + |
|
| 6 | + |
|
| 7 | +throttle, yard, etc. |
|
| 8 | + |
|
| 9 | + |
|
| 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 | + |
|
| 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 | + |
|
| 107 | 111 | |
| 108 | 112 | ## ref |
| 109 | 113 |