DJs OpenCM 9.04 Firmware (Cracked Egg)

Robotis OpenCM 9.04
Hardware Platform
Robotis OpenCM 9.04

This firmware is to be installed on the OpenCM 9.04 from Robotis to connect with Synthiam's ARC. Follow the directions below to install and get running.

Setup Video Walk-through
In this video, DJ demonstrates how to connect and control dynamixel AX-12 servos with the Open CM 9.04 in ARC using the Dynamixel plugin. There are step instructions below that define each step.

Onboard Ports
Onboard Open CM9.04 ports are UART #0 in ARC. The TTL servo ports of the Open CM 9.04 are UART #0 on the Dynamixel plugin. Ensure the plugin has the UART #0 selected for the TTL servo ports to work. 

Expansion Board Ports
The expansion board ports use UART #2 in ARC.





Setup Steps
1) Download and install ARC
2) Follow the instructions from Robotis to install Arduino IDE tools.
3) Download this firmware file
4) Tutorial to compile and upload the firmware

If using Dynamixel servos, install the Dynamixel servo Control into ARC. Set the Dynamixel plugin to use UART #0 for the Open CM 9.04.

Arduino IDE Configuration
The suggested IDE for programming the OpenCM9.04 is the official Arduino IDE. The tutorial link below will recommend downloading and installing the Arduino IDE. However, you will also need to install the Robotis OpenCM libraries and tools into the IDE.

The OpenCM9.04 can be programmed with the EZ-B firmware for a variety of capabilities when connected to ARC. The tutorial to program the EZ-B firmware can be found HERE. This hardware was added to ARC in this beta release and newer.

Connectivity
Most Arduino's connect to ARC via 9600 baud. This controller has the technical power to connect at a much higher rate. The firmware is set for 921,600 BAUD, which is very quick! When following the connection tutorial, ensure you specify the correct baud rate for this firmware.

Ports
User-inserted image



The ports on the OpenCM perform different features based on their usage. The diagram above demonstrates how the ports are connected to ARC. The Ax ports can be either Analog Input or Digital I/O. The Ax also function as Dx ports. The UART 0, 1, & 2 are connected to UART 1, 2 & 3, respectively.


About this version
Added RX buffer for UART #2 (Serial 3) for servo expansion board
Supported Capabilities
  • ADC with 10 bit resolution
    The ADC captures analog voltage at 10 bit resolution. This means the native value will be an 8 bit (0-1023) from the controller. However, within EZ-Builder the resolution will be scaled to 12 bit for appropiate commands.
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
    Contains 1 or more hardware UARTs with TX/RX functionality and DMA RX buffering.
  • I2C Master
    The controller supports the EZ-Builder I2C commands for Master mode.
  • Native USB Connectivity from EZ-Builder
    Controller has a native USB hardware and software driver which connects directly to your computer without additional hardware.
  • PWM Duty on digital ports
    Digital ports can output a PWM between 0% and 100%.
  • PWM servos on digital ports
    The controller supports PWM Servos on digital ports. These are also called Hobby servos.
  • PWM servos on digital ports can release their position
    PWM servo driver on digital ports support the feature to release their holding position.
  • Read/Write Digital I/O Ports
    The ports marked as being digital will respond to Read and Write commands of boolean logic. The status of the digital port will be either TRUE or FALSE when voltage is detected or not, respectively.

About this version
Updated to work with Open CM 9.04 expansion board. If the connectors on the Open CM9.04 are being used, use ARC UART #0. If the expansion board ports are being used, use UART #2 in ARC.
Click to show supported capabilities
Supported Capabilities
  • ADC with 10 bit resolution
    The ADC captures analog voltage at 10 bit resolution. This means the native value will be an 8 bit (0-1023) from the controller. However, within EZ-Builder the resolution will be scaled to 12 bit for appropiate commands.
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
    Contains 1 or more hardware UARTs with TX/RX functionality and DMA RX buffering.
  • I2C Master
    The controller supports the EZ-Builder I2C commands for Master mode.
  • Native USB Connectivity from EZ-Builder
    Controller has a native USB hardware and software driver which connects directly to your computer without additional hardware.
  • PWM Duty on digital ports
    Digital ports can output a PWM between 0% and 100%.
  • PWM servos on digital ports
    The controller supports PWM Servos on digital ports. These are also called Hobby servos.
  • PWM servos on digital ports can release their position
    PWM servo driver on digital ports support the feature to release their holding position.
  • Read/Write Digital I/O Ports
    The ports marked as being digital will respond to Read and Write commands of boolean logic. The status of the digital port will be either TRUE or FALSE when voltage is detected or not, respectively.

About this version
Version Information
- Fix for reading servo positions, pinging and scanning
Click to show supported capabilities
Supported Capabilities
  • ADC with 10 bit resolution
    The ADC captures analog voltage at 10 bit resolution. This means the native value will be an 8 bit (0-1023) from the controller. However, within EZ-Builder the resolution will be scaled to 12 bit for appropiate commands.
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
    Contains 1 or more hardware UARTs with TX/RX functionality and DMA RX buffering.
  • I2C Master
    The controller supports the EZ-Builder I2C commands for Master mode.
  • Native USB Connectivity from EZ-Builder
    Controller has a native USB hardware and software driver which connects directly to your computer without additional hardware.
  • PWM Duty on digital ports
    Digital ports can output a PWM between 0% and 100%.
  • PWM servos on digital ports
    The controller supports PWM Servos on digital ports. These are also called Hobby servos.
  • PWM servos on digital ports can release their position
    PWM servo driver on digital ports support the feature to release their holding position.
  • Read/Write Digital I/O Ports
    The ports marked as being digital will respond to Read and Write commands of boolean logic. The status of the digital port will be either TRUE or FALSE when voltage is detected or not, respectively.

About this version
Version Information
- Scanning servos fix
- first i2c attempt with Wire library. I just found out the Wire library on OpenCM is actually software, so that won't do. It doesn't seem to work correctly. I'll have to find a hardware alternative, but haven't been able to find any examples
Click to show supported capabilities
Supported Capabilities
  • ADC with 10 bit resolution
    The ADC captures analog voltage at 10 bit resolution. This means the native value will be an 8 bit (0-1023) from the controller. However, within EZ-Builder the resolution will be scaled to 12 bit for appropiate commands.
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
    Contains 1 or more hardware UARTs with TX/RX functionality and DMA RX buffering.
  • I2C Master
    The controller supports the EZ-Builder I2C commands for Master mode.
  • Native USB Connectivity from EZ-Builder
    Controller has a native USB hardware and software driver which connects directly to your computer without additional hardware.
  • PWM Duty on digital ports
    Digital ports can output a PWM between 0% and 100%.
  • PWM servos on digital ports
    The controller supports PWM Servos on digital ports. These are also called Hobby servos.
  • PWM servos on digital ports can release their position
    PWM servo driver on digital ports support the feature to release their holding position.
  • Read/Write Digital I/O Ports
    The ports marked as being digital will respond to Read and Write commands of boolean logic. The status of the digital port will be either TRUE or FALSE when voltage is detected or not, respectively.
#1  
very good video - auto position

EzAng