Arduino UNO bootloader question

Post here about your Arduino projects, get help - for Adafruit customers!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
Kid347
 
Posts: 6
Joined: Wed May 03, 2017 10:48 pm

Arduino UNO bootloader question

Post by Kid347 »

I have a number of Arduino UNO R3 boards, and I want to first check and see what bootloader is on the chips, and then I want to upgrade to the latest optiboot 8.0. What would be the best product to purchase to make the upload/install optiboot 8.0 the easiest? Thank you in advance.

User avatar
bidrohini
 
Posts: 202
Joined: Thu Oct 20, 2022 10:03 am

Re: Arduino UNO bootloader question

Post by bidrohini »

https://www.instructables.com/Atmega328 ... ing-Guide/
You can find this guide helpful in this regard.

User avatar
Kid347
 
Posts: 6
Joined: Wed May 03, 2017 10:48 pm

Re: Arduino UNO bootloader question

Post by Kid347 »

Thank you for your reply, but I did not see how to find what bootloader is currently installed. Any suggestions.

User avatar
bidrohini
 
Posts: 202
Joined: Thu Oct 20, 2022 10:03 am

Re: Arduino UNO bootloader question

Post by bidrohini »

I found the following suggestion. You can check if it works:

You can check which bootloader is installed on an Arduino UNO R3 by using the Arduino IDE. Follow these steps:

Connect the Arduino to your computer.
Open the Arduino IDE.
Go to the "Tools" menu, select "Board" and then choose "Arduino/Genuino Uno."
Go to the "Tools" menu, and select "Serial Monitor."
Power cycle the Arduino (unplug and plug it back in).
Look for the message in the Serial Monitor that says "Bootloader Version."

User avatar
westfw
 
Posts: 2006
Joined: Fri Apr 27, 2007 1:01 pm

Re: Arduino UNO bootloader question

Post by westfw »

Look for the message in the Serial Monitor that says "Bootloader Version."
I'm pretty sure that there is no "bootloader version" from Uno-class Arduinos.

If you have a device programmer (or another Arduino running Arduino as ISP), you can look at the last two bytes of the flash memory:
> /Applications/Arduino-1.8.19.app/Contents/Java/portable/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude -C/Applications/Arduino-1.8.19.app/Contents/Java/portable/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -patmega168 -cstk500v1 -P/dev/cu.usbserial-FTD61T6Q -b19200 -Uflash:r:foo.hex:i
:
Reading | ################################################## | 100% 12.27s
avrdude: writing output file "foo.hex"
avrdude: safemode: Fuses OK (E:F8, H:DD, L:FF)
avrdude done. Thank you.

> tail foo.hex

:203FA0008091C6000895E0E6F0E098E1908380830895EDDF803219F088E0F5DFFFCF84E1D5
:203FC000DFCFCF93C82FE3DFC150E9F7CF91F1CFFC010A0167BFE895112407B600FCFDCFA2
:203FE000667029F0452B19F481E187BFE8950895FFFFFFFFFFFFFFFFFFFFFFFFFFFF030896
:00000001FF
That 0308 at the end of the .hex file is the version. (Once it's byte-swapped: v8.3)

There is also https://github.com/WestfW/fusebytes
But it's unlikely to work on "production" Arduinos because they are paranoid and don't let the application read the bootloader memory section.

User avatar
Kid347
 
Posts: 6
Joined: Wed May 03, 2017 10:48 pm

Re: Arduino UNO bootloader question

Post by Kid347 »

Thank you for your reply, I will give it a try. When I upload a sketch in the message area it says hardware version 4.4 do you know what this means?

User avatar
westfw
 
Posts: 2006
Joined: Fri Apr 27, 2007 1:01 pm

Re: Arduino UNO bootloader question

Post by westfw »

When I upload a sketch in the message area it says hardware version 4.4 do you know what this means?
Well, that's embarrassing. I entirely forgot that if you have "verbose" messages about uploading configured in your Arduino preferences, it actually reports the bootloader version under the "Firmware Version" label:

Code: Select all

Applications/Arduino-1.8.13.app/Contents/Java/portable/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude -C/Applications/Arduino-1.8.13.app/Contents/Java/portable/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -v -V -patmega328p -carduino -P/dev/cu.usbserial-A20e1Kh4 -b115200 -D -Uflash:w:/tmp/Arduino1.8.13Build/fusebytes.ino.hex:i 

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 "/Applications/Arduino-1.8.13.app/Contents/Java/portable/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/Volumes/MacOS/HD-Users/BillW/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbserial-A20e1Kh4
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P

    [blah blah blah]
    
         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 8.1
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us
A bunch of the other values are essentially the randomish number "3", because that saves space in the bootloader binary, and it keeps avrdude happy.

Factory Arduinos generally ship with version 4.4 of the bootloader.
There really haven't been a lot of changes since 4.4 that are relevant to the ATmega328; most of the optiboot edits have added chips. or adapted to new compiler versions or made the build process more flexible.
You would get the ability to write flash from the application, and examine the original reset cause, if one of those is what you are looking for.

User avatar
Kid347
 
Posts: 6
Joined: Wed May 03, 2017 10:48 pm

Re: Arduino UNO bootloader question

Post by Kid347 »

Thank you, that is what I was looking for. it looks like all my UNO boards are using firmware 4.4. I will be updating a few to optiboot 8.0 . Finally got my answer.

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino”