About this project
Turn the PI into an Amazingly Powerful Computer for Robotics and Automation
The RIO (Raspberry IO) card will turn the PI into an amazingly powerful embedded computer for its size and price, and opens a world of applications in
- Robotics navigation
- Unmanned vehicles
- Machine control
- Industrial & Home automation
- Automated test equipment
... and many more
Block diagram of Rio I/O Processor Card for Raspberry PI
Power for the PI from any DC source
RIO includes a 3A DC/DC converter that may be connected to a 10V to 40V DC supply, and generates the 5V needed by the PI and the RIO cards.
21 I/O lines to Connect Just About Anything
RIO provides a total of 8 digital outputs rated up to 1A and 30V max, which may also be used as digital inputs.
The card includes 13 inputs, each of which can be configured as a digital input, 0-5V analog input with 12-bit resolution, or as a timer input. In the timer mode, the inputs can capture pulse width, frequency, quadrature encoder counts, or duty cycle. Most of the input pins can also be configured as PWM outputs for driving RC servos, or dimmable lights.
Serial Connectivity and CAN Networking
Two serial ports are present on the card. One is fully RS232 compliant with programmable baud rate up to 115200 bits/s for connection to motor controllers, scanners, PC or any other RS232 device. The second is RS485 compatible, enabling, among other things, DMX512 connectivity to light show equipement. Optionally, a 3rd serial port uses TTL levels for direct interface to non-buffered, non-inverted USARTs as these found on most microcontrollers, like the Arduino.
A CAN bus interface is also present on the Rio card for connecting to CAN-compatible device, on a low cost twisted pair network at speeds up to 1Mbit/s.
Optional Inertial Measurement Unit
RIO can be fitted with an optional ARHS module, including 3 axis accelerometer, 3 axis gyroscope and 3 axis magnetometer and a fusion algorithm for precise attitude and heading measure. With the AHRS installed, the PI+RIO can be used for application in unmanned mobile robot applications.
A Powerful MCU for Real-Time Processing of the I/O
RIO includes a 32-bit ARM microcontroller for processing and buffering the IO, and managing the communication with the processor on the PI module. The processor can be configured to perform, on its own, a long list of conversion, capture, filtering, or conditioning on the IO so that the PI processor is relieved of these functions.
Seamless Integration with Raspberry Linux
RIO comes with drivers and function library for configuring and accessing the I/O quickly and transparently.
Proposed IO Connector Pinout
RIO used an inexpensive and widely available 40 automotive-grade connector type MX34 made by JAE. Contacts are rated up to 3A and can be fitted on AWG22-24 wires. A connector housing with pins will be sent to backers along with the card. Pinout is subject to change.
As of April 24, 2013, we received the prototype PCB from the fab, assembled it, and tested the basic functionality:
- DCDC converter OK
- Digital Outputs OK
- Digital/Analog/Pulse inputs OK.
On the software side, we have already been able to test fast and transparent communication between the PI and RIO using a combination of the SPI and USART signals available on the PI header. A driver and library of function has been written and successfully tested.
May 30 - Fully tested Prototype: A Firmware will be written to to check all devices that are on the RIO card.
June 15 - PCB fixes and pre-production start:
Mistakes found on the prototype will be corrected and a first batch of boards will be manufactured. Preserial production quantity will be limited, in the unlikely (but possible) case that there may still be mistakes on the design. These units are the ones that will be sent to project backers.
July 15 - Pre-production shipping:
We will start shipping RIO to all backers who pledged $75 or more at that date
September 2013 - Volume Production: Scheduled for 30-60 days after Pre-production. The RIO card will be available for sale to the public at that time.
Ever Improving Software:
Software development will be done in parallel with the hardware development. Basic software functionality will be available at the time the prototype is released. Continuous improvement to the software will be made in terms of speed, sensors types support and features. Rio card firmware will be updatable in the field from the Raspberry PI, or from a PC.
Risks and challenges
At this stage of prototyping and verification, RIO is guaranteed to work. Firmware will be field updatable and any feature which may be buggy initially, will be corrected with easy to install firmware changes.Learn about accountability on Kickstarter
The exact range is still to be determined. The DCDC converter is rated 42V max. Below 10V, the 5V output will start to degrade. Practically, we expect most application to be powered with 12V or 24V sources. On the final product spec we will probably publish 10-40V.
The block diagram shows 3.3V coming from the DC/DC regulator, but I don't think that is the case. It comes from the RPi?
The power comes from the on-board DCDC converter. The converter produces a 5V output that goes to the PI, to the IO connector, and to the RIO circtuitry. The DCDC converter is rated 3A which is plenty to power the PI, the RIO and external sensors
There will be a 2-pin connector which we did not receive in time to mount on the board and make the video
The 40-pin connector looks like overkill, and forces contributors to buy a male connector. What about leaving it as headers, or including a male connector in the rewards?
Header pins a cheap but they are not convenient for the user. The MX34 connector very sturdy, easy to mount, has numbers on the plastic shell to make it easy to identify the pins. We will include a male connector and pins in the reward. We will try to publish the pinout on the project page soon.
We will be issuing a ready-to-use firmware that will make it very simple to configure an I/O pin, do some processing (like interfacing to a ping sensor), etc... This firmware will be continuously improving and we will be providing a method for updating it via the RS232 port, or from the PI.For users who want to write their own firmware on the two STM32 MCUs (the main MCU, and the MCU on the optional AHRS module), headers are provided for connecting to a debug module like the ST-Link.
Yes. The Linux part will be totally open source. At the moment, this software includes a daemon and a library of IO function. The daemon runs in the background and that "mirors" a block of RAM between the RIO and the PI. Any changes to this memory block from the PI gets copied into the RIO, and RIO then changes an output. Any input that gets captured, updates the RAM block in the RIO and this is then transfered transparently to the PI memory.
On the RIO side, we will open source the SPI miroring and we will provide example source code for configuring and activating I/O pins. STMicroelectronics provides a lot of examples for using the STM32 and its peripherals.
Are other RPi header pins available? Can you make them available? For example, it looks like the RIO/RPi won't support I2C
There is no plan for this but it is not too late to add this capability if it makes sense. The 40 pin I/O connector is fully used, so adding such signals would mean removing IOs, unless we add another header
You cannot drive a 220V/110V electric device directly. The outputs are "open collector" transistors, meaning that they will switch ground when active, and float when off. You will need to add a mechanical relay and use one of the 8 digital outputs to activate it. The relay coil will then be connected between the output and the 5V output on the I/O connector. Relays are very available and quite cheap. A side benefit of using relays is that you can have the relays near the 220V/110V device, and then just have a pair of thin, low voltage wires going to the RIO output.
Inputs cannot be connected to the 220V/110V either. They will accept a 0V to 5V signal (up to 15V max). To connect a switch or pushbutton, just connect one end to a digital input and the other end to the 5V out on the IO connector.
Support this project
- (30 days)