Need help burning the bootloader onto a atmega 328-AU

So i've been working on my own board to get values from some sensors and send that data onto a teensy 4.1. Made a pcb and everything but when i try the burn the bootloader using a arduino nano using the spi pins i get an error. I could really use your help.

this is my schematic:

this is the error i keep getting:

Are you able post the error in a text form? If yes, please do this. Include the uploading command.
OMG, why picture? Did you even read what is in the output?

Is your IC marked 328P or just 328 ?

just 328 I think

ET Issues and Answers: USBtinyISP (incredulist.blogspot.com)

avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, of use -F to override this check
Failed chip erase: uploading error: exit status 1

not exactly sure what you mean by uploading command.

My blog is very short.
The device signature for a "non-P" 328 is
0x1e 0x95 0x14

that has to be changed in the avrdude.conf file

thank you going to try it out tomorrow

Before "avrdude: Expected signature for ATmega328P is 1E 95 0F" should be something else and it begins with avrdude call with parameters which is the uploading command.

If you have 328 not 328P, it has different signature. It can be it as @runaway_pancake wrote.

how do i find this file?

Well, there is "search" in windows - but
mine is in the Arduino folder in
Program Files (x86)

C:\Program Files (x86)\Arduino\hardware\tools\avr\etc

When you change it you have to restart the IDE.
And you'll have to remember to change it back (I suppose) when you're finished.

so i found the 328 in the conf file but it already has the signature you mentioned

#------------------------------------------------------------

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;

ocdrev              = 1;

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 o o o o o 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";
;

;

part parent "m328"
id = "m328p";
desc = "ATmega328P";
signature = 0x1e 0x95 0x0F;

ocdrev              = 1;

;

part parent "m328"
id = "m328pb";
desc = "ATmega328PB";
signature = 0x1e 0x95 0x16;

ocdrev              = 1;

;

And I believe that if you change

part parent "m328"
id = "m328p";
desc = "ATmega328P";
signature = 0x1e 0x95 0x0F;

to

part parent "m328"
id = "m328p";
desc = "ATmega328P";
signature = 0x1e 0x95 0x14;

it will go.

You ought to copy and save the original file (avrdude.conf) before proceeding.
Sorry but I can't be there to hold your hand.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.