Log messages via JTAG interface

Passing log messages over the JTAG interface, instead of UART0 Espressif resources https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/app_trace.html#app-trace-logging-to-host Getting it working esp_app_trace.h needs app_trace adding to your AMakeLists.txt Then in your project: A work in progress…so far we’ve been unable to make this feature actually work…!Got to here: https://www.esp32.com/viewtopic.php?f=13&t=33205&p=112706#p112706

Read More

Using UART0, disable logging output

Disable UART logging within the config. Write your own log function with esp_log_set_vprintf. Disable UART0 bootloader and log output Run “idf.py menuconfig”, as explained on this page. Bootloader config > Bootloader log verbosity Default is “Info”, change it to “No output” to disable bootloader output Component config > Log output > Default log verbosity Default is […]

Read More

Our I2C Master universal code

We try to use common defines for I2C master code in our projects, so it’s easy to jump between different microcontrollers and processors. This is quite challenging with the ESP32, because its setup and then do as a single operation approach is very different to the raw operation by operation approach a microtroller will typically […]

Read More

Error functions

ESP_ERROR_CHECK() Use when calling many of the ESP32 API fucntions to carry out controlled error checking, e.g.

Read More

Running out of interrupts

Interrupt inputs are a limited resource on the ESP32, and initializing certain features requires interrupt inputs to be attached to the peripherals. Just like other resources (such as RAM), the program can run out of the interrupt inputs if it uses multiple features at once. The good news is that it is usually possible to […]

Read More

Compiler issues

General CMake issues See here. driver/gpio.h: No such file or directory CMakeLists.txt needs “driver” added to REQUIRES, e.g.: ninja: build stopped: subcommand failed Often this is caused by spaces in the path of the project or the path being too long.

Read More