GPS
Configure GPS receivers for position-driven beacons
A GPS receiver provides live position data for tracker beacons and SmartBeacon rate adaptation. Graywolf supports two GPS source types: direct serial NMEA and the gpsd daemon.
Settings
| Field | Default | Description |
|---|---|---|
enabled |
false |
Enable GPS receiver |
source_type |
none |
none, serial, or gpsd |
Serial NMEA
Connect a GPS receiver directly via serial port. Graywolf reads NMEA 0183 sentences and extracts position, speed, and course data.
| Field | Default | Description |
|---|---|---|
device |
— | Serial device path (e.g., /dev/ttyUSB0, /dev/ttyACM0) |
baud_rate |
4800 |
Serial baud rate (most GPS modules use 4800 or 9600) |
The graywolf user needs permission to access the serial device.
The systemd service includes the dialout group for
this purpose. For manual runs, add your user to the group:
sudo usermod -aG dialout $USER
gpsd
gpsd is a GPS service daemon that manages GPS hardware and provides a clean TCP interface. Use this when gpsd is already running on your system or when you need to share a GPS receiver between multiple programs.
| Field | Default | Description |
|---|---|---|
gpsd_host |
localhost |
gpsd server hostname |
gpsd_port |
2947 |
gpsd server port |
gpsd is the recommended approach for Raspberry Pi setups. It
handles device hotplug, PPS timing, and allows multiple clients
to share one GPS receiver. Install it with
sudo apt install gpsd.
Position Cache
GPS positions are cached in memory and made available to beacons and
the REST API. When a beacon has use_gps: true, it pulls
the latest cached position at transmission time. If no GPS fix is
available, the beacon falls back to its configured static coordinates.
Hot Reload
GPS configuration changes take effect immediately without restarting graywolf. When you update GPS settings through the web UI or API, the GPS receiver is stopped and restarted with the new configuration.
API Reference
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/gps | Get GPS configuration |
| POST | /api/gps | Update GPS settings |
| GET | /api/position | Get current cached position |