A new version of the Arduino board was released with a cool new feature. With help from Paul Badger of Modern Device Company and Brian Riley of the Freeduino project this article will show you how to modify the Arduino Compatible Bare Bones Board to make it compatible with the new Diecimila Arduino. No more pressing the reset button to load your code and no more long waits to see if it runs.
I saw that the new Diecimila Arduino was recently released then read an article about modifying an older board at the Arduino playground and figured that we should be able to do a similar mod to the Arduino Compatible Bare Bones Boards that uC Hobby has been giving away. I sent Paul Badger, the creator of the Bare Bones board a quick email. He responded that it is possible and very easy to install the mod!. All you need is a 0.1uF cap soldered between the RTS signal and the reset switch solder points. I got my soldering iron heated up and modified one of my boards.
The serial connector on the Bare Bones Board is the right angle connector along the side of the board. This is where you connect the USB interface cable or if you did your own RS232 adaptor you could add the RTS signal. I use the FTDI USB serial cable so all I need is the mod.
There are a few pin labels on the connector. On one end you can see the “GND” label, we need the last pin on the opposite side from “GND” for one end of the 0.1uf CAP. The other end goes to one of the solder pads where the switch is mounted. One side of the switch is connected to ground and you can see the trace easily on the bottom side of the board. We need to connect to the other end of the switch. I selected the outer most pin as it is close and almost inline with the serial port connector. In the picture you can see the cap soldered across the last pin on the serial connector and the outside pin on the switch.
The cap fits nicely and should be safe there under the board. Be careful that you don’t short other pins or lay your cap so that it might accidentally short something in the future. As with any mods you run the risk of damaging your board.
To get the full effect of this mod you would need to load the latest boot loader into your ATMega168 chip. Paul recommends the ATAVRISPII available from Digi-Key for about $36. You don’t have to update the firmware to take advantage of the automatic reset for upload feature. If you do update the firmware your board will start running in about 2 seconds instead of the 10 or so you have to wait now. I plan to try one of the parallel port programmer setups that might be easy and cheap enough for anyone to do. Please post a comment with any suggestions on easy ways to update the chips. I know there are some programming suggestions at the main Arduino site and I will look this over as well.
You will need to download the latest Arduino 0009 IDE from the main site to get the automatic reset feature.
After I did the mod, my board did not do the automatic reset. I hooked up the O-Scope and watched for the RTS line to toggle. After some discussion with Paul Badger I tried messing with the driver settings. I found that a check box had to be set down in the bowels of the OS. If you have the same problem check the box at Device Manager – USB Serial Port – Port Settings – Advanced button – Set RTS On Close.
I captured a couple of interesting scope traces which are shown below. The graph on the right shows the Reset pin in blue and the RTS signal in Red. Ignore the -symbols on the blue voltage legend, these are all positive voltages. Remember that a 0.1uF cap is connected between the RTS signal and Reset. When the RTS signal goes from high to low, the capacitor pulls down Reset until it charges. Even though this is a short pulse it is sufficient to reset the ATMega168 triggering the boot loader.
This picture shows the RTS signal and the RXD signal. Here you can see serial data sent from the PC to the Arduino boot loader. You can also see the timing on the RTS signal line. The final High to Low transition occurs when the IDE closes the serial port. Since it is a high to low transition the cap will force a reset. You can see the effect of reset on the RXD signal as it causes a small dip in the voltage. I am not sure what’s going on here but it does work as a reset indication in this graph.
Post a comment if you have any suggestions or get this mod to work. I will look at updating the firmware in all the kits I have. I can also include a 0.1uf cap so that the mod can be applied. That way the persons receiving kits from me as part of the give away program. can make the mod. One problem with this idea is that they would have to make the mod if I update the firmware. Otherwise they would have a hard time loading code on the board as the reset button would have to be pressed by hand in a 2 second window. What do you think?