I’m trying to get the internal LoRa radios working between two FPM-T units running as a base and rover pair. The rover seems to ignore the configuration and is trying to use the external radio interface rather than the internal LoRa radio.
The base is configured in fixed/static position mode.
Both units are running ESP32 firmware version d3.4 and LoRa firmware version 3.0.1.
Both units are configured the same in their Configure Radios menu:
ESP-NOW Radio: Disabled
LoRa Radio: Enabled
LoRa Coordination Frequency: 910.000
LoRa Transmit Gain: 10dB
LoRa Save Settings to Flash: Disabled
With Print LoRa Debugging enabled on the base unit, I see these messages on the serial console at startup (unrelated messages edited out):
Radio Ext corrections: disabled -> enabled (Forced)
STATE_BASE_NOT_STARTED --> STATE_BASE_CONFIG_WAIT
Mode: Base fixed Geodetic
Begin LoRa
LoRa firmware: 3.0.1
Getting LoRa radio attributes
RADIO_ATTR:
version: 301
mode: 4
freq tx: 915000000
freq rx: 915000000
bps: 38400
bwid tx: 250
bwid rx: 250
power: 10
dprt: 1
OK
Base Mode - SIV: 20
Base configured
STATE_BASE_CONFIG_WAIT --> STATE_BASE_FIXED_NOT_STARTED, 2026-07-06 20:43:41.116
Mode: Base fixed Geodetic
LoRa: Moving to TX
LoRa radio configured for transmitting
Base Mode - SIV: 20
STATE_BASE_FIXED_NOT_STARTED --> STATE_BASE_FIXED_TRANSMITTING, 2026-07-06 20:43:43.831
LoRa should have transmitted 0 RTCM bytes
Base Mode - SIV: 20
LoRa should have transmitted 1401 RTCM bytes
and these messages repeating during operation:
LoRa should have transmitted <xxxx> bytes
The base unit’s OLED display shows the base (“fortress”) icon and “Xmitting RTCM” with increasing values.
On the rover unit, with Print Correction Debugging and Print LoRa Debugging both enabled, I see these messages at startup (unrelated messages edited out):
Radio Ext corrections: disabled -> enabled (Forced)
STATE_ROVER_NOT_STARTED --> STATE_ROVER_CONFIG_WAIT
Mode: Rover
Begin LoRa
LoRa firmware: 3.0.1
Getting LoRa radio attributes
RADIO_ATTR:
version: 301
mode: 4
freq tx: 915000000
freq rx: 915000000
bps: 38400
bwid tx: 250
bwid rx: 250
power: 10
dprt: 1
OK
Rover Accuracy (m): 2.938, SIV: 18 GNSS State: DGPS Fix
Rover configured
STATE_ROVER_CONFIG_WAIT --> STATE_ROVER_NO_FIX, 2026-07-06 20:27:12.068
LoRa: Moving to RX Dedicated
LoRa radio configured for receiving
The rover unit’s Configure Corrections Priorities menu shows an asterisk on the External Radio line, along with “active”, and a Last Seen values that ranges up to about 15 Sec. The LoRa Radio line shows “inactive”. I moved the LoRa line up to Priority 0 from the default position; either way, the results were the same.
The rover unit’s OLED display shows the Handheld Radio icon (external radio) rather than the Broadcast Tower icon (LoRa radio).
And, the rover never indicates either RTK Float or RTK Fix status.
This behavior is similar to that described in this SparkFun forums topic:
https://community.sparkfun.com/t/base-rover-setup-with-original-rtk-torch-and-sparkpnt-fpm-t/68989/8
but that seemed to be a firmware mismatch problem, which isn’t the case with my two FPM-T units.
Taking a very quick look at GNSS_Mosaic.ino in the RTK Everywhere firmware source code, in the method GNSS_MOSAIC::begin(), I’m intrigued by this line and its comments:
// Set COM2 (Radio) protocol(s)
// Both Ext Radio and LoRa need RTCM on UART2
// Note: this is probably redundant? I'm now not sure why I added it...
setCorrRadioExtPort((settings.enableExtCorrRadio || settings.enableLora), true); // Force the setting
Ideas, anyone? Thanks!