Skip to main content

Driver for Septentrio GPS, posting messages to mqtt

Project description

Septentrio GPS

What it does:

  • Reads NMEA messages from the gps receiver (over serial or ip)
  • parses them and calculates ENU coordinates
  • publishes latlon and enu data as json to mqtt topics.

mqtt messages

topic: /gps/position
{"lat":51.45655803,"lon":6.08187908,"x":-13.354,"y":-67.59,"gps_qual":4,"time":"14:27:27.800000","ts":1726149158.437}

topic: /gps/direction
{"heading":152.22,"heading_stdev":0.084,"theta":-1.0859,"ts":1726149158.441}

1. Configure receiver

Install and configure gps receiver as described in installation manual

2. Launch docker container

get docker image (use tag for version)

registry.gitlab.com/roxautomation/components/septentrio-gps:latest

launch container with

docker run \
-e GPS_NODE_TYPE=ip \
-e GPS_IP_HOST=<hostname> \
registry.gitlab.com/roxautomation/components/septentrio-gps:latest

Set these environment variables to override default settings:

MQTT

  • MQTT_HOST: MQTT server host (default: "localhost").
  • MQTT_PORT: MQTT server port (default: 1883).
  • MQTT_POSITION_TOPIC: MQTT topic for GPS positions (default: "/gps/position").
  • MQTT_DIRECTION_TOPIC: MQTT topic for GPS directions (default: "/gps/direction").

GPS

  • GPS_NODE_TYPE: "serial" or "ip" (default: "serial").
  • GPS_SERIAL_PORT: Serial port for GPS (default: "/dev/gps_nmea").
  • GPS_SERIAL_BAUD: Baud rate for GPS serial communication (default: 115200).
  • GPS_IP_HOST : ip server address (default localhost)
  • GPS_IP_PORT : ip port (default 28000)
  • GPS_REF: gps reference point, provide lat,lon, example: GPS_REF="51.123,6.456"

Precision

  • DIGITS_POSITION : meter position accuracy, defaults to 3
  • DIGITS_LATLON : digits latitude and longitude, defaults to 8
  • DIGITS_ANGLE : angle accuracy, defaults to 4

(note: configuration is defined in config.py)

Development

There should be mqtt broker available on the host system. If not, there is a docker image for that:

docker run -d --name mosquitto --restart unless-stopped -p 1883:1883 registry.gitlab.com/roxautomation/images/mosquitto:latest
  • Open in VSCode devcontainer. Virtual com port is located at /tty/tty_nmea_rx
  • Pre-recorded nmea stream can be sent to com port with replay_data.py in integration/data folder.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rox_septentrio-1.0.1.tar.gz (864.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rox_septentrio-1.0.1-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file rox_septentrio-1.0.1.tar.gz.

File metadata

  • Download URL: rox_septentrio-1.0.1.tar.gz
  • Upload date:
  • Size: 864.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for rox_septentrio-1.0.1.tar.gz
Algorithm Hash digest
SHA256 673579ebee9a45de5685dfee3966700fa5ad579edf0ed6b4be08ab93dc0e240c
MD5 1ec2dd7638c6b5df1eef30761cdea892
BLAKE2b-256 8b232bd631137eacc7967c275f01690935ff52f476f447c260857852b720cf15

See more details on using hashes here.

File details

Details for the file rox_septentrio-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: rox_septentrio-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for rox_septentrio-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6216e9f9780bf68adf34239921c03fba2a2f57ab8ff22b000d808247e0e06dbb
MD5 8adb9692c47ab8bd81f1bf340a504399
BLAKE2b-256 b0b955f20b5f74420587dc721fbd04113eee57a2f4aef02a836e02694a85f023

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page