Riox 1216 Datasheet
Riox 1216 Datasheet
Smart IO
Expansion Card
with Optional
AHRS for
Robotics
Roboteq's I/O eXtender (RIOX) module is an intelligent I/O RIOX is available in a version with an AHRS (Attitude and Head-
expansion card, with an optional Attitude and Heading Refer- ing Reference System (RIOX1216AH), including 3 axis acceler-
ence System (AHRS), that seamlessly integrates with Roboteq ometer, 3 axis gyroscope, 3 axis magnetometer and a Fusion
Motor Controllers. It is intended for use in robotics navigation, algorithm.
unmanned vehicles, machine control, industrial automation and
any other applications that need interfacing to the real world. The RIOX module’s firmware can easily be updated in the field
The RIOX module can also be used stand-alone, or as an IO to take advantage of new features as they become available.
extender to PC, PLC or microcomputer based systems.
Applications
The module features 12 inputs, each of which can be individu-
• Robot navigation
ally configured as digital, 0-5V analog, or as pulse inputs. In the
pulse mode, the inputs can capture pulse width, frequency, • Unmanned air, land, sea and submarine vehicles
duty cycle, or quadrature encoder counts. Each input pin can • Motion stabilization systems
also be configured as a driver for RC servos. • Industrial automation
The RIOX module has Digital Outputs capable of driving resis- • Machine Control
tive loads such as lights, or inductive loads such as relay, sole- • Movie/Stage props
noids or motors up to 1A each at 40V. Each output can be used • Automated Test Equipment
as Input as well.
Features List
The card also includes a 32-bit ARM microcontroller for pro-
cessing and buffering the IO, and managing the communication • Built-in 8V to 40V DCDC Converter. 5V output for local
with motor controllers and/or other components of the system. power and external accessories
The processor can be configured to perform, on its own, a long • Up to 28 Digital Inputs
list of conversion, capture, filtering, or conditioning on the IO. A • Up to 12 Analog Inputs
simple and powerful Basic-like programming language is built
• Up to 12 pulse Inputs
into the card and allows users to write programs that process
the I/O in real time. • 2 Analog Outputs
• 0-5V Analog inputs range, 12-bit resolution
RIOX provides a standard RS232 and RS485 interface for com- • Pulse width, Duty Cycle or Frequency pulse capture
munication to PCs and various peripherals. A CAN bus interface
allows RIOX to be a master or slave in a CAN bus network that • Pulse IO pins configurable as PWM for driving RC servos
can be up to 1000m long and contain up to 127 nodes. CAN bus • Pulse IO pins configurable as interfaces to Ping ultrasound
also allows the simple interfacing to Roboteq motor controllers. distance sensors
• Inputs for up to 3 quadrature encoders
The RIOX module uses screw terminals to ensure easy inser-
• 16 Digital outputs up to 1A each, 40V max
tion and removal while providing a most reliable connection.
• Direct interfacing to Roboteq Magnetic Guide Sensor
TABLE 1.
Block diagram
The diagram below shows the RIOX processor.
5V Out
3 Axis
Gyroscope
Accelerometer
Magnetometer
CAN RS232 RS485
Analog/Digita/Pulse
(AHRS Version)
Input Conditioning
12
16 Processor DC Input
DC/DC
Driver
3.3V
Converter
RTC
NVRAM
P5 P6 P7
Power
Outputs 1-8 Outputs 9-16
Inputs 13-20 Inputs 21-28
CAN
Status
USB
X
Z
P1 P2 P3 P4
The status LED will flash to indicate that the MCU is running. The LED flashing rate and color can change to indi-
cate fault or warning conditions.
Input LEDs
The Input LEDs will lit whenever the voltage at one of the 12 Analog/Digital/Pulse input is above around 2.5V.
Output LEDs
In normal operation, the LEDs located near the Digital Output connector will lit whenever an output is activated.
Digital outputs are Open Drain drivers that can also be used as inputs when they are in the off state. As input,
these lines appear as inputs 13 to 28. When an Output is configured as Input Only, the LED will be lit if a voltage
above 2.5V is present on the terminal. Figure 3 identifies the input, outputs and power terminals.
Power
Battery
CAN
CAN USB
RS232
Status
RS485
USB
X
Z
1 2 3 4 5 6 7 8 9 10 11 12 1 2
Digital Inputs Digital Inputs Digital Inputs Analog Outputs
GND
5V Out
FIGURE 3. Input, outputs and power terminals
I/O Terminals
The module uses screw terminals for the IO. The 12 Digital/Pulse/Analog inputs are shared between three 6-posi-
tion terminals. The two Analog outputs are placed on a 3-position terminal. The 16 Digital outputs are shared
between two 10-position terminals. Ground signal are provided on each terminal blocks. A 5V output is provided
on the Digital/Analog/Pulse terminals for powering outside sensors.
5 1
9 6
FIGURE 4. DSub 9 pin locations
TABLE 2.
Connections to Inputs 1 to 12
The RIOX module has up to 12 inputs which can be used to capture digital, analog or pulse signals. Each input has
a 53kOhm pull down resistance. In certain conditions, these inputs are also capable of outputing a low power sig-
nal for driving RC Servos or Ultrasound distance sensor.
1K 1kOhm
to
10K
20kOhm
1K DIN
to 33kOhm
10K
Ground
Potentiometers and other ratiometric sensors can use the 5V output available on the I/O connector. For best pre-
cision, capture must then be configured in Relative mode, to compensate fluctuations in the 5V output.
5V Out
1kOhm
1K
to
10K 20kOhm
DIN
33kOhm
Ground
Connection to RC Servos
All input pins can also be used to drive RC servos. The servos should be powered from an external voltage source
and only be connected to the module’s 5V output if they consume little power. When powered from the module,
insert a 500uF/10V capacitor or higher. RIOXs output drive capability is limited and not all servos may be compati-
ble with the output signal. A pull down resistor at the pin may be required in some condition to make it work.
5V Out
1kOhm
+
- 20kOhm
DIN
33kOhm
Ground
FIGURE 7. RC Servo wiring
Relay, Valve
Motor, Solenoid
Lights, LEDs, or any other or other Inductive Load
non-inductive load
+ +
Up to Up to
24V 24V
DC DC Internal
- DOUT Internal - DOUT Transistor
Transistor
Ground Ground
+5V Out
1K
to 50K Input
10K Buffer
DIN13 to DIN28
(DOUT1 to DOUT16)
1K
V to
4.7K Output
Driver
Note that for this function to work, the output must be in the off state, or configured as Input Only.
Electrical Specifications
TABLE 3.
TABLE 4.
TABLE 4.
TABLE 5.
Scripting
TABLE 6.
AHRS
The RIOX1216AH is equipped with a 3-axis Accelerometer, Gyroscope and Magnetometer. A special algorithm
“fuses” the data of each of these sensors to give the board’s Attitude and Heading. The board’s Pitch, Roll and
Yaw angles is given using Euler angles or Quaternions. Figure below shows the angles relative to the board hard-
ware.
Accel Z
Gyro Z Mag Z
- +
Yaw Gyro X Accel Y
Roll Mag Y
+ -
Accel X
Mag X
Accel Z
Accel X Mag Z
Mag X
Gyro Y
Pitch
+ -
The AHRS Pitch, Roll and Yaw data is used to animate a 3D figure that, with proper calibration, will move on the
screen the same way as the board is moved. The AHRS output angles can also be plotted and logged in the 2D
chart.
Sensor Calibration
The sensor must be calibrated before using it for the first time. For the magnetometer in particular, the calibration
must be done in the actual place where the board will be used, in order to take into account the possible distor-
tion to the magnetic field induced that the surrounding hardware. Calibration is done using the PC utility in the
Setup tab, in two steps.
The Gyroscope zero offset must first be calibrated. This is done by leaving the RIOX on a surface (in any position)
and make sure it does not move. Click then the Gyroscope Calibration button. The offset will be measured and
stored into the RIOX’s EEPROM. You can verify that the calibration was successful by monitoring the Gyroscope
data in the chart recorder. A small amount of noise (approx. +/- 20) will show in the chart instead of 100 or more
for an uncalibrated gyroscope.
The AHRS calibration process requires that the sensor be rotated in every direction, in every angle, for approxi-
mately one minute. The rotation must be made while keeping the board in the same location in space, i.e. not
moved laterally, up or down). The collected data is then analyzed to automatically determine a couple of dozen
parameters needed by the AHRS fusion algorithm to work correctly. A button is provided on the setup screen of
the PC utility. It must be pressed only after gyroscope calibration. Once pressed, the utility will prompt you on
what to do next. At the end of the process, the new calibration values are stored in RIOX’s RAM and are effective
immediately. You must click on Save to Device for the calibration to be stored in the RIOX’s EEPROM and then
automatically reloaded every time the board is powered up.
RIOX
Setup
MicroBasic Scripting
The RIOX features the ability for the user to write programs that are permanently saved into, and run from the
card’s Flash Memory. This capability is the equivalent of combining the functionality of a PLC or Single Board
Computer directly into the expansion card. The language is a very simple, yet powerful language that resembles
Each time a query is executed, it is stored in a history buffer and may therefore be automatically repeated at a
periodic rate using the # character with the following syntax:
TABLE 7.
TABLE 7.
TABLE 8.
Configuration Commands
These commands are used to read or modify the configuration parameters. They begin with the ~ character for
reading and the ^ character for writing. Table 9 shows the list of supported configuration commands. However, it
is easier and preferable to use the PC utility menus for inspecting and changing configurations. If changing manu-
ally, remember to save the new configuration to flash with the %EESAV. Otherwise, RIOX will revert to the previ-
ously active configuration next time it is powered on.
TABLE 9.
Maintenance Commands
These commands are used to perform maintenance functions. They begin with the % character. Table 10 shows
the list of supported configuration commands.
TABLE 10.