Case study · SmartManipulator-X

One robot arm.
Every layer built from scratch.

The robot’s software expects expensive proprietary servos. We built a controller that speaks their language — so low-cost motors and a 3D-printed arm run the same software, unchanged.

7layers, one team
0lines changed in the robot software
4released libraries underneath
Rendered from the CAD modelLayer: Servo emulation
SmartManipulator-X arm, servo emulation highlighted
Wiring: A · centralPick a layer below to see what we built
Why “from scratch”

Seven layers. Each one is a service you can hire.

Most suppliers own one layer and hand you the integration problem. We work through the whole stack, so the parts fit the first time.

LAYER 01Built

Mechanics

Why it matters for your product

We start from proven, low-cost hardware instead of locking you into one vendor’s expensive parts.

For your engineers

BCN3D Moveo (MIT licence). The robot description is generated straight from its CAD files, so the 3D model, the simulation and the real arm share one source.

  • BCN3D Moveo
  • STEP → URDF
  • MIT
Service: Hardware design with partner engineersNeed this layer? →
LAYER 02Hardware in progress

Electronics

Why it matters for your product

The first power-on of a new board is where schedules slip. We take the board from first boot to a working system.

For your engineers

Microchip SmartFusion2 SoC FPGA with six TMC5160 stepper drivers.

  • SmartFusion2
  • TMC5160 × 6
  • Bring-up
Service: Hardware Bring-up & IntegrationNeed this layer? →
LAYER 03Hardware in progress

FPGA & drivers

Why it matters for your product

Time-critical work moves into hardware, so motion stays smooth even when the processor is busy.

For your engineers

Step generation and driver interfaces in the FPGA fabric (Libero design), with low-level drivers for the processor side.

  • Libero
  • FPGA
  • Device drivers
Service: BSP & Device DriversNeed this layer? →
LAYER 04Hardware in progress

Operating system

Why it matters for your product

A maintained, secure operating system instead of home-grown code that only one person understands.

For your engineers

Zephyr RTOS ported to SmartFusion2, with a reproducible workspace and builds.

  • Zephyr
  • SmartFusion2 port
  • Reproducible builds
Service: RTOS & Embedded LinuxNeed this layer? →
LAYER 05Runs in simulation

Servo emulation

Why it matters for your product

Your existing software keeps working while the expensive hardware underneath is replaced. No rewrite, no lock-in.

For your engineers

The controller presents each stepper as a DYNAMIXEL device over Protocol 2.0, with an X430 Control Table emulator built on the DXL2-C library.

  • DXL2-C
  • DYNAMIXEL Protocol 2.0
  • X430 Control Table
Service: Embedded Software DevelopmentNeed this layer? →
LAYER 06Runs in simulation

Integration

Why it matters for your product

Proof that the whole system works together, testable on any laptop before the hardware even exists.

For your engineers

Robot PC with ROS 2 Jazzy in Docker and the unchanged ROBOTIS OpenMANIPULATOR-X stack; the Operator PC plans motion in MoveIt 2.

  • ROS 2 Jazzy
  • ros2_control
  • MoveIt 2
  • Docker
Service: System integrationNeed this layer? →
LAYER 07Built into every library

Quality & security

Why it matters for your product

Code built to pass audits and the EU Cyber Resilience Act, not patched before the deadline.

For your engineers

MISRA C:2012 gate in CI, 100 % line and branch coverage, cross-checks against an independent Python twin.

  • MISRA C:2012
  • CI/CD
  • CRA
Service: Compliance & ConsultingNeed this layer? →
Signal path

Follow one command, from click to motion.

Every step is one of the layers above. Pick a layer and its step lights up.

  1. 01PlanMoveIt 2 plans a smooth path
  2. 02ControlROS 2 sends joint goals
  3. 03TranslateGoals become DYNAMIXEL packets
  4. 04DecideZephyr checks and schedules
  5. 05TimeThe FPGA generates exact steps
  6. 06MoveDrivers turn the motor
DXL2 · ID 03 · WRITE · Goal Position = 2048 · CRC OK → TMC5160 #3 · 1 600 steps · elbow +45°

Running today, in simulation

Runs in simulation
RViz2: the orange goal arm bends forward while the current arm stands upright
STEP 1Choose the goalThe operator picks a target pose; the orange arm shows where it will go.
RViz2: preview of the planned motion from upright to the ready pose
STEP 2Preview the planMoveIt 2 finds a collision-free path in milliseconds and plays it back first.
RViz2: the arm has executed the motion and reached the ready pose
STEP 3ExecuteThe unchanged ROBOTIS stack drives the joints and reports the goal reached.

Screenshots from the Operator PC documentation: MoveIt 2 and RViz2 on the robot description generated from the BCN3D Moveo CAD. See the full walkthrough ↗

Architecture choices

The same arm, three ways to wire it.

Choosing the architecture decides cost, wiring and how failures behave — long before code is written. Switch an option and watch the wiring on the arm change.

Wiring on the armA · central
SmartManipulator-X arm with the joint wiring of the selected architecture
One cable per joint One shared RS-485 bus One shared CAN bus
Runs in simulation

One central controller

One SmartFusion2 board drives all six motors directly. Simple and inexpensive for a single arm, but every joint needs its own cable back to the controller.

Built on
Design option · smart joint in development

Smart joints on one shared bus

Each joint gets its own small controller (Doppelstep) and they share one cable, talking DYNAMIXEL Protocol 2.0 or Baton-C. Fewer wires, and a faulty joint can be swapped on its own.

Built on
Design option

Smart joints on CAN

The industrial and automotive standard. Joints report diagnostics and receive firmware updates over the bus using ISO-TP (ISOTP-C).

Built on
Architecture trade-offs
Decision factorA · CentralB · RS-485C · CAN
Cables to the jointsOne bundle per jointOne shared cableOne shared cable
If one joint failsWhole controller affectedThat joint fails on its ownThat joint fails on its own and reports why
Adding a jointNew driver channel on the boardPlug in another modulePlug in, update over the bus
The smart joint behind option B In development

Doppelstep: a low-cost motor that behaves like a premium servo.

A small motor-control board and an ordinary stepper motor, turned into a DYNAMIXEL smart servo by our firmware. Existing robot software, SDKs and tools talk to it without a single change — the same idea as the arm, shrunk into one joint.

20 kHzcurrent control loop
91automated tests per build
75.5 KiBapplication flash
Signedfirmware updates over the bus
Doppelstep: DYNAMIXEL Protocol 2.0 packets from a ROS 2 host reach a controller board running Zephyr RTOS, which drives a stepper motor with a servo horn
Doppelstep bench GUI: torque control, goal position and live plots of position, velocity, current and input voltage
Bench GUI against the simulated motor: goal versus present position, velocity, phase current and bus voltage, live.
Done
  • Answers as a DYNAMIXEL XM430-W350 over Protocol 2.0
  • Closed-loop current control with protection in the interrupt
  • 91 automated tests on every build, on a simulated motor
  • Signed firmware (MCUboot), updates over the bus
  • Documentation website and PDF manual
Next
  • Power-stage dead time set and verified on the board
  • Latest driver refactor checked on the bench
  • Lost-step reporting (the motor has no encoder)
  • Temperature sensor and overheating trip
  • Shared single-wire bus with real DYNAMIXEL servos
Live status on GitHub ↗
Evidence, not promises

Every layer is backed by code you can audit.

4libraries released in 2026
0MISRA C:2012 violations, checked in CI
100 %line and branch coverage
1 commandto run the whole robot in simulation
Runs in simulation Hardware in progress Design option, built on released libraries

Arm renders and robot description from the BCN3D Moveo CAD (MIT licence). ROBOTIS, DYNAMIXEL and OpenMANIPULATOR are trademarks of ROBOTIS Co., Ltd.; SmartFusion2 is a trademark of Microchip Technology Inc. SmartManipulator-X is not affiliated with or endorsed by them.

Your product has layers too.

Tell us which ones keep you up at night. We start with a short call or a fixed-scope review of your current firmware.

Get in touch