Category
Other
Hardware
Linux Native
Is this bug report about any UI component firmware like InkHUD or Meshtatic UI (MUI)?
Firmware Version
2.7.22.56obs01bd4cfalpha
Description
GPS configuration from config.yaml is silently ignored in version 2.7.22. The daemon starts with Run without GPS even though the GPS: SerialPath is correctly defined in the config file. The same configuration works correctly on version 2.7.15.48 (beta).
The GPS module (L76K) is confirmed working — cat /dev/ttyAMA0 outputs valid NMEA sentences at 9600 baud. No other process is holding the serial port.
GPS configuration from config.yaml is silently ignored in version 2.7.22. The daemon starts with Run without GPS even though the GPS: SerialPath is correctly defined in the config file. The same configuration works correctly on version 2.7.15.48 (beta).
The GPS module (L76K) is confirmed working — cat /dev/ttyAMA0 outputs valid NMEA sentences at 9600 baud. No other process is holding the serial port.
Steps to Reproduce
- Install meshtasticd 2.7.22 on Raspberry Pi
- Configure
/etc/meshtasticd/config.yaml with:
GPS:
SerialPath: /dev/ttyAMA0
- Set GPS mode to enabled:
meshtastic --host localhost --set position.gps_mode ENABLED
- Restart meshtasticd
- Observe logs:
Run without GPS — no attempt to probe or open the serial port
Additional observations
meshtasticd -y (emit parsed YAML) never outputs the GPS section, regardless of where GPS config is placed (main config.yaml, config.d/ directory, or even a minimal standalone config file with only GPS defined)
- Placing GPS config in
config.d/gps.yaml — file is loaded (Also using ... gps.yaml) but GPS is still not initialized
position.gps_mode returns 1 (ENABLED) via CLI
- The serial port is functional:
/dev/ttyAMA0 at 9600 baud returns valid NMEA data from the L76K module
- fuser /dev/ttyAMA0 does not show connected process
- meshtasticd has rights to access /dev/ttyAMA0
Working version
Downgrading to 2.7.15.48~beta with the exact same config.yaml on the same platform immediately resolves the issue:
DEBUG | [GPS] Trying $PCAS06,0*1B (L76K)...
INFO | [GPS] L76K detected
DEBUG | [GPS] NMEA GPS time set 2026-04-19 17:43:30 age 202
Expected Behavior
meshtasticd should parse the GPS: SerialPath key from config.yaml and probe the serial port for GPS modules, as it does in 2.7.15.
Actual Behavior
The GPS section is silently dropped during config parsing. No error is logged. The daemon proceeds without GPS.
Config files
/etc/meshtasticd/config.yaml:
Lora:
Module: auto
GPS:
SerialPath: /dev/ttyAMA0
I2C:
I2CDevice: /dev/i2c-1
Logging:
LogLevel: debug
Webserver:
Port: 9443
RootPath: /usr/share/meshtasticd/web
General:
MaxNodes: 200
MaxMessageQueue: 100
ConfigDirectory: /etc/meshtasticd/config.d/
AvailableDirectory: /etc/meshtasticd/available.d/
MACAddressSource: eth0
LoRa hardware config loaded from config.d/lora-MeshAdv-900M30S.yaml (MeshAdv 900M30S hat with SX1262).
Relevant log output
Category
Other
Hardware
Linux Native
Is this bug report about any UI component firmware like InkHUD or Meshtatic UI (MUI)?
Firmware Version
2.7.22.56
obs01bd4cfalphaDescription
GPS configuration from config.yaml is silently ignored in version 2.7.22. The daemon starts with Run without GPS even though the GPS: SerialPath is correctly defined in the config file. The same configuration works correctly on version 2.7.15.48 (beta).
The GPS module (L76K) is confirmed working — cat /dev/ttyAMA0 outputs valid NMEA sentences at 9600 baud. No other process is holding the serial port.
GPS configuration from
config.yamlis silently ignored in version 2.7.22. The daemon starts withRun without GPSeven though theGPS: SerialPathis correctly defined in the config file. The same configuration works correctly on version 2.7.15.48 (beta).The GPS module (L76K) is confirmed working —
cat /dev/ttyAMA0outputs valid NMEA sentences at 9600 baud. No other process is holding the serial port.Steps to Reproduce
/etc/meshtasticd/config.yamlwith:meshtastic --host localhost --set position.gps_mode ENABLEDRun without GPS— no attempt to probe or open the serial portAdditional observations
meshtasticd -y(emit parsed YAML) never outputs theGPSsection, regardless of where GPS config is placed (main config.yaml, config.d/ directory, or even a minimal standalone config file with only GPS defined)config.d/gps.yaml— file is loaded (Also using ... gps.yaml) but GPS is still not initializedposition.gps_modereturns1(ENABLED) via CLI/dev/ttyAMA0at 9600 baud returns valid NMEA data from the L76K moduleWorking version
Downgrading to 2.7.15.48~beta with the exact same
config.yamlon the same platform immediately resolves the issue:Expected Behavior
meshtasticd should parse the
GPS: SerialPathkey from config.yaml and probe the serial port for GPS modules, as it does in 2.7.15.Actual Behavior
The
GPSsection is silently dropped during config parsing. No error is logged. The daemon proceeds without GPS.Config files
/etc/meshtasticd/config.yaml:LoRa hardware config loaded from
config.d/lora-MeshAdv-900M30S.yaml(MeshAdv 900M30S hat with SX1262).Relevant log output