Bluetooth
The Flipper Zero, Kiisu, and Chameleon Ultra can be reached over BLE - for a wireless CLI and for pairing Fantasi devices to each other. The Proxmark3 has no radio.
| Target | BLE stack | Central | Peripheral |
|---|---|---|---|
| Flipper Zero | STM32WB (CPU2) | Yes | Yes |
| Kiisu | STM32WB (CPU2) | Yes | Yes |
| Chameleon Ultra | Nordic S140 | Yes | Yes |
| Proxmark3 | - | - | - |
Enable the radio with ble on if it's off. On the Flipper this also needs a wireless stack installed - see Radio Stack.
Finding a device
Scan from another Fantasi (or your host) - devices advertise as Fantasi <name>:
fantasi> scan
F8:F5:60:D9:51:CE -59 dBm "Fantasi Thadusag"
C2:50:09:7F:30:7B -51 dBm "Fantasi Sur1d0r"
Pairing
All pairing uses Passkey Entry: one side shows a 6-digit code, the other enters it. The code appears in the displaying device's log (and on the Flipper's screen).
The Fantasi host CLI pairs on demand - point it at an address and, if it isn't already bonded, it pairs first, then connects:
fantasi --ble-addr=F8:F5:60:D9:51:CE
# enter the 6-digit passkey shown in the device's `log` when prompted
To pair one Fantasi device to another, run pair <addr> on the connecting (central) device and read the passkey from the other device's log:
fantasi> pair C2:50:09:7F:30:7B r # add "r" if the peer uses a random address (the Chameleon does)
enter passkey: 588350
Bonds persist across reboots; unpair removes them (see settings).
Reading the passkey with log
fantasi> log
[0000054.407] [I] BLE pair code: 588350
[0000055.123] [I] BLE pair ok (0x00)
Press Ctrl-C to stop streaming.
Once connected
Every CLI command works over BLE, including file operations (ls, cat, upload, rm, mkdir).
Troubleshooting
**pair failed: Authentication Timeout (no passkey prompt). The device still holds an old bond that the host has forgotten - an asymmetric bond. Clear it on the device** side over USB, then retry:
fantasi /dev/ttyACM* # then, at the prompt: unpair
fantasi --ble # retry - you should now get the passkey prompt