Go Down

Topic: Another New PCB for Arduino Serial Single Sided (Read 51987 times) previous topic - next topic


Sorry for being so dense, but I'm still a bit confused.  

Is the purpose of the jumper to allow you to use pin 0 as a normal digital i/o when you don't need to do any serial communication?  Or is to prevent confusing the bootloader or code with random incoming data (e.g. when there's no serial cable connected)?  Or both?  Something else?


Dec 30, 2007, 04:44 pm Last Edit: Dec 30, 2007, 08:17 pm by adilson Reason: 1
It's ok.

I changed the text on jumper again to make it more comprehensible.

Communications from/to computer:
The jumper in "Serial Enable" position makes the Arduino works like the SSS version 2. No changes.

Not using computer communication and using or not Pin0 and Pin1 as output/input:
When in "Pin0/1 GND REF" position, it detachs +5v source of Serial Circuitry (disabling Serial Communications - even with attached cable), and changes it from +5v to GND. This change (from +5v to GND) makes Rx pin (pin0) referenced to GND through existing resistors R4+R7 (11k).

This is an onboard Rx pin pull down resistor, to prevent Atmega the floating Rx pin, that you know, cause Arduino to don't start running uploaded sketch, thinking the noise on Rx pin is incoming data.
So the original reason of the jumper is to make Pin0 not floating. It is the "attach 10k resistor to pin0" solution, now useful for SSS too (like I said, this solution was not effective before since there is a Serial Circuitry attaches to pin0 on version 2).

The Tx pin has it serial circuitry disconnected from +5v source too, and changed to GND too. So Tx pin has  a reference to GND too, through R9 and R6 (20k). Not necessary, but already there.

There is a third option, only if necessary: to take off the jumper, not connecting it. This makes the Arduino Pin0 and Pin1 floating (just in rare case the onboard pull down resistors causing some problem while Pins are set to Output). Since I didn't test this feature, I don't know if it will be necessary.

This is the for the first question you've done.

The other:
Or is to prevent confusing the bootloader or code with random incoming data (e.g. when there's no serial cable connected)?

I didn't see any complain about this, and it is first time I hear it. Bootloader uses the ICSP header, and it is disconnected from serial rx/tx lines. The solution doesn't affect the Bootloader.

I think it is hard to explain, but still very useful and very easy to use.



Can you squeeze in the center ground pin for a three-pin ceramic resonator where the crystal is?



Thanks for suggestion.

I saw your single sided project and understand what you're asking.
And I saw all other projects from the Arduino team. All of them uses crystal instead of ceramic resonator.
It's a question of choice.

Crystal is more accurate, it costs a litlle more (or the same, deppending on store), it needs load caps (not expensive, but need space on pcb).
And since it is technically a better solution, and the pcb space is not a problem (removing the crystal and caps won't make pcb smaller), I choose the crystal.

I know the pcb can be made for both solutions in one, but for a standard project i think it will confuse people, since it's supposed to be made by laypersons too.

But if you downloaded the eagle files, you can make yourself this changes in your board if you want, respecting the creative commons license.


I did one more change on S3V3 board.
I put a low pass filter on AVcc, as described on Atmega datasheet, and on forum here http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1180835996

This feature can reduce the noise on analog pins, and on ADC, since it can be connected internally to the Aref.

For those who already started doing the Beta version, I apologize for being late. The original version (Revision 0) will work fine, better than version 2. Like I said, this improvement will only reduce the noise on analog pins.

I'll post documentation soon (I hope today).


Jan 08, 2008, 01:54 am Last Edit: Jan 08, 2008, 11:07 pm by adilson Reason: 1
I removed the post with links to the revision 0 to don't make confusion.

So, repeating:
Revision 0:
I did one more change. The board was full compatible with shields, but the jumpers (auto reset enable and serial enable) where making compatibility difficult (when to remove or changing them where necessary). So I changed jumpers to right angle type. The jumpers now are removed by side, not top.

The Serial enable feature is working fine. And the onboard pull down resistors too. Now I think they're extremely necessary.

Revision 1:
I put a low pass filter on AVcc, as described on Atmega datasheet, and on forum here http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1180835996

This feature can reduce the noise on analog pins, and on ADC, since it can be connected internally to the Aref.

I renamed some components to make it easier on finding them on board. So the Part list changed too.

And the Preliminary Beta Arduino S3V3rino Revision 1 files are:

(one A4 format sheet with 4 images of bottom and 4 images of top view of board - ready laser printer or xerox, and thermal transfer)

(.pdf file with BOM, Part list, mounting detail image, topo and bottom images and schematics)

(the .brd and .sch eagle files)

(two .png files, for top and for bottom)

The only thing I ask is to keep us informed about any malfunction or trouble. Tell us if is it working well too. Remember: it is only a preliminary beta version. I hope it works well, like with me (note that I couldn't make the Bootload on Arduino version 2 or beta3 work well with Arduino 0010 software version, only with 0007, so I ask you to try this version (0007) too, while testing it. I think it's a software problem. I am already talking to Mellis about it. To upload sketches with 0010 is ok.

Good luck.


I forgot to say:
now there are only 3 wire bridges, instead of 4.

I think it's the limit... ;)


Jan 14, 2008, 05:29 am Last Edit: Jan 14, 2008, 05:41 am by adilson Reason: 1
I did a prototype of Rev01:

You can see more images here:
There is a comparison between v2 and v3 in pics, since there's no pics of version2 on arduino homepage. I did it because many people never saw a version2; This will bring them to reality  :)

I'm receiving messages of people that did a prototype too, like user Paulo Gonçalves:

I know there where at least 25 downloads until now. So if you did a prototype too, let me know and see your job. It's important to know how does this project will became alive by different hands, with different skills. That's why this project have been done. It's not important if it's beautiful or well done.

And also let me know if you had some difficulty on doing it.



I love the fact that you got the text onto the top too.

How's it working?  Any problems?  Does the auto-reset work well?

One small suggestion: can you replace our names (in the traces) w/ the url www.arduino.cc instead?  I think it's more useful, and certainly adequate attribution under the license.


Jan 15, 2008, 02:02 am Last Edit: Jan 15, 2008, 04:54 am by adilson Reason: 1
Thanks Mellis.

I'm having little problems with Auto Reset. It works well most of the time. Rarely it fails, but when it happens, there are different messages on 0010 and 0007 (I know auto reset was implemented on 0009, but I'm testing 0007 too).

With 0007, it stops running and shows:
Code: [Select]
Transmit: { 0 [30]   [20] }
Programmer is not responding.

And returns to IDE.

With 0010, it stops and show:
Code: [Select]
        Using Port            : \\.\COM1
        Using Programmer      : stk500v1
        Overriding Baud Rate  : 19200
avrdude: ser_open(): setting dtr

At this point, if you press reset, it completes uploading sketch.

I'm testing all here, from computer (very slow and suspect too, to C4 and R11).

Anybody there with similar problem?

And about the web adress question, I've found a good place for it. This can be changed on revision 2.



I know the auto reset works with a dtr signal (from -15v. to gnd) that activates reset. It's hardware. But does the bootloader burned into the Atmega (Atmega8 in this case) affects the IC response (timming, for example)? How important is the bootloader to make auto reset works in diecimilia, for example? I'm asking, because I saw many information here. Sorry, but I really don't know this.

I'll take a look into bootloaders .c files while waiting for an answer.



Hmm, the behavior you describe makes it sounds as though the ATmega is not actually resetting.  Do you have a Mac or Linux machine you could try it on?  Or can you monitor the voltage on the DTR line and reset pin while you upload?  


Jan 15, 2008, 05:15 pm Last Edit: Jan 15, 2008, 05:17 pm by adilson Reason: 1
I didn't checked all the time if DTR goes to GND, but I'll do it.

When the problem occur with 0010, the onboard led13 blinks when starting uploading sketch (reset is ok), and then it stops and need a manual reset to continue uploading. That's why I asked if is there some difference on diecimila bootload that can make auto reset more accurate (I saw it doesn't wait 8 seconds, but only one or two between reset blinks).
Can you create a Atmega8.hex file with a similar function to atmega8 (I mean faster reset loop)? Just to test. I don't know how to...

I have only PCs.


Hi Adilson, you should still be able to compile the bootloader with WinAVR but you'll need to make your own Makefile. Also, have you looked at lady ada's bootloader mods? They are all reset related (such as removing the delay on power up - aka if the boot was not triggered by the reset pin).

Go Up