Arduino IDE verbose output

Hey,

am Arduino beginner.

In the Arduino IDE preferences, I set the compiling and upload output to "verbose". It gave me this:

[The first part of it, I cannot display here because of forum post character limitation, but you should be able to recreate it in your IDE. I assume it that would be the compiling information. It continues as follows:]

avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/home/rh/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
User configuration file is "/home/rh/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM0
Using Programmer : arduino
Overriding Baud Rate : 115200
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : Arduino
Description : Arduino
Hardware Version: 3
Firmware Version: 4.4
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "/tmp/arduino_build_148163/P.ino.hex"
avrdude: writing flash (1894 bytes):

Writing | ################################################## | 100% 0.34s

avrdude: 1894 bytes of flash written
avrdude: verifying flash memory against /tmp/arduino_build_148163/P.ino.hex:
avrdude: load data flash data from input file /tmp/arduino_build_148163/P.ino.hex:
avrdude: input file /tmp/arduino_build_148163/P.ino.hex contains 1894 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.27s

avrdude: verifying ...
avrdude: 1894 bytes of flash verified

avrdude done. Thank you

I would like to know what this means roughly. Just for general understanding purposes.

Many thanks in advance!

(deleted)

The first part of it, I cannot display here because of forum post character limitation...

Post it in code tags (this button: [</>]) or just attach as txt.

spycatcher2k:
Roughly, it means your upload worked. if you have a more specific question, ask!

Don't need all the details, but a bit more would be nice. Please help me get an idea of what is happening here.

  1. a lot of details about the setup
  2. reading signature and detect it as ATmega328P, which is correct according your call
  3. writing the sketch image
  4. reading out for verification

Everything is OK!

BTW: Isn't it obvious from the log?

avrdude: Version 6.3-20190619

The Arduino IDE uses separate programs for many of the more complex operations. For "upload", it uses a program called AVRDude. When you start AVRDude, it tells you which version you're running.

System wide configuration file is "/home/rh/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"

And where its getting it's configuration from.

User configuration file is "/home/rh/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

This slightly worrisome part is because AVRDude is capable of reading additional per-user configuration from an additional config file. AVRDude has billions of options. The extra config is usually not needed and doesn't exist, which is fine...

Using Port : /dev/ttyACM0
Using Programmer : arduino
Overriding Baud Rate : 115200
AVR Part : ATmega328P

This is the important part of the AVRdude command, mostly derived from the command line that Arduino provides.

Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53

This is less important settings that AVRdude will use. In the case of upload via an Arduino bootloader, it's almost all completely irrelevant. It mostly comes from the config file. In the case of a hardware device programmer, these might provide finer control over the operation.

Memory Detail :
:
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

detailed properties of the chip that was selected. Also mostly from the config file. One of the purposes of avrdude's verbose debugging is debugging the config file...

Programmer Type : Arduino
Description : Arduino
Hardware Version: 3
Firmware Version: 4.4
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 us

Summary of information about the target chip and programmer, mostly read FROM the programmer.
In the case of the bootloader, this is mostly lies. Irrelevant lies. You'll see a lot of 3s. "Firmware Version" is actually a real value if you have Optiboot, so you can get an idea whether your Optiboot is "basic" or supports some of the newer features. The Arduino on my Desk currently says:

Firmware Version: 8.0

Official Arduinos with Optiboot should all have 4.4, which is unlikely to be upgraded :frowning:
Non-optiboot boards probably say 3.3 (more threes!)

avrdude: AVR device initialized and ready to accept instructions

AVRDude is successfully talking to the programmer and chip.

Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)

We read the chip "signature" to make sure it matches the chip we said we want to program.

avrdude: reading input file "/tmp/arduino_build_148163/P.ino.hex"
avrdude: writing flash (1894 bytes):
Writing | ################################################## | 100% 0.34s

avrdude: 1894 bytes of flash written

We read the .hex file for the sketch and write it to the AVR flash.

avrdude: verifying flash memory against /tmp/arduino_build_148163/P.ino.hex:
avrdude: load data flash data from input file /tmp/arduino_build_148163/P.ino.hex:
avrdude: input file /tmp/arduino_build_148163/P.ino.hex contains 1894 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.27s

avrdude: verifying ...
avrdude: 1894 bytes of flash verified

To make sure that the upload worked correctly, we read the flash back and compare it to the hex file we were trying to program. They SHOULD match. What you see here means that it worked.

avrdude done. Thank you

And it's done.