Introduction: Uploading Sketches to Arduino Pro Mini Using Arduino UNO Board (without Removing Atmel Chip)

Picture of Uploading Sketches to Arduino Pro Mini Using Arduino UNO Board (without Removing Atmel Chip)

This outlines a procedure for making use of Arduino UNO's built-in USB to Serial(TTL) converter to upload sketches to Arduino Pro Mini board without the need for removing the UNO's Atmel micro-controller chip. This is useful for those starting out with Arduino UNO board (with soldered Atmel chip) and want to explore Pro Mini for a project with what they have.

The principle is simple and involves following steps:

1) Disable the serial communication port in UNO's onboard micro-controller by uploading the attached sketch(serial-diable.ino) to UNO board

2) After the above step, disable the auto reset feature in UNO board (to avoid the serial port getting activated again) by connecting a 10 microfarad Electrolytic capacitor across UNO board's Reset pin and GND pin (refer to the attached image above). The positive terminal of the capacitor should be connected to reset pin and negative terminal to the GND pin. This is one of the options recommended to disable auto reset as outlined in this article

3) Connect TX, RX , VCC and GND pins of UNO board to the Pro Mini's TX , RX, VCC and GND pins in the usual way.

4) Choose the board as "Arduino Pro or Pro Mini" in Arduino IDE

5) You can start uploading sketches to Pro Mini now. Just press and release the Pro Mini's reset button just after choosing the upload from IDE.

After the first three steps are done, the USB to serial/TTL converter in the Uno board can freely communicate and upload sketches to the Pro Mini from a PC connected to the USB port of UNO board . Also you can continue to use the UNO board as a simple USB to serial converter as long as the 10 microfarad capacitor stays connected . (even after powering off and on) between its reset and ground pins.

For step 1 above, make use of the sketch listed below:( Also, attached as a file )


#define ledbrd 13
#define rxpin 0
#define txpin 1
void setup() {
    pinMode(ledbrd, OUTPUT);      // initialize digital pin 13 as an output.
    Serial.end();             // disable the serial port 
    pinMode(rxpin, INPUT);     //set the serial rx pin as input for high impedance
    pinMode(txpin,INPUT);     // set the serial tx pin as input for high impedance
    
}
// Very low duty cycle blink to indicate idle mode of  UNO board
void loop() {
  digitalWrite(ledbrd, HIGH);   // turn the LED on 
  delay(1);              // wait for a  very short (minimum) time
  digitalWrite(ledbrd, LOW);    // turn the LED off
  delay(4000);              // wait for many seconds
  
}

If you desire auto reset feature for Pro Mini(to avoid the manual press of reset button on Pro Mini every time) to be enabled before uploading the sketch every time, it can be done by following two steps:

I. Extend the DTR line track (from the USB to serial converter chip in UNO board) to the unused pin (left most pin in bottom connector) in the UNO connector by soldering an enamelled copper wire(after removing the insulation from the two tips). Refer to the attached image for details

II. Connect the above extended DTR pin of UNO board to the DTR pin of the Pro Mini board.

The above modification will not affect the normal functioning of the UNO board.

In order to make use of the UNO board normally, just remove the 10 microfarad capacitor connected across its reset and ground pins and remove all connections to the Pro mini board.

UPDATE 1: Just found that this works even without the second step i.e. without connecting the 10 microfarad capacitor as long as one chooses the target board as 'Arduino Pro or Pro mini" . So it might be that the UNO's bootloader is looking for a specific board type on the received data initially and if it is not received, the UNO board control will go to the sketch loaded (in this case the 'serial-disable' sketch which disables the serial port) without sending anything on the TX line

UPDATE 2: Also found that just connecting the reset pin of UNO board to Ground directly using jumper is sufficient to achieve this functionality.This would not need any sketch or capacitor !! But I am not very sure whether this can be recommended fully for use for long duration for debugging etc. (since it keeps the UNO Board on reset for a long duration)

Comments

zolv made it! (author)2017-02-03

Works perfectly. You are my hero!

NathanKing (author)2016-12-17

Thanks very much, I made it with no troubles. I didn't upload any code to the Uno and just used the jumper from Reset to Gnd (your Update 2) and worked like a charm. Well done!

RaihaanU (author)2016-09-15

I am attempting the same procedure but with an ATMega328-PU DIP chip - will it work?

rwijitharathna (author)2016-08-27

you're a life saver !!!
THANK YOU!!!!!!

atterack833 (author)2015-11-06

i just found out that if you select the pro mini from the board list and hold reset on the mini till it says uploading it works fine, just uploaded blink to my uno and a faster blink to my pro mini and all i had to do other than selecting the right board and erasing a zero was hold the reset button on the mini and release it when it said uploading, easy as can be unless someone makes a way to link the auto reset together

RubenFerol (author)atterack8332016-04-12

This really works. Thanks a lot!

alireza0000 (author)2016-04-08

Awesome Project , really nice

check this one out :

https://www.instructables.com/id/Arduino-Pro-Mini-Stand-Make-It-Reusable/

Krejcarek (author)2016-01-10

A short note on programming 3.3v pro with the uno:
Based on atmel spec's absolute max ratings, no pin should receive above Vcc +0.5v (in case 3.3v Pro his is 3.8v), thus by simply connecting as advised above can damage your little board. Go-around is by using a simple voltage divider resistance pair on the RX side.
To be able to use it with SMC Uno, reset pin should be wired to gnd. This is essential to keep the Uno "quite" thus their HIGH levels could also be harmfull for the Pro. So make sure RST pin is wired before powering up this setup.

zecojim (author)Krejcarek2016-01-27

what value of resistor is used in the voltage divider? can't clearly read it.. thanks in advance

Krejcarek (author)zecojim2016-02-17

I have used a 1k resistor pair. The point is here not to overload the output of the usb coupling ic, and be at least an order above digital pin input resistance.

Kevinmyers (author)2015-12-20

will this work on Arduino UNO that has a removable Atmel chip also there is no DTR on the uno board and recommended to connect from DTR mini to reset on the uno.

Please advise

Bhaskar V (author)Kevinmyers2016-01-07

The procedures discussed here will work with UNO board with removable chip. If you cannot locate the DTR signal track from USB to serial converter chip on UNO board ( so as to connect to the DTR pin of Pro Mini) , the procedure would still work but you have to reset the Pro mini board manually just prior to the upload of the sketch.

TheGreatResistor (author)2015-08-23

just what i was looking for

thanks

Raphango (author)2015-07-28

Thanks!

About This Instructable

8,098views

46favorites

License:

Add instructable to: