Broken PIN on ATMEGA328P

Hi all.

I am using Arduino2009 with ATMEGA328P. I use XBEE module thus I have to remove frequently the microcontroller to configure the XBEEs.

As these pins are pretty weak and my hands are pretty rough, I finally succeed in breaking a pin... :-/

According to this file (, the broken pin is pin 15( PB1 (OC1A/PCINT1), page 2, PDIP version).

Looking at pages 84/85, I read this : [color=#0000f*f]OC1A, Output Compare Match output: The PB1 pin can serve as an external output for the Timer/Counter1 Compare Match A. The PB1 pin has to be configured as an output (DDB1 set(one)) to serve this function. The OC1A pin is also the output pin for the PWM mode timer* function. PCINT1: Pin Change Interrupt source 1. The PB1 pin can serve as an external interrupt source.[/color]

This is a bit chinese for me. Can anyone explain me the kind of functionnality I lost ? I uploaded with sucess several program on the broken microcontroller and everything looks fine...

Thanks for your help.


You have lost the digital pin #9, so if you don't wire anything to pin9 then you will not notice a problem. If you wish a replacement processor chip with the Arduino bootloader program already burned into it, here is one source (there are others also);


If you order a new chip, save yourself a lot of hassle, and get one of these:

No more needing to remove the chip to program the XBee.

Actually, if you set things up right (based on my looking at schematics for the Arduino and such), you should be able to get yourself a protoboard sheild, a 28 pin ZIF socket, and the necessary caps and resonator to build your own "ZIF Shield"; all of these parts can be purchased thru Sparkfun (or thru other sources that are cheaper).

Basically, you are adding the very minimum parts needed to run the ATMega168/328 on the ZIF shield; you have to add the resonator circuitry because those pins aren't brought up on the headers, but everything else is (routing the lines might not be so easy, though?). You would remove the bootloaded processor from the Arduino board socket, then install the shield, then put the processor in the ZIF on the shield; everything else should work as normal (it is best to get a shield with the reset button, btw).

These parts shouldn't set you back more than $20.00 US.

Now, as far as your broken pin is concerned: Do you still have the pin, and how close to the body of the chip was it broken?

If you are cheap like me, and there is still a bit of metal left, you might try the following:

  1. First, mod the blink sketch to blink digital pin 9; verify its operation after you have uploaded the sketch (use a wire or something to get contact with whatever is left of the lead on the chip).

  2. Get a 28 pin IC socket (something with leads for thru-hole PCBs), and put it on a solderless breadboard.

  3. Insert the broken Arduino, then carefully insert the broken pin in its proper spot.

  4. Use a soldering iron and solder to make a solder bridge with the pin and the metal sticking out from the body of the IC.

  5. Carefully remove the socket with the chip still in place; insert it into the socket on the Arduino, power it up, and recheck the operation of the blink sketch.

  6. Carefully remove the socket with the chip from the Arduino, and apply a bit of superglue or non-conductive epoxy (use a toothpick) to the four corner pins and socket and let cure/dry (this is to provide mechanical stability).

  7. Congratulations, you are now the proud owner of a ghettoized Arduino chip! :)

I would use such a chip for breadboard stuff only...

The other tip is to get yourself an extra 28-pin socket, preferably one of the high-quality "machined pin" sockets. Insert your AVR into the spare socket, insert the assembly into the socket on the arduino. When you need to remove it, remove the socket/avr assembly instead of the bare avr...