Custom arduino for project.

Bypass capacitors on ATMega need to be fixed, you want the 5V to go into the chip, but the .1uF will block it as shown.

ron_sutherland: Bypass capacitors on ATMega need to be fixed, you want the 5V to go into the chip, but the .1uF will block it as shown.

Im not quite following you on this one..

Does this help?

chronograph3_RDLN.pdf (34.5 KB)

Does this help?

Is this what you are talking about?

chronograph4.pdf (23.1 KB)



Cool, thanks for the help!
Here is the proposed final with a board layout. I routed a couple by hand then let the autoroute do the rest.
Only change I made was I added a switch for power, and swapped the pins on the battery connector cause I had them backwards.

I attached a jpg of the warnings I got that have to do with power…

chronograph5.pdf (23.3 KB)

chronographboard.pdf (55.2 KB)


The warnings don't look like a problem to me, but the unrouted signal (is it the ground? looks like it) is a problem. Those unrouted need to be connected. I sometimes use a plane on the top side as well, and name it (whatever the ground is) and then add a via and name it as ground also then copy that via around to connected islands until no more unrouted paths are seen. I'm probably not explaining the process very well, but you need to figure out how to connect those unrouted paths one way or another.

I understand what you mean… I made a polygon on the top and named it GND also… autoroute says it did it 100% but I see unrouted lines… looks like they are GND lines.

I didnt see the unrouted signals in the last one, since it said it 100% autorouted I assumed all would be done. This one has the same issue, so I am probably doing something wrong in eagle.

chronographBoard2.pdf (60.3 KB)

Run the ERC on your schematic, makes sure all signals are connected to pins. You got the list of warnings, so I guess you had that figured out.

Right click & "Name" the bottom layer polygon GND. Add a top layer polygon & name it GND as well. Often you can add some 20mil Vias and name them GND as well to connect up unconnected Gnds. Or you make a part a little, or move a trace a little.

I can tell it's not currently because none of the DIP pins have the look of a pin that is connected to Gnd. When you click Rats Nest (looks like a big X at the bottom left of the menu) it fills in the GND polygons and tells you how many unconnected signals there are.

I use Yellow for unrouted traces to make them easier to see as well. View:Layer Settings, click the layer name, then Change and select a color, click OK.

If you click View:Grid and set the units to MIL, then when you autoroute you can select 2 or 1 mil for different spacing control.

After you get everything connected, run Tools DRC (bottom right on the menu) to check for overlapping traces, traces too close, overlapping holes or vias, stuff too close to the edge of the board, etc. Stop mask errors I generally ignore if the outlines & names & placement are clear enough. You can right click & Smash a part, then right click the Reference Designators (IC1, R2, etc) and resize them, move them around, click Spin for more rotation options, etc.

I don't include Value on my silkscreen layers, that just gets too cluttered.

Who's making your boards? iteadstudio has a DRU file you can select to check the board layout meets their rules. They also have a CAM file you can select to make Gerbers to call out the placement markers, names, layers, etc. With the board view open, select CAM processor, File:Open:Open Job and browse to the itead CAM file, select it, then Process Job. It will create 13 files, zip those up and send to your PCB house. I use itead, no surprise there. If you use someone else, see if they have similar error checking and CAM files to use. Go to the Download tab & save the two files into the same Eagle folders so you can select them easily.

I was doing all that as you were posting it :wink: Im learning a lot! I had a really simple board made at itead a couple years ago and was planning on using them again.

I ran DRC with iteads dru file and it comes up with 2 errors, both having to do with the dimension of a piece of the micro USB port… see the image… I also manually routed all troubled traces, almost 50% of them, then let the autoroute do the rest and I dont see anymore unconnected traces.

This could work? :wink:

chronographBoard3.pdf (62.7 KB)

Add some more ground vias to fill more of the blank areas with Ground plane. Like below RN1. Make sure Rats Nest says "Nothing to do!" as sometimes a bit of unrouted trace can be hard to see.

It does :) I'll look at anywhere else to add vias, other wise I am going to send it over to itead :D

Ok, this is the final design (unless I broke it :wink: ).
I just repositioned some parts to make it easier to place the IR emitter and phototransistors. This also made it easier to position some of the caps and resistors.

I hand routed about 60% of it, then let the auto route do the rest.
Ratsnest reports nothing to do!
DRC with iteads dru file reports the same 2 errors from before with the clearance of the USB (its the way its built)
ERC only reports a couple small warnings that we went over with power and the such…

I think its ready!

chronographSchematicFinal.pdf (23.5 KB)

chronographBoardFinal.pdf (59.5 KB)

Got ahead of myself, realized I didnt have mounting holes, added those and changed the switch to a much nicer compact switch.

chronographBoardFinal2.pdf (60.4 KB)

HC-05, that's a Bluetooth, RF module, kind of part? The shape implies there might be an onboard chip antenna. Those usually require NO groundplane under the antenna. Check on that, and bring your polygons back from the right edge if needed. Both layers. The symbol is labeled 3.3V, you have it connected to 5V. Issue? Connect the remaining GND pins on the HC-05. CN1, if jumper installed and S1 is closed, connects 5V to Gnd. Perhaps Pin2 should connect to the other side of the cap C1? If powered from battery, is the voltage high enough to turn on the IR_emitter LEDs, especially when the battery drops from 4.2 down towards 3.7? You have plenty of unused IO pins - drive each IR LED from its own pin.

Yeah it is… I was wondering about that. I got rid of the ground planes and the board since its not really needed there.
Information I got from here

says it works fine up to 6v.
Connected the remaining GND pins (GND1, GND2) to GND
Changed the name of CN1, its a JST battery connector. I didnt notice but when I changed out the switch it looks like I deleted the connection from the battery + (pin1) to the VBAT on the MCP73831, restored that connection.
For the IR emitters, I used the information from the datasheet and a resistor calculator to get the value on the resistor, I told the resistor calculator I would be running on 4v.
I split the emitters to their own digital lines (i used a single line for simplicity, whats the benefit of 2?)
With them not in series, the resistor calculator tells me 100ohm resistors.
3.7 voltage source
Forward Current 20 mA
Forward Voltage 1.7 V
When the batter is fully charged, are the emitters in trouble of being over powered/burnt out?

also, what about using the HC-05 to program the arduino also? Just a thought :wink:

Since you mentioned I have many unused pins, I added JP1 which will have wires going to a button to make it possible to change modes between feet per second and rate of fire.

chronographRC2.pdf (24.5 KB)

chronographBoardRC2.pdf (65.4 KB)

says it works fine up to 6v.

Verify that the HC-05 is 5V tolerant on the data (rx/tx) pins! (you may need level conversion)

From what I have read, power supply & IO is 3.3V (Vcc 3.6V max). There are breakout boards available to bring the base module up to 5V supply, but you look as if you are using the 3.3V footprint/module?.

Best to double check first…maybe run the complete circuit at 3V3, which should help with battery operation etc.

If you want good range from the IR LED, you should add in a transistor driver or similar (easy to check on a breadboard).


  • I would breadboard this or at least test major parts of the circuit first before getting boards made.
  • As you are not using a crystal, read up on clock calibration/tuning (OSCCAL), may become an issue for sending IR signals, depending on how well the internal oscillator is factory calibrated.
  • …note how you can put 2 LEDs in series, whichwill also help with battery operation.

Better safe than sorry. I added a 3.3v regulator and the necessary caps and a diode. I also adjusted the resistor values for the LEDs for working at 3.3v.

The IR emitters are in an enclosed area about 1 inch apart. They worked fine in the enclosure I test printed, without the tube surrounding them which will isolate them even more. (see attached image)

I did breadboard the original main circuit with the 7 segment bubble display and the ir emitters and phototransistors. Everything worked great there. (see attached image)

Again, better safe than sorry, I added the crystal back in, just a 8mhz one with the two caps. Does this mean I remove the caps from avcc and vcc?

chronograph33RC3.pdf (42.6 KB)

chronograph33BoardRC3.pdf (69.8 KB)

Do not delete the caps on VCC/AVCC. Select the correct board type when you bootload it - I'd go with Promini, 3.3V/8MHz. I don't see a regulator. Is it located off board?

IR LEDs - do the math: (4.2V - (Vf of LED))/resistor = current in A. Usually >20mA, parts will run a little hotter, shortens their life. Check the spec sheet on yours. If you're adjusted for 3.3V, then not a problem anymore.

I also adjusted the resistor values for the LEDs for working at 3.3v.

...and the resistors for the bubble display??

Tha Vcc cap is always required, the AVcc cap is required if you are using the ADC. (I would leave it in)

I would add in one (or maybe 2) overall power decoupling of 10uF, in case your logic turns on all the display segments & IR LEDs at the same time (surge)

The routing from R2 to the IR LED seems to go all around the houses(?), see if you can find a shorter route manually.

The values for the xtal caps dont match between the schematic and layout (22pF is correct). Maybe there is a bug in your workflow, which should be fixed before you manufacture.

Finally, I would add in any spare IO pins to unpopulated pads or headers in case you want to add some extra functionality in later.