Bluetooth Low Energy

This is still experimental and for esp32 requires,, to be uploaded to the device. These scripts can be found in upyutils directory and they come from micropython examples. Finally to enable it add the following to

import ble_uart_repl

To configure a ble device see

Create a configuration file


$ upydev shl

To configure a ble device in the global group ‘UPY_G’ see

Create a GROUP file

Then the device can be accessed with:

$ upydev shl -@ ble_device


$ upydev shl@ble_device
shell-repl @ ble_device
BleREPL connected

MicroPython v1.18-128-g2ea21abae-dirty on 2022-02-19; ESP32 module with ESP32
Type "help()" for more information.

- CTRL-k to see keybindings or -h to see help
- CTRL-s to toggle shell/repl mode
- CTRL-x or "exit" to exit
esp32@ble_device:~ $

By default advertising and GAP name is set using device platform and unique id. e.g. advertising name esp32-74 and GAP name ESP32@7c9ebd3d9df4 To set a custom name use set localname [NAME] in upydev or shell-repl as

esp32@ble_device:~ $ set localname bledev

# Now reset the device, then check localname with $ upydev -i -@ ble_device
# or connect to shell-repl mode and use command info e.g.

esp32@ble_device:~ $ info
BleDevice @ 00FEFE2D-5983-4D6C-9679-01F732CBA9D9, Type: esp32 , Class: BleDevice
Firmware: MicroPython v1.18-128-g2ea21abae-dirty on 2022-02-19; 4MB/OTA BLE module with ESP32
(MAC: ec:94:cb:54:8e:14, Local Name: bledev, RSSI: -76 dBm)

See BleDevice development setup