Skip to main content

RaccoonLab tools

Project description

Quality Gate Status cyphal_init.sh specification_checker.py

Cyphal/DroneCAN nodes tools

tools is a collection of scripts for testing and configuration of Cyphal/CAN and DroneCAN nodes.

This package is under development. It is avaliable in test.pypi at the moment.

Preparation

  1. Install the package either from test.pypi or from sources:

    pip install -i https://test.pypi.org/simple/ raccoonlab-tools
    
    git clone https://github.com/PonomarevDA/tools.git
    cd tools
    pip install .
    
  2. Clone the nodes config files somewhere. We recommend ~/.raccoonlab_tools/vendors For example:

    mkdir -p ~/.raccoonlab_tools/vendors/raccoonlab
    cd ~/.raccoonlab_tools/vendors/raccoonlab
    git clone https://github.com/RaccoonlabDev/raccoonlab_nodes_configs.git .
    
  3. Install additional dependencies if you want to upload a firmware with STM32-programmer:

  4. Before working with a Cyphal node, you should configure the Cyphal-related environment variables. Check Cyphal for help. You can use scripts/cyphal as a hint.

1. Test cyphal specification

rl-test-cyphal-specification

2. Test dronecan specification

rl-test-dronecan-specification
rl-test-dronecan-gps-mag-baro

3. Get Node Info (Cyphal / DroneCAN)

rl-get-info

Return:

  • Online CAN-sniffers
  • Detect protocol if any CAN-node is avaliable: cyphal | dronecan | none
  • Show node info of Cyphal/CAN or DroneCAN node if it is avaliable

4. Upload firmware with st-link linux / STM32CubeProgrammer Windows

rl-upload-firmware --config PATH_TO_YAML_CONFIG
rl-upload-firmware --binary PATH_TO_BIN_FILE

There are a few ways how you can specify the path to the binary:

  1. (recommended) Using a GitHub Repository. It will always download the latest released firmware.
# config.yaml
metadata:
    link: RaccoonlabDev/mini_v2_node
  1. Direct Link to the Firmware File
# config.yaml
metadata:
    link: https://github.com/RaccoonlabDev/docs/releases/download/v1.6.5/gnss_v2_cyphal_v1.6.5_c78d47c3.bin
  1. Using a Local Path
# config.yaml
metadata:
    link: /user/home/firmwares/node.bin
  1. Direct .bin path with --binary option

5. Upload config

rl-config --config PATH

Example of yaml config file:

# config.yaml
params:
    uavcan.node_id: 31
    uavcan.node.name: co.rl.mini

6. Monitor

rl-monitor

This script is used for automated node analysis. Within a single command:

  • detect the protocol (Cyphal or DroneCAN),
  • detect the node type,
  • check the software version and highlight if it is not the latest,
  • configure it if it has not been configured yet,
  • subscribes on all possible topics,
  • provide basic tests and diagnostics, highlight issues,
  • publish some test commands if possible,
  • print all data in real time.

An example of rl-monitor with gnss node:

7. U-center with Cyphal GNSS

rl-ublox-center

For RL GNSS it is possible to run u-center over Cyphal via gps.ubx_tx and gps.ubx_rx topics.

  1. Download u-center (tested with u-center 23.08)
  2. Run the u-center. On ubuntu you can use wine (wine64 u-centersetup_v23.08/u-center_v23.08.exe)
  3. Configure the Cyphal environment
  4. Run the script rl-ublox-center
  5. Press Receiver - > Connection -> Network connection
  6. Add new connection tcp://127.0.0.1:2001

An illustration:

Developer notes

Deploy to TestPyPI:

./scripts/deploy.sh

Deploy to PyPI:

./scripts/deploy.sh --pypi

License

The scripts are distributed under MIT license. In general, you can do with them whatever you want. If you find a bug, please suggest a PR or an issue.

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

raccoonlab-tools-0.0.16.tar.gz (36.9 kB view hashes)

Uploaded Source

Built Distribution

raccoonlab_tools-0.0.16-py3-none-any.whl (52.2 kB view hashes)

Uploaded Python 3

Supported by

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