2.9 KiB
SangamIO — Enuxia Vacuum hardware layer
SangamIO is the hardware abstraction daemon used by Enuxia Vacuum.
It runs close to the robot hardware and translates platform-specific protocols into a stable interface for SLAM, navigation, diagnostics and future mission-control software.
This component originates from the upstream VacuumTiger project and is being extended and validated by Enuxia on real robotic vacuum hardware.
Role
Navigation / SLAM / diagnostics
│
▼
SangamIO API
│
┌───────┴────────┐
▼ ▼
Robot MCU LiDAR
/ actuators / sensors
SangamIO owns the hardware-specific details so higher-level software does not have to.
Responsibilities include:
- low-level robot protocol handling;
- sensor telemetry;
- wheel control;
- vacuum and brush control;
- LiDAR control;
- platform-specific initialization;
- TCP command transport;
- UDP sensor streaming.
Current Enuxia development platform
Proscenic M6 Pro / 3irobotix CRL-200S
Validated hardware:
- Allwinner A33 Linux SoC;
- GD32F103 motor/control MCU;
- Delta-2D LiDAR;
- wheel encoders;
- IMU;
- left/right bumpers;
- cliff sensors;
- battery and charging telemetry;
- cleaning actuators.
Relevant device nodes:
/dev/ttyS3 GD32 MCU
/dev/ttyS1 Delta-2D LiDAR
Enuxia CRL-200S work
The fork contains additional changes validated on physical M6 Pro hardware.
GD32 cold-boot initialization
The original initialization path was not always sufficient after a true power cycle.
The Enuxia baseline contains a revised initialization/wake sequence that restores continuous MCU telemetry after cold boot.
Delta-2D packet decoding
The Delta-2D parser was corrected after validating the packet layout on real hardware.
The measurement payload uses:
byte 0 motor speed
byte 1..2 offset angle
byte 3..4 start angle
byte 5.. 3-byte samples
Angular sampling is derived from the scan structure rather than treating the offset-angle field as the per-sample increment.
This produces stable full-revolution scans on the M6 Pro.
Build
rustup target add armv7-unknown-linux-musleabihf
cargo build --release \
--target armv7-unknown-linux-musleabihf
A suitable ARM cross-linker may be required depending on the host system.
Safety
SangamIO can directly control wheels and cleaning actuators.
Do not run two hardware controllers simultaneously if both attempt to own the same MCU/UARTs.
Always supervise real-hardware tests and keep a reliable stop path available.
Origin
SangamIO originates from the VacuumTiger project.
Enuxia maintains this fork as part of the broader Enuxia Vacuum robotics stack. Upstream history and applicable license notices are preserved.