DARwIn-OP body

My DARwIn-OP clone is taking shape. I mounted the chest section.

DARwIn-OP de los pies a los hombros.
DARwIn-OP up to the shoulders.

The chest parts (where the computer is mounted) are pretty big and my mill doesn’t have enough range in the Y axis to mill it in one cut. Luckily a friend that I met through this blog helped me with the cuts. He lives in my city and has a modified Sherline mill with bigger range. Also he is a Sherline dealer in Chile and works on CNC projects and has several interesting posts on his own blog at metaltronics.wordpress.com.

Fresado en Sherline modificado
Milling on the modified Sherline mill.

For the chest cuts, we tested using only a 1.5mm endmill, even for holes (1.6mm the smallest). For future cuts I will use bigger endmills such as 2mm o 2.5mm as in my previous cuts, the 1.5 endmill requires a depth of cut too small (we used 0.2mm) and are more fragile.

Since I am not going to use the original DARwIn-OP electronics (Fit-PC + CM-730 controller), I modified the chest parts to allow mounting an Odroid-XU3, in particular for access to the rear ports and mounting points.

Partes del pecho con Odroid-XU3 y servos de hombros y cuello.
Chest parts with mounted Odroid-XU3 (and USB2AX) and shoulder + neck servos.

The Odroid-XU3 fits without problem, but to mount the USB2AX (interface to servos) I had to adjust the TTL connector to a vertical position.

In the rear, I exposed the Ethernet port, 4 USB ports and a micro-HDMI (with a 15cm extender). Probably I’ll leave only 2 USB ports exposed, removing one connector to allow for more internal USB ports.

Puertos del Odroid-XU3 expuestos
Odroid-XU3 exposed ports.

The upper chest part was modified to mount a 10-DOF, centering the accelerometer chip in the same place where the original CM-730 controller has its own. Additional holes tapped to 2.5mm were added for future components.

10DOF montado
10-DOF mounted on upper chest part.

Because of the change of electronics, a 6 port TTL dynamixel hub is needed to connect the servos. In the rear there is just enough space to mounted.

Hub dynamixel de 6 puertos
6 port TTL Dynamixel hub.

Cuerpo del robot DARwIn-OP

Mi clon de DARwIn-OP ya está tomando forma. Ya monté la sección del abdomen.

DARwIn-OP de los pies a los hombros.
DARwIn-OP de los pies a los hombros.

Las piezas del pecho donde va instalado el computador son bastante grandes y mi fresadora no tenía el rango necesario en el eje Y para fresarla de una sola vez. Por suerte un amigo que conocí vía este blog me ayudó con el corte, él tiene una fresadora Sherline que modificó y automatizó con mucho más rango en el eje Y, además es dealer de Sherline en Chile y trabaja en esto, tiene su propio blog con varios proyectos bien interesantes en metaltronics.wordpress.com.

Fresado en Sherline modificado
Fresado en Sherline modificado.

Para estos cortes, probamos usar sólo una fresa de 1.5mm para todo el fresado, incluyendo perforaciones (1.6mm las más pequeñas). Para futuros cortes voy a utilizar fresas más grandes, de 2mm o 2.5mm como en los cortes anteriores, la fresa de 1.5mm requiere una profundidad de pasada muy baja (usamos 0.2mm) y son más frágiles.

Como no voy a usar la electrónica original del DARwIn-OP (Fit-PC + controlador CM-730), las piezas del pecho las modifiqué para montar un computador Odroid-XU3, en particular para el acceso a puertos traseros y los puntos de fijación.

Partes del pecho con Odroid-XU3 y servos de hombros y cuello.
Partes del pecho con Odroid-XU3 (y USB2AX montado) y servos de hombros y cuello.

El Odroid-XU3 cabe sin problemas, para montar el USB2AX (interfaz a los servos) tuve que ajustar el conector TTL a posición vertical.

En la parte posterior, expuse el puerto Ethernet, 4 puertos USB 2.0 y espacio para un micro-HDMI (vía un extensor de 15cm). Probablemente termine dejando sólo 2 puertos USB expuestos, desoldando un conector para contar con más puertos USB internamente.

Puertos del Odroid-XU3 expuestos
Puertos del Odroid-XU3 expuestos.

La pieza superior del pecho fue modificada para fijar el 10-DOF con el acelerómetro y giroscopio, centrando el chip del acelerómetro en la misma posición en la iría si hubiera usado el controlador original CM-730. Además dejé 2 líneas de perforaciones con hilo de 2.5mm para montar otros componentes de ser necesario.

10DOF montado
10-DOF montado.

Debido al cambio de la electrónica que estoy haciendo, es necesario utilizar un hub TTL Dynamixel de 6 bocas para distribuir la comunicación y energía a los servos, en la parte posterior hay justo espacio para montarlo.

Hub dynamixel de 6 puertos
Hub dynamixel de 6 puertos.

Piezas de Montaje de Piernas de DARwIn-OP

Fresé las piezas PR13_B_SPACER_PELV que son las piezas de montaje que van sobre las piernas.

DARwIn-OP Mounting Brackets
Piezas de Montaje de Piernas

Estas piezas de montaje son necesarias para unir las piernas con la sección del pecho donde va el computador central. Actualmente estoy rediseñando las piezas del pecho para acomodar un computador Odroid-XU3, el cambio principal es en la posición de puertos USB y Ethernet expuestos al exterior.

Los archivos de corte de las piezas de montaje están en SourceForge aquí. En el archivo  README están las lista de archivos gcode necesarios.

Para las futuras partes voy a tratar de cambiar la estrategia de fresado. En vez de usar varias brocas y fresas, voy a tratar de usar solo una fresa de 1.5mm para todos los cortes, y así evitar cambio de herramientas.

DARwIn-OP Leg Mounting Brackets

I milled the PR13_B_SPACER_PELV mounting brackets which go on top of each leg.

DARwIn-OP Mounting Brackets
Leg Mounting Brackets

The brackets are necessary to attach the legs to the chest section where the main computer resides. Currently I am redesigning the chest parts to fit a Odroid-XU3 computer, the main changes are in the position of external USB and Ethernet ports.

The cut files for the mounting bracket are in SourceForge here. In the README file is the list of gcodes files.

For future parts I’ll try to change the cutting strategy for milling. Instead of using several drills and endmills, I’ll try to use a single 1.5mm endmill for all cuts, avoiding tool changes.

Cubiertas de DARwIn-OP

Recién recibí las cubiertas de plástico para mi clon de robot DARwIn-OP. Los imprimí en naranjo en un servicio de impresión 3D SLS.

Los modelos 3D de las cubiertas están publicados en este archivo ZIP en el repositorio original SourceForge de  DARwIn-OP.

Probé el ensamblado de la pierna izquierda y se ve muy bien comparado con la pierna derecha desnuda.

Cubierta de Pierna de DARwIn-OP
Cubierta de Pierna

DARwIn-OP Covers

I just received the plastic covers for my DARwIn-OP robot clone. I got them 3D-printed on a SLS printing service in orange.

The 3D models are published in this ZIP file in the original DARwIn-OP SourceForge repository.

I tested the assembly of the left leg and it locks very nice compared to the bare-bone right leg.

DARwIn-OP Leg Covers
Leg Covers

Segunda Pierna de mi Clon de Robot DARwIn-OP

Terminé de ensamblar la segunda pierna de mi clon de DARwIn-OP.

2 DARwIn-OP legs
2 piernas de DARwIn-OP

También terminé de escribir los archivos de corte gcode para las piezas de montaje pélvico (PR13_B_SPACER_PELV) que van entre las piernas y el pecho, las voy a cortar pronto.

Mientras tanto estaba rediseñando las piezas del pecho para acomodar el computador ARM ODROID-XU en vez del original FitPC con procesador Intel. Como alternativa también voy a permitir instalar un computador ODROID-U3 que es más pequeño y con menos capacidad de cómputo, pero también menos consumo. El último ODROID-U3 (Revisión 0.5) tiene una interfaz nativa SPI que podría servir para conectar sensores como el acelerómetro y giroscopio.

Pero ahora Hardkernel está por liberar el ODROID-XU3 en agosto y algo de información está disponible, las mayores diferencias con el ODROID-XU que encuentro interesantes para mi proyecto son:

  • Cores Cortex-A15 más rápidos (2GHz).
  • Octa-core de verdad con multi procesamiento heterogéneo.
  • Más eficiente.
  • Ya no tiene el conector LCD para obtener el bus I2C #1 nativo, pero ahora éste está disponible en el connector de expansión I/O que es de más fácil uso.
  • Incluye sensores de consumo.
  • Agrega entrada de audio (mono solamente).
  • OpenCL funciona en Linux.
  • Mismo tamaño que el ODROID-XU, así que es fácil de reemplazar.

De todas maneras, estoy viendo cómo cortar las piezas del pecho en mi Fresadora Sherline, que es muy pequeña para estas piezas, así qie las haré en partes.

Second Leg Finished for my DARwIn-OP Robot Clone

I finished assembling the second leg for my DARwIn-OP clone.

2 DARwIn-OP legs
2 DARwIn-OP legs

I finished writing the gcode cut files for the pelvic mounting brackets (PR13_B_SPACER_PELV) which go between the legs and the chest, and I’ll be cutting them soon.

Meanwhile I was redesigning the chest brackets to accommodate the ODROID-XU ARM computer instead of the original FitPC with an Intel processor. As an alternative, I am also considering to use an ODROID-U3 computer, with has a smaller footprint and a less powerful ARM processor (and consuming less power). The latest ODROID-U3 (Revision 0.5) has an native SPI interface, so which could be used to interface sensors (accelerometer and gyroscope).

But now, Hardkernel is going to release the ODROID-XU3 in August and some info is available. The main differences with the ODROID-XU that I find interesting for my project are:

  • Faster Cortex-A15 cores (2GHz).
  • Full octa-core Heterogeneous Multi Processor system.
  • More energy efficient.
  • No more LCD connector to get the native I2C #1 bus, but it is available now in the easier to access I/O expansion connector.
  • Included energy sensors.
  • Audio-In added (mono only).
  • OpenCL working in Linux.
  • Same form factor as the ODROID-XU, so easy replacement.

Anyway, I am scratching my head on how to cut the chest brackets on my Sherline mill, which is too small for these brackets, so I’ll be making them in parts.

Probando el I2C del ODROID-XU

Decidí hacer algunas pruebas de electrónica y software antes de terminar de fabricar la segunda pierna de mi clon del robot DARwIn-OP.

Conecté mi ODROID-XU con el módulo 10DOF GY-80 usando el bus I2C del conector LCD y un PCA9306 para ajustar voltages de la comunicación.

Setup de Prueba de I2C con ODROID-XU
Setup de Prueba de I2C con ODROID-XU

El siguiente es el diagrama de interconexión probado:

Diagrama de Prueba I2C
Diagrama de Prueba I2C

Este 10DOF puede energizarse desde 2V hasta 5.5V (VDD). Sus sensores están alimentados internamente a 3.3V, pero según esta documentación su interfáz I2C está ajustada a VDD, por lo que el PCA9306 tiene que traducir entre los 1.8V del ODROID-XU y VDD (y no 3.3V).

Este 10DOF tiene 4 dispositivos I2C con las siguientes direcciones:

  • 0x1E: compás de 3 ejes (chip HMC5883L)
  • 0x69: giroscopio de 3 ejes (chip L3G4200D)
  • 0x53: acelerómetro de 3 ejes (chip ADXL345)
  • 0x77: sensores de presión y temperatura (chip BMP085)

Con este pequeño programa, se puede consultar el chip del acelerómetro para detectarlo y verificar el setup. Actualmente estoy probando Ubuntu Server 14.04 de paquete en el ODROID-XU, el que incluye el compilador GCC por defecto.

Ahora que tengo la comunicación I2C funcionando, seguí la documentación de los chips y ejemplos en Internet para escribir un borrador de clases C++ para leer los sensores del 10DOF. Están disponibles en esta Sección de Código en el repositorio SourceForge para clonar el Robot DARwIn-OP.

Probé en forma exitosa el 10DOF energizándolo (junto al PCA9306) con 3.3V y 5V, pero a 3.3V consumen 0.024A (o 0.079W) y a 5V consumen 0.085A (o 0.425W). Así que en mi diseño final para el DARwIn-OP probablemente incluya un regulador de 3.3W para disminuir el consumo.

ODROID-XU I2C Testing

I decided to do some electronics and software testing before finishing building the second leg of my DARwIn-OP robot.

I wired my ODROID-XU with the GY-80 10DOF module using the I2C bus on the LCD connector (CON15) and a PCA9306 to adjust communication voltages.

ODROID-XU I2C Test Setup
ODROID-XU I2C Test Setup

The following is the connection diagram tested:

I2C Test Diagram
I2C Test Diagram

This 10DOF can be powered from 2V to 5.5V (VCC_IN). Its sensors are internally powered at 3.3V, but according to this documentation its I2C interface is rated at VCC_IN, so the PCA9306 has to translate from ODROID-XU’s 1.8V to VCC_IN (and not to 3.3v).

This 10DOF has 4 I2C devices in the following addresses:

  • 0x1E: 3-axis compass (HMC5883L chip)
  • 0x69: 3-axis gyroscope (L3G4200D chip)
  • 0x53: 3-axis accelerometer (ADXL345 chip)
  • 0x77: pressure and temperature sensors (BMP085 chip)

With this small C program, the accelerometer chip can be query in order to detect it and verify the setup. I am currently testing Ubuntu Server 14.04 off the shelf on the ODROID-XU, which includes the GCC compiler by default.

Now that I have I2C communication running, I followed the chips documentations and some googled examples in order to write some draft C++ classes to read the 10DOF sensors. They are available in this Code Section in the SourceForge repository for cloning the DARwIn-OP Robot.

I could successfully test the 10DOF powering it (and the PCA9306) with 3.3V and 5V, but at 3.3V they draw 0.024A (or 0.079W) and at 5V they draw 0.085A (or 0.425W). So in my final DARwIn-OP design I will most probably include a 3.3V regulator to lower consumption.