Tingou Wu’s walkthrough pins ESP-IDF and FreeRTOS to Core 0 of the ESP32-S3 while running bare-metal Rust on Core 1 with zero scheduler interference.
Key Takeaways
The ESP32-S3’s dual-core design allows a clean split: Core 0 handles Wi-Fi, BLE, and FreeRTOS; Core 1 runs deterministic bare-metal Rust.
Bare-metal Rust on Core 1 avoids FreeRTOS scheduling jitter, useful for real-time control loops or latency-sensitive firmware tasks.
This approach lets embedded Rust developers keep networking managed by the mature ESP-IDF stack without fighting the scheduler.
The technique targets ESP32-S3 specifically but the pattern applies wherever a dual-core MCU has one core free from a RTOS.
Hacker News Comment Review
Commenters questioned whether bare-metal isolation is necessary: a high-priority pinned FreeRTOS task on Core 1 with certain options disabled may achieve the same interference-free behavior with less complexity.
An alternative hardware approach surfaced: use Esp-Hosted-MCU firmware on a separate ESP32-C3 as a dedicated Wi-Fi/BLE coprocessor, offloading networking entirely rather than splitting cores on one chip.
The core trade-off is real and contested: dedicating an entire core to FreeRTOS/Wi-Fi is seen by some commenters as wasteful, especially on constrained hardware where both cores may be needed for application logic.
Notable Comments
@fjfaase: Argues a single pinned FreeRTOS task at the right priority may already give interference-free Core 1 execution, undercutting the need for bare-metal.
@ufocia: “giving up an entire core to Wi-Fi and Bluetooth seems wasteful” – sharp pushback on the resource cost of the split.