Debug ESP32 wirelessly with MCU BLE terminal

Serial outputs and commands via Bluetooth instead of USB

Anyone who works with ESP32, Arduino or PlatformIO is familiar with classic debugging via USB. Open the serial monitor, select the correct port, hope that the board is recognized, plug in the cable or unplug it again. This works in many projects, but in many others it is impractical or simply not possible.

MCU BLE Terminal takes a different approach. Instead of USB, Bluetooth Low Energy is used to provide serial outputs and inputs wirelessly. The smartphone takes on the role of a classic serial monitor.

What is MCU BLE Terminal?

MCU BLE Terminal is a lightweight ESP32 library that provides a serial interface via BLE. It is intended as a direct replacement for the Arduino serial interface. Functions such as print, println, and printf remain unchanged; only the transmission path changes.

The goal is deliberately kept simple:
A wireless serial monitor for debugging, logging, and easy interaction with the ESP32, without Wi-Fi, without the cloud, and without additional infrastructure.

Why wireless debugging makes sense

In real-world projects, USB is often not an ideal solution:

  • The ESP32 is already permanently installed or is housed in a case.
  • The project is mounted on the wall, in the control cabinet, or in the vehicle.
  • A laptop is not always available for testing.
  • USB cables are impractical or prone to interference

Bluetooth Low Energy offers clear advantages here. It is energy-efficient, stable, and available on almost every smartphone. Debug output can be read directly on the cell phone without additional hardware.

Typical use cases

MCU BLE Terminal is particularly suitable for:

  • Classic debug output during development
  • Monitoring variables and states at runtime
  • Live logging of sensor values
  • simple command interfaces
  • Configuration during operation
  • Field tests without a laptop

Practical examples:

  • Displaying measured values such as temperature, voltage, or runtime
  • Outputting internal states and status flags
  • Setting configuration parameters via text command
  • Testing logic without having to reflash

This saves a lot of time, especially during prototyping.

Integration into Arduino IDE and PlatformIO

Die Bibliothek ist vollständig kompatibel mit:

  • Arduino IDE
  • PlatformIO
  • VS Code
  • Arduino Framework for ESP32

It can be neatly integrated as a library in both Arduino and PlatformIO. The code intentionally remains close to the familiar Serial API, so existing code can be used with minimal changes.

Sending data: ESP32 to smartphone

Debug output works as usual:

WirelessSerial.print(„Value: „);
WirelessSerial.println(value);
WirelessSerial.printf(„Millis: %lu\n“, millis());

This is suitable for:

  • log outputs
  • debug messages
  • sensor values
  • status information

The output appears live in the app's terminal.

Receiving data: Smartphone to ESP32

In addition to output, the MCU BLE terminal also supports input from smartphones.

The line-based mode is particularly practical:

if (WirelessSerial.availableLine()) {
String cmd = WirelessSerial.readLine();
}

This allows simple commands to be implemented, for example:

  • Setting variables
  • Switching between operating modes
  • Starting test functions
  • Queries on internal states

This makes the tool not only a logger, but also a simple interactive interface.

The mobile app

The library is complemented by its own mobile app for Android and iOS, which serves as a BLE serial monitor.

App features:

  • Scanning for BLE devices
  • Terminal interface similar to classic serial monitors
  • Monospace font
  • Dark and light mode
  • Live output of logs
  • Text input for commands
  • Demo mode without hardware
  • Multilingual user interface

The app is deliberately minimalistic and focuses on its core task.

Safety and area of application

The MCU BLE Terminal is intended as a development and debugging tool.

Important information:

  • BLE communication is unencrypted by default
  • Not intended for productive or safety-critical systems
  • Do not transfer sensitive data

This is entirely sufficient and intentional for development, testing, and prototyping.

design philosophy

The project follows clear principles:

  • simple API
  • no proprietary protocols
  • No forced framing or parsing
  • Raw data stream similar to Serial
  • minimal setup effort
  • predictable behavior

This keeps the tool flexible and easy to understand.

Conclusion

MCU BLE Terminal does not replace a professional debugger, nor is it intended to. It is a pragmatic tool for ESP32 projects that require wireless debugging, quick feedback, and easy interaction.

Especially when combined with Arduino, PlatformIO, and VS Code, it offers a practical alternative to the classic USB serial monitor.

Project on GitHub:
https://github.com/dominik-ewers-solutions/MCU_BLE_Terminal