Touch Path icon Touch Path — Sketch paths with finger or mouse and set turn/move speeds; interactive, educational demo of timing-based, sensorless robot navigation and limits. Try it →
 
Darwin Mini

Darwin Mini by Robotis

Control Darwin Mini in Synthiam ARCx with firmware, servo animation, Blockly, JavaScript, Python, voice, and AI skills.
Connection Type
USB / Bluetooth
Number of Servos
16
Audio Support
No
Camera Support
No
UARTs
None
I2C Support
No
ADC Ports
None
Digital Ports
None
A small white humanoid robot waving beside a phone and a tablet that show big pose buttons in a browser dashboard
Darwin Mini + Synthiam ARCx

A pocket-sized humanoid, programmed from your browser

The ROBOTIS MINI (Darwin Mini) is a small humanoid with 16 Dynamixel XL-320 servos and an OpenCM9.04 controller. Flash Synthiam's firmware onto the controller and ARCx lets you pose it, animate it, give it a voice and program it with Blockly, JavaScript or Python.

How the Darwin Mini works with Synthiam. Synthiam does not connect directly to the XL-320 servos. It connects to the robot's controller, the OpenCM9.04, and the controller talks to the servos. Flash the OpenCM9.04 with the Synthiam firmware from the OpenCM 9.04 page, then connect from ARCx with the Ezb Connection and Dynamixel Servo Driver skills, or from ARC with the EZB Connection and Dynamixel skills. We recommend ARCx over USB.

Meet the robot

What is the Darwin Mini?

The ROBOTIS MINI, often called the Darwin Mini, is a small humanoid robot from ROBOTIS. It moves with 16 ROBOTIS XL-320 Dynamixel servos, uses an OpenCM9.04 (32-bit ARM) controller board as its brain, and has a mostly 3D-printable frame, so you can repair or customize parts.

Out of the box it runs ROBOTIS's own software. With Synthiam firmware on its OpenCM9.04, it becomes a Synthiam robot: every servo is available to Auto Position, Servo Animation, scripts, speech and AI robot skills.

Darwin Mini at a glance

TypeSmall humanoid robot kit
MakerROBOTIS (sold as ROBOTIS MINI)
Servos16 × Dynamixel XL-320
ControllerOpenCM9.04 (32-bit ARM Cortex-M3)
Connection to SynthiamUSB, or Bluetooth after a firmware change
FrameMostly 3D-printable
Synthiam uses it forHumanoid poses, dances, voice, scripting and AI
WebsiteROBOTIS store
Possibilities

What you can do with a Darwin Mini in Synthiam

🕺

Poses and dances

Capture poses by hand in Auto Position and lay out dances in Servo Animation.

🚶

Walking

Build gaits as Auto Position actions and drive the robot with a joystick through the Auto Position movement panel.

🎙

Voice and AI

Speech recognition and text to speech run on the computer, so a voice command or an AI conversation can end in a wave or a bow.

🧩

Classroom friendly

Students snap Blockly blocks together to make the robot move, then graduate to JavaScript or Python, from a browser on any device.

Get started

Connect the Darwin Mini to ARCx

  1. Identify the controller. Your Darwin Mini uses the ROBOTIS OpenCM9.04 controller.
  2. Install the Synthiam firmware on the OpenCM9.04. The board must be flashed before Synthiam can talk to it. Download the firmware and follow the instructions on the OpenCM 9.04 page.
  3. Connect by USB, the most reliable choice for a first setup. In ARCx, open the Ezb Connection configuration, set Baud rate to 921600 for EZB 0 on the Connection tab, save, pick the robot's serial port and connect.
  4. Add the Dynamixel Servo Driver. On the Bus tab choose EZB 0, Hardware UART 0 (the OpenCM9.04's own XL-type connectors) and the servos' baud rate; XL-320 servos ship at 1000000. Press Scan bus on the Tools tab: the 16 servos should answer.
  5. Map the servos. Add a row per servo on the Servos tab with its ID, the XL-320 model and a virtual port (V1, V2...). Tick Invert for mirrored left/right joints.
  6. Test one joint, then the whole robot. Press Initialize, move one servo from the Servo skill, then build a standing pose in Auto Position.

Using ARC? Connect with the EZB Connection skill at 921,600 baud, then add the Dynamixel skill on UART 0.

The Tools tab of the ARCx Dynamixel Servo Driver with bus scan, ping, LED, torque, reboot and change ID controls
Scan the bus, ping a servo, flash its LED to find it on the robot, change its ID, or reboot it after a shutdown.
Connection

USB or Bluetooth?

  • The most reliable connection for flashing and troubleshooting.
  • No pairing required.
  • The best choice if this is your first time programming the board.
  • Works with ARCx and ARC.

Bluetooth (optional)

  • Connect without a USB cable.
  • Requires the Bluetooth module to be enabled in the firmware.
  • Pair the robot with your computer first, like pairing headphones; it then appears as a serial (COM) port.
  • Proven in ARC. ARCx may work through the paired COM port, but this has not been tested.

Enable Bluetooth in the firmware

To connect by Bluetooth, enable the Bluetooth serial port in the Arduino .ino source code before flashing the OpenCM9.04. Find the communication settings and change them to the Bluetooth serial port:

#define _BAUD_RATE 9600
#define COMMUNICATION_PORT Serial2

Then:

  • Save the file.
  • Compile and upload the updated firmware to the OpenCM9.04, using the instructions on the OpenCM 9.04 page.
  • Pair Bluetooth on your computer; the robot appears as a serial/COM port.
  • Select that Bluetooth COM port when connecting, with the baud rate set to 9600.

Important: only change these settings if your Darwin Mini has a working Bluetooth module installed. If you are not sure, start with USB to confirm everything works. The baud rate (9600) must match on both sides, firmware and connection settings. If you change it in the code later, reconnect with the same new rate.

The OpenCM9.04 firmware open in the Arduino IDE with arrows pointing to the _BAUD_RATE 921600 and COMMUNICATION_PORT Serial lines
The two lines to change in the firmware: _BAUD_RATE (921600 for USB) and COMMUNICATION_PORT (Serial for USB).
ARCx or ARC?
ARCx Recommended ARC
Runs onWindows 10/11 x64, Ubuntu 24.04 x64 and ARM64, including Raspberry Pi 4/5Windows
User interfaceAny web browser, several people at once; great for a classroomWindows desktop application
USB connectionYes, 921,600 baudYes, 921,600 baud
Bluetooth connectionNot yet tested (may work through the paired COM port)Yes, 9600 baud with the firmware change
Dynamixel skillDynamixel Servo Driver, UART 0Dynamixel, UART 0
Troubleshooting

When something does not work

Make sure the OpenCM9.04 has the Synthiam firmware (not the original ROBOTIS program) and that the connection's baud rate is 921,600. If you changed the firmware for Bluetooth, USB no longer carries the connection: change it back to Serial and 921600.

Check that the firmware uses Serial2, that the baud rate is the same in the firmware and the connection settings (9600), and that you picked the Bluetooth COM port. Confirm the robot works over USB first.

Select UART 0, check that the battery is charged and switched on (the servos do not run from USB), and that the skill's baud rate matches the servos.

Left and right joints are mirrored. Tick Invert for that servo, and make sure its model is set to XL-320.
Questions

Frequently asked questions

The Synthiam firmware replaces the program on the OpenCM9.04. To return to the ROBOTIS software, restore the controller's firmware with ROBOTIS's own tools.

The OpenCM9.04 has no camera input, but ARCx can use a USB camera on the computer, or a Wi-Fi camera such as an ESP32-CAM, alongside the robot.

No. Synthiam only cares about the servos and the controller. Re-check servo directions and limits after a rebuild, in case a servo was mounted differently.

Teach your Darwin Mini new moves

Flash the OpenCM9.04, install ARCx, and pose, animate and program your humanoid from any web browser.


ARC Pro

Upgrade to ARC Pro

ARC Pro is your passport to a world of endless possibilities in robot programming, waiting for you to explore.