The ISD is a docking station for your IOIO and IOIO-OTG. It could also be described as an adapter for Arduino Style Shields. You plug your IOIO into one side, and an Arduino Style Shield into the other, and start coding. It's a hard connection that doesn't leave any question whether or not there's any loose wires. Troubleshooting is as easy as swapping out components. The board scales levels when needed, provides power busses, and routes i2c where it's needed.
Check out The ISD Wiki or The Nice Details below for more info.
Printed circuit boards and components are expensive in small quantities. Larger orders are the only way to make a product cost effective. I've made everything available open source, so if you want, you can download the Gerber files and have a board printed on your own. You can check out the parts list on DigiKey and order them yourself. There are no secrets here, it's a simple concept, however, with you help and support, I believe I can make this board very efficiently and at a price that everyone will like.
The parts are still the expensive area of this project. I've offered rewards for people who don't need all the advanced features I've included. Really, some people may just need some headers and that's it. I've tried to break it up as much as possible so everyone can get what they need, and not pay for anything extra.
This project started as a simple dock board to allow me to control a relay shield with my IOIO. I made a simple circuit, had it printed through BatchPBC, and soldered it together. I realized that it would be very useful in many projects if it could take advantage of other shields. I printed out the pinouts of both the IOIO and Arduino and got to work matching. A little EE and a lot of CAD later, I had a working prototype.
Once funding is achieved, one more prototype will be tested before the first big production run. I am using a PCB fabrication house called Gold Phoenix. It is the same house that SparkFun uses with it's popular BatchPCB service. For the prototypes, I use BatchPCB to keep costs reasonable.
The first run has to be over 100 units to be cost effective. The components will be sourced from DigiKey and the parts list openly available on the Project Wiki.
For the first run, I will personally assemble each board. The first prototype took me 45 minutes to solder. The second time around only took 15 minutes. For the next prototype, I am going to use larger surface mount components which should speed up production time. The goal for the production run is 10 minutes per board. That's roughly 18 hours of assembly. If there's more interest, I might expand the rewards and hire a friend to help with the soldering.
Each assembled board will be tested for functionality with an actual IOIO. I haven't made a bad solder joint in a long time, but mistakes happen. That's why every board is tested prior to shipment.
The Nice Details
I spent a lot of time developing the pin mapping between the Arduino side and the IOIO side to best make use of the IOIO's numerous pins. You can check out the pinout on the project's wiki. To the best of my ability, I matched function to function.
The Arduino has 5v A/D converters, while the IOIO has 3.3V converters. To deal with this, I included a scaling circuit that scales all of the A/D pins down to 3.3V. There's also a bank of DIP switches that cutout this feature if you don't need it.
There's a row of screw terminals to easily and securely connect wires to the board. I'm also considering adding screw terminals to power the board like in the specialty board also available.
You can pass voltage to the shield selectively. Using jumpers, you can pass Vin, 5V, and 3.3V depending on what you need. I also routed Vin through a scale and limiting circuit to measure battery voltage, if that's what you're using.
i2c busses are routed to the appropriate pins on the Arduino side, but are selectable due to the multi-function nature of the Arduino A/D pins. Also, the i2c bus that goes to the screw terminals has optional pull-up resistors. If you need them, just flip the DIP switches.
The prototype PCB shown assembled is one I modified slightly for use in a High Altitude Balloon. Instead of an extra 6 screw terminals, I routed extra pins to headers to be used for a Parallax Altimeter. If anyone's interested, I've posted a separate reward for the specialized version of the board.
Risks and challenges
I consider risks to be factors which I can not completely control. Here's where I see problems arising:
Component Sourcing- I am buying all of the components from DigiKey. They are a fairly well know entity, yet I may be paying too much. Through the course of the project, I will strive to minimize costs, and that may mean going outside Digikey. I've priced everything so that I can fulfill rewards at prices I know I can get right now. However, sometimes components get depreciated and I'll have to find new ones. Hopefully that won't happen with anything critical.
PCB Manufacturing- I know that Gold Phoenix turns out quality PCB's, because I've used them indirectly through BatchPCB, however, I haven't placed a medium run order with them personally. I have a quote for 100-300 boards and I like what they offer, but there's always a risk doing business with someone for the first time. Luckily, they're not the only one out there. There are plenty of Fab houses that I can do business with. The snag here would be in production time. If they fall through for whatever reason, it will add months onto the first run while I find another source. This factor poses the largest potential for delay.
Design- There are so many shields out there that "hack" different functions of the Arduino, there are bound to be some that aren't compatible with a IOIO. I strive to be the best "messenger" I can, but this board is just a middle man. I've tried, but I can't guarantee it will work with every shield out there.
I'm sure there will be some unforeseen challenges that arise in completing this project. I'm an Engineer and a former Naval Officer...challenges are what we do.
Contribute $10 and get a board in the mail. Add your own components to fit your needs or use it as a coaster. Best value if you're an electronics wiz and want to customize or a huge nerd who needs cool coasters.