05 August 2013

Custom Arduino Shield for Android DRO Project

Here's a PCB layout for an Arduino shield customized for the iGaging Arduino interface Yuriy designed for his Android DRO project:


It's (only) readable with software from ExpressPCB


Android DRO Project at www.yuriystoys.com

I've been following the progress of the Android DRO project at the Yuriy's Toys blog for a while now. I really like the concept Yuriy has created and the GUI interface is a thing of beauty(to me anyway).

He has kindly provided the source and plenty of how-to instructions for everything. He's even got code for two different embedded controller boards to run the scales(Arduino and TI MSP430 Launchpad). There are posts about the protocol used by the scales, pointers to help with stability of the wiring and signals, etc.

Yuriy's Arduino build used a generic Arduino shield prototyping PCB. I decided to layout a custom PCB primarily to allow mounting USB jacks for mating to new (and better shielded) USB cables to each scale. Initially I was going to use my old HP7475 plotter and my etch resist pen plot method, but in the end I opted to just use ExpressPCB . Their software is about as easy to use as Visio(probably easier for non Visio users :) ) and I was familiar with it from other projects.

I made a few mistakes as usual, .100 Headers holes diameter too tight, USB pins off position, etc. but it still went together as planned. I've corrected the errors I know of in the version posted above.

PCB Layout Software
The software to read my layout file can be downloaded here. You can easily customize it further or fix more of my mistakes :) The ExpressPCB software is free, but you can't export to any other format, which means you have to order from them.

Unfortunately only 1 shield PCB fits on their preset board size for the miniboard service. My layout has a separate circuit with another MAX232 in it beside the shield layout. You can delete that other circuit as it has nothing to do with the Arduino shield.

It's $51 for their Mini-Board service (3 boards 3.8" x 2.5") and you have your boards in a couple days, plus shipping. It's not really going to save you money over prototyping shields unless you organize some sort of group buy using one of their other ordering options.

TX/RX Jumpers
I was going to remove the TX/RX jumper pins from the version posted but decided to just leave them in and bypass them. This lets you use the board as is, or you can cut two traces and install jumpers if you want. The silkscreen layer in yellow(which does not print on the Mini-Board service) shows where the jumpers would go for default normal operation, and you can see I've drawn traces there now so the jumpers aren't necessary.

I originally put them in because I hate ordering a board and finding out that I got TX/RX backwards, or at some point wanting to switch it and having to hack things up. I also have plenty of .100" double-row headers and jumper blocks on hand so it made perfect sense (to me) to make TX/RX swappable with jumpers.

RS232 Interface 
At some point I decided to put in a MAX232 and convert the TX/RX feeding the Bluetooth module to regular RS232 data on a DB-9. This let me test the final product with just Hyperterm/picocom to watch the output.

I also had a USB to Serial adapter working with a Nexus 7 using a OTG cable and I mistakenly believed that Bluetooth in Android presented some sort of "/dev/ttySX" device and switching the GUI to use /dev/ttyUSB0 would be a simple change. After looking into it I realize that Bluetooth comms is sort of "built-in" in Android and trying to use /dev/ttyUSB0 is definitely not "built-in".

USB Jacks
 The PCB layout is designed for a FCI 73725-1110BLF - USB Type A Female/Receptacle
I ordered them from Mouser here along with these USB Cables to replace the iGaging USB "strings" (calling them cables is a stretch).

The cables will plug into the iGaging scale with some shaving of the connector body using a razor knife. Also the hole in the scale's plastic case needs to be enlarged for the larger diameter of the new cables.

Prepped for Bluetooth Module
 The signals required for connecting the Bluetooth module are brought out to a .100" header row but I never actually hooked up a Bluetooth module. No guarantees on Bluetooth wiring not having mistakes, please check the layout before you order or copy to a new design.

I envisioned just putting the Bluetooth module down with some foam tape or hot glue and some sort of insulator beneath it.