
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
calypso-anemometer
Advanced tools
.. image:: https://github.com/maritime-labs/calypso-anemometer/workflows/Tests/badge.svg :target: https://github.com/maritime-labs/calypso-anemometer/actions?workflow=Tests
.. image:: https://codecov.io/gh/maritime-labs/calypso-anemometer/branch/main/graph/badge.svg :target: https://codecov.io/gh/maritime-labs/calypso-anemometer :alt: Test suite code coverage
.. image:: https://pepy.tech/badge/calypso-anemometer/month :target: https://pypi.org/project/calypso-anemometer/
.. image:: https://img.shields.io/pypi/v/calypso-anemometer.svg :target: https://pypi.org/project/calypso-anemometer/
.. image:: https://img.shields.io/pypi/status/calypso-anemometer.svg :target: https://pypi.org/project/calypso-anemometer/
.. image:: https://img.shields.io/pypi/pyversions/calypso-anemometer.svg :target: https://pypi.org/project/calypso-anemometer/
.. image:: https://img.shields.io/pypi/l/calypso-anemometer.svg :target: https://github.com/maritime-labs/calypso-anemometer/blob/main/LICENSE
|
############################################# Python driver for the Calypso UP10 anemometer #############################################
About
The Calypso UP10 ultrasonic portable solar wind meter
_ is a Bluetooth, solar-powered,
pocket-sized, ultrasonic anemometer. No power cords or data wires needed.
Pictures:
.. figure:: https://user-images.githubusercontent.com/453543/182049443-385c2a79-621e-41a3-b5ef-ee61f9c14b11.png
:alt: Calypso UP10
:target: Calypso UP10 full size images
_
Calypso UP10.
Resources:
Product page <https://calypsoinstruments.com/shop/product/ultrasonic-portable-solar-wind-meter-2>
_Data sheet <https://calypsoinstruments.com/web/content/39971?access_token=09db51b3-1ad2-4900-b687-fae6c996fbd0&unique=293e2d5d7c89c38f45731af5c582a49de51ef64c&download=true>
_Instruction's manual <https://calypsoinstruments.com/web/content/39973?access_token=a4fb3216-7abd-483d-b2d5-129e86d54142&unique=eb0f37d09f58423b9cac15d4dfa2ecd93d7d5bb3&download=true>
_User manual <https://www.r-p-r.co.uk/downloads/calypso/Ultrasonic_Portable_User_Manual_EN.pdf>
_Developer manual <https://www.instrumentchoice.com.au/attachment/download/81440/5f62c29c10d3c987351591.pdf>
_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
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
We have 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
Discover the ULTRASONIC
BLE device and run a conversation on it. By
default, the Bluetooth adapter hci0
will be used.
::
# Get device information with discovery.
calypso-anemometer info
# Get device reading.
calypso-anemometer read
# Get device reading, with compass (roll, pitch, heading).
calypso-anemometer read --compass=on
# 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
_.
Likewise, when your system has multiple Bluetooth adapters, you may want to
choose a specific one, see select Bluetooth adapter
_.
::
# Get device information w/o discovery.
calypso-anemometer info --ble-address=F8:C7:2C:EC:13:D0
# Get device information w/o discovery, using a specific Bluetooth adapter.
calypso-anemometer info --ble-adapter=hci1 --ble-address=F8:C7:2C:EC:13:D0
In order to use the library API, please consult the programs in the
examples
folder.
Synopsis::
from calypso_anemometer.core import CalypsoDeviceApi
async with CalypsoDeviceApi() as calypso:
reading = await calypso.get_reading()
reading.print()
Telemetry setup
The program can optionally submit telemetry messages in different formats.
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.
.. figure:: https://user-images.githubusercontent.com/453543/178626096-04fcc1b6-dbfc-4317-815d-4f733fee4b67.png
SignalK UDP receiver on port 4123.
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
.. note::
If you don't have **any** networking configured on your machine, just use
``localhost`` as target address.
To make OpenCPN
_ receive the data, create a corresponding data connection
like outlined in those screenshots.
.. figure:: https://user-images.githubusercontent.com/453543/179416658-abb831b8-8e5a-46e1-8f82-4eb5655c7e0b.png
Add NMEA-0183 UDP receiver on port 10110.
.. figure:: 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 payload, including multiple sentences, is::
$MLHDT,235.0,T*27
$MLVWR,154.0,L,11.06,N,5.69,M,20.48,K*64
$MLXDR,A,-60.0,D,PTCH#CAL,A,30.0,D,ROLL#CAL*75
$MLXDR,C,33.0,C,AIRTEMP#CAL*6A
$MLXDR,L,0.9,R,BATT#CAL*18
Other projects
AocpnUltrasonicLink
_ is an Android app for linking Calypso Ultrasonic
wind data to OpenCPN, written in Java.
BLE_Wind
_ is an Arduino firmware for reading data from a Calypso anemometer,
written in C++.
CalypsoUltrasonicAPI
_ is a library for the Calypso Ultrasonic Anemometer,
written in Visual Basic .NET and Java, (also) for Android.
signalk-calypso-ultrasonic
_ is a Signal K server plugin for the Calypso
Ultrasonic wireless anemometer, written in JavaScript.
ultrasonic-ble-react
_ is a React native test app for the Calypso UltraSonic
wind sensor, written in JavaScript.
Troubleshooting
For helping you to find solutions for known problems, we are maintaining
a dedicated page at troubleshooting
_. The topic range is from permission
errors to BLE timeouts.
Acknowledgements
Henrik Blidh
, David Lechner
, and contributors for conceiving
and maintaining the excellent Bleak
_ library.Fabian Tollenaar
_ for creating signalk-calypso-ultrasonic
_.Project information
Every kind of contribution, feedback, or patch, is much welcome. Create an issue
_ or submit a patch if you think we should include a new feature, or to
report or fix a bug.
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.
Source code repository <https://github.com/maritime-labs/calypso-anemometer>
_Documentation <https://github.com/maritime-labs/calypso-anemometer/blob/main/README.rst>
_Python Package Index (PyPI) <https://pypi.org/project/calypso-anemometer/>
_The project is licensed under the terms of the GNU AGPL license, see LICENSE
_.
There is no warranty for the program. In no event will any copyright holder, or any other party who modifies and/or conveys the program, be liable for any damages arising out of the use or inability to use the program.
See also sections 15, 16, and 17 of the LICENSE
_ file.
.. _AocpnUltrasonicLink: https://github.com/okriof/AocpnUltrasonicLink .. _Bleak: https://github.com/hbldh/bleak .. _BLE_Wind: https://github.com/stephpen/BLE_Wind .. _Calypso UP10 full size images: https://user-images.githubusercontent.com/453543/182049424-9a249add-c94b-4077-91bf-c864f2ed0e95.png .. _Calypso UP10 ultrasonic portable solar wind meter: https://calypsoinstruments.com/shop/product/ultrasonic-portable-solar-wind-meter-2 .. _CalypsoUltrasonicAPI: https://github.com/volkerpetersen/CalypsoUltrasonicAPI .. _create an issue: https://github.com/maritime-labs/calypso-anemometer/issues .. _David Lechner: https://github.com/dlech .. _development sandbox: https://github.com/maritime-labs/calypso-anemometer/blob/main/doc/sandbox.rst .. _Fabian Tollenaar: https://github.com/fabdrol .. _Henrik Blidh: https://github.com/hbldh .. _LICENSE: https://github.com/maritime-labs/calypso-anemometer/blob/main/LICENSE .. _OpenCPN: https://opencpn.org/ .. _OpenPlotter: https://open-boat-projects.org/en/openplotter/ .. _preflight checks: https://github.com/maritime-labs/calypso-anemometer/blob/main/doc/preflight.rst .. _production: https://github.com/maritime-labs/calypso-anemometer/blob/main/doc/production.rst .. _select Bluetooth adapter: https://github.com/maritime-labs/calypso-anemometer/blob/main/doc/production.rst#multiple-bluetooth-adapters .. _Server » Data Connections: http://openplotter.local:3000/admin/#/serverConfiguration/connections/- .. _signalk-calypso-ultrasonic: https://github.com/decipherindustries/signalk-calypso-ultrasonic .. _SignalK server: https://github.com/SignalK/signalk-server .. _skip discovery: https://github.com/maritime-labs/calypso-anemometer/blob/main/doc/production.rst#device-discovery-vs-multiple-devices .. _troubleshooting: https://github.com/maritime-labs/calypso-anemometer/blob/main/doc/troubleshooting.rst .. _ultrasonic-ble-react: https://github.com/kapejod/ultrasonic-ble-react
FAQs
Python driver for the Calypso UP10 anemometer
We found that calypso-anemometer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.