Failing to connect over BLE #256

Open
opened 2026-10-05 02:06:08 +02:00 by adam · 0 comments
Owner

📝 Problem Description

On Ubuntu with a laptop that previously connected to the Meshcore device using Meshy https://meshy-app.org/ can't connect over BLE

🚦 Current Behavior

2026-08-18 11:17:09 - meshcore - INFO - BLE pairing successful
2026-08-18 11:17:09 - app.radio - WARNING - Reconnection failed: [org.bluez.Error.NotPermitted] Notify acquired
Traceback (most recent call last):
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 620, in reconnect
    await self.connect()
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 491, in connect
    await self._connect_ble()
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 545, in _connect_ble
    self._meshcore = await MeshCore.create_ble(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/meshcore.py", line 177, in create_ble
    res = await mc.connect()
          ^^^^^^^^^^^^^^^^^^
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/meshcore.py", line 195, in connect
    result = await self.connection_manager.connect()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/connection_manager.py", line 70, in connect
    result = await self.connection.connect()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/ble_cx.py", line 140, in connect
    await self.client.start_notify(UART_TX_CHAR_UUID, self.handle_rx)
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/bleak/__init__.py", line 846, in start_notify
    await self._backend.start_notify(
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/bleak/backends/bluezdbus/client.py", line 940, in start_notify
    assert_reply(reply)
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/bleak/backends/bluezdbus/utils.py", line 27, in assert_reply
    raise BleakDBusError(reply.error_name, reply.body)
bleak.exc.BleakDBusError: [org.bluez.Error.NotPermitted] Notify acquired
2026-08-18 11:17:09 - app.main - WARNING - Failed to connect to radio on startup
[snip]
2026-08-18 11:18:23 - app.radio - INFO - Attempting to reconnect to radio...
2026-08-18 11:18:53 - app.radio - WARNING - Reconnection failed: Failed to connect to device
Traceback (most recent call last):
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 620, in reconnect
    await self.connect()
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 491, in connect
    await self._connect_ble()
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 545, in _connect_ble
    self._meshcore = await MeshCore.create_ble(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/meshcore.py", line 177, in create_ble
    res = await mc.connect()
          ^^^^^^^^^^^^^^^^^^
  File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/meshcore.py", line 198, in connect
    raise ConnectionError("Failed to connect to device")
ConnectionError: Failed to connect to device
2026-08-18 11:18:58 - app.radio - INFO - Attempting to reconnect to radio...

🎯 Expected Behavior

For paired BLE device to be usable with Remote-Terminal-for-Meshcore

📋 Steps to Reproduce

  1. connect / pair BLE
  2. launch Remote-Terminal-for-Meshcore with MESHCORE_BLE_ADDRESS & MESHCORE_BLE_PIN

📡 Radio Node

  • Firmware version: 1.17.0 (WioTrackerL1Eink_companion_radio_ble-v1.17.1-d929643.uf2)
  • Hardware / board type: WioTrackerL1Eink

🔌 Connection to the Radio

  • Connected directly to the radio, or through an intermediary?
  • Transport: BLE

💻 Environment Information

  • OS: Ubuntu
  • Browser / Version: n/a
  • RemoteTerm Version: git main 33b3b8d023

📸 Screenshots / Debug Logs

see above

How to attach debug information (please read — it speeds up diagnosis a lot)

Easiest — debug support snapshot (recommended for everyone):
In the app, go to Settings → About → "Open debug support snapshot" (or navigate to
/api/debug). Copy the block and paste it here.

🔒 The snapshot includes recent logs and basic environment/radio status. It never
exposes your private key. Logs may contain channel names or keys. If you'd rather
not share those, copy only up to the STOP COPYING HERE marker — everything
above it reveals nothing sensitive beyond your bot names.

Advanced — full debug-level logs:
Restart the backend with debug logging enabled to capture detailed radio
communication and packet processing:

MESHCORE_LOG_LEVEL=DEBUG uv run uvicorn app.main:app --host 0.0.0.0 --port 8000

Then reproduce the issue and paste the relevant log output.


Additional context

## 📝 Problem Description On Ubuntu with a laptop that previously connected to the Meshcore device using Meshy https://meshy-app.org/ can't connect over BLE ## 🚦 Current Behavior <!-- What actually happens today. --> ``` 2026-08-18 11:17:09 - meshcore - INFO - BLE pairing successful 2026-08-18 11:17:09 - app.radio - WARNING - Reconnection failed: [org.bluez.Error.NotPermitted] Notify acquired Traceback (most recent call last): File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 620, in reconnect await self.connect() File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 491, in connect await self._connect_ble() File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 545, in _connect_ble self._meshcore = await MeshCore.create_ble( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/meshcore.py", line 177, in create_ble res = await mc.connect() ^^^^^^^^^^^^^^^^^^ File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/meshcore.py", line 195, in connect result = await self.connection_manager.connect() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/connection_manager.py", line 70, in connect result = await self.connection.connect() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/ble_cx.py", line 140, in connect await self.client.start_notify(UART_TX_CHAR_UUID, self.handle_rx) File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/bleak/__init__.py", line 846, in start_notify await self._backend.start_notify( File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/bleak/backends/bluezdbus/client.py", line 940, in start_notify assert_reply(reply) File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/bleak/backends/bluezdbus/utils.py", line 27, in assert_reply raise BleakDBusError(reply.error_name, reply.body) bleak.exc.BleakDBusError: [org.bluez.Error.NotPermitted] Notify acquired 2026-08-18 11:17:09 - app.main - WARNING - Failed to connect to radio on startup [snip] 2026-08-18 11:18:23 - app.radio - INFO - Attempting to reconnect to radio... 2026-08-18 11:18:53 - app.radio - WARNING - Reconnection failed: Failed to connect to device Traceback (most recent call last): File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 620, in reconnect await self.connect() File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 491, in connect await self._connect_ble() File "/home/arthur/local/Remote-Terminal-for-MeshCore/app/radio.py", line 545, in _connect_ble self._meshcore = await MeshCore.create_ble( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/meshcore.py", line 177, in create_ble res = await mc.connect() ^^^^^^^^^^^^^^^^^^ File "/home/arthur/local/Remote-Terminal-for-MeshCore/.venv/lib/python3.11/site-packages/meshcore/meshcore.py", line 198, in connect raise ConnectionError("Failed to connect to device") ConnectionError: Failed to connect to device 2026-08-18 11:18:58 - app.radio - INFO - Attempting to reconnect to radio... ``` ## 🎯 Expected Behavior <!-- What you expected to happen instead. --> For paired BLE device to be usable with Remote-Terminal-for-Meshcore ## 📋 Steps to Reproduce 1. connect / pair BLE 2. launch Remote-Terminal-for-Meshcore with MESHCORE_BLE_ADDRESS & MESHCORE_BLE_PIN 3. ## 📡 Radio Node <!-- The MeshCore radio RemoteTerm is talking to. --> - **Firmware version:** <!-- e.g. 1.15.0 --> 1.17.0 (WioTrackerL1Eink_companion_radio_ble-v1.17.1-d929643.uf2) - **Hardware / board type:** <!-- e.g. Heltec V3, RAK4631, T-Deck --> WioTrackerL1Eink ## 🔌 Connection to the Radio - **Connected directly to the radio, or through an intermediary?** <!-- Direct is the only officially supported path. If you use an intermediary companion/frameserver such as pyMC / OpenHop, please say so — many issues are specific to those and won't reproduce on a direct connection. --> - **Transport:** <!-- Serial / TCP / BLE --> BLE ## 💻 Environment Information - **OS:** <!-- e.g. macOS 15, Windows 11, Raspberry Pi OS --> Ubuntu - **Browser / Version:** <!-- e.g. Chrome 150, Safari 18 --> n/a - **RemoteTerm Version:** <!-- e.g. v3.15.2, or "wrapped" HA add-on --> git main 33b3b8d0236f2aebe045d2fc00b256a06f672e1e ## 📸 Screenshots / Debug Logs <!-- Screenshots are great. A debug snapshot or debug-level logs help enormously. --> see above <details> <summary><b>How to attach debug information</b> (please read — it speeds up diagnosis a lot)</summary> **Easiest — debug support snapshot (recommended for everyone):** In the app, go to **Settings → About → "Open debug support snapshot"** (or navigate to `/api/debug`). Copy the block and paste it here. > 🔒 The snapshot includes recent logs and basic environment/radio status. It never > exposes your private key. Logs *may* contain channel names or keys. If you'd rather > not share those, copy only **up to the `STOP COPYING HERE` marker** — everything > above it reveals nothing sensitive beyond your bot names. **Advanced — full debug-level logs:** Restart the backend with debug logging enabled to capture detailed radio communication and packet processing: ```bash MESHCORE_LOG_LEVEL=DEBUG uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 ``` Then reproduce the issue and paste the relevant log output. </details> --- **Additional context** <!-- Anything else that might help. --> <!-- github-sync-id:5180229935 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/Remote-Terminal-for-MeshCore#256