Skip to content

Real time provider arduio

Peter Corke edited this page May 25, 2026 · 1 revision

Real-time provider: arduIO

Current status:

  • Prototype provider exists.
  • Not integrated as a fully validated hardware path yet.

Implementation module: src/bdsim/blocks/io_arduio.py.

Design intent

The arduIO provider model is sample-frame oriented:

  • Remote server owns sample clock.
  • Input reads come from the latest coherent frame snapshot.
  • Output writes are staged and flushed as a batch.

This differs from simple pin-polled providers like Firmata.

What exists now

  • Provider registration (name = "arduio").
  • Input/output handle abstractions.
  • Frame ingestion and sequence checking model.
  • Output staging/flush mechanism.

What is not complete

  • Production transport integration in runtime.
  • Full hardware setup documentation and validation workflow.
  • End-to-end examples in repo docs/tests.

Planned usage shape

from bdsim.realtime import BDRealTime

rt = BDRealTime(
    io_provider="arduio",
    io_provider_kwargs={"period_s": 0.02},
)

Setup notes

If using serial transport under the hood, start with:

and then add arduIO-specific transport/client details as they are finalized.

Clone this wiki locally