Skip to main content

python lib for Arduino Chaino device

Project description

chaino — Python and MicroPython Host Library for controlling Chaino (Arduino) Devices

chaino module lets a PC communicate with an Arduino/compatible board that runs the Chaino firmware over Serial (USB). You can remotely execute functions registered on the Chaino board, pass arguments, and receive return values.

This module can also be used in MicroPython, where a MicroPython device acts as a host and controls a Chaino device connected via I²C. In this case, all communication and function execution happen over the I²C bus.

It uses CRC-16/XMODEM for integrity and includes robust resend/retry logic to ensure reliable data transmission.


📦 Requirements & Installation

🖥️ CPython (PC / Server)

  • Requirements
    • Python 3.8+
    • pyserialmust be installed
  • Installation Order
pip install pyserial
pip install chaino

Note: For compatibility with MicroPython, chaino does not automatically install pyserial when installed in Host PC.


📟 MicroPython (on device)

  • Requirements

    • A MicroPython-compatible board (e.g., Raspberry Pi Pico / ESP32)
    • chaino installed on the MicroPython filesystem
  • Installation

    1. Open Thonny IDE
    2. Connect your MicroPython device
    3. Go to Tools → Manage packages...
    4. Search for chaino and click Install (from PyPI)

    Alternatively, you can enter this in Thonny's package manager command box:

    chaino
    
  • Usage

    • In MicroPython, chaino communicates with the target Chaino device via I²C.
    • You can send commands and read responses from the connected Chaino board using the same API methods as in CPython, with port replaced by I²C parameters.

🔗 Usage Overview

  • CPython: Serial (USB) connection from a PC to the Chaino device. The Chaino deivce may have multiple slave Chaino devices via I²C.
graph TD
    PC["PC<br/>(Python)"] -- Serial --> Dev0[Chaino Board]
    Dev0 -- I²C --> Dev1[Chaino Board #1]
    Dev0 -- I²C --> Dev2[Chaino Board #2]
  • MicroPython: I²C connection from a MicroPython device to the Chaino device
graph TD
    Dev0["Micropython Board"]
    Dev0 -- I²C --> Dev1[Chaino Board #1]
    Dev0 -- I²C --> Dev2[Chaino Board #2]

CPython or MicroPython can create an instance of the Chaino class or a subclass of it (e.g., the chaino.Hana class). When creating an instance, specify the serial port name or the I²C address. You can control the Chaino device using the created object, and the usage is designed to be the same in both CPython and MicroPython.


📋 Example

CPython Example

from chaino import Chaino, Hana

# Generate Chaino object via Serial
dev = Chaino("COM3")  
print( dev.who() )

# generate Hana object 
# and call analogRead(26) function of chaino.Hana device
dev2 = Hana("COM3", 0x40)
adc = dev2.read_analog(26)
print(adc)

MicroPython Example

from chaino import Chaino, Hana

# Generate Chaino object via I2C
dev = Chaino(0x40)  
print( dev.who() )

# generate Hana object 
# and call analogRead(26) function of chaino.Hana device
dev2 = Hana(0x41)
adc = dev2.read_analog(26)
print(adc)

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

chaino-0.9.3.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

chaino-0.9.3-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file chaino-0.9.3.tar.gz.

File metadata

  • Download URL: chaino-0.9.3.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for chaino-0.9.3.tar.gz
Algorithm Hash digest
SHA256 ac5afe8ceaffac3f9153a53d18efef0c204fd80523d316af6e875d522315b752
MD5 ff0e47798e076741ee03c695823c51a0
BLAKE2b-256 8847d8f7acd9af41c5c8310e5596a93abeb395c1662c62c67b3176182dd152fc

See more details on using hashes here.

File details

Details for the file chaino-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: chaino-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for chaino-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 00c015e2e791f4e8ccd6c61b94e30a8dfdc2c6d497301a4e59281bdc27d9bcfc
MD5 e276b8021dd0227c42aaf7550b5451f9
BLAKE2b-256 cf06effe48ada70d6ea127ed9ca5aed8b4f160536bda30b24414ba164af4471b

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