printf style logging that costs the caller about a microsecond: arguments go raw into a ring of the caller's own core, a FreeRTOS task formats them later.
logI("rpm=%d temp=%.2f", rpm, temp) writes the raw arguments into a ring of the caller's own core, with that core's interrupts masked for the write, so no lock is ever shared between cores. A low priority task formats the lines with the real snprintf and sends them to Serial, or wherever logTo says, batched. logBin(struct) sends a plain struct as bytes instead, read back on the other board with logBinRead. Safe from interrupts and from any number of tasks. Measured on an ESP32-S3 under a SimpleFOC drive: 0.9 us mean, 1.4 us worst from a loop in IRAM, 0.5 us from an interrupt; 4.4 us on an nRF52840. Runs on ESP32 (Arduino-ESP32 3.x) and nRF52 (Adafruit core).
| Filename | Release Date | File Size |
|---|---|---|
| esp_rtosLogger-0.3.0.zip | 2026-09-23 | 21.70 KiB |
| esp_rtosLogger-0.2.0.zip | 2026-09-23 | 16.10 KiB |
| esp_rtosLogger-0.1.0.zip | 2026-09-22 | 12.20 KiB |
| esp_rtosLogger-0.0.1.zip | 2026-09-22 | 10.59 KiB |