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?


2 Answers 2


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.

  • \$\begingroup\$ Will this work with just a ATmega on a breadboard? Are the pin numbers for the pins on the ATmega pin? What is the prefix "PB" also? \$\endgroup\$ Commented Apr 9, 2013 at 23:19
  • \$\begingroup\$ You need to add a crystal to the atmega328 and connect the 2 VCC pins and the 2 GND pins of the atmega. \$\endgroup\$
    – moenad
    Commented Apr 9, 2013 at 23:21
  • \$\begingroup\$ @n0idea - good point, I've updated the post. \$\endgroup\$
    – Robert
    Commented Apr 9, 2013 at 23:36
  • 1
    \$\begingroup\$ @AnnonomusPerson - PA, PB, etc is shorthand for Port A, Port B, which is what you will find in the datasheet for the ATmega328. That is the chip pin names, independent of Arduino naming. \$\endgroup\$
    – Robert
    Commented Apr 9, 2013 at 23:37

Another solution is to use the ISP Shield from Evil Mad Scientist. The kit costs about $13 and takes about 30 minutes to solder together.

If you are planning to program many parts, the ZIF (Zero Insertion Force) socket on the ISP Shield will definitely pay off. Even if you don't purchase the shield, consider a ZIF socket for programming more than a handful of parts.

ISP Shield from Evil Mad Scientist


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.