Same chip - different signature?

I have an ATMEGA328-PU (no “P”, the non-pico power chip) in an Arduino Uno R3 board.

Using this command:

** **~> avrdude -p atmega328  -c arduino -P /dev/ttyACM0 -v** **

I get this error message:

** **avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = [color=red]0x1e950f[/color] (probably m328p) avrdude: Expected signature for ATmega328 is 1E 95 14** **

However, looking at the same chip on the same board via the ISP connector:

** **~> avrdude -p atmega328  -c avrispmkII -v** **

It correctly confirms the signature:

** **avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = [color=red]0x1e9514[/color] (probably m328)** **

How can this be? Why does the AVRISP mkII read correctly and the arduino programmer not?
Is the arduino programmer actually reading the chip? Or is it just assuming that there is an ATMEGA328P in the socket!!

Regards, Martin

mprowe:
...and the arduino programmer not?

What is an "arduino programmer"?

When being read over serial, that’s being reported by the bootloader. The bootloader is lying.

(coding badly - I think he’s likely referring to the “-c arduino”, ie, the “programmer” from avrdude’s perspective - although in reality, there is nothing that I would call a programmer involved)

Since the Arduino IDE does not support the '328 non-P out of the box, even through it is (for almost all purposes) interchangable with the '328p, it is common to have the bootloader for a '328 report that it was a '328p, so that the Arduino IDE could program it without the user having to install a third party hardware definition or modify boards.txt.

Thank you DrAzzy,

Regards....