Repository navigation
Releases: iriss-dev/khora
Release list
KHORA v0.3.1-alpha — Robotics, MCP and RP2040 PIO
KHORA v0.3.1-alpha
This release includes the robotics, MCP, RP2040 and community features introduced in v0.3, with an additional isolation fix: arming the servo-only group leaves the acoustic PIO state machine disabled and GPIO0–15 low. This avoids driving the phase inputs of an unpowered acoustic stage. The external power gates and commissioning requirements still apply.
Robot + AI demo · Pico controller · Public forum
- Six-joint simulated planning/playback and JSON exchange with nine MCP tools.
- Product-of-exponentials forward kinematics and bounded reference trajectories.
- 16-channel PIO/DMA firmware, explicit output groups and independent heartbeat expiry.
- Feetech STS3215 calibration, packets and telemetry; Ultraleap adapter and optional webcam target selection.
The attached UF2 has physical outputs disabled by default. Hardware output, stopping time, tracking accuracy and acoustic exposure have not been bench-validated on the development host. Follow the Pico commissioning guide before building an output-capable image.
This patch supersedes v0.3.0-alpha for builds intended to use servo-only output. The attached Python wheel, screen recording and launch kit accompany the source release. The recording shows simulation, not a physical robot.
KHORA v0.3.0-alpha — Robotics, MCP and RP2040 PIO
Superseded by v0.3.1-alpha, which keeps acoustic pins low in servo-only output mode.
KHORA v0.3.0-alpha
Robot trajectory playback, MCP tools, a 16-channel Pico firmware target and a public community forum.
Robot + AI demo · Pico control panel · Community forum
New
- Six-joint reference arm: positional DLS, product-of-exponentials forward kinematics, synchronized quintic plans, JSON export/import and 3D playback.
- Installable MCP stdio server with nine tools, lifecycle negotiation, notifications, finite input checks and disabled-output hardware staging.
- Standalone RP2040 C++/PIO firmware: 16 parallel channels, 256 phase steps, nominal 40 kHz carrier, chained DMA and three waveform banks.
- Independent MCU heartbeat lease, latched faults, physical stop/ARM inputs and separate acoustic/servo gate outputs. The default UF2 has outputs disabled.
- Python STS3215 packet/control module with explicit joint calibration, sync-write, telemetry and a 50 ms host command lease.
- Ultraleap Python adapter with rigid registration and frame expiry; optional MediaPipe webcam target selection for simulation.
- Visible forum access throughout the website and a guide to the real GitHub Discussions community. The original BBS remains an archive of local examples.
Try it
pip install -e .
khora-mcp --simulate-device
khora-hardwareMCP clients can request khora_robot_plan_move with {"target_m":[0.25,0.15,0.55]} and replay the resulting JSON in the browser. There is no AI tool for ARM or physical motor execution.
What has and has not been validated
CI covers Python, JavaScript, portable C/C++, Rust, three browser suites, a Python-to-C++ protocol round trip, package building and Pico SDK cross-compilation. Robot FK implementations are compared independently; camera wiring is tested with a mocked detector/video stream.
The 16-emitter hardware profile is separate from the 256-emitter acoustic model. No real Pico output, servo motion, optical registration, tracking accuracy, acoustic exposure or physical stopping time was measured on the development host. PIO timing is quantized and the fractional divider is not zero-jitter. Physical commissioning requires the documented external power gates, stop circuitry, measured mechanism geometry and calibration.
Read Pico commissioning, AI and robotics, and tracking.
The release's default UF2 is the disabled-output build. Use the source/build guide to produce an output-capable image only after commissioning the physical gate and stop circuits. The attached screen recording shows simulated robot motion, not a physical robot.
KHORA v0.2.0-alpha — Open acoustic field lab
KHORA v0.2.0-alpha
A usable browser lab for exploring a 256-element ultrasonic field, with reference calculations and explicit validation limits.
Try the website · Open the field inspector
Explore
- New Spanish/English website with an interactive assembly study.
- Three acoustic cross-sections, movable focus, aperture weighting, and patch-force estimates.
- Shareable configuration URLs and JSON export of all 256 phase/amplitude channels.
- Local assets, mobile layouts, and a fallback when WebGL is unavailable.
Inspect and reproduce
- Complex pressure superposition, piston directivity, and numerical Rayleigh reference in Python.
- Consistent 256-step phase quantization across Python, JavaScript, and Rust.
- KH v1 Web Serial frames with CRC, handshake, acknowledgements, and dry phase staging.
- C receiver/watchdog regression tests and automated validation for Python, JavaScript, C, Rust, and the browser.
- Revised engineering audit and hardware documentation.
The field is uncalibrated. The assembly is illustrative. No working hardware prototype, tactile threshold, end-to-end tracking latency, or acoustic compliance is established by this release. The serial receiver stages data with outputs disabled and has no ARM command.
Help with the next experiment
We are looking for reproducible single-emitter calibration: amplitude, directivity, phase delay, measurement geometry, and uncertainty. Propose an experiment or review the engineering audit.
The attached launch kit includes English/Spanish copy, actual browser captures, a social preview, the logo, and the MIT license.