No project description provided
Project description
Tools for the Duro GNSS receiver
Python tools for the Duro GNSS receiver. This repository includes a variety of command line utilities (firmware bootloader, serial port data logging, etc.).
Versioning
duro_tools versioning scheme is guided by the supported version of
libsbp. The following major version schemes map to the supported versions of libsbp:
| duro_tools version | libsbp version |
|---|---|
| v2.x.x | libsbp v4.1.1 |
| v1.x.x | libsbp v2.7.4 |
Building and Installing
duro_toolsuses poetry to organize dependencies and generate distributions.
You can find more information on using potery has a packaging and dependency manager at https://python-poetry.org/.
Installing Poetry
project version: 1.8.3
installation: poetry installation docs
Building and Installing
It is advised to install duro_tools inside a virtual environment to avoid modifying system packages.
$ poetry build # build distributions
$ poetry install # install into local environment
Usage
Settings
For reading, writing and saving Duro settings/configuration
usage: python -m duro_tools.settings [-h] [-p PORT] [-b BAUD] [--rtscts] [-t] [-f] [--file] [--json] [--playback] [-v] [--timeout TIMEOUT] [-s] {save,reset,read,all,write,read_to_file,write_from_file} ...
Duro Settings Tool
positional arguments:
{save,reset,read,all,write,read_to_file,write_from_file}
save save all the current settings to flash
reset reset settings to factory defaults
read read the current setting
all read all the settings
write write the current setting
read_to_file read the current settings file from device
write_from_file write settings file to device
options:
-h, --help show this help message and exit
-p PORT, --port PORT specify the serial port to use
-b BAUD, --baud BAUD specify the baud rate to use
--rtscts enable Hardware Flow Control (RTS/CTS)
-t, --tcp use a TCP connection instead of a local serial port (if TCP is selected, the port is interpreted as host:port)
-f, --ftdi use pylibftdi instead of pyserial.
--file read with a filedriver rather than pyserial.
--json input is SBP JSON
--playback emulate real input
-v, --verbose print extra debugging information.
--timeout TIMEOUT timeout for settings calls in seconds (default: 0.5)
-s, --save_after_write
save settings to flash after successful write or write_from_file
Returns:
0: Upon success
1: Runtime error or invalid settings request.
2: Improper usage
File IO
For transferring files to and from the Duro
usage: python -m duro_tools.fileio [-h] [-w SOURCE DEST] [-r SOURCE [DEST ...]] [-l LIST] [-d DELETE] [-p PORT] [-b BAUD] [-t] [-v] [-x] [-f]
Duro File I/O Utility
options:
-h, --help show this help message and exit
-w SOURCE DEST, --write SOURCE DEST
write a file from local SOURCE to remote destination DEST
-r SOURCE [DEST ...], --read SOURCE [DEST ...]
read a file from remote SOURCE to local DEST. If no DEST is provided, file is read to stdout.
-l LIST, --list LIST list a directory
-d DELETE, --delete DELETE
delete a file
-p PORT, --port PORT specify the serial port to use
-b BAUD, --baud BAUD specify the baud rate to use
-t, --tcp use a TCP connection instead of a local serial port (if TCP is selected, the port is interpreted as host:port)
-v, --verbose print extra debugging information
-x, --hex output in hex dump format
-f, --ftdi use pylibftdi instead of pyserial
Bootload
For updating Duro firmware
usage: python -m duro_tools.bootload_v3 [-h] [-p PORT] [-b BAUD] [--rtscts] [-t] [-f] [--file] [--json] [--playback] [-v] firmware
Duro Bootloader
positional arguments:
firmware the image set file to write to flash
options:
-h, --help show this help message and exit
-p PORT, --port PORT specify the serial port to use
-b BAUD, --baud BAUD specify the baud rate to use
--rtscts enable Hardware Flow Control (RTS/CTS)
-t, --tcp use a TCP connection instead of a local serial port (if TCP is selected, the port is interpreted as host:port)
-f, --ftdi use pylibftdi instead of pyserial
--file read with a filedriver rather than pyserial
--json input is SBP JSON
--playback emulate real input
-v, --verbose print extra debugging information
USB issues on OS X
The ftdi USB drivers are finicky on some versions of OS X. See their docs <http://pylibftdi.readthedocs.io/en/latest/troubleshooting.html#where-did-my-ttyusb-devices-go>__ for help debugging (tl;dr if you try to plug in multiple USB devices to the same port, the subsequent ones may not appear through ftdi even if they appear in the result of sudo dmesg. Only restarting your machine will fix this.)
License
Copyright (C) 2025 Carnegie Robotics LLC.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file duro_tools-2.0.0.dev1.tar.gz.
File metadata
- Download URL: duro_tools-2.0.0.dev1.tar.gz
- Upload date:
- Size: 32.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c87c81cef2f335c35a8e477f211d896542d52cab9d96bef465815fbc461aa9c6
|
|
| MD5 |
318d14c7dd39769ea0a5c6c897e112a4
|
|
| BLAKE2b-256 |
074059688fe42f76b753cbb629a00ea3483bd5ffe9b363e9b698911e88ef91ca
|
Provenance
The following attestation bundles were made for duro_tools-2.0.0.dev1.tar.gz:
Publisher:
workflow.yaml on carnegierobotics/duro_tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
duro_tools-2.0.0.dev1.tar.gz -
Subject digest:
c87c81cef2f335c35a8e477f211d896542d52cab9d96bef465815fbc461aa9c6 - Sigstore transparency entry: 529473716
- Sigstore integration time:
-
Permalink:
carnegierobotics/duro_tools@1a4f12480965dbb331ad1d8ee283c446e4319f39 -
Branch / Tag:
refs/tags/v2.0.0.dev1 - Owner: https://github.com/carnegierobotics
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yaml@1a4f12480965dbb331ad1d8ee283c446e4319f39 -
Trigger Event:
push
-
Statement type:
File details
Details for the file duro_tools-2.0.0.dev1-py3-none-any.whl.
File metadata
- Download URL: duro_tools-2.0.0.dev1-py3-none-any.whl
- Upload date:
- Size: 43.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a92adb8eb6d2f3ad6d596763fcaccb8e547e91a7347cb9dd359d52774da0f326
|
|
| MD5 |
5bc1adadaf1bbe8e23eae053141fbba9
|
|
| BLAKE2b-256 |
2ae2a9f3ae62779749f66e595d63bcceebd3f41ae26c5398ad51f0f4289b2ee4
|
Provenance
The following attestation bundles were made for duro_tools-2.0.0.dev1-py3-none-any.whl:
Publisher:
workflow.yaml on carnegierobotics/duro_tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
duro_tools-2.0.0.dev1-py3-none-any.whl -
Subject digest:
a92adb8eb6d2f3ad6d596763fcaccb8e547e91a7347cb9dd359d52774da0f326 - Sigstore transparency entry: 529473724
- Sigstore integration time:
-
Permalink:
carnegierobotics/duro_tools@1a4f12480965dbb331ad1d8ee283c446e4319f39 -
Branch / Tag:
refs/tags/v2.0.0.dev1 - Owner: https://github.com/carnegierobotics
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yaml@1a4f12480965dbb331ad1d8ee283c446e4319f39 -
Trigger Event:
push
-
Statement type: