← index #7220Issue #7130
Related · high · value 2.979
QUERY · ISSUE

BLE: Advertising name stays as 'ESP32'

openby plugowskiopened 2021-05-05updated 2021-05-10
extmod

I have an issue while advertise my device, I used ble_advertise helper from examples, which generates payload as below:

payload = b'\x02\x01\x06\x05\tLEDs\x11\x07\xdb\xa7\x7fgl\xbfG\x9c\x89@\x16\x05S@\x8a<'

So visible name in Bluetooth scanners should be LEDs but it is advertising as ESP32 all the time (I saw LEDs, few times only, after that it has been override as ESP32).

Any suggestions?

CANDIDATE · ISSUE

ESP32 Bluetooth: Error code "OSError: -18" when advertising with a too long payload

openby YueyanGuo1218opened 2021-04-19updated 2023-02-28
port-esp32

MicroPython v1.15 on 2021-04-18; ESP32 module with ESP32

When trying to advertising with a long payload(longer than 31 bytes) using bluetooth lib on esp32, Micropython would give an unclear error code " OSError: -18 ".

import bluetooth
esp32_ble = bluetooth.BLE()
esp32_ble.active(True)

payload = b'\x02\x01\x06\n\taLongName\x11\x07\x9e\xca\xdc$\x0e\xe5\xa9\xe0\x93\xf3\xa3\xb5\x01\x00@n'

esp32_ble.gap_advertise(interval_us=200000, adv_data=payload)
# Traceback (most recent call last):
#  File "<stdin>", line 6, in <module>
# OSError: -18

A payload longer than 31 bytes might be generated with a 128bit Service UUID and a long name(len>8).

from ble_advertising import advertising_payload    #example in /micropython/example/bluetooth

ServiceUUID = bluetooth.UUID("6E400001-B5A3-F393-E0A9-E50E24DCCA9E")
payload = advertising_payload(name="muchTooLong", services=[ServiceUUID])

A short name would work just fine.
The error code is not helpful for debugging, but I'm not sure how to improve this.
I opened this issue to notify who have met the same problem.

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied