B.B. Link bridges the Bluetooth Classic Serial Port Profile (SPP) of a Kenwood TH-D74 or TH-D75 to Bluetooth Low Energy (BLE). This allows compatible iPhone and iPad applications, including RadioMail, to use the radio's built-in KISS TNC.
This fork targets the M5Stack ATOM Lite. The firmware advertises the
compatibility name B.B. Link and supports radio discovery, reconnect,
KISS-mode initialisation, rig control, deep sleep, and factory reset.
- M5Stack ATOM Lite
- USB power source and USB cable, or the optional M5Stack Tail Bat
- Kenwood TH-D74 or TH-D75
- iPhone or iPad with B.B. Link Configurator and RadioMail
The ATOM Lite can be powered from a USB adapter, power bank, compatible iPhone/iPad USB connection, or Tail Bat. The firmware uses an 80 MHz CPU clock, reduced Bluetooth transmit power, and low RGB LED brightness to reduce power draw. M5Stack specifies a 190 mAh rechargeable lithium battery for the Tail Bat.
Tip
The ATOMIC Motion Base v1.2 with Power Monitor (SKU: A090-V12) is another battery-powered option that avoids an external power source or USB cable while operating.
Tip
Operation Guide Available! May be useful. Save on your Phone, Tablet, or Computer. After completing Build and upload.
- Power on the ATOM Lite.
- Open B.B. Link Configurator and select
B.B. Link. - On the radio, open Menu > Bluetooth > Pairing Mode.
- In the Configurator, open Paired Radio and select the radio.
- Accept the pairing request on the radio.
The pairing is stored, and the adapter reconnects automatically after restart. A breathing blue LED indicates that the saved radio is connected.
- Fully close B.B. Link Configurator.
- In RadioMail, open Settings > KISS TNC Modem > Default TNC.
- Select
B.B. Link, then tap Done. - Open the connection screen and select a packet station.
A solid blue LED indicates that both the radio and the iOS device are connected.
| Action | Result |
|---|---|
| Short press | Disconnect and retry the saved radio connection |
| Hold for 2 seconds while running | Enter deep sleep |
| Press while sleeping | Wake the adapter |
| LED | State |
|---|---|
| 🟡 | Waiting to pair |
| 🔵 Slow flashing | Scanning for the radio |
| 🔵 Breathing | Radio connected; waiting for iOS |
| 🔵 Solid | Radio and iOS connected |
| 🟡 Fast flashing | Entering deep sleep |
| 🔴 Slow flashing | Fatal error; reset required |
| 🟢 Activity | Receiving from the radio |
| 🔴 Activity | Transmitting to the radio |
| 🟣 Activity | Simultaneous receive/transmit activity |
Rig control is enabled by default. The adapter initialises KISS mode and can respond to RadioMail frequency-change commands. Disable Control Frequency in B.B. Link Configurator if the adapter must not change radio settings.
Use Reset Adapter in B.B. Link Configurator, or connect a serial monitor at
115200 baud and send an uppercase R. This clears saved configuration and
Bluetooth pairing information.
If the adapter connects but the radio does not transmit, open Menu > Configuration > Interface > KISS (983) on the radio and set KISS to Bluetooth.
Firmware is installed locally via USB using the Arduino IDE.
- Install the latest Arduino IDE.
- Setup M5Stack Environment
Tip
Add M5Stack's Boards
File->Preferences->Additional boards manager URLs
Paste this URL
https://static-cdn.m5stack.com/resource/arduino/package_m5stack_index.json
-
Install these libraries in Library Manager:
Library Version M5Unified 0.2.19 FastLED 3.10.5 ArduinoQueue 1.2.5 -
Open
bb-link.ino. -
Select M5Atom from Tools > Board. This matches M5Stack's official ATOM Lite upload guide.
-
Select the ATOM Lite serial port and click Upload.
The build and execution have been tested in the following environments
- macOS 27 Public Beta (Apple Silicon)
- Windows 11 Pro 25H2
- Arduino IDE 2.3.10
- Kenwood TH-D75 V1.03 (Japan Model)
- iOS/iPadOS 27 Public Beta
- iPhone 15 Pro
- iPad Pro M4
- RadioMail 1.6.1 (2) TestFlight
bb-link.ino Arduino sketch entry point
src/ Firmware implementation and headers
LICENSE GPL-3.0 license
README.md Build and operating instructions
The repository root is the Arduino sketch directory, named bb-link to match
bb-link.ino. Its internal C++ sources are kept in the sketch's src/
directory, which Arduino compiles recursively according to the
official sketch specification.
Warning
Carry the B.B. Link and Tail Bat in carry-on baggage, not checked baggage. Keep the Tail Bat switched off and protect the assembly from damage and accidental activation. If the Tail Bat is detached, insulate its exposed connector or place it in a separate protective pouch to prevent a short circuit. Do not carry a damaged, swollen, or recalled battery.
As of August 2026, the ICAO Technical Instructions, 2025–2026 Edition, Addendum No. 1 require spare lithium batteries and power banks to be carried in the cabin and individually protected against short circuits. The IATA passenger lithium-battery guidance also advises carrying battery-powered devices in hand baggage and checking the operating airline's policy, which may be stricter.
M5Stack publishes the Tail Bat capacity in mAh but does not show a Wh rating on its product page. Keep the official Tail Bat specification available when travelling and ask the airline in advance if it requires a visible Wh rating or other battery documentation. Airline staff may decline a battery if its rating cannot be verified.
My Tail Bat's Battery is printed : 3.7V, 900mAh, 3.33Wh
Make Sure your own Tail Bat!!!!!
This project is licensed under GPL-3.0.
The original B.B. Link project and product documentation were maintained by Island Magic Co., with the upstream source at islandmagic/bb-link and fanlessfan/bb-link.


