Bootloader problems... take 2...

I have been here asking for help on how to burn a bootloader onto an AtMega328 before, (previous discussion linked here:http://arduino.cc/forum/index.php/topic,150113.0/wap2.html) and I have gotten the burning step to be successful! Using Nick Gammons program, I was able to run the program and get the proper "success" messages as outlined in his tutorial.

However, the next step, loading a program onto the microcontroller returns the following error message:
In file included from Blink.ino:10:
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Arduino.h:213:26: error: pins_arduino.h: No such file or directory

After some googling I found a discussion linked below:
https://groups.google.com/forum/?fromgroups=#!topic/rayshobby/WBzNfl02rMg

I tried this solution and was not successful, does the collective knowledge of the arduino forum have any input on this matter? Thank you so much for all of your help, I feel like such a neophyte, and I hope my questions don't frustrate the community with what I perceive to be basic complications

(Also, is there an alternative method of hyperlinking? Can I post those links embedded in text instead?)

That message is telling you that it could not find the corresponding pins_arduino.h file specified in the boards.txt file of the board you are trying to load.

Which board do you have selected in the IDE and post your boards.txt file in Arduino/Hardware folder.

I used the Arduino to Breadboard tutorial on the arduino website, and thus have the selected board as "ATmega328 on a breadboard (8MHz internal clock)" It's on the correct serial port, (there is only one it could be)

My boards.txt file is as follows:

##############################################################

atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)

atmega328bb.upload.protocol=stk500
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600

atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F

atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino

In an attempt to follow the previously posted solution, I had "svc.build.variant=standard" pasted after the "atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)" line (which didn't work).

I think you need a line like:

atmega328bb.build.variant=arduino:standard

Keeping track of the number and format of the various build and core specifications in boards.txt has been ... challenging, especially when you want to just use the standard cores. Using a custom core is almost easier!

So you recommend that I just.. stick that line in with the other build statements? I feel like there is an entire level of commands you can talk to a microcontroller with that I'm missing...

I feel like there is an entire level of commands you can talk to a microcontroller with that I'm missing...

Probably. But in this case, you're just talking to the Arduino IDE software, telling it where to get the core source code for the board you have configured. As such, the format has changed as the arduino has gone from putting ALL the core software in
...hardware/arduino/cores/arduino/... (supports Uno and MEGA-like boards) to having "variants" as well (allows Leonardo) to allowing allowing different platforms (for Due) and extensions in the users ...Arduino/hardware/extName/... (tiny, sanguino, etc)
The format of the lines in boards.txt is supposed to be easier to manage than typing full directory paths, but it's been changing at a relatively significant rate as broader options become available, and it's not wonderfully documented since "Arduino is so easy to use that it doesn't need a manual."

For instance, "core" is documented here (as of version 0018): Google Code Archive - Long-term storage for Google Code Project Hosting.
But the new stuff is documented somewhat here: Google Code Archive - Long-term storage for Google Code Project Hosting. where it doesn't quite mention that the plain ATmegaXX8 variant is called "standard"...

So this is my new boards.txt file:

##############################################################

atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)

atmega328bb.upload.protocol=stk500
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600

atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F

atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard

And I'm just trying to put blink onto the board and it tells me that the programmer is not responding:
avrdude: stk500_recv(): programmer is not responding

Should I take a picture of my setup? (I am using an Uno and removing the Atmega on that to program the microcontroller on the board)

atmega328bb.upload.protocol=stk500
should be
atmega328bb.upload.protocol=arduino

Since you are using the Arduino bootloader

If you are coming straight off an Uno, I'm not sure why you didn't just copy the Arduino Uno entry from the boards.txt and just change only the relevant bits.
You are using an internal RC clock instead of a crystal, you are using 8MHz instead of 16. And the only other bits to change are the name and the identifier (atmega328bb)

atmega328bb.name=Atmega328 on a Breadboard
atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=32256
atmega328bb.upload.speed=57600
atmega328bb.bootloader.low_fuses=0xE3
atmega328bb.bootloader.high_fuses=0xDE
atmega328bb.bootloader.extended_fuses=0xFF
atmega328bb.bootloader.path=optiboot
atmega328bb.bootloader.file=optiboot_atmega328.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino
atmega328bb.build.variant=standard

But, perhaps we need to backup a bit. What bootloader do you have installed? Is this a 328 or a 328P? Are you changing anything with the pin mapping? How are you handling the reset needed to start the bootloader?

Notice that bootloader.path and bootloader.file are different than they were in yours. This is what the Uno uses. From the settings that you posted, it almost looks like you are mimicking a duemilanove.

To get this right, we definitely need to know what bootloader you programmed into your chip at least.

I used Nick Gammons bootloader that was posted in response to my initial questions on these boards, I'm using a 328PN, I'm not changing any of the pins and I'm connecting the reset socket on the Uno to pin 1 of the atmega, If you need any more information, I can try to outline everything I've done/ take a picture! Thank you guys for your help

I am now using the example code you posted instead of the original boards.txt file I was using, and I uploaded Nick Gammons bootloader (indeed using an internal 8MHz clock) and after burning it and receiving success messages, I attempt to load blink onto the 328P. Using the boards.txt provided by Retroplayer, when I try to upload any sketch (in this case, specifically blink), I get this error:

Blink.ino:10:21: error: Arduino.h: No such file or directory
Blink.ino: In function 'void setup()':
Blink:15: error: 'OUTPUT' was not declared in this scope
Blink:15: error: 'pinMode' was not declared in this scope
Blink.ino: In function 'void loop()':
Blink:20: error: 'HIGH' was not declared in this scope
Blink:20: error: 'digitalWrite' was not declared in this scope
Blink:21: error: 'delay' was not declared in this scope
Blink:22: error: 'LOW' was not declared in this scope

Furthermore, in interest of providing as much info as I can, using the chip detector sketch by Nick Gammon, I receive this message (as far as I can interpret, confirming that nothing is wrong?)

Atmega chip detector.
Entered programming mode OK.
Signature = 1E 95 0F 
Processor = ATmega328P
Flash memory size = 32768
LFuse = FF 
HFuse = DE 
EFuse = FD 
Lock byte = EF 
Clock calibration = 9E 
Bootloader in use: Yes
EEPROM preserved through erase: No
Watchdog timer always on: No
Bootloader is 512 bytes starting at 7E00

Bootloader:

7E00: 11 24 84 B7 14 BE 81 FF F0 D0 85 E0 80 93 81 00 
7E10: 82 E0 80 93 C0 00 88 E1 80 93 C1 00 86 E0 80 93 
7E20: C2 00 80 E1 80 93 C4 00 8E E0 C9 D0 25 9A 86 E0 
7E30: 20 E3 3C EF 91 E0 30 93 85 00 20 93 84 00 96 BB 
7E40: B0 9B FE CF 1D 9A A8 95 81 50 A9 F7 CC 24 DD 24 
7E50: 88 24 83 94 B5 E0 AB 2E A1 E1 9A 2E F3 E0 BF 2E 
7E60: A2 D0 81 34 61 F4 9F D0 08 2F AF D0 02 38 11 F0 
7E70: 01 38 11 F4 84 E0 01 C0 83 E0 8D D0 89 C0 82 34 
7E80: 11 F4 84 E1 03 C0 85 34 19 F4 85 E0 A6 D0 80 C0 
7E90: 85 35 79 F4 88 D0 E8 2E FF 24 85 D0 08 2F 10 E0 
7EA0: 10 2F 00 27 0E 29 1F 29 00 0F 11 1F 8E D0 68 01 
7EB0: 6F C0 86 35 21 F4 84 E0 90 D0 80 E0 DE CF 84 36 
7EC0: 09 F0 40 C0 70 D0 6F D0 08 2F 6D D0 80 E0 C8 16 
7ED0: 80 E7 D8 06 18 F4 F6 01 B7 BE E8 95 C0 E0 D1 E0 
7EE0: 62 D0 89 93 0C 17 E1 F7 F0 E0 CF 16 F0 E7 DF 06 
7EF0: 18 F0 F6 01 B7 BE E8 95 68 D0 07 B6 00 FC FD CF 
7F00: A6 01 A0 E0 B1 E0 2C 91 30 E0 11 96 8C 91 11 97 
7F10: 90 E0 98 2F 88 27 82 2B 93 2B 12 96 FA 01 0C 01 
7F20: 87 BE E8 95 11 24 4E 5F 5F 4F F1 E0 A0 38 BF 07 
7F30: 51 F7 F6 01 A7 BE E8 95 07 B6 00 FC FD CF 97 BE 
7F40: E8 95 26 C0 84 37 B1 F4 2E D0 2D D0 F8 2E 2B D0 
7F50: 3C D0 F6 01 EF 2C 8F 01 0F 5F 1F 4F 84 91 1B D0 
7F60: EA 94 F8 01 C1 F7 08 94 C1 1C D1 1C FA 94 CF 0C 
7F70: D1 1C 0E C0 85 37 39 F4 28 D0 8E E1 0C D0 85 E9 
7F80: 0A D0 8F E0 7A CF 81 35 11 F4 88 E0 18 D0 1D D0 
7F90: 80 E1 01 D0 65 CF 98 2F 80 91 C0 00 85 FF FC CF 
7FA0: 90 93 C6 00 08 95 80 91 C0 00 87 FF FC CF 80 91 
7FB0: C0 00 84 FD 01 C0 A8 95 80 91 C6 00 08 95 E0 E6 
7FC0: F0 E0 98 E1 90 83 80 83 08 95 ED DF 80 32 19 F0 
7FD0: 88 E0 F5 DF FF CF 84 E1 DE CF 1F 93 18 2F E3 DF 
7FE0: 11 50 E9 F7 F2 DF 1F 91 08 95 80 E0 E8 DF EE 27 
7FF0: FF 27 09 94 FF FF FF FF FF FF FF FF FF FF 04 04 

MD5 sum of bootloader = FB F4 9B 7B 59 73 7F 65 E8 D0 F8 A5 08 12 E7 9F 

First 256 bytes of program memory:

0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

I am unsure of what I am doing wrong at this point, as always I appreciate your help so much, this is the final step in getting my senior project to work!

Exactly where are you putting the boards.txt file? And which version of the Arduino IDE are you using?
There is some discussion here: [HOWTO:] Anatomy of the boards.txt file for custom boards - #14 by westfw - Microcontrollers - Arduino Forum
In particular, you may need:

atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard

The filepath for the boards.txt file is /Users/[My account name]/Documents/Arduino/hardware/breadboard
To explain it, I'm using a computer running OSX, and it's in the Arduino folder created by the program inside a folder that I made called hardware when prompted to while following this tutorial: http://arduino.cc/en/Tutorial/ArduinoToBreadboard under the "Minimal Circuit (Eliminating the External Clock)" header

I'll read the link you posted, and hope I can find a fix, thank you!

Edit: I forgot to tell you the version of the IDE I am using, I am using 1.0.3 because I heard that custom boards were dealt with differently in 1.5, but since my project also needs a Due, I have both IDE's (could this be part of the problem? I never have both running at the same time...)

I think with that location, the build will end up looking for Arduino.h in /Users/[My account name]/Documents/Arduino/hardware/breadboard/cores/Arduino.h
which presumably doesn't exist (nor do you want it to exist.)

try adding the "arduino:" prefix to the build.core line as in my previous message, and it should work.

West, have you figured out why that is present sometimes? I still haven't figured it out.

Interestingly if I omit the atmega328bb.build.variant=arduino:standard line and replace it with atmega328bb.build.variant=standard I actually get the exact error you specified (that it looks in the cores folder which does not exist), however, with the boards file I included below (with the variant as well as the core line with the arduino: prefix) I still get this error:

avrdude: stk500_recv(): programmer is not responding

I will include my boards.txt file in the hopes that it helps:

atmega328bb.name=Atmega328 on a Breadboard

atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=32256
atmega328bb.upload.speed=57600

atmega328bb.bootloader.low_fuses=0xE3
atmega328bb.bootloader.high_fuses=0xDE
atmega328bb.bootloader.extended_fuses=0xFF
atmega328bb.bootloader.path=optiboot
atmega328bb.bootloader.file=optiboot_atmega328.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
s
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard

This is where your boards.txt file should be placed.
/Users/[My account name]/Documents/Arduino/hardware/arduino/

Inside that folder above you should have boards.txt, programmers.txt, and folders bootloaders, cores, firmwares, and variants.

What else do you have in your breadboard folder?

Maysarah,

Would it be possible for you to post a screenshot of your Arduino folder structure with the subfolders expanded? I think you might have gotten your folders all mucked up by following parts of a windows tutorial.

This is where your boards.txt file should be placed.
/Users/[My account name]/Documents/Arduino/hardware/arduino/

Inside that folder above you should have boards.txt, programmers.txt, and folders bootloaders, cores, firmwares, and variants.

Well, that's one possibility. I'd claim that in this case the boards.txt file should be in
/Users/[My account name]/Documents/Arduino/hardware/breadboard/
and that ALL that should be needed is boards.txt, since we want to use the standard cores/variants/firmwares.
In theory, the "arduino:" prefix tells the IDE to search the original Arduino Install directories instead of the user directorys for the core or variant info.

Having the "cores" item of boards.txt be wrong results in the

Blink.ino:10:21: error: Arduino.h: No such file or directory

error (and subsequent problems.)

The "avrdude: stk500_recv(): programmer is not responding" error has many possible causes, but it SHOULD mean that the cores/variants part of boards.txt is correct, or you wouldn't have gotten that far.