Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. How do I burn a bootloader to an 328p with UNO bootloader preinstalled?

How do I burn a bootloader to an 328p with UNO bootloader preinstalled?

Scheduled Pinned Locked Moved Troubleshooting
15 Posts 7 Posters 9.0k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Cliff KarlssonC Offline
    Cliff KarlssonC Offline
    Cliff Karlsson
    wrote on last edited by
    #1

    I am new to burning bootloaders and the "chips" I got was preloaded with UNO R3 Bootloader.

    I have:
    USBtiny
    USBasp
    Arduino UNO (With SMD)

    Can I use any of them somehow to flash a new bootloader without using a crystal?

    1 Reply Last reply
    0
    • sundberg84S Offline
      sundberg84S Offline
      sundberg84
      Hardware Contributor
      wrote on last edited by
      #2

      I'm using a Uno as Isp.https://www.arduino.cc/en/Tutorial/ArduinoISP works great.

      Controller: Proxmox VM - Home Assistant
      MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
      MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
      RFLink GW - Arduino Mega + RFLink Shield, 433mhz

      1 Reply Last reply
      0
      • Cliff KarlssonC Offline
        Cliff KarlssonC Offline
        Cliff Karlsson
        wrote on last edited by
        #3

        Ok, my Uno has a small smd chip so I guess that won't work for me

        mfalkviddM 1 Reply Last reply
        0
        • Cliff KarlssonC Cliff Karlsson

          Ok, my Uno has a small smd chip so I guess that won't work for me

          mfalkviddM Offline
          mfalkviddM Offline
          mfalkvidd
          Mod
          wrote on last edited by
          #4

          @Cliff-Karlsson I don't think that matters. You can use it anyway.

          1 Reply Last reply
          0
          • Nova KarlssonN Offline
            Nova KarlssonN Offline
            Nova Karlsson
            wrote on last edited by
            #5

            Ok, but in that case I should be able to use one of the other programmers to? The explenation I got from another thread was that the atmega chips has a preinstalled arduino uno bootloader that was burned using a crystal and therefore I need a crystal to be able to burn a new one.

            But I will go and buy an arduino uno clone today with a big socket so I hope that will fix it.

            1 Reply Last reply
            1
            • Cliff KarlssonC Offline
              Cliff KarlssonC Offline
              Cliff Karlsson
              wrote on last edited by
              #6

              Ah, damit. Accidentally logged in using my kids Google account when replying.

              1 Reply Last reply
              0
              • Cliff KarlssonC Offline
                Cliff KarlssonC Offline
                Cliff Karlsson
                wrote on last edited by Cliff Karlsson
                #7

                Can anyone write down the exact precedure of how to install a new bootloader on a atmega328p chip?

                I have a uno connected to another uno like this:
                0_1454323649159_Skärmklipp.PNG
                Only difference is that the lower arduino is connected from pin10 to the upper arduino reset-pin.

                Downloaded:
                atmega328_1a.hex (Optiboot for 9600baud at 1MHz)

                :107E0000112484B714BE81FFE6D085E08093810001
                :107E100082E08093C00088E18093C10086E0809377
                :107E2000C2008CE08093C4008EE0BFD0259A86E02B
                :107E300023EC3FEF91E0309385002093840096BBC4
                :107E4000B09BFECF1D9AA8958150A9F7EE24FF2480
                :107E5000AA24A394B5E0CB2EA1E1BA2EF3E0DF2E45
                :107E600098D0813461F495D0082FA5D0023829F13B
                :107E7000013811F485E001C083E083D07FC08234F3
                :107E800011F484E103C0853419F485E09CD076C0F8
                :107E9000853579F47ED0E82EFF247BD0082F10E0C2
                :107EA000102F00270E291F29000F111F84D07801E1
                :107EB00065C0863521F484E086D080E0DECF84364C
                :107EC00009F040C066D065D0082F63D080E0E81686
                :107ED00080E7F80618F4F701D7BEE895C0E0D1E0D6
                :107EE00058D089930C17E1F7F0E0EF16F0E7FF06A2
                :107EF00018F0F701D7BEE8955ED007B600FCFDCFBD
                :107F0000A701A0E0B1E02C9130E011968C9111977F
                :107F100090E0982F8827822B932B1296FA010C0160
                :107F2000A7BEE89511244E5F5F4FF1E0A038BF0770
                :107F300051F7F701C7BEE89507B600FCFDCFB7BE05
                :107F4000E8951CC0843761F424D023D0082F21D0B9
                :107F500032D0F70185917F0114D00150D1F70EC0C6
                :107F6000853739F428D08EE10CD085E90AD08FE02E
                :107F700084CF813511F488E018D01DD080E101D084
                :107F80006FCF982F8091C00085FFFCCF9093C600E3
                :107F900008958091C00087FFFCCF8091C00084FDD0
                :107FA00001C0A8958091C6000895E0E6F0E098E150
                :107FB000908380830895EDDF803219F088E0F5DF4B
                :107FC000FFCF84E1DECF1F93182FE3DF1150E9F7D5
                :107FD000F2DF1F910895282E80E0E7DFEE27FF27CC
                :027FE000099402
                :027FFE0000057C
                :0400000300007E007B
                :00000001FF
                

                And placed it in: ...\Arduino\hardware\arduino\avr\bootloaders\optiboot

                Added:

                ##############################################################
                # Add the new board to boards.txt (normally located at "C:\Program Files\Arduino\hardware\arduino\avr"
                # The *.bootloader.* etries only matters if you want to program bootloader (and fuses) from Arduino IDE. 
                # See http://www.engbedded.com/fusecalc (select Atmega328p) for interpretation of fuse values and how 
                # extended fuses are written in different applications (07h in Arduino IDE = FFh in Atmel studio).
                ##############################################################
                
                apm96.name=APM Optiboot internal 1MHz noBOD 9600baud
                
                apm96.upload.tool=avrdude
                apm96.upload.protocol=arduino
                apm96.upload.maximum_size=32256
                apm96.upload.speed=9600
                apm96.bootloader.tool=avrdude
                apm96.bootloader.low_fuses=0x62
                apm96.bootloader.high_fuses=0xde
                apm96.bootloader.extended_fuses=0x07
                apm96.bootloader.path=optiboot_v50
                apm96.bootloader.file=atmega328_1a.hex
                apm96.bootloader.unlock_bits=0x3F
                apm96.bootloader.lock_bits=0x2F
                apm96.build.mcu=atmega328p
                apm96.build.f_cpu=1000000L
                apm96.build.core=arduino
                apm96.build.variant=standard
                
                ##############################################################
                

                To ...\Arduino\hardware\arduino\avr\boards.txt

                Selecting Optiboot in Arduino IDE, selecting com-port and Arduino as ISP.

                Burn bootloader results in:

                "Error while burning bootloader: missing 'bootloader.tool' configuration parameter"

                This is the thread where I got my instructions from: my-slim-2aa-battery-node

                I also tried using a portable version of the arduino IDE and did the same things but I got this error instead:

                avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x18
                avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x66
                avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x86
                avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x66
                avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x66
                avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x7e
                avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x66
                avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe6
                avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xf8
                avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x06
                Fel vid bränning av bootloader. (error burning bootloader)

                m26872M 1 Reply Last reply
                0
                • m26872M Offline
                  m26872M Offline
                  m26872
                  Hardware Contributor
                  wrote on last edited by
                  #8

                  Problem is that there are so many ways to program bootloader and fuses ( and even more ways to do wrong). I've already told how I do it in the thread you refer to. Which environment, system, preferences do you have? Windows...? Arduino IDE v....? Hopefully some can share their experience for a similar setup.

                  I think the procedure of almost any combination is found with google. But it looks like you're doing about right already. I had similar issues like you when I started with bootloader programming. I gave up and went for completely different (and expensive) setup as I think you've already read. Thats my why of fast noob troubleshooting and solving - try all reasonable varations.

                  Anyhow, I think you should make it soon with what you already have. Did you try your USBtiny? And then, your Uno (with the target AVR), it has a nice standard 3x2pin ISP header, use it. I don't know anything about Arduino IDE "portable" version, but alternatives to try usually are v1.0.x and v1.6.x.

                  1 Reply Last reply
                  0
                  • Cliff KarlssonC Cliff Karlsson

                    Can anyone write down the exact precedure of how to install a new bootloader on a atmega328p chip?

                    I have a uno connected to another uno like this:
                    0_1454323649159_Skärmklipp.PNG
                    Only difference is that the lower arduino is connected from pin10 to the upper arduino reset-pin.

                    Downloaded:
                    atmega328_1a.hex (Optiboot for 9600baud at 1MHz)

                    :107E0000112484B714BE81FFE6D085E08093810001
                    :107E100082E08093C00088E18093C10086E0809377
                    :107E2000C2008CE08093C4008EE0BFD0259A86E02B
                    :107E300023EC3FEF91E0309385002093840096BBC4
                    :107E4000B09BFECF1D9AA8958150A9F7EE24FF2480
                    :107E5000AA24A394B5E0CB2EA1E1BA2EF3E0DF2E45
                    :107E600098D0813461F495D0082FA5D0023829F13B
                    :107E7000013811F485E001C083E083D07FC08234F3
                    :107E800011F484E103C0853419F485E09CD076C0F8
                    :107E9000853579F47ED0E82EFF247BD0082F10E0C2
                    :107EA000102F00270E291F29000F111F84D07801E1
                    :107EB00065C0863521F484E086D080E0DECF84364C
                    :107EC00009F040C066D065D0082F63D080E0E81686
                    :107ED00080E7F80618F4F701D7BEE895C0E0D1E0D6
                    :107EE00058D089930C17E1F7F0E0EF16F0E7FF06A2
                    :107EF00018F0F701D7BEE8955ED007B600FCFDCFBD
                    :107F0000A701A0E0B1E02C9130E011968C9111977F
                    :107F100090E0982F8827822B932B1296FA010C0160
                    :107F2000A7BEE89511244E5F5F4FF1E0A038BF0770
                    :107F300051F7F701C7BEE89507B600FCFDCFB7BE05
                    :107F4000E8951CC0843761F424D023D0082F21D0B9
                    :107F500032D0F70185917F0114D00150D1F70EC0C6
                    :107F6000853739F428D08EE10CD085E90AD08FE02E
                    :107F700084CF813511F488E018D01DD080E101D084
                    :107F80006FCF982F8091C00085FFFCCF9093C600E3
                    :107F900008958091C00087FFFCCF8091C00084FDD0
                    :107FA00001C0A8958091C6000895E0E6F0E098E150
                    :107FB000908380830895EDDF803219F088E0F5DF4B
                    :107FC000FFCF84E1DECF1F93182FE3DF1150E9F7D5
                    :107FD000F2DF1F910895282E80E0E7DFEE27FF27CC
                    :027FE000099402
                    :027FFE0000057C
                    :0400000300007E007B
                    :00000001FF
                    

                    And placed it in: ...\Arduino\hardware\arduino\avr\bootloaders\optiboot

                    Added:

                    ##############################################################
                    # Add the new board to boards.txt (normally located at "C:\Program Files\Arduino\hardware\arduino\avr"
                    # The *.bootloader.* etries only matters if you want to program bootloader (and fuses) from Arduino IDE. 
                    # See http://www.engbedded.com/fusecalc (select Atmega328p) for interpretation of fuse values and how 
                    # extended fuses are written in different applications (07h in Arduino IDE = FFh in Atmel studio).
                    ##############################################################
                    
                    apm96.name=APM Optiboot internal 1MHz noBOD 9600baud
                    
                    apm96.upload.tool=avrdude
                    apm96.upload.protocol=arduino
                    apm96.upload.maximum_size=32256
                    apm96.upload.speed=9600
                    apm96.bootloader.tool=avrdude
                    apm96.bootloader.low_fuses=0x62
                    apm96.bootloader.high_fuses=0xde
                    apm96.bootloader.extended_fuses=0x07
                    apm96.bootloader.path=optiboot_v50
                    apm96.bootloader.file=atmega328_1a.hex
                    apm96.bootloader.unlock_bits=0x3F
                    apm96.bootloader.lock_bits=0x2F
                    apm96.build.mcu=atmega328p
                    apm96.build.f_cpu=1000000L
                    apm96.build.core=arduino
                    apm96.build.variant=standard
                    
                    ##############################################################
                    

                    To ...\Arduino\hardware\arduino\avr\boards.txt

                    Selecting Optiboot in Arduino IDE, selecting com-port and Arduino as ISP.

                    Burn bootloader results in:

                    "Error while burning bootloader: missing 'bootloader.tool' configuration parameter"

                    This is the thread where I got my instructions from: my-slim-2aa-battery-node

                    I also tried using a portable version of the arduino IDE and did the same things but I got this error instead:

                    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x18
                    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x66
                    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x86
                    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x66
                    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x66
                    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x7e
                    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x66
                    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe6
                    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xf8
                    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x06
                    Fel vid bränning av bootloader. (error burning bootloader)

                    m26872M Offline
                    m26872M Offline
                    m26872
                    Hardware Contributor
                    wrote on last edited by
                    #9

                    @Cliff-Karlsson
                    @ahmedadelhosni posted a great tutorial. Looks like it's just what you asked for. Don't miss it!

                    ahmedadelhosniA 1 Reply Last reply
                    0
                    • m26872M m26872

                      @Cliff-Karlsson
                      @ahmedadelhosni posted a great tutorial. Looks like it's just what you asked for. Don't miss it!

                      ahmedadelhosniA Offline
                      ahmedadelhosniA Offline
                      ahmedadelhosni
                      wrote on last edited by
                      #10

                      @m26872 Thanks a lot for referring to the tutorial. I hope it helps him.

                      @Cliff-Karlsson You have two problems I guess. It is in the path of the .hex file.
                      You places it in \Arduino\hardware\arduino\avr\bootloaders\optiboot while the boards.txt is at
                      apm96.bootloader.file=atmega328_1a.hex

                      Two soultions:
                      1- Change it to apm96.bootloader.file=optioboot/atmega328_1a.hex
                      2- Better move the .hex location to \arduino-1.6.5-r5\hardware\arduino\avr\bootloaders

                      • The other thing is to choose APM Optiboot internal 1Mhz noBOD 9600baud" in the Tools > Board menu.

                      Please download IDE 1.6.5 and follow the steps in the tutorial and inform me if it solved your issue.

                      1 Reply Last reply
                      0
                      • Cliff KarlssonC Offline
                        Cliff KarlssonC Offline
                        Cliff Karlsson
                        wrote on last edited by
                        #11

                        @ahmedadelhosni said:

                        @Cliff-Karlsson You have two problems I guess. It is in the path of the .hex file.

                        Ok thanks. I only have one question. As my 328p have Uno bootloaders preinstalled I my understanding is that I need a external crystal to be able to burn a new bootloader, correct? If that is so do I still need an external crystal If I burn the bootloader using two arduino Uno's (one with 328p socket) ?

                        ahmedadelhosniA 1 Reply Last reply
                        0
                        • Cliff KarlssonC Cliff Karlsson

                          @ahmedadelhosni said:

                          @Cliff-Karlsson You have two problems I guess. It is in the path of the .hex file.

                          Ok thanks. I only have one question. As my 328p have Uno bootloaders preinstalled I my understanding is that I need a external crystal to be able to burn a new bootloader, correct? If that is so do I still need an external crystal If I burn the bootloader using two arduino Uno's (one with 328p socket) ?

                          ahmedadelhosniA Offline
                          ahmedadelhosniA Offline
                          ahmedadelhosni
                          wrote on last edited by
                          #12

                          @Cliff-Karlsson I didn't try this before. I tried using a breadboard. But I guess since the UNO board has a crystal then it is Ok as the atmega is already connected to the board.

                          1 Reply Last reply
                          0
                          • m26872M Offline
                            m26872M Offline
                            m26872
                            Hardware Contributor
                            wrote on last edited by
                            #13

                            Right. The Uno with the 328p socket provides the crystal.

                            1 Reply Last reply
                            0
                            • W Offline
                              W Offline
                              wergeld
                              wrote on last edited by
                              #14

                              I followed along with this tutorial: http://www.gammon.com.au/breadboard

                              It is very straight forward. If you need to add a clock to the chip you are trying to program you can do so via the "Alternate clock source" where he has put out an 8mhz signal on D9 you can use. All my bare-bones chips go through the process from gammon to start with then I mess with changing up any other options after.

                              1 Reply Last reply
                              0
                              • Cliff KarlssonC Offline
                                Cliff KarlssonC Offline
                                Cliff Karlsson
                                wrote on last edited by Cliff Karlsson
                                #15

                                I tried and failed almost every procedure. But in my last atempt I plugged in an USBtinyISP to my new(old) arduino with 328p socket. After clicking burn bootloader it took like 2 sec then it said that the burning was colmplete. The only visual clue that anything has changed is that the default blink-sketch that blinks the built in led have stoped blinking on the UNO and is solid now.

                                How can I test if everything is ok?

                                I tried uploading the blink sketch again to the UNO and the upload took alot longer and I got this error:

                                Board arduino:avr:apm96 doesn't define a 'build.board' preference. Auto-set to: AVR_APM96

                                But it all complied and uploaded correctly in the end and it started blinking again.

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                15

                                Online

                                11.7k

                                Users

                                11.2k

                                Topics

                                113.0k

                                Posts


                                Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • MySensors
                                • OpenHardware.io
                                • Categories
                                • Recent
                                • Tags
                                • Popular