Arduino Forum

Forum 2005-2010 (read only) => Hardware => Bugs & Suggestions => Topic started by: madworm on Jun 17, 2008, 06:21 pm

Title: please add a jumper to disable auto reset
Post by: madworm on Jun 17, 2008, 06:21 pm
hi,

I've managed to build some device ( 2 axis encoder for 2 piezo translation stages in vacuum if you must know, yes arduino made it into physics :-) ) and put in in a nice box. led control library works great, arduino just made my day :-)

But the auto-reset feature, as nice as it is while still working with the code, as soon as the box just has to work kills all the data acquired.
I cannot disable the dtr line in my lab software (closed source), so I just had to remove this R2/3 capacitor. Btw. there is no pdf document/image that would show where R2/3 are, had to run eagle to find it :-(
I consider myself quite skilled in those things - but it was hell. Removing smd parts without proper tools... hey !

For people who usually just use those nice prototype breadboards this is the perfect way to do permanent damage to the arduino pcb for sure.

so puhlease, put a jumper next to R2/3 to disable the auto reset :-)
Title: Re: please add a jumper to disable auto reset
Post by: Oracle on Jun 18, 2008, 01:20 pm
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.
Title: Re: please add a jumper to disable auto reset
Post by: kg4wsv on Jun 18, 2008, 03:49 pm
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

Title: Re: please add a jumper to disable auto reset
Post by: Oracle on Jun 18, 2008, 05:12 pm
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.
Title: Re: please add a jumper to disable auto reset
Post by: mellis on Jun 18, 2008, 05:38 pm
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.  
Title: Re: please add a jumper to disable auto reset
Post by: madworm on Jun 19, 2008, 12:00 am
Quote
...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 :-)

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.
Title: Re: please add a jumper to disable auto reset
Post by: Grumpy_Mike on Jun 23, 2008, 03:02 pm
Quote

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.
Title: Re: please add a jumper to disable auto reset
Post by: madworm on Jun 24, 2008, 03:20 pm
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 :-)
Suffice to say it could not resist, hrhr.
Title: Re: please add a jumper to disable auto reset
Post by: Hoeken on Jun 26, 2008, 11:33 pm
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.
Title: Re: please add a jumper to disable auto reset
Post by: adilson on Jun 27, 2008, 12:55 am
Quote
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.
Title: Re: please add a jumper to disable auto reset
Post by: mellis on Jun 27, 2008, 12:58 am
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).  
Title: Re: please add a jumper to disable auto reset
Post by: adilson on Jun 27, 2008, 01:23 am
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?
Title: Re: please add a jumper to disable auto reset
Post by: madworm on Jun 27, 2008, 02:17 am
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 :-)
Title: Re: please add a jumper to disable auto reset
Post by: mellis on Jun 28, 2008, 02:01 am
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.
Title: Re: please add a jumper to disable auto reset
Post by: ladyada on Jul 01, 2008, 12:06 am
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
Title: Re: please add a jumper to disable auto reset
Post by: dcb on Jul 01, 2008, 03:14 am
Umm, can't you just d ike the reset cap?  It would probably be the most rewarding part of someones day :D

(http://www.mytoolstore.com/klein/d210-6c.jpg)

edit, or just cut the reset trace, and wipe something green (or blue or whatever) on it if you are really worried about appearances.
Title: Re: please add a jumper to disable auto reset
Post by: madworm on Jul 01, 2008, 02:23 pm
Quote
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 ;-)
Title: Re: please add a jumper to disable auto reset
Post by: kg4wsv on Jul 01, 2008, 04:34 pm
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

Title: Re: please add a jumper to disable auto reset
Post by: dcb on Jul 01, 2008, 06:10 pm
Quote
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 :)  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.

http://www.arduino.cc/en/uploads/Main/Arduino-Diecimila-schematic.pdf

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

Title: Re: please add a jumper to disable auto reset
Post by: mellis on Jul 02, 2008, 03:53 pm
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?
Title: Re: please add a jumper to disable auto reset
Post by: akak1656 on Jul 02, 2008, 07:41 pm
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);

...
Title: Re: please add a jumper to disable auto reset
Post by: mellis on Jul 08, 2008, 05:18 pm
Also, regardless of the solution we find, does anyone want to write up a tutorial on unsoldering the auto-reset capacitor?  It could fit nicely in the board setup and configuration (http://www.arduino.cc/playground/Main/ArduinoCoreHardware) section of the playground, and then I can move it over to the hacking page (http://www.arduino.cc/en/Hacking/HomePage) on the main site.
Title: Re: please add a jumper to disable auto reset
Post by: madworm on Jul 08, 2008, 10:16 pm
I could rig something up, as I removed it recently on my board.
Also it's still quite easy to get code uploaded onto the arduino, at least with the bootloader flashed to my chips.
I wrote a manual for the device I built, so there's a working procedure for that.

We should also add all the other known options to disable DTR that _currently_ work, like the perl code mentioned here and stty settings in linux.

Edit: just started a stub: ( Building and Modifying Arduino type boards ... )
Title: Re: please add a jumper to disable auto reset
Post by: mellis on Jul 09, 2008, 11:52 pm
ladyada: have you used libftdi?  Does it run under Windows?  Do you know if the bit bang pins default to inputs or outputs (or if the mode persists through power loss)?  It could be a problem if you had to explicitly set the bit bang pin used for reset to an input every time you powered up the board.  Also, reading through the documentation, it wasn't clear to me which function actually set the states of the bit bang pins (I didn't spend much time on it); do you know?
Title: Re: please add a jumper to disable auto reset
Post by: spiffed on Jul 10, 2008, 03:08 am
Quote
Do you know if the bit bang pins default to inputs or outputs (or if the mode persists through power loss)?  It could be a problem if you had to explicitly set the bit bang pin used for reset to an input every time you powered up the board.  Also, reading through the documentation, it wasn't clear to me which function actually set the states of the bit bang pins (I didn't spend much time on it); do you know?

The pins can be set to bit-bang mode through the FTDI programming tool. It needs to be burned once into eeprom only once through the programming tool.
See MPROG from http://www.ftdichip.com/Resources/Utilities.htm
Title: Re: please add a jumper to disable auto reset
Post by: mellis on Jul 10, 2008, 04:16 pm
Right, but the question is whether or not we can toggle an individual bitbang pin on every upload, from the Arduino IDE.  And, if you're not using the Arduino IDE whether you'll need to explicitly set the pin to an input, say, to un-reset the ATmega.  Anyone know any more?
Title: Re: please add a jumper to disable auto reset
Post by: dcb on Jul 10, 2008, 04:44 pm
Any thoughts about Serial boards?  

What about onboard USB->ISP?
Title: Re: please add a jumper to disable auto reset
Post by: ladyada on Jul 11, 2008, 02:24 am
Quote
ladyada: have you used libftdi?  


no

Quote

Does it run under Windows?  


it doesn't have to, for windows theres already a library

Quote

Do you know if the bit bang pins default to inputs or outputs (or if the mode persists through power loss)?


no, i haven't used it so i dont know. According to the app note for bit bang mode:
http://www.ftdichip.com/Documents/AppNotes/AN232R-01_FT232RBitBangModes.pdf
when the bitbang mode is enabled thru the driver, the direction is also set.


Quote

Also, reading through the documentation, it wasn't clear to me which function actually set the states of the bit bang pins (I didn't spend much time on it); do you know?


According to the app note for bit bang mode:
http://www.ftdichip.com/Documents/AppNotes/AN232R-01_FT232RBitBangModes.pdf
and D2XX driver app note
http://www.ftdichip.com/Documents/ProgramGuides/D2XXPG34.pdf

Quote

FT_SetBitMode CBUS Bit Bang mode is enabled using the FT_SetBitMode command. A
value of 0x20 will enable it and a value of 0x00 will reset the device mode.
Note that the CBUS pins must also be configured for CBUS Bit Bang in the
FT232R EEPROM.
FT_SetBitMode also provides the means to write data to the CBUS pins.
The upper nibble of the Mask parameter controls which pins are inputs or
outputs, while the lower nibble controls which of the outputs are high or low.
FT_GetBitMode FT_GetBitMode returns the instantaneous value of the pins. A single byte
will be returned where the lower nibble contains the current values of the
pins, both those which are inputs and those which are outputs.
For example:
Set all pins to output with bit 0 high: FT_SetBitMode(Handle, 0xF1, 0x20)


you can also download a lot of example code & libraries, documentation, etc. on the FTDI site
http://www.ftdichip.com/Projects/CodeExamples.htm
http://www.ftdichip.com/Projects/CodeExamples/OtherPlatforms.htm
http://www.ftdichip.com/Documents/ProgramGuides.htm

if you have any more questions about bitbang mode i'd ask FTDIchip, they have a tech support email addr
http://www.ftdichip.com/FTContact.htm
Title: Re: please add a jumper to disable auto reset
Post by: dcb on Oct 24, 2008, 05:07 am
FYI, I just tried another little experiment (modified)

I took a 110 ohm resistor and connected the arduino 5v pin to the reset pin, jumper style.  They are close together.

Guess what?  No more com port resets :)

Remove the jumper resistor and com port resets resume.

The 110 ohm resistor is just enough to keep the reset pin high (2.38v) when the ftdi chip tries to pull it low, and limits the current through the ftdi pins to 24ma*.  

It also limits the current through the reset switch to 45ma.

for reference:
http://www.arduino.cc/en/uploads/Main/Arduino-Diecimila-schematic.pdf
http://www.ftdichip.com/Documents/DataSheets/DS_FT232R.pdf

I don't know that I would trust it with an isp conected either.  But it seems to be a simple "jumper style" solution, just have to make the jumper out of a 110 ohm resistor with some nice thick leads that fit the in the headers nicely.

*24ma is the limit on the ftdi rts/dtr pins, if I'm reading the datasheet right.  Don't go below 110 ohms.  I think you can go up to 124 ohms before it will start resetting anyway.
Title: Re: please add a jumper to disable auto reset
Post by: dcb on Oct 24, 2008, 06:17 am
also, a 47 ohm resistor between 3.3v and reset seems to prevent serial resets.  It's a more common value and leaves the 5v pin open.  

But if you hit the reset switch it it will draw 70 ma from the ftdi 3.3V port while the switch is closed, and the datasheet lists 50ma max.  I tapped my reset button a few times with this configuration and the magic smoke stayed put, and upload still worked when I pulled out the resistor, but I can't really recommend the 47 ohm if you are planning on using the reset switch.

Title: Re: please add a jumper to disable auto reset
Post by: adalgisio on Jan 25, 2009, 07:01 pm
After adding the 150 Ohm resistor, I can't upload sketch to board...I have to disconnect the resistor. Any hint to avoid this?
Title: Re: please add a jumper to disable auto reset
Post by: Fjornir on Jan 25, 2009, 07:21 pm
Press the reset button immediately before starting the upload.
Title: Re: please add a jumper to disable auto reset
Post by: adalgisio on Jan 26, 2009, 12:39 pm
So with the resistor mod we come back to previuos versions without autoreset...uhm...I would have both features...autoreset is a smart feature that I'd miss it...

Was wondering if applyng the following mods to bootloader I can have autoreset only on at upload of sketch:

http://www.ladyada.net/library/arduino/bootloader.html

Thanks
Title: Re: please add a jumper to disable auto reset
Post by: dcb on Jan 26, 2009, 02:50 pm
I just use the resistor like a jumper.  Stick it in the pin sockets when I don't want auto reset, take it out when I do.


P.S., I said 110 ohms, not 150.  You have to be precise with the resistors here.
Title: Re: please add a jumper to disable auto reset
Post by: adalgisio on Jan 26, 2009, 02:58 pm
@dcb
I haven't any 110R resistor but with 150R works fine too.
Title: Re: please add a jumper to disable auto reset
Post by: dcb on Jan 26, 2009, 04:18 pm
Ok, if it works it works, going below 110 ohms is the real concern.  

Did you wind up soldering it in or something?
Title: Re: please add a jumper to disable auto reset
Post by: adalgisio on Jan 29, 2009, 07:51 pm
As not said :-( At first upload of a new sketch mod not working...

Code: [Select]

avrdude: stk500_recv(): programmer is not responding


I press reset just before uploading but nothing to do.

Also tried with a 47R tied to 3.3V but nothing.

Any hint?

Thanks
Title: Re: please add a jumper to disable auto reset
Post by: dcb on Jan 29, 2009, 08:05 pm
the point of the resistor is to prevent the arduino from auto-resetting.

if the arduino does not auto-reset, the bootloader will not get a chance to listen for a new sketch without very careful timing.

remove the resistor(s) if you want it to be easy to program.  put the resistor back when you want to connect to the arduino without resetting it.
Title: Re: please add a jumper to disable auto reset
Post by: adalgisio on Jan 29, 2009, 08:07 pm
now seems works but...with following sequence:

1. in arduino ide press upload icon
2. wait for 2..3 seconds
3. press reset button

Title: Re: please add a jumper to disable auto reset
Post by: adalgisio on Jan 29, 2009, 08:11 pm
update:

there is no critical time to respect...also 4..5 sec. after pressing upload icon

it's fine to me..
Title: Re: please add a jumper to disable auto reset
Post by: rodbird on May 19, 2009, 08:27 pm
My tuppence worth. The addition of a breakable track is very laudible but does not really address the problem your design feature creates for users. All is well provided users stick with the provided software. That software manages the DTR signal. Most other software packages don't so users are stumped.

Given it is a feature that will be used by a few I would strongly recommend that you produce the board with the track cut but solderable for the few that will want to use the auto reset feature.

Then the board will work flawlessly with most serial software and build on the excellent reputation you have.
Title: Re: please add a jumper to disable auto reset
Post by: guns22 on May 05, 2010, 10:15 am
Howdy all.

Im outputting a value over serial through PHP to a webpage. If refreshed to fast, the value shows as 0.

I had also noticed that using the serial port with out Arduino's included serial monitor causes arduino to reset.
However leaving the serial monitor open all the time, while being impractical anyways, it seems to intercept any data sent to the pc from arduino, so the php cant access it.

With it disabled, the data is sent to php, and works just fine, as long as its not refreshed to fast, i then googled my way to this thread.

Now the resistor suggestions between reset and 5v pin does not work for me.  The board still resets from php. However when the resistor jumper is attached im not able to upload sketches. So apparently its doing something, just not the intented function.


Did not have a 110, however tried 120, 130, and 150.

Niether of these resistors did anything.

The board is still being reset.

Any suggestions?
Title: Re: please add a jumper to disable auto reset
Post by: adalgisio on May 05, 2010, 03:21 pm
@guns22

If you are using phpSerial, please, avoid it...

I switched to Perl and now all works fine (without any hardware mods) simply by disabling DTR.

I have a script in Perl that "fetch" data from Arduino through serial, then I have a "wrapper" in PHP which catch the Perl result and save in a PHP variable.

http://telparblog.blogspot.com/2010/02/lm35lcdwebmysql-4-gli-script.html


P.S. Only an advice: when upload sketch be sure that fetcher.pl don't ask Arduino to send back data...otherwise the serial flow being stalled and you must kill the relative pid of fetcher.
Title: Re: please add a jumper to disable auto reset
Post by: guns22 on May 05, 2010, 04:38 pm
I did see something about disabling DTR in perl while googling, but couldn't find anything relevant to php.

I may check out perl, though i know nothing about it.

I didnt know anything  about php till yesterday though lol. So i'll check your script, and see what i need to use perl.

Thanks much, i'll let you know if i end up switching over, or if i find another fix.

EDIT - What language is that? so i can try to have it translated :)

EDIT #2.
Right now, i send a request for data to the arduino, then i receive it, im also sending some other commands to it via php as well, some inputs.

Something i was thinking about though, if/when i scale this up, to more communication and variables, i was wondering if i i will need to switch to a stand alone program monitoring and sending the data to the arduino, with a database inbetween that program and php side of things.

Im truly brand new to all of this, so im just thinking outloud at this point.
Title: Re: please add a jumper to disable auto reset
Post by: adalgisio on May 05, 2010, 04:58 pm
I tried to disable DTR either through PHP calling a shell (with stty -F) but nothing to do...it seems a limitation of PHP5...

The language is italian.

Which are your needs? What you have to do exactly?
Title: Re: please add a jumper to disable auto reset
Post by: guns22 on May 05, 2010, 05:32 pm
I read online someone speaking about calling a shell to disable it, probably was you.

Im unemployed and bored, so im building a home automation system, one step at a time. I havnt programmed C since 2 classes in college, and i have not used a micrcontroller since highschool 8 years ago. So i thought slow would be good.


Right now the thermostat checks the tempature, displaying the current, and goal tempatures, displays the time and day, as well as turns a LED on and off which simulates a relay to control my furnace.

Right now it sends current tempature data to php, and i can update the goal tempature, the time, and manually turn furnace on and off with the web interface.

Eventually i wish to add controls, and readouts for a signicant number of things.

Out side lights, window AC units, water/gas/electricity usage monitoring, among others.

Right now, im building it in steps, getting things functional. At this time i do not care about things looking pretty, and im happy to take my time, doing one goal at a time, if i need to change stuff later to accomodate new additions that is fine.

This whole thing im using as a re-learning experience anyway.

Sorry if my stuff is hard to read or follow, i've been up for 20 hours straight and the caffeine is wearing off all the sudden.
Title: Re: please add a jumper to disable auto reset
Post by: mrmeval on Jun 20, 2010, 05:13 pm
You could put a cut point on the board. Two through hold pads with a trace between them. Remove the trace if needed. If reset is then desired you either put a jumper header in or solder a wire between the holes.

Title: Re: please add a jumper to disable auto reset
Post by: amacmullen14 on Jun 27, 2010, 05:22 pm
What about just bringing back the solder jumper?  
For users who wanted, they could remove it and disable autoreset.
For other users, it would not complicate things at all, they could completely ignore the tiny blob of solder.
Title: Re: please add a jumper to disable auto reset
Post by: bperrybap on Jun 28, 2010, 06:32 am
IMHO A solder jumper is no good.
Because sometimes you want auto reset and sometimes you don't.

For example, you want auto reset for downloading because avrdude was not modified to create an arduino device that handled reseting the MCU specially so reseting the MCU to the bootloader  depends on a hardware kludge to get the MCU reset pin automatically momentarily driven when the port is opened.

However, after burning the code and using the code in "normal operation" , you then may want to bring up an application to connect to the serial port to get status information from the Arduino board or send commands to the running board *without* resetting it.

So for this real-world use case, a solder jump is not good enough.

A switch works great. It is is very simple, and users can't really mess things up. There are only two options for a switch and users should be able to figure it out especially if the board is labeled. At a minimum they will be able to tell which switch controls reset operation and flip it both ways until it works the way they want it to.

Some of the "arduino" board makers have already seen the need for this capability and have incorporated it into their "arduino" boards:
http://www.seeedstudio.com/blog/seeeduino-and-its-pals/
http://www.nkcelectronics.com/seeeduino-fully-assembled--arduino-compatible.html

BTW,
It is also possible to disable the arduino auto reset hardware kludge in s/w on many operating systems.
Part of the problem with this is that some OSes screw up their implementation of DTR and RTS so there can be issues.

On Ubuntu linux you can use the stty command with the hup/-hup options to control whether DTR is driven or not, which is what affects the RESET signal to the MCU when the port is opened/closed.

On windows, (at least some versions) you can set the advanced property setting for the com port "Set RTS on close"
which affects the DTR line (go figure).

While these OS settings can work for certain OSes,
there is nothing as simple and as reliable as a switch; especially
since it is not always possible to ensure that the OS has
the needed functionality or has been properly configured to not play with the DTR line when the port is opened/closed.

--- bill
Title: Re: please add a jumper to disable auto reset
Post by: natman3400 on Jul 11, 2010, 01:19 am
Cant you just cut the trace inbetween the two soilder pads next to the words "RESET-EN" and just bridge the pads with soulder if you need it agin?
Title: Re: please add a jumper to disable auto reset
Post by: amacmullen14 on Jul 11, 2010, 03:40 am
Yes, but modern arduinos lack this solder jumper.
Title: Re: please add a jumper to disable auto reset
Post by: natman3400 on Jul 13, 2010, 01:48 am
Strange, my 2009 has the trace in question.
Title: Re: please add a jumper to disable auto reset
Post by: jeffob on Jul 13, 2010, 08:05 pm
how about just turning off RTSCTS flow control, seems to work just fine here. i'm running ubuntu 9.10 linux with an ftdi cable
Title: Re: please add a jumper to disable auto reset
Post by: natman3400 on Jul 18, 2010, 09:19 pm
quote form the 2009's page:
The Duemilanove contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.
Title: Re: please add a jumper to disable auto reset
Post by: laxman098 on Jul 19, 2010, 10:04 am
Yes, but modern arduinos lack this solder jumper.
Title: Re: please add a jumper to disable auto reset
Post by: natman3400 on Jul 19, 2010, 10:57 pm
No they dont.
A: The RESET-EN trace is on the schematic.
B: Check your arduino between the usb port and the ftdi chip.
C: Its a trace between two soilder pads, not a jumper.
D: Here is a picture, and besides the circle, not edited( you can check the 2009's page) The circle shows the trace.
(http://cubeupload.com/files/thumbs/th.3ceadfarduinoreseten.jpg)
Title: Re: please add a jumper to disable auto reset
Post by: TiePie on Jul 25, 2010, 09:24 am
Just my 2 cents:
Place a capacitor of 1 or 2 microfarad between reset and ground.
You don't have to try different resistors.
The reset from the ftdi chip is disabled and the reset button works normally without the "huge" current of 40 mA.
Remove the cap and everything is normal.
Title: Re: please add a jumper to disable auto reset
Post by: pluggy on Jul 25, 2010, 09:32 am
For the record, the latest versions of the Duemilanove don't have the solder pads with the trace between them.  Earlier ones do, the later ones don't.  Most compatibles and knock offs have the pads as per the early original boards.

Late model genuine Duemilanove :

(http://www.skpang.co.uk/catalog/images/arduino/duemilanove_skp.jpg)
Title: Re: please add a jumper to disable auto reset
Post by: Erac on Jul 25, 2010, 02:46 pm
How can I remove the autoreset feature of my microcontroller ( http://mcukits.com/2009/03/12/assembling-the-freeduino-serial-v20-board-max232/) ?

What capacitor will I remove?

Or do I need to:

The Freeduino MaxSerial serial port can be connected with any standard serial cable to the serial port on the router.
The Freeduino MaxSerial uses serial pin 4 - DTR (data terminal ready) to reset the microcontroller and allow it to download new code. Under normal PC operation this pin is either +10V or -10V depending on whether the serial port is connected or not. However, this pin is grounded on the router serial port and isn't active. When the router serial port starts sending data, the MaxSerial resets. That's no good for us. We are going to pull-up the DTR pin to +9V. With this quick hardware modification, it basically adds a program-locked mode so that new code can't be uploaded and the microcontroller can't be reset by the serial port. If you need to reprogram it, just flip the switch. +9V is a pin with easy access on the Freeduino MaxSerial.

Pls help..
Title: Re: please add a jumper to disable auto reset
Post by: retrolefty on Jul 25, 2010, 04:48 pm
Quote
What capacitor will I remove?


The one labled C4 in the schematic drawing.

Lefty
Title: Re: please add a jumper to disable auto reset
Post by: pluggy on Jul 25, 2010, 04:49 pm
C4 in the linked schematic is controlling the auto reset.  Without it, it won't auto reset. Or you could try tiepie's solution of putting a larger value capacitor between gnd and reset.  

Title: Re: please add a jumper to disable auto reset
Post by: natman3400 on Jul 25, 2010, 09:13 pm
Quote
For the record, the latest versions of the Duemilanove don't have the solder pads with the trace between them.  Earlier ones do, the later ones don't.  Most compatibles and knock offs have the pads as per the early original boards.

In that case ive been ripped off many a time. Why not just re-instate that trace?
Title: Re: please add a jumper to disable auto reset
Post by: retrolefty on Jul 25, 2010, 09:24 pm
Quote
Why not just re-instate that trace?


Trust that the trace always exists or the auto-reset would not function. There just may not be an easy to see/roomy enough area to show where to cut. However once the trace is located it can either be cut or the series capacitor can be removed. I think the low ohm resistor temporarily inserted into the shield +5vdc and reset pins is the simplest way to go.

Lefty
Title: Re: please add a jumper to disable auto reset
Post by: pluggy on Jul 25, 2010, 10:54 pm
Quote
I think the low ohm resistor temporarily inserted into the shield +5vdc and reset pins is the simplest way to go.


I like tiepie's absorbing the ground pulse from the auto reset capacitor into a much bigger one charged to +5v, seems more refined somehow ;)
Title: Re: please add a jumper to disable auto reset
Post by: madworm on Jul 25, 2010, 11:23 pm
It's quite strange that this _regression_ made it to the latest boards.

Granted, a switch/jumper would be much better, but why remove it. It's not like people got confused about it or it added cost to the board.
Title: Re: please add a jumper to disable auto reset
Post by: westfw on Jul 26, 2010, 06:08 am
Quote
the latest versions of the Duemilanove don't have the solder pads with the trace between them.

Huh.  I dislike it when open source hardware published designs get out-of-sync with the versions that are actually shipping (or even non-open-source designs with published schematics.)  On the other hand, it's pretty tough to keep in sync (you don't want to publish a new design for every minor manufacturing change), and the Freeduino designs seem to have suffered the same fate, so I guess I'll survive...
Title: Re: please add a jumper to disable auto reset
Post by: Erac on Jul 26, 2010, 06:39 am
Thanks Lefty,

I will remove the C4 0.1uf ceramic capacitor connected to the reset tack switch.

So removing the C4 is the same as adding a switch with a resistor that is connected to a 9V source in the DTR part?

Regards

Title: Re: please add a jumper to disable auto reset
Post by: pluggy on Jul 26, 2010, 03:22 pm
Removing the C4 capacitor completley disables auto reset, not quite sure how the 9v enters into the equation.  

The reset on the arduino is activated when the pin is brought LOW (0v) from its normal state held high (5v) by a 10k resistor.  What happens with the DTR is that the DTR is usually high (5v) and goes low when the serial port is initialised.  This change of state is 'transferred' via C4 to the reset pin which temporarily drops low before being brought high again by the pull up resistor and resetting the Arduino.  If C4 isn't there it doesn't happen and the arduino only resets by pressing the button. The workarounds to this autoreset revolve around keeping the reset pin High despite the best efforts of C4 to bring it low when DTR goes low.
Title: Re: please add a jumper to disable auto reset
Post by: Erac on Jul 26, 2010, 04:04 pm
Thanks Pluggy!
Title: Re: please add a jumper to disable auto reset
Post by: jumpjack on Nov 07, 2010, 05:41 pm
Don't know if it has already been said in previous page, anyway here it is the solution for Arduino serial controlling from Windows XP in VBA (Visual Basic for Applications):

Connect your source to Microsoft Comm Control (MSCOMM32.OCX) , then:

Dim MSComm1 As Object

Sub ArduinoOpen()
   Set MSComm1 = CreateObject("MSCOMMLib.MSComm")
   MSComm1.Settings = "9600,n,8,1"
   MSComm1.CommPort = 4
   MSComm1.InBufferCount = 0
   MSComm1.DTREnable = False
   MSComm1.PortOpen = True
     If Err Then
        MsgBox "COM" & MSComm1.CommPort & ": not opened, Sorry!"
        Exit Sub
     End If
End Sub

Sub ArduinoClose()
   MSComm1.PortOpen = False
   Set MSComm1 = Nothing
End Sub

Tested on ArduinoUno