The MH2 robot uses the FriendlyElec NanoPi Neo Core2 LTS main controller. To control the Dynamixel servomotors it uses a custom add-on board:
This board provides the following:
- uses one of the USB from the NanoPi board and FTDI4232H chip to produce 4 UART channels (they will appear as /dev/ttyUSB0 to /dev/ttyUSB3 to the operating system)
- the FTDI chip is programmed using a 93LC46BT 1K EEPROM to configure it in RS485 mode (see page 20 in the FTDI4232 datasheet); this way we can easily convert the RX/TX dignals from the UARTs in a semi-duplex signal required by the Dynamixel bus
- the RX/TX pairs and TXDEN is then passed through a 74LVC2G241 buffer for each of the 4 UARTs, producing the 1 wire semi-duplex serial signal used by the Dynamixel servos
- there are 8 Dynamixel XL-320 connectors (Molex 53253-0370), 2 for each channel
- connected on the I2C there is a LSM330 6 axis IMU (accelerometer and gyroscope) that the robot can use to evaluate the posture
- a 4 pin Molex connector for I2C (used by the OLED screen and the button I/O expander)
- 2 connectors for the cooling fans
On the back side of the board we have:
- one USB connector for the WiFi dongle (the board does not have WiFi onboard)
- the 5V regulator (1.5A) Murata OKI-78SR-5/1.5-W36-C
- the connector the external power jack
The board is fitted directly on top of the GPIO pins of the NanoPi Neo Core2 board: