Skip to main content

Python driver for the Calypso UP10 anemometer

Project description

https://github.com/maritime-labs/calypso-anemometer/workflows/Tests/badge.svg Test suite code coverage https://pepy.tech/badge/calypso-anemometer/month https://img.shields.io/pypi/v/calypso-anemometer.svg https://img.shields.io/pypi/status/calypso-anemometer.svg https://img.shields.io/pypi/pyversions/calypso-anemometer.svg https://img.shields.io/pypi/l/calypso-anemometer.svg

Python driver for the Calypso UP10 anemometer

About

Hardware device

The Calypso UP10 ultrasonic portable solar wind meter is a Bluetooth, solar-powered, pocket-sized, ultrasonic anemometer. No power cords or data wires needed.

Resources:

Software library

The device driver library is written in Python, based on the Bleak library. It was verified to work well on an OpenPlotter installation on a Raspberry Pi, as well as a macOS workstation.

Features

  • Run device discovery

  • Acquire device status and readings (one shot)

  • Acquire device readings continuously (subscribe/notify)

  • Set device data rate

  • Telemetry with NMEA-0183 and SignalK over UDP

Setup

pip install --upgrade calypso-anemometer

To install the latest development version from the repository, invoke:

pip install --upgrade git+https://github.com/maritime-labs/calypso-anemometer

Pre-flight checks

There is some documentation about investigating and configuring your Bluetooth/BLE stack and about simulating the telemetry messaging. On this matter, you might want to run through a sequence of preflight checks before going into production.

Usage

Getting started

Discover the ULTRASONIC BLE device and run a conversation on it:

# Get device information.
calypso-anemometer info

# Get device reading.
calypso-anemometer read

# Get device readings, continuously at 4 Hz (default).
calypso-anemometer read --subscribe

# Get device readings, continuously at 1 Hz.
calypso-anemometer read --subscribe --rate=hz_1

# Generate fake device readings, continuously at 8 Hz.
pip install --upgrade calypso-anemometer[fake]
calypso-anemometer fake --subscribe --rate=hz_8

If you already discovered your device, know its address, and want to connect directly without automatic device discovery, see skip discovery.

Telemetry setup

The program can optionally submit telemetry messages in different formats.

SignalK telemetry

Continuously receive device readings and submit them in SignalK Delta Format via UDP:

calypso-anemometer read --subscribe --rate=hz_1 --target=udp+signalk+delta://openplotter.local:4123

To make a SignalK server receive the data, create an “UDP receiver” data connection on the Server » Data Connections dialog of your OpenPlotter instance.

https://user-images.githubusercontent.com/453543/178626096-04fcc1b6-dbfc-4317-815d-4f733fee4b67.png

SignalK UDP receiver on port 4123.

NMEA-0183 telemetry

Continuously receive device readings and submit them in NMEA-0183 format via UDP broadcast:

calypso-anemometer read --subscribe --rate=hz_1 --target=udp+broadcast+nmea0183://255.255.255.255:10110

To make OpenCPN receive the data, create a corresponding data connection like outlined in those screenshots.

https://user-images.githubusercontent.com/453543/179416658-abb831b8-8e5a-46e1-8f82-4eb5655c7e0b.png

Add NMEA-0183 UDP receiver on port 10110.

https://user-images.githubusercontent.com/453543/179367303-14e1b958-16ae-4bf8-b077-4f96d929e8b0.png

Configured NMEA-0183 UDP receiver on port 10110.

An example NMEA-0183 sentence emitted is:

$IIVWR,154.0,L,11.06,N,5.69,M,20.48,K*65

Other projects

Acknowledgements

Project information

Contributions

Any kind of contribution, feedback or patches are very much welcome! Just create an issue or submit a patch if you think we should include a new feature, or to report or fix a bug.

Development

In order to setup a development environment on your workstation, please head over to the development sandbox documentation. When you see the software tests succeed, you should be ready to start hacking.

Resources

License

The project is licensed under the terms of the AGPL license.

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

calypso-anemometer-0.4.0.tar.gz (33.8 kB view hashes)

Uploaded Source

Built Distribution

calypso_anemometer-0.4.0-py3-none-any.whl (31.3 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