February 2021

Dynamixel Interface Board V2

I have decided to redesign the Dynamixel interface and put it again in stock on my Tindie store, this redesign include some status LEDs that visually let you know if the motor is communicating to the motors and vice-versa, I have also decided to change the connector orientation which makes the board a little bit compact and more compatible with small dimensions projects.

The circuit for the LED indicators uses some NAND gates that let the user know when data is going to the servo and from the servo to the microcontroller without the need for a logic analyzer.  

This update is a very simple update and it does not affect the functionality of the interface, it is just a visual benefit for the user.

Here is the schematic in case you have the components and wish to make your own interface.

Test code:

#include <DynamixelSerial.h>

#define SERVO_ID  1
int Temperature,Voltage,Position; 

void setup(){
Dynamixel.setSerial(&Serial1); // &Serial - Arduino UNO/NANO/328P, &Serial1, &Serial2, &Serial3
Dynamixel.begin(1000000,2);    // Inicialize the servo at 1 Mbps and Pin Control 2
Serial.begin(9600);            // Begin Serial Comunication
}

void loop(){
  Temperature = Dynamixel.readTemperature(SERVO_ID); // Request and Print the Temperature
  Voltage = Dynamixel.readVoltage(SERVO_ID);         // Request and Print the Voltage
  Position = Dynamixel.readPosition(SERVO_ID);       // Request and Print the Position 

  Dynamixel.move(1,random(200,800));
 
  Serial.print("Temperature: ");                  // Print the variables in the Serial Monitor
  Serial.print(Temperature); Serial.print(" celcius, ");
  Serial.print("Voltage: ");
  Serial.print(float(Voltage)/10);Serial.print(" volts, ");
  Serial.print("Position: ");
  Serial.println(Position);

  delay(1000);
}

Arduino Dynamixel Library

After a long time here is an update in the Library for Dynamixel Sero Motors as the AX-12A.

These servos are pretty awesome, they seem the perfect solution for robotics as they can return several parameters as internal temperature, the voltage of operation, position, speed, torque, and all of this is accomplished as they have an internal microcontroller, the Atmega8 from Atmel which communicates over Half-Duplex UART TTL. This library helps you communicate with the Dynamixel Servos protocol V1.0 in any of the Serial channels of your Arduino.

The voltage of operation of these motors is recommended to be 11.1 volts, but it should work ok from 6V to 14V as the datasheet describes in the electrical ratings. Don’t forget to join the grounds of your motor’s power supply and the one from the microcontroller in other to level the signal voltage between them.

Power supply connection
Arduino UART pins connection

In order for this library to work and to ensure proper usage it is necessary to use a tri-state buffer IC, this can be achieved with a 74HC04 NOT gate and a 74HC126 tri-state buffer ICs ad Robotis suggests. I personally prefer the 74LS241 tri-state buffer with inverted enable pin input as is easy to connect and offers the same configuration in a single IC.

Don’t forget the VCC and GND IC power supply connections, VCC should be 5V

Download from my Github


https://github.com/JosueAGtz/dynamixelInterface