ESP-IDF
- v4.4 is still commonly used (as of 2023-10-17)
- building v5 with Arduino as a compoment can have issues
- Build Arduino as a component to have access to a large repository of libraries
Chips
- Choose ESP32S3 rather than ESP32. It has a better specs, USB, i2c pins can be arbitrary
- ESP32S3 USB port eliminates the need of a serial USB adapter (it even has JTAG)
- ESP32 has ethnernet
- ESP32-C3 is a single core RISC-V
Flashing
- Serial to USB
- USB (ESP32S3)
- ESP-PROG board
- esp32 webflasher
JTAG
- The ESP32S3 exposes a JTAG interface through the USB-PORT. No additional HW required (only a USB cable)
DEV TOOLS
- Clion and the plugin
- link plugin
- link OpenOCD plugin for remote debugging
- Instrumented profiler through interrups TODO link
- Wokwi https://github.com/MabezDev/wokwi-server/releases
Storage
- LittleFS
- InfluxDB
- https://github.com/armink/FlashDB/
PWM
There are at least 2 APIs:
- LEDc timer
- mcpwm
mcpwm is more advanced, with dead time and sync
for the LEC API there is a SPWM port: https://github.com/FLWL/esp32-spwm
Dev Boards
- rust https://github.com/esp-rs/esp-rust-board
- https://github.com/UnexpectedMaker/esp32s3/blob/main/schematics/schematic-omgs3.pdf (esp32s3.com)
- esp32-s3 zero waveshare (23.5 x 18 mm, 16pins)
- Seeed Studio XIAO ESP32S3 (21 x 17.8 mm, 14pins)
- https://github.com/femtoduino/femu-hardware/tree/master/femu/kicad/femu



Rust Demos
- https://github.com/JurajSadel/esp32s3-no-std-async-mqtt-demo
- https://github.com/esp-rs/awesome-esp-rust