Using an Arduino Micro as an ISP

Hi all,

I've got a project I've been using a Due for but I need to cut the boot time down, this tallied with a couple of changes I want to make for the next board I've decided to swap to an Uno to run the main code, programmed via ISP to drop the boot loader and see some faster boot times.

Basically - Can an Arduino Micro be used as an ISP to program an Uno R3 board? If so, how?

Thanks,

Daniel

Here's one way, I believe it will run on a Micro

ardler_dan:
Basically - Can an Arduino Micro be used as an ISP to program an Uno R3 board? If so, how?

Using Arduino as ISP (File->Examples->ArduinoISP) to Burn Bootloader (Arduino 1.6.x)

ISP Arduino: These instructions should work on any Arduino compatible with a six-pin ICSP header (UNO, MEGA, Leonardo, etc) and a USB connection.

Target Arduino: These instructions should work on any Arduino compatible with a six-pin ICSP header and an ATmega8, 168, 328P, or 32u4 processor.

Step 1: INSTALL ArduinoISP SKETCH
Connect the USB cable to the PC and ISP Arduino

Upload the ArduinoISP sketch to the ISP Arduino.

  • File->Examples->ArduinoISP

  • Change the line:

  • #define RESET SS

  • to:

  • #define RESET 10

  • Tools->Board->(select your ISP Arduino's type)

  • If present: Tools->Processor->(your ISP Arduino's processor and speed)

  • Tools->Port->(serial port for ISP Arduino)

  • File->Upload

Step 2: DISABLE AUTO-RESET ON THE ISP ARDUINO
Skip this step if the ISP Arduino has a 32u4 processor like the Leonardo or Micro. Otherwise, add a 10uF capacitor to the ISP Arduino with the positive side of the capacitor going to Reset and the negative side of the capacitor going to Ground.

Step 3: CONNECT THE ISP ARDUINO TO THE TARGET ARDUINO

ICSP Header Pinout:

1:MISO 2:VCC
3:SCK 4:MOSI
5:/RESET 6:GROUND

Wire the pins like this:

ISP
Arduino
Target
Arduino
ICSP1 ICSP1
ICSP2 ICSP2
ICSP3 ICSP3
ICSP4 ICSP4
Pin 10 ICSP5
ICSP6 ICSP6

In other words: ICSP pins 1, 2, 3, 4, and 6 connect directly and the Target Arduino's ICSP5 (/RESET) connects to digital pin 10 on the ISP Arduino.

Step 4: READY TO BURN!

Now that you have everything wired you can attempt to burn a bootloader.

Note that even if you don't plan to use the serial bootloader (using "Upload Using Programmer" instead) you still need to go through this process once on each processor to set the hardware configuration fuses. Factory fresh chips run at 1 MHz so if your Arduino is running VERY slow someone may have skipped this step.

  • Tools->Board->(select your target Arduino type)
  • If present: Tools->Processor->(your target Arduino processor and speed)
  • Tools->Port->(serial port for ISP Arduino)
  • Tools->Programmer->Arduino as ISP
  • Tools->Burn Bootloader

If all has gone well: SUCCESS!

I'm trying to use a Micro (I have 5) as an ISP to bootload another Micro. I ruined the bootloader on 4 of them loading a big program - it loads and works, but the IDE no longer recognizes the Micro on the port, So I figure I have to both be able to burn a boatloader, and to load my program using Arduino as ISP (Micro to micro).

I used a new micro from Arduino (not a clone) out of the box as ISP and followed as closely as possible (obviously not enough) JohnWasser's instructions, the 4th or 5th entry in this thread.

I get, after a minute or so, a response that it tried 10 times a "not in sync=0x03" message.

I have tried using a due and a mega2560 as ISP, also without success. I'm getting desparate, my project requires a very light weight (not a drone) unit with a wireless interface. All of that works, except I cannot upload any change except by buying a new Micro for each try.

I got an "old topic" warning but I don't know how to start a new one.

I got the bootloader loaded onto a previously bad Micro using the instuctions and a mega 2560 including a 100 uF cap between +5 and ground. It turns out that I didn't see the "white dot near the ISP pin 1" message before I had tried to load the bootloader with the mega2560 as ISP, so the Micro was wired up wrong. The now bootloaded Micro loads and runs "blink' so the new bootloader looks good.

I cannot, however, load a sketch (again "blink") using the mega 2560 as ISP technique. The upload just hangs with the "uploading" message showing, no blink leds on th Mega2560 like there was during the bootloader upload. While i can run my large program now, I presume I will have to reload the bootloader after each trial run of the application.

Elmodriver:
I got an "old topic" warning but I don't know how to start a new one.

There's a "New Topic" button at the top of every forum section.

Elmodriver:
I cannot, however, load a sketch (again "blink") using the mega 2560 as ISP technique. The upload just hangs with the "uploading" message showing, no blink leds on th Mega2560 like there was during the bootloader upload.

Did you do Sketch > Upload Using Programmer? Note that if you do that you will overwrite the bootloader and can't do a standard upload via USB until you have done a Tools > Burn Bootloader again.

Elmodriver:
While i can run my large program now, I presume I will have to reload the bootloader after each trial run of the application.

Why do you think that?

Lightweight with wireless? Have you considered some variant of ESP8266?