Skip to main content

Python BLE client for the Vakaros Atlas sailing instrument

Project description

atlas-ble-client

Python BLE client for the Vakaros Atlas sailing instrument.

Handles device discovery, session listing, and chunk-by-chunk streaming download with CRC verification. Downloaded chunks can be assembled into VKX files for analysis.

Requirements

  • Python 3.9+
  • bleak 0.21+

Installation

pip install atlas-ble-client

Usage

import asyncio
from atlas_ble_client import AtlasClient

async def main():
    # Scan for all Atlas devices in range (or pass target_sn="XXXXXXXXXXXX")
    devices = await AtlasClient.find_devices()

    for device in devices:
        print(f"Found: {device.serial_number} ({device.address})")
        async with AtlasClient(device) as client:
            sessions = await client.list_sessions()
            for sess in sessions:
                if sess.duration_sec == 0:
                    continue
                print(f"  Session {sess.index}: {sess.total_chunks} chunks, {sess.duration_sec}s")
                async for chunk_id, data in client.stream_chunks(sess):
                    # save data to disk, assemble into VKX, etc.
                    pass

asyncio.run(main())

Assemble chunks into a VKX file

from atlas_ble_client import AtlasClient

records = []
async for chunk_id, data in client.stream_chunks(sess):
    records.append(AtlasClient._assemble_chunk(chunk_id, data))

with open("session.vkx", "wb") as f:
    f.write(b"".join(records))

Protocol

The Atlas instrument communicates over BLE using a proprietary binary protocol. See the module docstring in src/atlas_ble_client/client.py for the full packet format and VKX file structure.

Disclaimer

This software is provided as-is, without any warranty. Use at your own risk. The authors are not responsible for any damage to devices or data loss.

License

MIT — see 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

atlas_ble_client-0.1.0b1.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atlas_ble_client-0.1.0b1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file atlas_ble_client-0.1.0b1.tar.gz.

File metadata

  • Download URL: atlas_ble_client-0.1.0b1.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for atlas_ble_client-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 4eb3d29cf907b0aad03276f900ea51a4d6d4b3c2d97d9146ac295a882b519cba
MD5 a8e9ae788f6a9fa631622d6c8e81db6a
BLAKE2b-256 47e028f9187a05bf445aa814aba2d46670a2dbf1be02763394536593d30e592b

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlas_ble_client-0.1.0b1.tar.gz:

Publisher: publish.yml on koheik/atlas-ble-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atlas_ble_client-0.1.0b1-py3-none-any.whl.

File metadata

File hashes

Hashes for atlas_ble_client-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ab1ed14bd8e2b6045ca43a30cff4c48806c109f33186fe4f9ad33b9370d4c17
MD5 2db50310e5ec182a8a2131c7b5d00a40
BLAKE2b-256 322154f6635950a6cba1e643fd7a5f1ebdfdfdd654a7969c2428a0ccc1c9c30e

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlas_ble_client-0.1.0b1-py3-none-any.whl:

Publisher: publish.yml on koheik/atlas-ble-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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