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.0.tar.gz (864.0 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.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rox_septentrio-1.0.0.tar.gz
  • Upload date:
  • Size: 864.0 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.0.tar.gz
Algorithm Hash digest
SHA256 cad7fca3b6061efd8ca99130626396af6c537e9a9bb881abc43268daff3842a1
MD5 d52ffd2d6caa606e0812a689ca148ee3
BLAKE2b-256 c6ac520fa846e8de3cfe44653fecec206c916ffcbfb7c30b75c8c75cd29c0685

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rox_septentrio-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 15.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a520c37208c088e57cb6aa387e4d950b4193e439d260a83120a282a47afed13
MD5 9e04373ee2b30206b3a3bfd0d8a91ab4
BLAKE2b-256 0a69f6e29300df9155f20e6ac6b3d0f751c3986775ece5c4ff92ac3dd1797c78

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