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-0.5.2.tar.gz (860.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-0.5.2-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rox_septentrio-0.5.2.tar.gz
  • Upload date:
  • Size: 860.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-0.5.2.tar.gz
Algorithm Hash digest
SHA256 94a647872764b356a88bf6c2ebabf04ae63207cd514400971288b96b5d52bd00
MD5 a214e670de197d1ebf761e13c3e5b6c2
BLAKE2b-256 aca43003ce7014ade188f6d479b422a8f99bd5502d3aab85d51b453fc08ebb06

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rox_septentrio-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 10.4 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-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1307f21a407fa8cc9c33569eb546c7562413747aebe1cd4b3a63683458f7c4cc
MD5 e8f8288f0541c0d4a8700f901c405b8a
BLAKE2b-256 8cbe4a60e981340137e51353a1b1e220b290149f764c4db39dc8e0cfc5d435b5

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