ATMEGA328 on a Breadboard - ISSUES

I have designed a good number of Arduino-based projects. Not so long ago, I updated the IDE to the 1.6.x version with no problem. In my latest project I'm using an ATMEGA328 with no crystal. When I went back to the IDE and try to program the actual chip I couldn't find the correct board ('Atmega328 on a breadboard' option).

I downloaded the 1.5.8 version as I remembered that worked following the instrucitons on:

http://www.arduino.cc/en/Tutorial/ArduinoToBreadboard

I tried again with no success. I went down to most of the working versions on 1.5.x with no success. I couldn't make the 'Atmega328 on a breadboard' option to appear again.

Any idea? Do I need to delete the 1.6.x versions and just leave the 1.5.x version? I followed the instructions to the letter and my folders in 'Preferences' are correct.

I just did this for the first time the other day. There was no "breadboard" option under Board in the Tools menu (I'm using 1.0.5). So I used the only the board option for the '328 at 8MHz in the menu: "Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328".

I have always manually added a bread board entry to the boards.txt file, not sure if you get a bread board option in the new IDE though.

See arduino-on-a-breadboard and arduino-nano-as-an-isp-programmer

for details on editing the boards.txt file.

Try Lilypad.

http://gammon.com.au/breadboard

Personally I don't bother with IDE 1.6.x.

Martyn, that's a nice tutorial.

It's a little out of date though. And it doesn't really explain all the various fields in boards.txt. I also hacked out a new entry but I really wasn't sure what I was doing. Is there a source of more detailed information on boards.txt?

[quote author=Nick Gammon link=msg=2242944 date=1432293394]Personally I don't bother with IDE 1.6.x.[/quote] Me neither, not yet anyway. Every time I switch between my Uno (328p) and my breadboard (328) I have to manually edit avrdude.conf. I'm pretty sure 1.6.x fixes that issue.

Have you tried this:
In avrdude.conf, copy the entire 328P section into and make a 328 section with the changed signature bytes.
Excerpt from the top of the section showing the changed lines:

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

In boards.txt. copy the Uno section and make a new board type with atmega328 instead of atmega328P:

uno328.name=Arduino Uno w/'328
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
uno329.build.variant=standard

Then just call out the new board type.
I haven’t tried anything after 1.0.6 yet.

It doesn't work because the compiler can't find the include file for 328 and so prints out a long list of errors for undefined symbols.

I could duplicate iom328p.h and name it iom328.h. And then edit that to change 328p to 328 everywhere. Would that be enough though? I really don't know what I'm doing.