HyInt v2 User Manual
From Tribotix Wiki
HyInt version 2 is the first major revision. The changes & improvements made from HyInt v1 to v2 are:
- CM-iGLX module with inbuilt WLAN became available making mini-PCI based WLAN module obsolete - this allowed the physical dimensions of HyInt to be greatly reduced.
- To further reduce the size of HyInt an extra pcb was generated so that connection to the CM-iGLX's external ports is easy. This External I/O Board allows easy access to:
- Ethernet,
- VGA,
- Serial port, and
- USB port (keyboard).
- A USB Hub was added to HyInt - this allowed us to have 5 USB ports available. These are utilised as:
- USB1.0: RS485 (2 channels to Dynamixels)
- USB1.1: RS485 (to HySense & HySense Lite)
- USB1.2: Keyboard (to external IO board)
- USB1.3: Spare (possible use: FLASH Drive)
- USB2: (Logitech Web Camera)
- Adding the 2nd USB to RS485 converter allowed both Data Acquisition modules (HySense & HySense Lite) to be daisy-chained. This freed up one of the CM-iGLX's COM ports which allowed us to have a dedicated COM port on the External I/O Board. To Summarise:
- COM1: Serial Port (to external IO board)
- COM2: Comms to ATMega8 which looks after Power Management on HyInt
- HyInt can now communicate with AX type Dynamixels
- Power/Battery management is now done via an ATMega8, allowing greater flexibility for:
- voltage and current monitoring, and
- battery discharge monitoring, via Coulomb counting.
Contents |
[edit] Introduction
The HyInt module can be used in any robotic project where a powerful processor with minimal current draw is required. The image below shows a HyInt which has been fitted to Robotis's CycloidII, the HyInt replaced the CM2 which was supplied as standard with these Humanoids. The name HyInt was derived as an abbreviation/acronym of sorts for Hykim's Intelligence.

The HyInt module consists of 3 pcb's,
- Power Supply board PB0803,
- Motherboard PB0801, and
- Compulab's CM-iGLX computer module.
The Compulab's CM-iGLX computer module is the heart of this module being, whilst the other 2 custom designed pcb's provide circuitry for the external intefaces and power distribution and management. One of HyInt's main features is it's ability to communicate directly at 1Mbps with Robotis's range of Dynamixel motors - AX, DX & RX.
Compulab’s CM-iGLX can run either
- Embedded Linux,
- Tribotix have developed an embedded Linux image based around debian etch (Debian 4.0r2), Linux Kernel: 2.6.18. This image includes many useful programs and the required device drivers - information on this is included in a later section of this document, or
- Compulab provide a basic embedded Linux image based around Gentoo.
- Windows CE, or
- Windows XP.
The following subsections of this User Manual will expand on both the hardware and software of the HyInt module.
[edit] Hardware

As shown in the illustration below, the HyInt module consists of 3 pcb’s. These are:
- CM-iGLX: this is a prefabricated computer module supplied by Compulab.
- Motherboard PB0801: this board is the interface for the CM-iGLX and allows all the CM-iGLX’s ports to be brought out to the appropriate types of connectors. A USB hub is also fitted to this board, expanding the available USB ports to 5.
- Power Supply Board PB0803: this board is where the supply voltage is converted to 5V and 3.3V for the various electronic modules distributed around HyKim. This board also an mcu, an ATMega8, that monitors the supply voltage and current. Having an mcu perform this functions allows it to be programmed to alarm the CM-iGLX when the supplied voltage drops below a pre-determined voltage or when it calculates that the batteries charge is reaching a critical level. When the mcu determines that the battery voltage/charge is critical, the mcu can turn power to the Dynamixels off - allowing all available charge to be used to shut the CM-iGLX down gracefully.

The Illustration above shows:
- that the HyInt system is mounted horizontally - the reasoning behind this is to provide a heat sink for the CM-iGLX's mcu. Without a heatsink we recorded temperatures for the CM-iGLX's mcu above 90°, using the Aluminum frame as a heat sink has allowed us to keep the CM-iGLX's mcu temperature within operational limits.
- Hysense, the Body Data Acquisition module (Body Sensors), is now mounted horizontally above HyInt and communicates with HyInt via an RS485 channel.
The table below shows the allocation of the ports available to the user on the HyInt module.
| Connector | Port Type | |
| PB0801 | J5 | Dynamixel: AX, DX or RX modules |
| PB0801 | J6 | Jumper used to select either AX or DX/RX Dynamixel modules at J5 |
| PB0801 | J7 | 20-way IDC Header, takes CM-iGLX signals to PB0804 (External I/O Board) |
| PB0801 | J8 | Audio In (Stereo) |
| PB0801 | J9 | Audio Out (Stereo) |
| PB0801 | J10 | USB Connector (FLASH Drive) |
| PB0801 | J13 | Signals to HySense Lite |
| PB0801 | J14 | Signals to HySense |
| PB0803 | J1 | ATMega8 expansion IO |
| PB0803 | J2 | ATMega8 AVRISP Programming |
| PB0803 | J5~J8 | Dynamixel Channel 1 - AX or DX/RX |
| PB0803 | J8~J12 | Dynamixel Channel 2 - DX/RX |
| PB0803 | J13 | Power Supply (2.5mm DC Jack) |
| PB0803 | J14 | Battery Connector |
The following sub-sections will provide more specific information for each of the boards that make up HyInt.
[edit] Compulab CM-iGLX module
The CM-iGLX is a prefabricated computer module manufactured by Compulab and it’s features include:
- AMD Geode LXMCU 500MHz x86 architecture:
- no need for cross compilation when using Linux
- Geode LXMCU contains a Floating Point Unit (FPU)
- 256Mb DDR SRAM
- 512Mb FLASH Disk
- Used interfaces:
- 2 x COM ports
- USB (host and slave)
- 100Mbps Ethernet
- VGA
- Mini PCI-bus
- Small Size: 68 x 58mm
- AMD Geode LXMCU 500MHz x86 architecture:
Rather than reproduce all the information that Compulab make available for the CM-iGLX in this manual it is more efficient, and accurate, to direct the reader to Compulab's CM-iGLX web site. The main links of interest to the reader will be:
N.B. The documentation for the CM-iGLX states that it has 4 USB ports - this is the case but only 2 USB ports are available for the hardware designer. The port designated USB3 in their documentation is used internally on the CM-iGLX board for the WLAN interface, whilst the port designated USB4 in their documentation is used internally on the CM-iGLX board for the on-board NAND FLASH.
[ASIDE]: Our original design for HyInt was to use 2 prefabricated boards based around the Intel PXA255. These were originally chosen for their low power consumption, 0.2~3W. If you assume that during normal operation the Intel PXA255 boards used 1.6W, then for 2 boards we’d have consumed 3.2W for 500MIPS (250MIPS per board) – assuming that both boards could run at 100%, i.e. not have to wait for the other processor to complete a task before continuing. Using a single AMD Geode LXMCU we can have 990MIPS plus 270Mflops for 3~5W of power consumption. So the decision to switch from a dual Intel PXA255 to a single AMD Geode LXMCU gave us a better Power vs MIPS and Mflops ratio [ref].
[edit] Motherboard (PB0801)

Schematics: Motherboard - PB0801
Software: N/A
Firmware: N/A
Sub-modules: N/A
PB0801 is the motherboard of the HyInt system as both the CM-iGLX, PB0804 (External I/O) and PB0803 (Power Supply) boards connect to it. This board not only provides a secure mounting location for the CM-iGLX but transfers all the necessary signals from the CM-iGLX to appropriate connectors.


The connector allocation for PB0801 is shown in the table below.
| Connector | Port Type | |
| PB0801 | J1, J2 & J3 | Connectors used for CM-iGLX |
| PB0801 | J4 | |
| PB0801 | J5 | Dynamixel: AX, DX or RX modules |
| PB0801 | J6 | Jumper used to select either AX or DX/RX Dynamixel modules at J5 |
| PB0801 | J7 | 20-way IDC Header, takes CM-iGLX signals to PB0804 (External I/O Board) |
| PB0801 | J8 | Audio In (Stereo) |
| PB0801 | J9 | Audio Out (Stereo) |
| PB0801 | J10 | USB Connector (FLASH Drive) |
| PB0801 | J11, J12 | 10-way Headers takes signals to PB0803 (Power Supply Board) |
| PB0801 | J13 | Signals to HySense Lite |
| PB0801 | J14 | Signals to HySense |
[edit] Power Supply Board (PB0803)

Schematics: Power Supply Board PB0803
':Software:
- ATMega128 bootloader, link to be added here ....
- ATMega128 software, link to be added here ....
- Firmware:
- ATMega128 bootloader firmware, link to be added here ....
- ATMega128 firmware, link to be added here ....
Sub-modules: N/A
PB704B is the board within the HyInt system that:
- takes the supply voltage, from either the battery pack or the DC jack, and generates 5V and 3.3V that are used by the various sub-modules within HyKim,
- monitors the supply voltage/charge and current via an ATMega8, when the mcu determines that the battery voltage/charge is critical, the mcu can signal the CM-iGLX and turn power to the Dynamixels off - allowing all available charge to be used to shut the CM-iGLX down gracefully.
- passes the system battery voltage and current drawn to the CM-iGLX via a serial channel.
- provides the connectors for the Dynamixel network.
The connector allocation for PB704B is shown in the table below.
| Connector | Port Type | |
| PB0803 | J1 | ATMega8 expansion IO |
| PB0803 | J2 | ATMega8 AVRISP Programming |
| PB0803 | J3, J4 | 10-way Headers takes signals to PB0801 (MotherboardBoard) |
| PB0803 | J5~J8 | Dynamixel Channel 1 - AX or DX/RX |
| PB0803 | J8~J12 | Dynamixel Channel 2 - DX/RX |
| PB0803 | J13 | Power Supply (2.5mm DC Jack) |
| PB0803 | J14 | Battery Connector |
[edit] External I/O Board (PB0804)

Schematics: External I/O Board PB0804
Software: N/A
Firmware: N/A
Sub-modules: N/A
PB0804 is a simple board that takes a 20-pin Ribbon Cable from the Motherboard (PB0801) and breaks the signals up and takes them to standard connectors for that signal type. This was generated for 2 reasons, firstly having these connectors external to the motherboard is more convenient and secondly, it allowed us to reduce the size of the Motherboard (PB0801) to a size slightly bigger than a Credit Card.
There are 4 output connectors, these are:
- VGA
- Serial
- USB
- Ethernet
The connector allocation for PB0804 is shown in the table below.
| Connector | Port Type | |
| PB0804 | J1 | 20-way IDC Header, brings CM-iGLX signals from PB0801 (Motherboard Board) |
| PB0804 | J2 | VGA |
| PB0804 | J3 | Serial |
| PB0804 | J4 | USB |
| PB0804 | J5 | Ethernet |
[edit] Software
[edit] Compulab CM-iGLX module O/S
Compulab provide Linux (Gentoo-based), Windows CE and Windows XP images for the CM-iGLX – for more detailed information on the functionality covered by each OS, the user is directed to Compulab’s Availability of O/S and Drivers for CM-iGLX web page. The actual images can be downloaded from Compulab's Developers Resources for CM-iGLX web page.
In addition to the Linux image made available by Compulab, Tribotix have developed a 250Mb embedded Linux image that includes all the device drivers required for the peripheral hardware connected to HyInt. Details of the image follow.
[edit] Linux
[edit] debian etch (Debian 4.0r2 Linux Kernel: 2.6.26)
Installed Applications:
- apache2.0 2.2.9-10+lenny6 Apache HTTP Server metapackage
- build-essentials (standard C compiler and make) 11.4 Informational list of build-essentials package
- dpkg-dev (>= 1.14.18) package building tools for Debian
- g++ (4:4.3.2-2) The GNU C++ compiler
- gcc (4:4.3.2-2) The GNU C compiler
- libc6-(2.7-18) GNU C Library: Shared Libraries
- libc6-dev (2.7-18) GNU C Library: Development Libraries and Header Files
- libc6- i686 (2.7-18) GNU C Library: Shared Libraries [i686 optimised]
- make (3.81-5)The GNU version of the "make" utility.
- CMU sphinx Speech Recognition
- cpufrequtils 004-2 Utilities to deal with the cpufreq Linux kernel feature
- erlang 1:12.b.3-dfsg-4 Concurrent, real-time, distributed functional language
- festival 1.96~beta-7 General multi-lingual speech synthesis system
- firmware-ralink 0.14+lenny2 Binary firmware for wireless cards
- openCV 1.0.0-6.1 Computer Vision
- powertop 1.10-2 Linux tool to find out what is using power on an embedded device
- python (2.4.4-2)
- madwifi-source (1:0.9.4+r3772.20080716-1) source for multiband Atheros Driver for wifi
- madwifi-tools (1:0.9.4+r3685.20080531+dfsg-1) tools for multiband Atheros Driver for wifi
- ntp deamon 1:4.2.4p4+dfsg-8ler Network Time Protocol daemon and utility program
- openssh-server and client 1:5.1p1-5 secure server/client
- sudo 1.6.9p17-2 Provide limited super user privilages to specific users
- synaptic 0.62.1+nmul Graphical package manager
- sysv-rc-conf 0.99-6 SysV init runlevel configuration tool for the terminal
- vlc 0.8.6.h-4+lenny2 multimedia player and streamer
- vsftpd (and configured) 2.0.7-1 The Very Secure FTP Deamon
- webcam (3.95.dfsg.1-8) image grabber and uploader
- wireless-tools 29-1.1 Tools for manipulating Linux Wireless Extensions
- xawtv 3.95.dfsg.1-8 television viewer – X11 application
- xfce4 4.4.2.1 Meta-package for the Xfce Lightweight Desktop Environment
- xorg 1:7.3+20 X.Org X Windows System
[edit] Windows
[edit] Compulab CM-iGLX module Software
This is where we'll put sample code ....
[edit] Battery Management Software (ATMega8)
This is where we'll put software and firmware code ....
