ArduinoBoy Board

I am attempting to make a PC board for a device called an ArduinoBoy. The resulting Eagle CAD files will be released under the same open source license as the original ArduinoBoy project. However, I'm having a little trouble with the LEDs and their matching resistors. http://www.flickr.com/photos/35071157@N04/3759277958/ I want to make the board as small as possible to reduce the cost of each board. I want to keep the resistors on the back side so that hotplate reflow soldering can be employed to solder all the surface mount components at once. I also want to be able to keep all the printed information (IC names and values) visible. Is there a function in Eagle CAD that allows you to move an IC's name and value around it? How would you lay out the resistors and LEDs? Will bad things happen if I pass any traces below the crystal? Do I really need a reset button connected to pin 1 of the 168? Also, anyone have any Eagle CAD libraries that include holes for PCB standoffs (other than the Sparkfun one; I can't use that one because I plan on making and selling a few ArduinoBoys, and the Sparkfun library cannot be used for commercial applications according to its license)?

Schematic and latest board available here.

Um can you explain the arduinoboy more. What does it do. Thanks!!!! :o ;D

Well, you 've got a lot of questions there, so I’ll answer the easiest one…

Use the “smash” tool to separate the component package from the names and values. Then you can move the name and value around separately. In the Eagle IDE Baord layout view it’s button is 2 above the “Route” button (which I hope you know) - or just start it from the command line.

Thanks trialex! That did the trick. http://www.flickr.com/photos/35071157@N04/3763813019/

@kellykel: the ArduinoBoy is a device that allows one to pass MIDI information from a MIDI instrument or device to a GameBoy running a special game cartridge program. It turns the GameBoy into a fully-controllable musical instrument. It was developed by Trash80, a chiptune composer, and released via Google Code (the link in the first post) under the GNU General Public Licence v2.

EDIT: new download here. All other questions in my first post still stand.

[1] You are not that constrained for space, so yes, I would avoid putting traces underneath the cyrstal, BUT only on the component side, it's OK to cut the corner on the bottom side. If you did try to do it, I think you would get an error if you were to run the DRC bot, because the crystal has a defined "keep out" area - you can see it's the green lightly hatched area.

[2] You only need a reset button if you want to be able to, well, reset it! If you are happy to "reset" by using another method, such as removing and then re-applying power, then that's OK. I can't see a switch on your board, so I assume it is being powered by the 1x6 pin header row. You'll have to plug/unplug that, or use whateve is plugged in at the other end to reset it. It does look like you have a pull-up resistor there (R9) which is good, but it's hard to tell exactly what's going on without a schematic too.

[3] What do you mean by "standoffs" - do you literally mean standoffs or do you really mean pin headers (i.e. the 1x6 row on the left of your board). There is no "part" per se for true standoffs, you would just put a drill hole on your board. if you mean the pin headers, they are built into Eagle in the "pinhead" library. If you mean something else, you might have to provide a link (maybe to the sparkfun product page).

Some of your traces look (unnecessarily) thin - have you checked to see if they will match the design rules of the board manufacturer you are planning on using?

[1] You are not that constrained for space, so yes, I would avoid putting traces underneath the cyrstal, BUT only on the component side, it's OK to cut the corner on the bottom side. If you did try to do it, I think you would get an error if you were to run the DRC bot, because the crystal has a defined "keep out" area - you can see it's the green lightly hatched area.

I think I'll build a prototype first just to see how it looks.

[2] You only need a reset button if you want to be able to, well, reset it! If you are happy to "reset" by using another method, such as removing and then re-applying power, then that's OK. I can't see a switch on your board, so I assume it is being powered by the 1x6 pin header row. You'll have to plug/unplug that, or use whateve is plugged in at the other end to reset it. It does look like you have a pull-up resistor there (R9) which is good, but it's hard to tell exactly what's going on without a schematic too.

It's actually being powered by the 6 position terminal block at the top of the board. That terminal block is used to connect the board to a GameBoy link cable that has been cut in half. The circuit actually gets its 5 volts from the GameBoy it is connected to. The 6 pin header is used for programming the device with a cable like this. Like I said, I want to sell a few of these, but I still want the user to be able to make modifications as he or she sees fit. That is why everything is getting labeled with values and names and why it has a programming header in the first place.

[3] What do you mean by "standoffs" - do you literally mean standoffs or do you really mean pin headers (i.e. the 1x6 row on the left of your board). There is no "part" per se for true standoffs, you would just put a drill hole on your board. if you mean the pin headers, they are built into Eagle in the "pinhead" library. If you mean something else, you might have to provide a link (maybe to the sparkfun product page).

Yes, I mean board standoffs like this one (but taller for my application). I guess I'll just use Eagle's drill function and make absolutely sure the screw head is given a wide enough berth. Sparkfun has a standoff Eagle part with forbidden zones marked out so you don't accidentally place your traces under a screw head. However, said library cannot be used for commercial applications like mine.

Some of your traces look (unnecessarily) thin - have you checked to see if they will match the design rules of the board manufacturer you are planning on using?

My current traces are set at 0.01 inches: Eagle's default auto-trace width (I auto-traced the board, then ripped up a good chunk of the traces to lay them back down myself). BatchPCB, the guys I plan to use to build my prototype(s) and perhaps my first 10 or 20 production boards allow for traces as small as 0.2 millimeters, or about 0.0079 inches.

Once again, thanks for all your help. I'm nearly ready to send out for my first prototype and all the parts and tools needed to assemble it.

As for the schematic, it is included in the download in my previous post, but if you don't feel like downloading it, here it is: http://www.flickr.com/photos/35071157@N04/3765373985/ Header DATA/BTN/GND/+5V: 1 is +5V, 2 is Ground, 3 is pin D3 on the Arduino (pin 5 on the 168) and will be connected to a off-(on) button (the other end of the button will be connected to the Ground terminal), and 4, 5, and 6 are pins A0, A1, and A2 on the Arduino (pins 23, 24, and 25 on the 168) and will be used to communicate with the GameBoy. Header MIDI: IN/OUT: 1 is connected to TX on the Arduino (pin 2 on the 168) and will be used for MIDI Out, while 2 and 3 are connected to the opto-isolator and are used for MIDI In. The MIDI Out socket also needs +5 volts through a 220 ohm resistor and Ground. It will get both from the DATA/BTN/GND/+5V header (the necessary resistor will be soldered into the wire connecting the socket to +5 volts).