AtMega 328P-PU + FT232RL + Arduino 1.0+ = Invalid device signature (0x000000)

Hi, I am a newbie that tries not to ask questions until all options are explored but now, I have reached the point when I need to ask for some help. In short, I have made custom PCB based on 328P-PU with FT232RL and everything works fine on Arduino ver. 0022. I can upload sketches, auto-reset before upload works fine but in Arduino versions 1.0 and above I get error Invalid device signature (0x000000) During last couple of weeks none of these helped: - Triple checked all wiring - Changed differed version of bootloaders on chip - Changed boards.txt to fit device signature of the chip - Changed programmer from arduino to stk500 - Followed many guides that explains how this can be solved

But still no luck to resolve it. I hate the fact that with ver.0022 everything works fine.

So far I have reached conclusion that this error could be related to -V "Universal command" described in this topic:,99478.msg746079.html#msg746079 which is not supported in Optiboot.

Any help or hint is appreciated, Thank you in advance

In addition to my previous post, I will summarize some of the useful links to some guides that could be useful

Arduino: Signature and stk500_getsync() not in sync resp=0×30 or 0×00 Issues (ATMega328P + ATMega8u2)

Same problem as mine descibed here:,99478.0.html

Issue with auto-reset on Uno boards:

I have reached conclusion that this error could be related to -V "Universal command"

yes, it looks like the newer versions of avrdude make much more extensive use of the "universal" command than previous versions, causing optiboot (which does not support this at all) and ATmegaBoot (which contains a very limited implementation) to fail in mysterious-looking ways. See also:

try making sure that your upload.protocol is "arduino" instead of "stk500"

thx for reply, I red that post before and this led to conclusion that I will not be able to have Optiboot loader on my chip. So for my case I found working solution: Uploaded "Arduino Duemilanove w/ATMega328" bootloader and it is working now with versions 1.0 and up. Only thing that needs to be changed is protocol from "arduino" to "stk500".

For now this will be my solution so maybe in next version of Optiboot this will be implemented. Thanks for support anyway

maybe in next version of Optiboot this will be implemented.

Very unlikely. There isn't room. I don't really understand avrdude's apparent desire to use the "universal" command to implement most of the "talk to the chip" features. I guess that in theory it can reduce the size of the bootloader, IF the bootloader actually implements many of the features that avrdude provides. But in the case of optiboot, most of the commands that it has to implement are for talking to the bootloader rather than talking to the chip. (also, by having a separate "read signature" command, optiboot can lie, thereby "solving" the 328 vs 328p problem, which would be more difficult if avrdude used the universal command for reading the signature.)