The onboard Intel AX210 on telep-mainframe saw zero BLE devices on every LE scan — not even stray phones — and lescan returned an I/O error. Root cause: there is NO ANTENNA plugged into the AX210 M.2 card. The AX210’s Bluetooth shares the card’s antenna (u.FL connector); with no antenna there is no RF path, so the controller powers on and reports UP RUNNING (chip init needs no antenna) but can receive nothing. This blocked the 7 print appliance (which needs BLE to reach a Marklife P15). Fix: plug the antenna into the AX210’s u.FL connector (it carries both WiFi + BT). A USB BLE dongle is only a fallback if no antenna is available.
Root cause = missing antenna, NOT a defective adapter
The AX210 is not broken. It has no antenna connected, so its RF receive path is dead. The real tell was “zero BLE devices seen, not even stray phones” — a classic RF/antenna symptom, not a firmware bug. Firmware/kernel/reboot fixes could never have helped a physical problem.
For Agents
Host: telep-mainframe, Debian 13 (trixie). Adapter: Intel AX210 = hci0, USB 8087:0032 at usb path 1-14, BD 7C:50:79:07:A9:53.
Symptom: hcitool -i hci0 lescan → Set scan parameters failed: Input/output error. bluetoothctl / btmgmt find -l LE scans return zero devices (not even stray phones). Classic BR/EDR init looks fine (hciconfig hci0 = UP RUNNING; btmgmt info current settings include le) because chip init needs no antenna.
Root cause: NO ANTENNA on the AX210 M.2 card — WiFi + BT share the card’s u.FL antenna; no antenna = no RF receive.
Fix: plug the antenna into the AX210 u.FL connector. Fallback only if no antenna available: a USB BLE dongle (comes up as hci1).
Lesson: when a scan sees ZERO devices including strays, check physical RF (antenna) FIRST, before firmware/kernel/reboot.
Software side is FULLY provisioned and staged at /home/levander/thermoprint:
Bun 1.3.14 at ~/.bun/bin/bun
thermoprint repo cloned
bun install clean — 672 packages, incl. sharp + @stoprocent/noble
setcap cap_net_raw,cap_net_admin+eip granted on the bun binary (Noble raw HCI)
Approach A (Bun print-service reusing thermoprint core + Noble, serving the patched web editor, tailscale serve + landing page) — spec and plan written
Everything is ready except a working BLE RF path (the missing antenna).
bluetoothctl scan (LE) and btmgmt find -l → zero devices discovered — not even nearby phones (the decisive clue: a working radio in a populated area always sees some stray BLE advertisers)
Classic Bluetooth init looks healthy: hciconfig hci0 shows UP RUNNING; btmgmt info current settings include le; the controller powers on normally — because chip initialization does not need an antenna, only RF send/receive does
Root cause
No antenna is plugged into the AX210 M.2 card. On the AX210, WiFi and Bluetooth share the card’s antenna via a u.FL connector. With nothing connected there is no RF path: the controller can power on and report UP RUNNING (init needs no antenna), but it can transmit/receive nothing — so an LE scan discovers zero devices and the scan-parameter path effectively fails with an I/O error. This is a physical fault, not firmware or silicon.
What was tried — ineffective (the cause was physical)
These OS-side attempts were an unnecessary detour: none of them could fix a missing-antenna problem, and none did.
When a BLE scan sees zero devices including stray advertisers, suspect the antenna / RF path first, before spending time on firmware currency, kernel updates, or reboots. Those are the wrong layer for an “everything looks up but nothing is heard” symptom.
Fix / next step
Plug the antenna into the AX210’s u.FL connector (the M.2 card’s antenna pigtail — carries both WiFi and BT). This restores the RF path for BLE scanning.
Fallback only (if no antenna is available): plug a cheap USB Bluetooth dongle (~$5–10, e.g. CSR8510 or any BLE-capable adapter) — it comes up as hci1 and does BLE independently of the AX210.
Ensure the P15 is powered ON, woken (press its button so it advertises), and within ~10 m BLE range of the mainframe.
Re-run discovery (Task 1 gate of the plan):
cd /home/levander/thermoprint && ~/.bun/bin/bun run packages/cli/src/index.ts discover
Expected: a printer whose name starts with P15/LP15/etc.