A new Adafruit Playground note by Sam Blenny looks at accessing the Zephyr real-time operating system shell running on an ESP32-S3 microcontroller using either USB or Bluetooth Low Energy.
Like Linux, Zephyr can route serial console streams to various hardware interfaces. This guide shows how to run the Zephyr Shell sample program on a QT Py ESP32-S3 using either USB serial or BLE with the Adafruit Bluefruit Connect app.
The main Zephyr repository on GitHub comes with many sample programs. This guide uses the zephyr/samples/subsys/shell/shell_module/ sample which is commonly referred to in the Zephyr community as “the shell”.
The Zephyr shell works like a typical serial console REPL, providing interactive commands that are useful for exploring supported features on Zephyr boards. You can send the
help
command to get a list of available commands. Also, similar to Linux, Zephyr allows for routing the console’s serial stream to different “backend” hardware interfaces.The QT Py ESP32-S3 board definition uses USB serial by default, so you can easily access the Zephyr console by running
west espressif monitor
. With some small changes to the code and build command, it is also possible to route the console over Bluetooth LE Nordic UART Service (BLE NUS), which works with Adafruit’s Bluefruit Connect iOS app.
See the complete guide on Adafruit Playground here.