Electronic – arduino – How to use the SMD Arduino to program a separate DIP ATmega328

arduinoatmegabootloaderhardwaresurface-mount

I have an arduino with a surface mounted (SMD) microcontroller:

Arduino SMD edition

I know how to use a DIP arduino as a programmer for a DIP ATmega328. It's easy –you just pop your microcontroller in the holder.

However, with a surface-mount Arduino, there's no obvious. Desoldering the microcontroller is one way, but that's icky and destructive.

Can I use this Arduino as a programmer for a DIP ATmega328 without mortally damaging the board? If so, how?

Best Answer

Check the Arduino site for instructions to use your Arduino SMD board to program another Arduino board.

Arduino ISP diagram

To extend this to programming a DIP ATmega328, you would translate the 6 wires pictured to the corresponding pins on the DIP module.

  • D13 = PB5, pin 19
  • D12 = PB4, pin 18
  • D11 = PB3, pin 17
  • RESET = RESET, pin 1
  • 5V = AVCC and VCC, pins 20 and 7, respectively
  • GND = AGND and GND, pins 22 and 8, respectively

The Arduino UNO schematic would be helpful for reference for verification.

As pointed out, you would also need to connect a 16MHz crystal with 22pF capacitors on the chip that is being programmed. You would need to connect this to pins 9 and 10 on the chip you are programming as seen here:

Using an Arduino board to burn the bootloader onto an ATmega on a breadboard.