Describe the bug
LowMesh boards advertise over BLE as LowMesh_MC_<id> (e.g. LowMesh_MC_2236). They never appear in the pairing picker, so they can't be added — even though they're ordinary MeshCore companion radios. I tested two different LowMesh devices; neither showed up.
The cause looks like the AccessorySetupKit discovery filter. On iOS 26.1+ the picker uses filtered discovery, and the filter is built from AccessorySetupKitDiscoveryCriteria.bluetoothNameSubstrings, which doesn't include LowMesh:
// MC1Services/Sources/MC1Services/Services/AccessorySetupKitDiscoveryCriteria.swift:14
static let bluetoothNameSubstrings = [
"MeshCore-", "Whisper-", "WisCore", "XIAO", "elecrow", "HT-n5262", "Seeed",
"BQ", "ProMicro", "Keepteen", "Meshtiny", "T1000-E-BOOT", "me25ls01-BOOT",
"NRF52 DK", "T-Impulse",
]
To Reproduce
- Power on a LowMesh node (advertises as
LowMesh_MC_...)
- In MeshCore One, go to add a new BLE device
- The picker appears but never lists the node
Reproduced with two separate LowMesh devices. Other MeshCore hardware pairs normally on the same phone.
Expected behavior
A LowMesh node appears in the pairing picker like any other MeshCore-compatible device.
Evidence that these are normal companion radios
Verified from macOS, to rule out the hardware:
- The device advertises the Nordic UART service the app scans for. A
bleak scan of 38 nearby BLE devices returned exactly one match for 6E400001-B5A3-F393-E0A9-E50E24DCCA9E:
955DB188-0456-75BD-1042-BC1B74AD2CC5 LowMesh_MC_2236 [MeshCore service, rssi -50]
meshcore-cli connects to it by address and it answers the companion protocol normally:
model: RAK 4631, ver: v1.16.0, fw ver 13, max_contacts 350, max_channels 40
Suggested fix
Add "LowMesh" to bluetoothNameSubstrings. It's a substring match, so one entry covers LowMesh_MC_2236 and any other LowMesh_* variant.
I've confirmed the LowMesh_MC_ prefix on the device above; I haven't surveyed the whole product line, so LowMesh is the safer of the two as a match string.
Happy to open the PR if you'd prefer that to implementing it yourself.
Device (please complete the following information):
- Device: iPhone 17 Pro
- OS: iOS 26.6
- Version: v1.4.0
- Build: 202
Describe the bug
LowMesh boards advertise over BLE as
LowMesh_MC_<id>(e.g.LowMesh_MC_2236). They never appear in the pairing picker, so they can't be added — even though they're ordinary MeshCore companion radios. I tested two different LowMesh devices; neither showed up.The cause looks like the AccessorySetupKit discovery filter. On iOS 26.1+ the picker uses filtered discovery, and the filter is built from
AccessorySetupKitDiscoveryCriteria.bluetoothNameSubstrings, which doesn't includeLowMesh:To Reproduce
LowMesh_MC_...)Reproduced with two separate LowMesh devices. Other MeshCore hardware pairs normally on the same phone.
Expected behavior
A LowMesh node appears in the pairing picker like any other MeshCore-compatible device.
Evidence that these are normal companion radios
Verified from macOS, to rule out the hardware:
bleakscan of 38 nearby BLE devices returned exactly one match for6E400001-B5A3-F393-E0A9-E50E24DCCA9E:meshcore-cliconnects to it by address and it answers the companion protocol normally:Suggested fix
Add
"LowMesh"tobluetoothNameSubstrings. It's a substring match, so one entry coversLowMesh_MC_2236and any otherLowMesh_*variant.I've confirmed the
LowMesh_MC_prefix on the device above; I haven't surveyed the whole product line, soLowMeshis the safer of the two as a match string.Happy to open the PR if you'd prefer that to implementing it yourself.
Device (please complete the following information):