How 0x23/micromanipulatorstepper works
Open Micro-Manipulator is a USB-serial-controlled XYZ micro-manipulator. Its principal workflow is a host sending G-code through the Python API; firmware parses commands, plans motion, evaluates joint-space trajectories, and drives closed-loop actuators. Homing, joint calibration, and timed tool outputs are additional device capabilities. The tree and README establish these product areas, while sampled source confirms parser dispatch, firmware update-loop calls, trajectory evaluation, servo feedback, and homing behavior. Robot orchestration and several subsystems are unsampled, so their internal wiring is shown only where documented, not inferred in detail.
Main entry points: robot.cpp Robot Orchestrator · motion_controller.cpp Motion Controller · servo_controller.cpp Servo Controller · open_micro_stage_api.py Python API
Components 20
Host Interface
- Python API
software/PythonAPI/open_micro_stage_api.py - Firmware Runtime
firmware/MotionControllerRP/src/main.cpp - G-code Parser
firmware/MotionControllerRP/src/command_parser/command_parser.cpp
Motion Planning
- Robot Orchestrator
firmware/MotionControllerRP/src/robot.cpp - Delta Kinematics
firmware/MotionControllerRP/src/kinematic_models/kinematic_model_delta3d.cpp - Path Planner
firmware/MotionControllerRP/src/motion_control/path_planner.cpp - Path Segments
firmware/MotionControllerRP/src/motion_control/path_segment.cpp - Motion Controller
firmware/MotionControllerRP/src/motion_control/motion_controller.cpp
Actuation
- Robot Joint
firmware/MotionControllerRP/src/robot_joint/robot_joint.cpp - Servo Controller
firmware/MotionControllerRP/src/servo_control/servo_controller.cpp - Homing Controller
firmware/MotionControllerRP/src/servo_control/homing_controller.cpp - Actuator Calibration
firmware/MotionControllerRP/src/servo_control/actuator_calibration.cpp - Magnetic Encoder
firmware/MotionControllerRP/src/hardware/MT6835_encoder.cpp - Motor Driver
firmware/MotionControllerRP/src/hardware/TB6612_motor_driver.cpp - PWM Tool
firmware/MotionControllerRP/src/robot_tool/pwm_tool.cpp
Magnetic Analysis
- Field Simulator
software/EncoderMagneticFieldSim/magnetic_field_sim.py - Magnetic Field Model
- Calibration Plotter
software/PythonAPI/calibration_plotter.py
Other components
- Host Application
- USB Serial
Connections 20
- Host Application → Python API: calls controls
- Python API → USB Serial: sends commands
- USB Serial → Firmware Runtime: delivers serial
- Firmware Runtime → Robot Orchestrator: updates parser and planner
- Robot Orchestrator → G-code Parser: updates commands
- G-code Parser → Robot Orchestrator: dispatches commands
- Robot Orchestrator → Delta Kinematics: converts coordinates
- Robot Orchestrator → Path Planner: submits paths
- Robot Orchestrator → Motion Controller: updates trajectories
- Motion Controller → Path Planner: pops joint segments
- Motion Controller → Path Segments: evaluates segment
- Robot Orchestrator → Robot Joint: commands joints
- Robot Joint → Servo Controller: controls actuator
- Servo Controller → Magnetic Encoder: reads position
- Servo Controller → Motor Driver: sets field angle
- Robot Orchestrator → Homing Controller: runs homing
- Robot Orchestrator → Actuator Calibration: calibrates joints
- Robot Orchestrator → PWM Tool: sets tool outputs
- Field Simulator → Magnetic Field Model: computes field
- Calibration Plotter → Python API: plots calibration data