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
    #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


                      14

                      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