The ISA Board is an adapter board allowing developers to use Arduino style shields with the IOIO. It is a consumer spinoff of the Cylon HAB Dock Board. The idea is to connect a IOIO to a standard Arduino shield by plugging one into each side. The ISA board does not have the connections for an altimeter and TNC that the Cylon HAB Board has.
The Website ShieldList.org is the best consolidated source for Arduino Shield information. My Compatibility List is a starting point to verify if a shield should work with the IOIO adapter. Keep in mind, that I have verified the shields on the list for pin compatability only. Some shields may not work due to USB latency issues inherent in the IOIO design. Also, many shields probably aren't very useful with a IOIO, so those are going to be the last to be checked.
The Vin Bus on the board takes power from either the screw terminals or the JST connector. Connect 5-15 VDC to either one. To send this power to the attached shield, attach a shunt to the jumper marked Vin.
So you bought a kit and need to do some serious soldering. Learn from my mistakes and follow The ISD Assembly Guide.
This is important- There are two types of IOIO's out there the original IOIO and the IOIO-OTG. They have slight, but important differences in the pin configuration.
Mapping Pins from the IOIO to the Shield Connector must take 3 considerations into account:
As much as possible I would like to map pins 1-1 so Arduino 13 goes to IOIO 13, but it's more important to match function. Unfortunately, the pin mapping is a work in progress as I flesh out problems. Here are the pin mappings for the various ISDs:
Download the ISA Pinout Class and add it to your project so you don't have to worry about looking it up.
I want to use a power connector that is universally available, rigid, and polarized. The current front-runner is a polarized Molex connector.
Common LiPo batteries can overheat if discharged too much. Therefore, the ability to monitor Vin is necessary. Vin can range from 5V-15V, but the IOIO can only read from 0-3.3V. Version 1 will implement a simple voltage divider to scale the 15V max down to 3.3V. Future boards may incorporate a scale/shift to translate 5-15V to 0-3.3V
It's great to have scaling for A/D's and pull-ups on the i2c lines, but sometimes you don't need it, want it, or it would get in the way. Rather than have users scratch traces or remove components, I use DIP switches to cut out those functions if needed.
The Arduino has 5V A/D converters, thus any shield designed for the Arduino should have analog signals that take advantage of that entire range. The IOIO A/D Converters require a 3.3V signal, so scaling is provided via 5.1k and 10k resistors. If you develop your own shield and you are using 3.3V signals, the DIP switches can be used to route any signal on the Analog Pins directly to the IOIO.
Screw Terminals break out IOIO Pins 20-31. 10k Pull-Up resistors are provided on DA2 and CL2 for the i2c bus. These can be cut out with the lower two DIP switches.
The IOIO has 3 i2c busses.
Description | Digikey Part Number | Quantity |
---|---|---|
Shunt | A26228-ND | 5 |
10k Resistors | P10KGTR-ND | 16 |
3 Pin Male Headers Row of 12 | S1211E-12-ND | |
21 pin Female Header | S7054-ND | 2 |
11 Pin Female Header | S7044-ND | 1 |
4 Pin Female Header | S7037-ND | 1 |
2 Pin Female Header | S7035-ND | 1 |
2 Position Dip | CT2192LPST-ND | 1 |
6 Position Dip | CT2196LPST-ND | 1 |
15 Position Screw Terminal | 277-1732-ND | 1 |
13 Pin Female Header | S7046-ND | 1 |
8 Pin Female Header | S7041-ND | 2 |
JST Connector | 455-1749-1-ND | 1 |
5.4k | P5.36KHTR-ND | 1 |
1k SMD Resistor | P1.0KGTR-ND | 6 |
1.5k Resistor Array (7) | 4608X-1-152LF-ND | 1 |