I am considering using XBee 3 BLU on simpleRTK4 Optimum to provide BLE to the board, so phones can connect to the board sending NTRIP and receiving GNSS messages
similar to https://www.ardusimple.com/product/ble-bridge/
my understanding is
MicroPython REPL mode required, since the communication needs to be transparent bridge, not wrapped in API, hostless setup with no additional app required on the phone
example microPython code
from digi import ble
from machine import UART
import time
# -----------------------
# UART to SimpleRTK
# -----------------------
# UART pins: TX/RX on the XBee module (standard XBee UART)
# Adjust baudrate if your SimpleRTK requires something else
uart = UART(0, baudrate=115200, bits=8, parity=None, stop=1)
# -----------------------
# BLE UART Service (NUS)
# -----------------------
# Expose BLE UART service for phone connection
ble_uart = ble.UARTService(name="SimpleRTK-BLE")
# Enable BLE advertising
ble.advertise(True)
print("BLE UART bridge running...")
print("Waiting for phone to connect...")
# -----------------------
# Main loop
# -----------------------
while True:
# 1) Forward data from BLE -> UART
if ble_uart.any():
try:
data_from_ble = ble_uart.read()
if data_from_ble:
uart.write(data_from_ble)
except Exception as e:
print("BLE->UART error:", e)
# 2) Forward data from UART -> BLE
if uart.any():
try:
data_from_uart = uart.read()
if data_from_uart:
ble_uart.write(data_from_uart)
except Exception as e:
print("UART->BLE error:", e)
time.sleep(0.005) # small delay to avoid busy loop
Does this sound about right?