Another New PCB for Arduino Serial Single Sided

Nice!

I'd love to try it out if you are looking for someone to make one. Need a project for christmas holidays...

Thanks!

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!

Done!!! ;D

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.



Beautiful!

Very nicely done.

I wonder if you really the jumpers. The more we can eliminate, the simpler board is to understand and use. The current ATmega168 bootloader should be fine if the RX pin is floating - maybe you can test it with the jumper unattached? I can see why it would be annoying to have the RX and TX LEDs blinking when you use pins 0 and 1 for digital i/o - I don't think those pins are used very often, though. Anyway, it's up to you - I think you have a better sense of how people will be using these boards than I do, but I wanted to suggest it.

Thanks!

I'll think about it. I wonder about jumpers too. But note that without the three jumpers the board functionality is the same of the 2.0 version (like I said, less documentation changes). And the jumpers position on the board helps to explain function.

I think the essential jumper is the auto reset enable. I've heard many complain about problems with auto reset (when not desired), and sugestions to solve the problem like "remove capacitor", or "unsoldering serial connector pin4". Removing a jumper is easier to do and to be undone.

I don't have a Atmega168 to test the board now. Only Atmega8. Is people having problem on Atmega8 (with floating rxpin) yet? Or it's an older complain?

And about the rx/tx leds, It's possible to remove the jumper. But it's not up to me, only. I'm really new user, and all experience people can expose, and sugestions will be useful to make a better Arduino (nkcelectronics, westfw and your help were essential). I'm not thinking of make a board that fits my use only, so your (all readers) opinion is very important too.

I want to post the eagle files or pdf/png to beta testers, but not sure about the use of Arduino name on the board documentation (used Serial version 3 Beta on mine, but its only the first prototype). What's your opinion about this specific project using the name?

fantastic Adilson

I"ll prove this project.

thanks

Giuliano

Thanks Giuliano.

you took part in too.

I did some modifications, and eliminated rx/tx leds jumper, Mellis. If not connected to serial, the only led that can light up is the tx, if pin1 is high. rx can light up very dim with pin1 high too. pin0 doesn't affect these leds. Like you said, they will blink only when using pin0 and pin1, that is not usual. An irrelevant side effect for many benefits, I think. And less jumpers are really easier to learn and use.

I left auto reset and rx to ground jumpers on board. I think they can be really useful.

I changed the R2 from 220 to 1k, to dim power led bright (I didn't see this modification before on diecimilia) and changed crystal position to better fit empty space when laying down.

I tested the board with PD, with arduino-test.pd, and it seems to be working well. So I'll publish some files for beta testers soon.

(Not too) late notice:

attaching a 10k resistor to gnd on pin0 (rx) can solve the problem of rx floating on other Arduino boards. When using Serial Arduino, pin0 is connected to its serial circuitry, that means you have +5v/10K/1K/Pin0. So, attaching the 10k resistor (R0/J0 on schematic, or offboard) Pin0 has almost 2.5volts, not 0 volts. Not floating, but not zero reference, and sometimes Atmega understand this as rx coming, while disconnected.

So I decided doing something radical, but more comprehensible in using jumpers: a 3 pin jumper that disables rx/tx, and enables pin0 with 11k to gnd and pin1 with 20k to gnd, with no extra resistors. It's simple: if you want to upload sketches or make Arduino talk to software/computer, then jumper to rx/tx. If you want to use Arduino Serial without serial cable to computer then jumper to pin0/pin1. As a (good) side effect, the jumper disables rx and tx leds too. And forgeting the jumper in wrong position can't damage the board. All the rest remains the same.

The board (part) will look like this:

Anyone agree? Or don't?

I think it's starting to get complicated. I don't think a beginner would understand the connection between wanting to upload to the board and the phrase "RX/TX". In the ATmega168 bootloader, I enabled the internal pull-up on the RX pin to prevent noise from showing up as data. Would something similar work here?

I think it's just a question of words used. We can say "Serial Enable", instead of "rx/tx". And about the internal pull up, I don't know if works in serial, since rx pin (pin0) it's not floating, but always energized. But I can try.

There's another option: to change the resistor from pin0 to gnd value from 10k to 1k, but it's the same problem: the pin0 will become almost 0,5 volts, and will kill the serial communication on rx too.
That's why I thought to effectively disable the serial circuitry (since it would not work well with resistors to gnd), changing +5v to gnd with jumper, and using to advantage of existing resistors to reference to gnd.

that looks awsome! great job

Thanks Big93.

Mellis,

I made some adds, in case of keeping serial/pin0&pin1 enable jumper:
Changed the text on board's component side to "Serial Enable" and "Pin0/1 Enable".
I think it is easier to understand it, and easier than "understanding your Arduino is not working because you didn't put a pull down resistor on pin0".

To make this feature really functional, I wrote shorter text on board's soldering side, since some people will not print the silk information on component side.
So, the jumper will be identifiable, ever:

The same on "auto reset enable jumper":

I didn't test internal pull up resistor yet. But if it doesn't work, the optional solution is already done.

I saw this forum:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1176690710

and waiting for answer about the pull up solution.

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?

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.

So post the EAGLE files, already!

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

Westfw,

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.