I'm a new Arduiner, and did myself my first serial single sided board last month, and found some problems making the PCB. So I decided to try developing a new PCB, easier to make, easier to solder. I hope this can help people who doesn't want to spend too much on arduino, making themselves a single sided board with less problems.
This new project has less jumpers on board (3 instead of 6 - there is a fourth, inside the switch), no wires between vias, larger wire width (0.6 mm.), good spacement bettween wires (0.67 mm.), only 3 (instead of 4) wires under atmega, and uses the same connectors and the relative position of in/out/power is the same. The ICSP connector is the same 2x3 pinhead, compatible with other arduino boards.
The only change in the schematics is the connection of the reset switch, but the electrical funcionality has no changes.
All diodes, capacitors and transistors have the same orientation, decreasing the risk of mistakes on mounting.
I checked the drawings, and I'll make a protoype this week. I'll publish the eagle/pdf files later...
Comments and sugestions are welcome and expected.
I recommend keeping the placement of the pin headers, including the ICSP connector in the same original place because the shields make use of them. The reset switch placement is not important, from the shields perspective.
None of the single-sided boards have the ICSP connector in a shield-compatible place. :-(
Nice job on reducing the number of jumpers! I'm a little worried that your bypass caps are all lumped in one place instead of being near the AVR power pins that they're bypassing.
Very elegant looking design, especially the jumpers. About the ICSP issue, how hard would it be to instead add the reset pin header on the power header (as in the Diecimila) - that would at least make it compatible with the shields that use that for the reset (instead of the ICSP header).
Hi. Thanks for coments and discussion.
As I told you, I'm really new arduiner. That's the reason for the mistakes done.
When I decided to try to develope this PCB, I saw Westfw project (with ICSP 6x1 pinhead), and the others Arduino PCB (USB, Diecimilia, BT) and thought ICSP pin header position wasn't important. That's because the Serial Single Sided (SSS) PCB ICSP has a different position comparing with others (not only the relative position like all the pin headers on SSS, that need to be adjusted by almost 300 mils on Y axis - but an absolute difference in position). That's why I changed only the ICSP position.
But now, I'll work to try making it compatible (but is very hard).
My doubts are:
does the actual SSS Board ICSP position match any shield board?
I never saw or used a Shield Board, so what is the use of ICSP on shields? I can see a 3x2 pin header on pics, and I suppose it matches Arduinos (except SSS). Does it transfer the functions (the signals) of to reset and to bootload to the shield? Some other use?
About what Mellis said, I saw the diecimilia board (eagle file only) and understood your sugestion. But only diecimilia has this reset on power pin head?
Is it possible to make reset compatible with Shields using a 1x1 pinhead with the reset signal on Arduino at the position of the reset on a 3x2 pinheader? I meant, one reset 1x1 pinheader on 2510, 1000 on board position?
And Westfw, I understand your coment, and tested a new design for solve it, but the 9v. "walkthrough" the board. And the design I made keeps 9v. in a smaller part of board. I was worried about this when I put the caps on board. I don't think the caps actual position could cause a big problem.
The current SSS board isn't compatible with any shields (as far as I know). The ICSP header is used by some shields to connect to the reset line (e.g. to provide a reset button on the shield if it covers up the reset button on the board). Only the Diecimila has the reset line on the power pin header, but compatibility with the Diecimila would be better than nothing. Alternatively, it would probably be fine to provide one reset pin in the location of the reset pin of the ICSP header on the other boards.
Thanks for help!
I made the changes, and I hope them please you all. It was easier than I thought, because I worked hard last 3 weeks, and the board connections are in my head.
All pinheaders (except ICSP) are on the same place of SSS, and the ICSP pinheader is now at [2560, 1100] position, making it compatible (I hope) with all other arduino boards, except, of course, the actual SSS.
The power pinhead has more 2 pins, like diecimilia: Reset and another (which is used for 3,3v in diecimilia). 3,3v is not used, since SSS has only 5v. This makes it compatible with Diecimilia reset pin, right Mellis? I'm asking because I really don't know.
There are now 4 jumpers (more than 3, but still less than 6). All 4 are GND or 5v.
The wires have 0.6 millimeters, and spacing is 0.67 millimeters.
No wires between pads.
Only 3 wires under Atmega.
Larger pads (comparing to actual SSS)
Components still have the same orientation (diodes, capacitors and transistors), to reduce errors on mounting.
Schematic changes are: Switch connections (no eletrical modification); changed power pinhead from 4 to 6 pin (like diecimilia); power led 3 to 5mm.
The board has the length increased in 4 millimeters, and the IC 2 (7805) is inverted now, and can be layed down to the opposite side of actual SSS board.
I'll wait for comments and sugestions before making a prototype and publishing documentation, since I could make some mistakes again. :P
I hope this would become a new standard for the Serial Single Sided Arduino.
Looks good! I'm impressed that you got the ICSP header in place. It certainly seems like an improvement over the SSS design we have now. The reset pin certainly looks like it should be compatible with the one on the Diecimila.
I'm curious to hear westfw's comments, since he also designed a new serial board. AFAICT, the main difference is that his include support for an FTDI USB-to-TTL cable, but perhaps there's more that I don't notice (being a software, not a hardware guy).
I really worked hard on it. So it is a satisfaction to hear that from someone from the Arduino Core.
I'm thinking on to put an auto reset feature, like diecimilia, that will be very easy now. I'm thinking about it because I think this PCB project was created to help people that can't buy a mounted Arduino, and don't have experience on electronics and soldering. And it is supposed that they have older and slower computers, like me. And another problem I found is when I try to upload a sketch, and the arduino reset button must be pressed not immediately before uploading, but 15 or 20 seconds before uploading, because the computer's processor is too slow, or with low memory. So this feature could help this kind of user too.
I'm curious about the FTDI USB to TTL feature on Westfw project too, since he didn't say if he tested it yet.
I'll post more later.
I Did more 2 changes on project. Almost ready to do the prototype. ::)
First: added the auto reset feature, but with a jumper (J5) that enable this function, to avoid reseting arduino when not desired (read many messages on forum complaining about it). I tested in my original SSS (atmega8) with 0007 software version and it is uploading sketches normally with an auto reset improvised.
Second: put a jumper (J13) in parallel to R3 (pin 13 current limiter resistor) to avoid problems on using SPI feature or TTL level error on pin 13 (read many about this too). Enabling this function, pin 13 becomes a normal digital pin.
(I did other version with a built-in led, resistor and jumper (to disable) in series, from pin13 to GND. And other with resistor and one pinhead 1x2 from pin13 to GND (pinhead is for the led - creating a secondary 'pin 13'+GND). Both works, but I think the first solution is the best, for many reasons - including simplicity and standard)
The result is: if you don't insert any of this jumpers the board remains identical (or better - with ICSP fully compatible and 2nd reset pin) to the original SSS, that means no changing documentation, just adding doc about this two new features. I think this is very important too, beyond all other changes presented here.
If anyone have something to comment or to suggest, we're still open... ;)
P.S.: the component side has more information to print/silk too, like ports names, tx rx and I2C.
It keeps getting better!
The built-in LED on pin 13 is very useful, especially for people who have just made their own board and want to see if it works. Does it complicate things that much to put a resistor and LED on pin 13 in parallel to the connection to the pin header (as on the Diecimila - schematic)?
The reset jumper enables the automatic reset, right? I'm confused by the "Auto R. Off".
It's look really good, though. Have you tried building one yet? Is anyone interested in trying it?
I think you can make your pads a bit bigger via DRC, which is generally useful for hand drilling and hand soldering. You might also consider changing pad shapes in the DRC to make the oval pads shorter in their "long" direction; I found that useful in my SS version...
About the Auto Reset feature, I was testing you to know if anybody is really loking at project. lol. Just kiding. I really made a mistake with the jumper name. The correct is Auto Reset enable. :P
About the Led on Pin 13, as I told, I made some alternatives, and not sure about which one is the best.
Could anybody say if the L led onboard on diecimilia is causing some kind of problem? Specially with SPI connections or TTL wrong levels on pin13.
If there is no problem, then it is possible to reproduce this feature on my PCB project.
Otherwise, here are 2 alternatives:
1-Only disable L led jumper;
2-Alternate L led/pin13 jumper.
I'm trying to solve another two problem: put RX TX leds onboard (saw many solutions here and trying to choose or develope a new one), and to keep level on digital pin0 (RX) on 0v. while not beeing used, without creating interference on other parts of circuitry (saw many solutions here two, like puting Resistor to the ground).
And trying to find time doing all and work. :)
I haven't heard anyone complain about the LED on pin 13 on the Diecimila (whereas we had a lot of complaints about SPI on the NG, which had a different pin 13 LED circuit). So it's probably fine, but it would be good to have a more conclusive answer.
So, here we go.
Everything remains the same:
- New ICSP position, compatible with all other Arduino boards (full compatibility with shields now);
- No wires between pads;
- Larger wires;
- Auto Reset feature, with jumper to disable when not desired;
- Extra Reset pin on power pinhead, diecimlia compatible;
- Same oriented components (diodes, capacitors, transistors, leds!);
- Four jumpers only;
- More info to print/silk on board component side(Ports, RX/TX, I2C.
- C8 is now bipolar (read this http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1177923417;
- Onboard Led on pin13 (diecimilia circuitry compatible);
- Onboard RX TX leds with enable/disable jumper (to avoid leds blinking while no rx/tx data, no serial connection, but pin0/pin1 output/input signals);
- Onboard pin0 10k resistor to GND, with jumper to enable disable (to avoid floating voltage on RX pin problem);
- Almost no more space to put components or wire on same sized SSS board (but still accepting sugestions and comments). ;)
Obs.: the wires are draft only.
I'd love to try it out if you are looking for someone to make one. Need a project for christmas holidays...
And yes, I need people who wants to build it. I'll make a prototype, but the more beta testers we have, more information to get corrections, if nedeed. I need to finish the eagle files, so I'll publish it here, I hope before Christmas!
I finished the first prototype board now:
I did it with termal transfer (laser printer). I think the project is approved on etching question (one of the reasons the project exists).
Awesome. Looks like it's time to solder the component and try it out!
I made a mistake on board (forgot to isolate serial connector support, put serial pin 4 short circuit with gnd throw serial connector screw, and it didn't work. But I found the error, and it is working!
Since I conclude soldering it right now, I didn't tested it fully, but rx/tx leds feature, auto reset, reset button, uploading sketch (with auto reset and manual reset) all working well.
Uploaded blink led example, and onboard pin13 led blinks normally.
I did a termal transfer on component side, and helped to find component's place while soldering.
And to solder the board doesn't seem to be a problem, as well as etching, even for beginners.
Power led seems too bright. I'll measure current and try to change its resistor.