please add a jumper to disable auto reset

Since nobody's replying, I'll give my comment.

The Arduino board is a development tool meant to assist in creating your design, not in an actual production environment. Ideally, you should build a board for your finished design with just the hardware you need (and all the hardware you need rather than plug in modules).

If people do want to use the Arduino in a production environment, that's fine, but I'd be against making changes or adding features (complexity) just to make it work better in a production in a production environment when it's a development tool.

There's production, then there's production.

For a hobbyist (especially when electronics is not the primary emphasis, as the Arduino seems to include in the target audience), the Arduino Diecimilla is priced reasonably enough to assume it may in fact be used in some permanent way. A one-off that I want to keep around for a particular task isn't really production, and it isn't a prototype either.

To the original poster, I've already made the same suggestion - I think that auto-reset functionality should be user-selectable with a jumper, too.

-j

I'm not saying the Diecimila shouldn't be used for a one-off production project, just that I don't want to see it cluttered with features to make it a production board.

The beauty of the Arduino for this same target audince is its hardware simplicity. Why make it one more thing people who don't have an electronics emphasis have to use to get the board working the way they want?

Personally, I'd use the board in a project if I wanted the usb/serial chip and only if I did. Otherwise I'd find it easier to solder the MCU/crystal/caps onto the same perfboard as the other parts.

I'd like the Diecimila to be as simple to use as possible, and every jumper is one more thing that can be configured incorrectly. That said, it would be nice to be able to avoid the auto-reset in some way. There may be some software solutions related to serial port options (e.g. HUPCL). On Windows, for example, the board doesn't reset when you connect to it over USB.

...On Windows, for example, the board doesn't reset when you connect to it over USB.

hah !

maybe I had the wrong kind of board, but mine would reset every single time I opened a serial connection to it. be it using the world famous 'hyperterm' or any other windoze software we use in the lab.

and talking about complexity, there's already a jumper on the pcb and I easily managed not to misconfigure that, never touched it actually :slight_smile:

now to the topic of 'production'. this box I built is one of a kind. there won't be a 2nd one and we needed it asap and with usb, that's why I chose to take the whole arduino board as is and just add the missing parts on a bigger hole matrix board around it. no time to have a custom pcb built for it. and for people who might have to repair it some day it's way easier to find a complete µC board that is so nicely supported by this community.

finally I feel the need to say that thanks to the GREAT webpage and IDE, I managed to build this device (hardware + coding + waiting for parts) within just 1 1/2 weeks staring from zero.

I consider myself quite skilled in those things - but it was hell. Removing smd parts without proper tools

If you did not have the proper tools I assume that you were trying to remove it without a soldering iron!

That is the only tool you need to remove a surface mount resistor (not capacitor). The technique is to use a larger tip, a blob of solder and move the iron repeatedly from one side of the resistor to the other. Very soon both side melt and it can be flicked off, with no damage done.

Yeah, did some googling and watched the videos on sparkfun.com
Anything except using a hot air gun seemed inherently messy, and I wanted to keep my pcb pristine.

I ended up using a gas torch and a pair of old metal tweezers, heated them up till orange glow and just grabbed the darn capacitor :slight_smile:
Suffice to say it could not resist, hrhr.

i second this request. its something that is very trivial, doesnt take up much space at all, and adds alot of value to the board for 'production' use. perhaps if the arduino folks dont do it, then one of the clones (boarduino, bbb, etc.) will add it.

i second this request. its something that is very trivial, doesnt take up much space at all, and adds alot of value to the board for 'production' use. perhaps if the arduino folks dont do it, then one of the clones (boarduino, bbb, etc.) will add it.

Well, this solution was implemented on Arduino Severino (the s3v3 version here: http://www.arduino.cc/en/Main/ArduinoBoardSerialSingleSided3 ), and "the folks" like you said, have discussed with me about this feature (the jumper to disable auto reset), suggesting the software solution, but at the end they accepted the hardware (jumper) solution.

So, if someone else will use this feature, this will not be a novelty, because the arduino team already did it, accepting its implementation on the Severino board.

Does anyone (particularly those of you in favor of a jumper) have time to see if there's are any software solutions to this? That would allow more flexibility, e.g. the ability to decide when to reset and when not to (so you could either connect to a running program or upload a new sketch).

I don't know much of software (that's the reason of the jumper of Severino), but is it possible to do something using the high fuse byte RSTDIBL? I know it will kill the reset button too (I think it's possible to achieve reset by other ways), but do you think this can be one SW solution for this problem?

Like what, hacking the OS ? And I don't want the arduino ignore its reset button either.
A jumper is the cleanest way, not much to misconfigure, no getting lost in config files or other esoteric stuff.

I know this is not going to change the current pcb layout (maybe not even the updates), so it would be nice if at least a detailed image of the R2/R3 location were available on the webpage + some tips on how to remove it without killing/scratching/blemishing/desecrating the board. I guess the typical newbie arduino user would know how to get rid of non smd parts right away, but this - to me - barely visible smd capa. cost me some thinking around corners :slight_smile:

I believe there are some parameters you can set on the serial port to explicitly control the DTR line that we're using for the auto-reset. No OS hacking required. The Diecimila is intended particularly for beginners, so I inclined to prefer the simplicity of omitting the jumper. We're also looking into boards that are better for permanent installation, where this sort of thing makes more sense.

one thing that would work pretty well would be to use one of the FT233RL bitbang pins instead of the DTR pin. Then you'd use libftdi to twiddle that pin to reset the Arduino instead of relying on DTR. Another nice thing is that a capacitor isnt necessary anymore. Disabling the pin is pretty easy, just use MProg or set it to an input via libftdi when not resetting in the IDE

Umm, can't you just d ike the reset cap? It would probably be the most rewarding part of someones day :smiley:

edit, or just cut the reset trace, and wipe something green (or blue or whatever) on it if you are really worried about appearances.

one thing that would work pretty well would be to use one of the FT233RL bitbang pins instead of the DTR pin...

that sounds like a sensible hardware/software solution.
still it would need a change of the pcb too and adds some (maybe minor) complexity on the configuration side. if the "new" auto reset were included within the ide, users would not have to deal with it themselves, hopefully.
unfortunately I'm not quite sure what this would do to backward compatibility.

I still favour the jumper though, hardware only, no change in software :wink:

I like LadyAda's bitbang pin solution, as it would do nothing in the face of "standard" serial port connections on "typical" systems (whatever those are). I don't know how portable it would be, though, and in my mind one of the Arduino's biggest selling points is the cross platform support.

The FTDI bitbang solution would require some Arduino PCB support (or some field expedient "ECO upgrades") as well. If you're going to change the board, might as well just add the jumper and leave the software alone...

Maybe make the jumper small and unobtrusive, like the little solder-bridge type jumpers that don't even require a PTH?

Hmm, on an alternative note, is there some way to disable the handshake pins in the FTDI chip using the FTDI tools?

-j

Hmm, on an alternative note, is there some way to disable the handshake pins in the FTDI chip using the FTDI tools?

Hmm... Could probably disable the FTDI rts and/or dtr pins with a little 50 volt tap on it too, wouldn't even leave a mark :slight_smile: Might take out pin 1 on the atmega too, but don't know if that matters for this application. Could ground pin 1 also to keep it safe too. Depends on the exact board in question.

Is that still a software solution? You are basically sending a signal to the fdti chip to tell those pins "you die now!" :wink:

I like ladyada's FTDI bitbang idea too. Changes to the software can be good things, since it's much more flexible than the hardware.

Another idea is a solder bridge, so that it would be relatively easy for advanced users to unsolder the connection, but a beginner would never even need to know it was there. Thoughts?

Not sure this is relevant, but was able to prevent this reset by setting the DTR within a perl script I was using. Hopefully this will help somebody with a similar problem talking to the Arduino with perl.

-Dave

#!/usr/bin/perl

use strict;
use Device::SerialPort;

my $port = Device::SerialPort->new("/dev/ttyUSB0");
$port->databits(8);
$port->baudrate(9600);
$port->parity("none");
$port->stopbits(1);
$port->dtr_active(0);

sleep(1);

...