Skip to main content

COines BRidge Access — Bosch AppBoard protocol for Python

Project description

cobra-bridge

COines BRidge Access — Bosch AppBoard protocol for Python

Transport-agnostic library for the Bosch Sensortec Application Board 3.1+. Supports USB-Serial (pyserial) and BLE (Bleak) backends with identical protocol logic.

Install

pip install cobra-bridge

For BLE support:

pip install cobra-bridge[ble]

Quick Start

from cobra_bridge.transport import SerialTransport
from cobra_bridge.sync import CobraBridge
from cobra_bridge.drivers.bmm350 import BMM350

# USB-Serial
transport = SerialTransport(port='/dev/ttyACM0')
bridge = CobraBridge(transport=transport)
bridge.connect()

sensor = BMM350(bridge)
sensor.init()
data = sensor.read_mag_data(compensated=True)
print(f"X={data['x']:.2f} Y={data['y']:.2f} Z={data['z']:.2f} uT")

bridge.disconnect()

Platform-Specific Setup

Linux

# Install
pip install cobra-bridge

# Serial port — typically /dev/ttyACM0 or /dev/ttyUSB0
# Add yourself to the dialout group to avoid sudo:
sudo usermod -aG dialout $USER
# Log out and back in for group changes to take effect

# Find your board:
ls /dev/ttyACM* /dev/ttyUSB*

# Usage
from cobra_bridge.transport import SerialTransport
transport = SerialTransport(port='/dev/ttyACM0')

macOS

# Install
pip install cobra-bridge

# Serial port — typically /dev/cu.usbmodemXXXX
# List available ports:
ls /dev/cu.usbmodem*

# Usage
from cobra_bridge.transport import SerialTransport
transport = SerialTransport(port='/dev/cu.usbmodem1401')

Windows

# Install
pip install cobra-bridge

# Serial port — typically COM3, COM4, etc.
# Check Device Manager → Ports (COM & LPT) to find your board

# Usage
from cobra_bridge.transport import SerialTransport
transport = SerialTransport(port='COM3')

BLE (All Platforms)

from cobra_bridge.transport import BleTransport

# Scan for devices
devices = await BleTransport.scan(timeout=5.0)

# Connect by address
transport = BleTransport(address='AA:BB:CC:DD:EE:FF')
bridge = CobraBridge(transport=transport)
bridge.connect()

Note: BLE requires the [ble] extra: pip install cobra-bridge[ble]

Architecture

         ┌──────────────┐     ┌─────────────┐
         │  CobraBridge │────▶│  Transport  │  ← abstract base
         │  (Packetizer)│     │  (I/O)      │
         └──────────────┘     └─────────────┘
                                   │
                       ┌───────────┴───────────┐
                       │                       │
                 Serial Transport        BLE Transport
                 (pyserial/WebSerial)   (Bleak/WebBluetooth)

License

MIT

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

cobra_bridge-0.1.2.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

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

cobra_bridge-0.1.2-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file cobra_bridge-0.1.2.tar.gz.

File metadata

  • Download URL: cobra_bridge-0.1.2.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for cobra_bridge-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4b83e700c74189975a663b6c1b3a34b7ad27808c32bc6fb1511766d01de618ff
MD5 e9655fe681a8c8693ff9ad3752d894ca
BLAKE2b-256 ea9fb93e69a7d08308a7b708401652e013b6ffffbd81810bb0e6f83cb612f214

See more details on using hashes here.

File details

Details for the file cobra_bridge-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: cobra_bridge-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for cobra_bridge-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d7b1af5d8194e949a71333d346858b57c45cda2d62269638aae0e3c8a91427ad
MD5 d4d4c3e7e5e901eb2882449587b5754a
BLAKE2b-256 5c59c5963a99b795b59850e42ece7d9fb64e0ca5047b6f8e171e69e8347abe0b

See more details on using hashes here.

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