D-O Controller V2


This is the controller I developed for my D-O, although it is possible to adapt it to other designs …

It is reduced and optimized to be able to control the droid by Bluetooth with a Sony Navigation crontroller command.

The circuit integrates all the hardware to carry out the main actions of the droid:

  • Chip Arduino Mega Pro.
  • Built-in USB Shield Host.
  • Stabilization through IMU and PID
  • Driver for 2 Motors of 1A (3A peak).
  • Audio module with 1W BF output.
  • Control of 4 Servos.
  • Built-in regulator for servo power.
  • Low battery detector

With this circuit you have everything a droid of this type needs without the need for additional wiring.


The audio device is a MiniDfPlayer type player that incorporates a 1W BF audio output.

For the droid, it is recommended that the speakers be a minimum of 8ohm since they are connected in parallel and can greatly lower the impedance.

The sounds are recorded on the 4Gb micro-sd card in mp3 format. All sounds are inside the root folder “01”.

If you want to add or customize more sounds, it is necessary to keep the format of each file (three numbers and the extension), for example 35 should be called: “035.mp3”.

Motorization – Adjustments

The circuit incorporates a 6612FNG driver that is capable of providing 1A continuous and up to 3A peak.

With these characteristics different motor options. According to the tests carried out; D-O performs quite well with 25GA370 type motors at 12v and 300rpm.

Although this is relative since by construction each droid has a different weight and characteristics, for this reason it may be necessary to touch up the PID values and the weight of the lower ballast until achieving a correct stability ratio.


An analog input for a distance sensor has also been provided in the pcb connector that connects the wiring with the head.

A 5v up to 100mA power pin and two digital outputs are also available to switch the three LEDs on the head.

The motor connectors have digital inputs (one of them with fast counting) for the connection of motors with quadrature encoder. By default they are not enabled in the code but are intended for models that can incorporate them.


This is the list of handling options, by default, from the command, although each one is free to modify the actions or commands in the code.

The movement is controlled by means of the analog jockstick, but, by pressing the central button of the jockstick itself, it is switched to control the arm and the turn of the head.

  • “X” Button: Say hello with the phrase “Hello, I’m D-O”.
  • “O” button: Puts the droid into automatic mode.
  • Cursor up: Centers the X axis of the head.
  • Cursor down: Centers the angle of inclination of the neck.
  • Right cursor: Tilt the neck to the right.
  • Left cursor: Lean the neck to the left.
    Trigger L2: Tilt the base of the head (cam) 40 degrees.
  • L1 button: changes the direction of inclination of the head base.

D-O Main Board V2 (down)

Image 3 of 3