Arduino Forum

Using Arduino => Microcontrollers => Topic started by: hotshotharry on Apr 16, 2011, 05:34 pm

Title: bootloading the atmega328-pu
Post by: hotshotharry on Apr 16, 2011, 05:34 pm
So recently i ordered a bunch of atmega chips (atmega328-pu as opposed to the atmega328p pico power series) as i dont need the extra power saving gains so i decided to save myself some money. However I had a heck of a time trying to burn the bootloader on them and it took me several hours to find the info i needed so i thought i would just archive the info for anyone looking for the same. If you have any tips or suggestions please add them as i am still quite new to all of this. The chips loaded in this process seem to work fine ...

Please note this is for the non picopower atmega328-pu chips  signature = 0x1e 0x95 0x14 (1E 95 14) vs atmega328p-xx (1E 95 0F)

I tried to load the optiboot and the demillinauve bootloaders via the arduino ide v22 but all i could get was this message - Expected signature for ATMEGA328P is 1E 95 0F Double check chip, or use -F to override this ...

After much searching I found you need to modify the avrdude.conf file ( mac = arduino -show package contents - resources/java/hardware/tools/avr/etc )

Make a backup copy of this file in case something gets messed up.

Open the file with text edit and about 2/3 the way down under atmega 328 find   " signature       = 0x1e 0x95 0x0F; "

change the 0F to 14 save it and restart the arduino ide, you should now be able to bootload your atmega328-pu chips.

Make sure to change the 14 back to OF and restart when your done loading the bootloaders otherwise it will fail with - Expected signature for ATMEGA328P is 1E 95 14 Double check chip, or use -F to override this ...

Good luck  :)


Title: Re: bootloading the atmega328-pu
Post by: o_a_ravi on Apr 27, 2011, 08:21 am
Thanks for the elaborate explanation. This was very helpful.

Hopefully the next release of Arduino should support the MCU atmega328 (currently supports only atmega328p). Its quite annoying to keep changing the hex value, everytime we switch the chips/boards.  :~
Title: Re: bootloading the atmega328-pu
Post by: trouinky on Aug 31, 2011, 04:45 pm
The technique of modifying the avrdude.conf file to load the bootloader on this MCU worked flawlessly using Ardunio-22. THANKS TEN TONS!!!!

BUT, is there a way to modify another settings file (maybe boards.txt???) to allow uploading of sketches to this chip with the Arduino programming interface? I get the same error that occurs when trying to load the bootloader to this chip with an unmodified avrdude.conf file...

I did modify the boards.txt file, noting a 328 chip (vs. 328p), but the sketch won't compile.
Title: Re: bootloading the atmega328-pu
Post by: retrolefty on Aug 31, 2011, 05:04 pm

The technique of modifying the avrdude.conf file to load the bootloader on this MCU worked flawlessly using Ardunio-22. THANKS TEN TONS!!!!

BUT, is there a way to modify another settings file (maybe boards.txt???) to allow uploading of sketches to this chip with the Arduino programming interface? I get the same error that occurs when trying to load the bootloader to this chip with an unmodified avrdude.conf file...

I did modify the boards.txt file, noting a 328 chip (vs. 328p), but the sketch won't compile.


See my last posting on: http://arduino.cc/forum/index.php/topic,58984.msg528206.html#msg528206

Once you have a arduino bootloader installed on a non p 328 chip, you need no further modifications to any arduino files to compile and upload to the chip from the arduino IDE.

Lefty
Title: Re: bootloading the atmega328-pu
Post by: ua100k on Sep 01, 2011, 02:45 am

So recently i ordered a bunch of atmega chips (atmega328-pu as opposed to the atmega328p pico power series) as i dont need the extra power saving gains so i decided to save myself some money. However I had a heck of a time trying to burn the bootloader on them and it took me several hours to find the info i needed so i thought i would just archive the info for anyone looking for the same. If you have any tips or suggestions please add them as i am still quite new to all of this. The chips loaded in this process seem to work fine ...

Please note this is for the non picopower atmega328-pu chips  signature = 0x1e 0x95 0x14 (1E 95 14) vs atmega328p-xx (1E 95 0F)

.....deleted for brevity........

change the 0F to 14 save it and restart the arduino ide, you should now be able to bootload your atmega328-pu chips.

Make sure to change the 14 back to OF and restart when your done loading the bootloaders otherwise it will fail with - Expected signature for ATMEGA328P is 1E 95 14 Double check chip, or use -F to override this ...

Good luck  :)



FYI. I used the avrisp MK II device to burn the chips. I only had to change this conf file and not change it back for future uploads of sketches. 
For windows users' avrdude.conf is here. C:\Documents and Settings\a\My Documents\Arduino\arduino-0022\hardware\tools\avr\etc


Also I was able to load the sketch without the bootloader. I was able to trigger the reset on the switch and have the program load and run without issues. The timing was off without the bootloader, no doubt certain settings were off, i.e. factory defaults.

This uses the winusb driver so that requires loaded before you can use the avrisp with arduino ide. The studio4 USB driver does not work and the whole studio4 environment and driver has to be uninstalled, the winusblib has to be installed to use the arduino IDE and avrisp MK II to burn bootloaders and upload sketches. It also works with atmega328p (if you have the right signature in avrdude.conf file).

Enjoy.

Title: Re: bootloading the atmega328-pu
Post by: westfw on Sep 01, 2011, 10:51 am
I've added (probably) support for the 328-pu chips to the "optiLoader" sketch, but I don't have any 328 (non-328P) chips to try it out on.  If someone would like to give it a try, it is downloadable from This Google Docs Link (https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B6dMB5dovDUZNjU0YmViMWYtZDBmZS00ODMxLWI1YzYtNjM3YjFjYjIxYzg2&hl=en_US)

OptiLoader is somewhat described here: http://arduino.cc/forum/index.php/topic,64105.msg481752.html#msg481752
It autodetects the target chip type and downloads an appropriate optiboot automagically.  4_4a does mega8, mega168, mega328p, and mega328 (the latter two get identical bootloaders, and will then identify as "Uno" to the Arduino IDE.  So far, no one has found any relevant differences between 328 and 328p, other than making people pay attention.)
Title: Re: bootloading the atmega328-pu
Post by: extent on Sep 01, 2011, 02:16 pm
I didn't try running that version you just posted, but the entry for the 328 is exactly the same as the modification I made to the older optiLoader to do my chips.  So there shouldn't be any reason why it won't work.

Title: Re: bootloading the atmega328-pu
Post by: SufiBrett on Sep 20, 2011, 06:19 pm
Thanks a lot hotshotharry for posting this!  I was scratching my head for awhile trying to get this to work, and when I finally talked to my board from avrdude directly I could see what the signature was, and realized the difference in signature from the 328p - which led me here.  I agree there should be a way to integrate this into the IDE so that you don't have to switch back and fourth... should be easy to do.  I'll take a look at doing it and post back if I get it done.

In my case, I had built my own Arduino Pro Mini using an ATMEGA328-AU TQFP-32 package part, and was programming the bootloader via the Arduino v22 IDE with a sparkfun AVR Pocket Programmer (USBTinyISP compatible)
Title: Re: bootloading the atmega328-pu
Post by: Cranium on Oct 07, 2011, 04:43 am
Thank you!  I just received an order of 10 of these and started to panic when I got the error about it stating the signature was wrong.

This worked perfectly!
Title: Re: bootloading the atmega328-pu
Post by: kaor on Jan 21, 2012, 04:43 pm
I met the same problem, I wonder why Arduino developers ignore that 328 chip.
OptiLoader doesn't help all the time, for example I needed to burn "ATmega328 on a breadboard (8 MHz internal clock)".
Title: Re: bootloading the atmega328-pu
Post by: Jayraj on Jan 31, 2012, 02:28 pm

So recently i ordered a bunch of atmega chips (atmega328-pu as opposed to the atmega328p pico power series) as i dont need the extra power saving gains so i decided to save myself some money. However I had a heck of a time trying to burn the bootloader on them and it took me several hours to find the info i needed so i thought i would just archive the info for anyone looking for the same. If you have any tips or suggestions please add them as i am still quite new to all of this. The chips loaded in this process seem to work fine ...

Please note this is for the non picopower atmega328-pu chips  signature = 0x1e 0x95 0x14 (1E 95 14) vs atmega328p-xx (1E 95 0F)

I tried to load the optiboot and the demillinauve bootloaders via the arduino ide v22 but all i could get was this message - Expected signature for ATMEGA328P is 1E 95 0F Double check chip, or use -F to override this ...

After much searching I found you need to modify the avrdude.conf file ( mac = arduino -show package contents - resources/java/hardware/tools/avr/etc )

Make a backup copy of this file in case something gets messed up.

Open the file with text edit and about 2/3 the way down under atmega 328 find   " signature       = 0x1e 0x95 0x0F; "

change the 0F to 14 save it and restart the arduino ide, you should now be able to bootload your atmega328-pu chips.

Make sure to change the 14 back to OF and restart when your done loading the bootloaders otherwise it will fail with - Expected signature for ATMEGA328P is 1E 95 14 Double check chip, or use -F to override this ...

Good luck  :)



thankyou man
Title: Re: bootloading the atmega328-pu
Post by: SirNickity on Feb 23, 2012, 10:08 am
As a variation on this theme, I copied the existing ATmega328P entry in avrdude.conf, modified the id, desc, and signature to match the 328, and pasted it before the existing entry.


Code: [Select]
#------------------------------------------------------------
# ATmega328
#------------------------------------------------------------

part
    id = "m328";
    desc = "ATMEGA328";
    has_debugwire = yes;
    flash_instr = 0xB6, 0x01, 0x11;
    eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  0x99, 0xF9, 0xBB, 0xAF;
    stk500_devcode = 0x86;
    # avr910_devcode = 0x;
    signature = 0x1e 0x95 0x14;
    pagel = 0xd7;
    bs2 = 0xc2;
    chip_erase_delay = 9000;
    pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";

    chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
"x x x x x x x x x x x x x x x x";

    timeout = 200;
    stabdelay = 100;
    cmdexedelay = 25;
    synchloops = 32;
    bytedelay = 0;
    pollindex = 3;
    pollvalue = 0x53;
    predelay = 1;
    postdelay = 1;
    pollmethod = 1;

    pp_controlstack =
0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
    hventerstabdelay = 100;
    progmodedelay = 0;
    latchcycles = 5;
    togglevtg = 1;
    poweroffdelay = 15;
    resetdelayms = 1;
    resetdelayus = 0;
    hvleavestabdelay = 15;
    resetdelay = 15;
    chiperasepulsewidth = 0;
    chiperasepolltimeout = 10;
    programfusepulsewidth = 0;
    programfusepolltimeout = 5;
    programlockpulsewidth = 0;
    programlockpolltimeout = 5;

    memory "eeprom"
paged = no;
page_size = 4;
size = 1024;
min_write_delay = 3600;
max_write_delay = 3600;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 1 0 1 0 0 0 0 0",
       " 0 0 0 x x x a9 a8",
       " a7 a6 a5 a4 a3 a2 a1 a0",
       " o o o o o o o o";

write = " 1 1 0 0 0 0 0 0",
      " 0 0 0 x x x a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";

loadpage_lo = " 1 1 0 0 0 0 0 1",
      " 0 0 0 0 0 0 0 0",
      " 0 0 0 0 0 0 a1 a0",
      " i i i i i i i i";

writepage = " 1 1 0 0 0 0 1 0",
    " 0 0 x x x x a9 a8",
    " a7 a6 a5 a4 a3 a2 0 0",
    " x x x x x x x x";

mode = 0x41;
delay = 20;
blocksize = 4;
readsize = 256;
    ;

    memory "flash"
paged = yes;
size = 32768;
page_size = 128;
num_pages = 256;
min_write_delay = 4500;
max_write_delay = 4500;
readback_p1 = 0xff;
readback_p2 = 0xff;
read_lo = " 0 0 1 0 0 0 0 0",
  " 0 0 a13 a12 a11 a10 a9 a8",
  " a7 a6 a5 a4 a3 a2 a1 a0",
  " o o o o o o o o";

read_hi = " 0 0 1 0 1 0 0 0",
  " 0 0 a13 a12 a11 a10 a9 a8",
  " a7 a6 a5 a4 a3 a2 a1 a0",
  " o o o o o o o o";

loadpage_lo = " 0 1 0 0 0 0 0 0",
      " 0 0 0 x x x x x",
      " x x a5 a4 a3 a2 a1 a0",
      " i i i i i i i i";

loadpage_hi = " 0 1 0 0 1 0 0 0",
      " 0 0 0 x x x x x",
      " x x a5 a4 a3 a2 a1 a0",
      " i i i i i i i i";

writepage = " 0 1 0 0 1 1 0 0",
    " 0 0 a13 a12 a11 a10 a9 a8",
    " a7 a6 x x x x x x",
    " x x x x x x x x";

mode = 0x41;
delay = 6;
blocksize = 128;
readsize = 256;

    ;

    memory "lfuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
       "x x x x x x x x o o o o o o o o";

write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
      "x x x x x x x x i i i i i i i i";
    ;

    memory "hfuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
       "x x x x x x x x o o o o o o o o";

write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
      "x x x x x x x x i i i i i i i i";
    ;

    memory "efuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
       "x x x x x x x x x x x x x o o o";

write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
      "x x x x x x x x x x x x x i i i";
    ;

    memory "lock"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
       "x x x x x x x x x x o o o o o o";

write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
      "x x x x x x x x 1 1 i i i i i i";
    ;

    memory "calibration"
size = 1;
read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
       "0 0 0 0 0 0 0 0 o o o o o o o o";
    ;

    memory "signature"
size = 3;
read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
       "x x x x x x a1 a0 o o o o o o o o";
    ;
;


Also, added a new entry in boards.txt like so:

Code: [Select]
##############################################################

uno328.name=Arduino Uno w/ ATmega328 (non-P)
uno328.upload.protocol=arduino
uno328.upload.maximum_size=32256
uno328.upload.speed=115200
uno328.bootloader.low_fuses=0xff
uno328.bootloader.high_fuses=0xde
uno328.bootloader.extended_fuses=0x05
uno328.bootloader.path=optiboot
uno328.bootloader.file=optiboot_atmega328.hex
uno328.bootloader.unlock_bits=0x3F
uno328.bootloader.lock_bits=0x0F
uno328.build.mcu=atmega328
uno328.build.f_cpu=16000000L
uno328.build.core=arduino
uno328.build.variant=standard


This allows selecting my breadboard Uno-clone as a bootloader target.  Trying to upload a sketch fails because the compiler doesn't have a matching target, but switching back to the proper Uno target works fine for that anyway.  It's still easier than editing the conf file every time I swap chips.

I'm sure this can be made better, so if anyone wants to point out how...  :D
Title: Re: bootloading the atmega328-pu
Post by: jensa on Mar 26, 2012, 01:37 pm
Thanks a lot for posting this solution! It totally saved my day! :)

Here's a writeup on my experience bootloading this chip http://flashgamer.com/arduino/comments/using-your-arduino-as-an-isp (http://flashgamer.com/arduino/comments/using-your-arduino-as-an-isp).

J
Title: Re: bootloading the atmega328-pu
Post by: skumancer on May 24, 2012, 11:19 am
Hi,

Wondering if anyone could help me out...

I was getting the "incorrect signature 0x1e 0x95 0x0F" error at first. I made the changes as per this thread and now all I get is

Code: [Select]
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
Double check connections and try again, or use -F to override this check.


I don't know what else to do. I've powered my board with an external supply, through the ISP header from the arduino, and nothing works. I also tried both this http://arduino.cc/forum/index.php?topic=51819.0 and used this sketch http://pastebin.com/Aw5BD0zy. My board is powered through a 5V regulator. I can see my power LED lighting up, showing the power supply circuit is working. I also verified my traces and connections to the ATMEGA328 (in this case an ATMEGA328 AU (1210) with a 16Mhz crystal). I'm using ArduinoISP.

I'm starting to think I fried my chip, I have very few ideas on what else to do, as this is my first time burning a bootloader.

Any help is greatly appreciated. Thanks!!

Attached is an image of my board's schematics. This is my whole output:

Code: [Select]
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328 -cstk500v1 -P/dev/tty.usbmodemfd131 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xde:m -Ulfuse:w:0xff:m

avrdude: Version 5.11, compiled on Sep  2 2011 at 18:52:52
        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
        Copyright (c) 2007-2009 Joerg Wunsch

        System wide configuration file is "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf"
        User configuration file is "/Users/skumancer/.avrduderc"
        User configuration file does not exist or is not a regular file, skipping

        Using Port                    : /dev/tty.usbmodemfd131
        Using Programmer              : stk500v1
        Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
        AVR Part                      : ATMEGA328
        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
                                 Block Poll               Page                       Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
          flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                 Block Poll               Page                       Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
          lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                 Block Poll               Page                       Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
          hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                 Block Poll               Page                       Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
          efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                 Block Poll               Page                       Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
          lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                 Block Poll               Page                       Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
          calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                 Block Poll               Page                       Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
          signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

        Programmer Type : STK500
        Description     : Atmel STK500 Version 1.x firmware
avrdude: Send: A [41] . [80]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [02]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [81]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [98]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
        Hardware Version: 2
        Firmware Version: 1.18
        Topcard         : Unknown
avrdude: Send: A [41] . [84]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [85]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [86]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [87]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [89]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
        Vtarget         : 0.0 V
        Varef           : 0.0 V
        Oscillator      : Off
        SCK period      : 0.1 us

avrdude: Send: A [41] . [81]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: B [42] . [86] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] . [80] . [04] . [00] . [00] . [00] . [80] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: E [45] . [05] . [04] . [d7] . [c2] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: P [50]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: V [56] 0 [30] . [00] . [01] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
################avrdude: Send: V [56] 0 [30] . [00] . [02] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
################################## | 100% 0.07s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
        Double check connections and try again, or use -F to override
        this check.

avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.
Title: Re: bootloading the atmega328-pu
Post by: JoeO on May 24, 2012, 12:16 pm
How about posting the schematic?  You posted a board layout.
Title: Re: bootloading the atmega328-pu
Post by: skumancer on May 26, 2012, 12:31 pm
Sure thing, here is the schematic! Thanks for your help!
Title: Re: bootloading the atmega328-pu
Post by: westfw on May 26, 2012, 09:45 pm
You really should have ALL the gnd and vcc pins of the IC connected.  Preferably, each set of power pins should also have its own bypass cap.

It's hard to say whether this is causing your problem.  Chip behavior with incomplete power connections is "undefined."
Title: Re: bootloading the atmega328-pu
Post by: skumancer on May 28, 2012, 04:27 am
So you mean Pins 3, 6 and 21 need their connection? I could do a quick patch with some thin wire so those are connected.

What do you mean by each set should have its own bypass cap? Is that to say that I should use an x F capacitor for 3 and 4, then 5 and 6?, then one for 21 and ?

When I see implementations of the simplest arduino board you can build, they only connect the minimal set of pins, so that's what I did...I guess I was wrong assuming that was ok?

Assuming that is not the problem, does everything else look sensible and fine?
Title: Re: bootloading the atmega328-pu
Post by: westfw on May 29, 2012, 04:22 am
Most of the "minimal" designs are based on the DIP, so they only have two sets of power connections, but I think most of them DO have both sets connected.  It's "standard practice" that all power pins need to be connected, and pretty common to put a bypass cap on each set of power pins.  Whether it's necessary or not depends on the internal construction of the chip.  Some chips will simply have the multiple external power pins connected to the same internal nets.  Some will have the same nets, but with a path on the chip that is higher in resistance than the external power grid ought to have.  Some will have separate power nets with only common GND (especially if there is a VCC and an AVCC), but it's not easy to tell from outside exactly which internal parts are connected to which supply, and not connecting the analog supply just because you weren't using what you thought was the analog part of the chip is a bad idea.
Title: Re: bootloading the atmega328-pu
Post by: skumancer on May 29, 2012, 07:15 am
Got it, makes sense, thanks for the explanation.

From my schematic, I would have to connect 3, 6 and 21. What capacitor should I use and how should I connect them?

Thanks for all your help, I'm learning a bunch!
Title: Re: bootloading the atmega328-pu
Post by: westfw on May 29, 2012, 09:36 am
Traditional is a 0.1uF ceramic (which is what the commercial Arduinos use.)  For a 16MHz it's probably not too critical, and especially since modern SMT caps avoid some of the issues that caused 0.1uF to be a popular size back in the old days.)  Most of the home-built boards I have (TH DIP-based) use 0.22uF ceramics, because I happen to have picked up a big bag of them for cheap...)

https://www.adafruit.com/blog/2011/10/06/eebookshelf-choosing-and-using-bypass-capacitors-an1325-0/
Title: Re: bootloading the atmega328-pu
Post by: GoForSmoke on May 30, 2012, 05:37 pm
Does clock speed affect the need for bypass caps?
Title: Re: bootloading the atmega328-pu
Post by: extent on May 31, 2012, 01:39 pm
Not the need for, just the size of.  At higher speeds you need smaller caps to be able to react fast enough to do their job.
Title: Re: bootloading the atmega328-pu
Post by: Anatole_F44 on Jul 24, 2012, 11:38 pm
Hi,

This post seems to be the solution to my troubles.
But i have  a question, by  changing the signature or using the solution below, you assume that all the fuses are the same for both chips version. Is it really true ?


As a variation on this theme, I copied the existing ATmega328P entry in avrdude.conf, modified the id, desc, and signature to match the 328, and pasted it before the existing entry.


Code: [Select]
#------------------------------------------------------------
# ATmega328
#------------------------------------------------------------

part
    id = "m328";
    desc = "ATMEGA328";
    has_debugwire = yes;
    flash_instr = 0xB6, 0x01, 0x11;
    eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  0x99, 0xF9, 0xBB, 0xAF;
    stk500_devcode = 0x86;
    # avr910_devcode = 0x;
    signature = 0x1e 0x95 0x14;
    pagel = 0xd7;
    bs2 = 0xc2;
    chip_erase_delay = 9000;
    pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";

    chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
"x x x x x x x x x x x x x x x x";

    timeout = 200;
    stabdelay = 100;
    cmdexedelay = 25;
    synchloops = 32;
    bytedelay = 0;
    pollindex = 3;
    pollvalue = 0x53;
    predelay = 1;
    postdelay = 1;
    pollmethod = 1;

    pp_controlstack =
0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
    hventerstabdelay = 100;
    progmodedelay = 0;
    latchcycles = 5;
    togglevtg = 1;
    poweroffdelay = 15;
    resetdelayms = 1;
    resetdelayus = 0;
    hvleavestabdelay = 15;
    resetdelay = 15;
    chiperasepulsewidth = 0;
    chiperasepolltimeout = 10;
    programfusepulsewidth = 0;
    programfusepolltimeout = 5;
    programlockpulsewidth = 0;
    programlockpolltimeout = 5;

    memory "eeprom"
paged = no;
page_size = 4;
size = 1024;
min_write_delay = 3600;
max_write_delay = 3600;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 1 0 1 0 0 0 0 0",
       " 0 0 0 x x x a9 a8",
       " a7 a6 a5 a4 a3 a2 a1 a0",
       " o o o o o o o o";

write = " 1 1 0 0 0 0 0 0",
      " 0 0 0 x x x a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";

loadpage_lo = " 1 1 0 0 0 0 0 1",
      " 0 0 0 0 0 0 0 0",
      " 0 0 0 0 0 0 a1 a0",
      " i i i i i i i i";

writepage = " 1 1 0 0 0 0 1 0",
    " 0 0 x x x x a9 a8",
    " a7 a6 a5 a4 a3 a2 0 0",
    " x x x x x x x x";

mode = 0x41;
delay = 20;
blocksize = 4;
readsize = 256;
    ;

    memory "flash"
paged = yes;
size = 32768;
page_size = 128;
num_pages = 256;
min_write_delay = 4500;
max_write_delay = 4500;
readback_p1 = 0xff;
readback_p2 = 0xff;
read_lo = " 0 0 1 0 0 0 0 0",
  " 0 0 a13 a12 a11 a10 a9 a8",
  " a7 a6 a5 a4 a3 a2 a1 a0",
  " o o o o o o o o";

read_hi = " 0 0 1 0 1 0 0 0",
  " 0 0 a13 a12 a11 a10 a9 a8",
  " a7 a6 a5 a4 a3 a2 a1 a0",
  " o o o o o o o o";

loadpage_lo = " 0 1 0 0 0 0 0 0",
      " 0 0 0 x x x x x",
      " x x a5 a4 a3 a2 a1 a0",
      " i i i i i i i i";

loadpage_hi = " 0 1 0 0 1 0 0 0",
      " 0 0 0 x x x x x",
      " x x a5 a4 a3 a2 a1 a0",
      " i i i i i i i i";

writepage = " 0 1 0 0 1 1 0 0",
    " 0 0 a13 a12 a11 a10 a9 a8",
    " a7 a6 x x x x x x",
    " x x x x x x x x";

mode = 0x41;
delay = 6;
blocksize = 128;
readsize = 256;

    ;

    memory "lfuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
       "x x x x x x x x o o o o o o o o";

write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
      "x x x x x x x x i i i i i i i i";
    ;

    memory "hfuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
       "x x x x x x x x o o o o o o o o";

write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
      "x x x x x x x x i i i i i i i i";
    ;

    memory "efuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
       "x x x x x x x x x x x x x o o o";

write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
      "x x x x x x x x x x x x x i i i";
    ;

    memory "lock"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
       "x x x x x x x x x x o o o o o o";

write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
      "x x x x x x x x 1 1 i i i i i i";
    ;

    memory "calibration"
size = 1;
read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
       "0 0 0 0 0 0 0 0 o o o o o o o o";
    ;

    memory "signature"
size = 3;
read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
       "x x x x x x a1 a0 o o o o o o o o";
    ;
;


Also, added a new entry in boards.txt like so:

Code: [Select]
##############################################################

uno328.name=Arduino Uno w/ ATmega328 (non-P)
uno328.upload.protocol=arduino
uno328.upload.maximum_size=32256
uno328.upload.speed=115200
uno328.bootloader.low_fuses=0xff
uno328.bootloader.high_fuses=0xde
uno328.bootloader.extended_fuses=0x05
uno328.bootloader.path=optiboot
uno328.bootloader.file=optiboot_atmega328.hex
uno328.bootloader.unlock_bits=0x3F
uno328.bootloader.lock_bits=0x0F
uno328.build.mcu=atmega328
uno328.build.f_cpu=16000000L
uno328.build.core=arduino
uno328.build.variant=standard


This allows selecting my breadboard Uno-clone as a bootloader target.  Trying to upload a sketch fails because the compiler doesn't have a matching target, but switching back to the proper Uno target works fine for that anyway.  It's still easier than editing the conf file every time I swap chips.

I'm sure this can be made better, so if anyone wants to point out how...  :D
Title: Re: bootloading the atmega328-pu
Post by: Vincent19 on Sep 06, 2012, 05:35 am

So recently i ordered a bunch of atmega chips (atmega328-pu as opposed to the atmega328p pico power series) as i dont need the extra power saving gains so i decided to save myself some money. However I had a heck of a time trying to burn the bootloader on them and it took me several hours to find the info i needed so i thought i would just archive the info for anyone looking for the same. If you have any tips or suggestions please add them as i am still quite new to all of this. The chips loaded in this process seem to work fine ...

Please note this is for the non picopower atmega328-pu chips  signature = 0x1e 0x95 0x14 (1E 95 14) vs atmega328p-xx (1E 95 0F)

I tried to load the optiboot and the demillinauve bootloaders via the arduino ide v22 but all i could get was this message - Expected signature for ATMEGA328P is 1E 95 0F Double check chip, or use -F to override this ...

After much searching I found you need to modify the avrdude.conf file ( mac = arduino -show package contents - resources/java/hardware/tools/avr/etc )

Make a backup copy of this file in case something gets messed up.

Open the file with text edit and about 2/3 the way down under atmega 328 find   " signature       = 0x1e 0x95 0x0F; "

change the 0F to 14 save it and restart the arduino ide, you should now be able to bootload your atmega328-pu chips.

Make sure to change the 14 back to OF and restart when your done loading the bootloaders otherwise it will fail with - Expected signature for ATMEGA328P is 1E 95 14 Double check chip, or use -F to override this ...

Good luck  :)


I do not understand why I should change back the 14 to 0F ?? Since I am using atmega 328 instead of atmega 328P, so I change the setting and then why I need to change back to atmega 328P setting again since I am using atmega 328 ??
Title: Re: bootloading the atmega328-pu
Post by: westfw on Sep 06, 2012, 06:16 am
Quote
why I need to change back to atmega 328P setting again since I am using atmega 328 ?

Because the IDE does not know about the 328, and the bootloader will be telling it that the chip is a 328P to make up for that.  This is "OK" because the 328 and 328P are nearly identical, and certainly identical as far as Arduino is concerned.  So the only time you need anything to know about the 328 is when you are burning the bootloader, because in that case the software is reading the chip type directly off of the chip.  (thereafter, the IDE reads the chip type from the bootloader, and the bootloader lies.)
Title: Re: bootloading the atmega328-pu
Post by: Vincent19 on Sep 06, 2012, 06:25 am
I am still very blur about it. When burning bootloader, I have to change the setting..but when uploading code, Atmega 328 is the same as Atmega 328P ? So that is why the bootloader for atmega 328 lies ? Because the IDE recognise only Atmega328P bootloader ?
Title: Re: bootloading the atmega328-pu
Post by: westfw on Sep 06, 2012, 06:42 am
That's close enough...
Title: Re: bootloading the atmega328-pu
Post by: Vincent19 on Sep 06, 2012, 06:49 am
Means I am correct ?
Title: Re: bootloading the atmega328-pu
Post by: AlxDroidDev on Sep 21, 2012, 03:29 am
I just burned the bootloader in 5 Atmega328 (non-P) in a row using this technique. My ISP was an Arduino UNO R3.

After that, I changed the .conf file back, removed the original 328P from my UNO R3, placed each of the 5 ICs in there and tested every one with 3 simple sketches. They all worked flawlessly.

The funny thing is that in order for the 328(non-P) to work in the UNO R3 (where the 328P was originally), I had to change the file back to its original setting.

Anyhow, I had great success (YOU WIN!) with this! Thanks for the explanation.

I hope that in the next release of the IDE the 328(non-P) and the Atmega1284 are added to repository of boards.
Title: Re: bootloading the atmega328-pu
Post by: moook on Dec 07, 2012, 12:51 pm
This thread has been very helpful and very confusing at the same time.

I have a Uno R3 loaded w. ArduinoISP wired to a Atmega328-PU (purchased with uno bootloader preloaded) wired on a breadboard. Using 1.02 on 10.5.8.

I have now successfully uploaded sketches to the breadboard, but only after changing the signature in in avrdude.conf from 0x0F to 0x14, else I get the  "expected signature" error in avrdude. Everybody else in this thread seems to just need the avrdude.conf fix to burn the bootloader, and can upload sketches without modifications?

I figured my preloaded bootloader might be the cause for this, so i tried to reinstall the bootloader, but via ArduinoISP this always gave me
avrdude: verification error, first mismatch at byte 0x0000
(same setup where uploading sketches works)
I tried with optiLoader, which seems to work ok (I don't know if there is feedback on errors) but the result is the same, still signature errors on sketch upload.

How come my Atmega328-PU sends the different signature?
And why do my bootloading attempts fail?

Heres my setup and my boards.txt:
http://i.imgur.com/4IgPo.jpg
http://pastebin.com/QtYRkFQZ
Title: Re: bootloading the atmega328-pu
Post by: westfw on Dec 07, 2012, 05:43 pm
Quote
still signature errors on sketch upload.

Your setup is not correct for uploading sketches USING the bootloader, which would happen using the serial port of the target AVR (and is somewhat difficult to do to a breadboard AVR using an existing Arduino as the usb interface - the usual "upload" path after burning the bootloader is via an FTDI usb/serial cable or dongle.)
What you describe is consistent with having gotten "upload using programmer" to work; this doesn't use the bootloader (and in fact erases the bootloader each time), but does require the permanent change/upgrade to the CPU type in the avrdude.conf file.
I can't explain the failure to verify when burning the bootloader.  Exactly which process are you using to burn the bootloader?  The IDE's "burn bootloader" or something else?   Have you modified boards.txt, or ONLY the avrdude.conf file?
Title: Re: bootloading the atmega328-pu
Post by: moook on Dec 07, 2012, 10:08 pm

What you describe is consistent with having gotten "upload using programmer" to work; this doesn't use the bootloader (and in fact erases the bootloader each time), but does require the permanent change/upgrade to the CPU type in the avrdude.conf file.

Thanks a lot for clearing that up for me.

I feel a little stupid posting in this thread now, as I realize I'm not sure I even need a bootloader. I want to transfer a working arduino sketch into a hardwired version with only the microcontroller, not an arduino board - this seems to work!

I also want to do this with smaller chips (I got an attiny85 too) and I remembered that the bootloading procedure was needed there to set the fuses, so I followed  this (http://hlt.media.mit.edu/?p=1695) tutorial but with arduino-tiny cores. Burning the bootloader gives errors (expected?), but I think it worked for the fuses  I think it worked for the fuses (http://i.imgur.com/WpUSK.jpg)(If I burn the 8 Mhz bootloader, but then select the 1 Mhz board prior to uploading the blink sketch, the led goes ~ 8 times faster) .

So I guess I'm there - is there anything I am missing out on? It is not clear what advantage the bootloader would give me - debugging via serial maybe?
Title: Re: bootloading the atmega328-pu
Post by: jayakrishnan on Jan 20, 2013, 08:15 am
What is the correct device signature of the Atmega328P-PU?

I tried bootloading it with my bootloaded Atmega328P-PU, but i was getting 
Quote
avrdude: Yikes!  Invalid device signature.
        Double check connections and try again, or use -F to override
        this check.
, when i made no changes to the avrdude.conf file and the device signature was still 1E 95 0F.

I tried editing the avrdude.conf file entry, of signature from 1E 95 0F to 1E 95 14. It still shows,
Quote
avrdude: Yikes!  Invalid device signature.
        Double check connections and try again, or use -F to override
        this check.


Any thoughts?
Title: Re: bootloading the atmega328-pu
Post by: GoForSmoke on Jan 20, 2013, 12:14 pm
One of these days I'll have to find out how to get the chip to tell me what it is.
I was able to get it to work but it was so many months ago I can't be sure of details, it can be done with Arduino 0022 and UNO as ISP.
Title: Re: bootloading the atmega328-pu
Post by: tack on Jan 20, 2013, 02:10 pm
When you install a bootloader on the 328-PU (Non PicoPower) you have to create a new 328 entry in avrdude.conf with the correct signature. You then create a new 328 boards.txt entry pointing to the new 328 device in avrdude.conf, but otherwise using the same details (bootloader, fuses etc) as the 328P entry.

So, this allows you to burn a bootloader and set fuses for 16Mhz external crystal etc, just like for the 328P.

The problem is then when you come to upload a sketch, whether via Upload (Serial and bootloader) or Upload via Progammer (ISP programmer gia ICSP/SPI). If you leave the board type in IDE set to 328 (non P) then you'll find you can't compile and upload.

What you have to do is switch back to telling IDE/avr-gcc/avrdude that it's the normal Uno 328P.

So, you burn bootloader with 328 set as board, but upload with Uno as the board.

Don't forget if it's barebones then you need to do a manual reset after the compile has completed (if using serial via the bootloader).

I think the issue is actually with the (older) version of avr-gcc compiler that Arduino IDE uses. For some reason it doesn't handle the non-P 328 uC, so you have to lie and say it's a 328P.

When you burn the bootloader/set fuses etc, then the signature of the chip is actually read and has to match the signature of a device that avrdude/IDE knows about, to match a bootloader via boards.txt, hence adding a 328 entry to avrdude.conf and boards.txt to get last that hardware check and allow you to get the Uno bootloader into the chip, even if you just use it to set fuses and then reveret to ISP programming afterwards (where you just tell everything it's a normal Uno).
Title: Re: bootloading the atmega328-pu
Post by: Dr_Ugi on Jan 24, 2013, 05:41 pm

What is the correct device signature of the Atmega328P-PU?

I tried bootloading it with my bootloaded Atmega328P-PU, but i was getting  
Quote
avrdude: Yikes!  Invalid device signature.
        Double check connections and try again, or use -F to override
        this check.
, when i made no changes to the avrdude.conf file and the device signature was still 1E 95 0F.

I tried editing the avrdude.conf file entry, of signature from 1E 95 0F to 1E 95 14. It still shows,
Quote
avrdude: Yikes!  Invalid device signature.
        Double check connections and try again, or use -F to override
        this check.


Any thoughts?


If it's really an invalid signature, I think it usually tells you what it's getting and what it expects.  I think this is a general error due to failure to communicate.

You get that error for various reasons - have you checked your connections?  Have you disabled auto-reset?  If it's a new chip, you will need a crystal and caps at least until you have the bootloader written (which also sets the fuses).
Title: Re: bootloading the atmega328-pu
Post by: loowens on Jan 29, 2013, 03:31 pm
So a quick question in regards to this thread, if I am getting back a message from avrdude stating the chip is returning 0x000000 or 0xffffff as it's signature should I assume it is trashed?  I'm using an Atmega328P-PU and trying to burn a bootloader based on the steps in the Arduino to Breadboard tutorial. I was using the chips to test some simple sketches on a breadboard and they stopped accepting sketch changes so I'm trying to recover them.
Title: Re: bootloading the atmega328-pu
Post by: westfw on Jan 29, 2013, 05:40 pm
Quote
if I am getting back a message from avrdude stating the chip is returning 0x000000 or 0xffffff as it's signature should I assume it is trashed?

Maybe.  I most often see that when I don't have a correct connection to the chip, such as when a wire pulls out of the breadboard or arduino socket-strip.
Title: Re: bootloading the atmega328-pu
Post by: loowens on Jan 29, 2013, 07:11 pm
Thanks Westfw, I'll double check all my connections to make sure.  On a whim I put the chip on an UNO and uploaded the blink sketch to it and it worked. I was then able to upload my sketch again, but I have that 2 second bootloader pause now that I wasn't having before.  I'm going to try and reload the bootloader with makefile changes talked about in http://arduino.cc/forum/index.php/topic,37347.0.html (http://arduino.cc/forum/index.php/topic,37347.0.html).
Title: Re: bootloading the atmega328-pu
Post by: ld3300 on Jul 18, 2013, 09:40 pm
This method works great for me on arduino 1.0.5, seems to be broken with 1.5.2, though.  Anyone figure it out?
Title: Re: bootloading the atmega328-pu
Post by: ABHISHRI on Aug 06, 2016, 09:58 pm
There is a solution to this problem
i have made a new "Board" Option in the arduino software
So u do not need to edit again and again to use the atmega328(no P) and atmega328P

You can just select the board name "Arduini Uno w/Atmega328(no P)"

Here  (http://buildingthenext.blogspot.in/2016/01/simplest-solution-to-add-support-to.html)is the link to my blog where the procedure is written

The simplest method to use Atmega328 with arduino
Title: Re: bootloading the atmega328-pu
Post by: westfw on Aug 06, 2016, 10:20 pm
Quote
There is a solution to this problem
Yeah.  NOW there is a solution.  In 2013 when the thread was last edited, or 2011 when it first started, the version of the compiler included with the Arduino IDE didn't support the 328 (only the 328P), nor did avrdude.

With a current (1.65+) version of the IDE, it should be pretty trivial.  (Much more trivial than the 27MB download you provide, which includes a lot of stuff that need not be included.  All you really need is a modified boards.txt and a new bootloader hex file - you should need separate core and firmware directories (and you really don't want them, either!)
Title: Re: bootloading the atmega328-pu
Post by: ABHISHRI on Aug 08, 2016, 09:59 pm
yes due to older avrdude i have to add the latest avrdude which is quit large enough in the latest version only the arduino confs are needed to be edited