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.
  • 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


                        12

                        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