please add a jumper to disable auto reset

@dcb
I haven't any 110R resistor but with 150R works fine too.

Ok, if it works it works, going below 110 ohms is the real concern.

Did you wind up soldering it in or something?

As not said :frowning: At first upload of a new sketch mod not working...

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

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.

now seems works but...with following sequence:

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

update:

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

it's fine to me..

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.

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?

@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.

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.

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 :slight_smile:

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.

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?

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.

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.

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.

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

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?

Yes, but modern arduinos lack this solder jumper.

Strange, my 2009 has the trace in question.

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

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.