I am creating a standalone Arduino using Atmega328P. The circuit is below.

enter image description here

However, I'm seeing

avrdude: Device signature = 0x000000 error 

whenever I try to burn the Arduino Uno bootloader. I'm assuming that the chip isn't responding to the SPI lines?

I know I'm doing something wrong but I can't see it.

My connections are

SCLK --> Arduino Pin 13
MISO --> Arduino Pin 12
MOSI --> Arduino Pin 11
Reset --> Arduino Pin 10

VIN --> 5V

I'm using a true Arduino UNO as the ISP. I've uploaded the ArduinoISP code into it, choose Arduino as ISP as Programmer and Arduino Uno on boards. The programming connections are just wired from Arduino UNO pins to some vias I've purposely added on the layout.

As mentioned in the comments, I'm adding an image of the layout here.

enter image description here

I've tried this very circuit on an atmega328P soldered in a TQFP adapter and with the other components soldered on the adapter as well (looks like a jungle of wires) and somehow I was able to burn the bootloader.

Hoping someone can point out what's wrong.

  • 1
    Are you trying to run the ATmega at 3.3 V on a 16 MHz crystal?
    – tttapa
    Commented Oct 15, 2018 at 7:34
  • 1
    Yes. Will there be a problem on doing it @tttapa?
    – noobiejp
    Commented Oct 15, 2018 at 7:53
  • 2
    Check the datasheet, that voltage/frequency combination is out of spec. Either raise the voltage, or lower the frequency.
    – tttapa
    Commented Oct 15, 2018 at 8:15
  • 2
    It's not possible to see on that schematic how your programming device is connected up to the board. Also PCB layout images could be useful to check for mistakes.
    – Majenko
    Commented Oct 15, 2018 at 9:10
  • 1
    C3 should be 0.1uF for Serial downloads. D10 from the ISP connects to Reset directly, not thru the cap.
    – CrossRoads
    Commented Oct 15, 2018 at 13:15

2 Answers 2


It seems that you are using a lm317 voltage regulator to power your atmega328p MCU but I think you forgot the part that lm317 needs feedback of 1.25v with voltage divider network to set its variable output voltage in the schematic you have connected adj pin of lm317 directly to GND. S0 check your output vtg from your regulator and another issue voltage regulator only works great when difference between regulating voltage is lower then the supply voltage.


From the schematic it appears you are using a LM317 voltage regulator from USB V_IN. The voltage drop is too large and your issues may be due to brown out, i.e. insufficient voltage: See this SE post. You can solve it by using a lower dropout regulator (5 V to 3.3 V) or just use the standard USB 5 V, bypass V_IN to V_CC.

  • Hi! I've already tried bypassing the regulator by removing it and tying VIN to VCC. So the whole VCC line will get 5V straight from USB. However, still not burning the bootloader.
    – noobiejp
    Commented Oct 16, 2018 at 15:19

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.