Adding a new microcontroller type - that is just a little different

Why does this not work?
Added a 1284 section to avrdude.conf by copying the 1284P, removing the P, and changing the signature bytes:

#------------------------------------------------------------
# ATmega1284
#------------------------------------------------------------

# similar to ATmega164p

part
    id               = "m1284";
    desc             = "ATMEGA1284";
    has_jtag         = yes;
    stk500_devcode   = 0x82; # no STK500v1 support, use the ATmega16 one
    avr910_devcode   = 0x74;
    signature        = 0x1e 0x97 0x06;
:
:

and the rest of 1284P section.

Made a new boards.txt entry, doing similar - taking the P off the 1284:

bobuino2.name=Bobuino with 1284 (non P)
bobuino2.upload.protocol=arduino
bobuino2.upload.maximum_size=130048
bobuino2.upload.speed=115200
bobuino2.bootloader.low_fuses=0xf7
bobuino2.bootloader.high_fuses=0xde
bobuino2.bootloader.extended_fuses=0xfd
bobuino2.bootloader.path=optiboot
bobuino2.bootloader.file=optiboot_atmega1284p.hex
bobuino2.bootloader.unlock_bits=0x3F
bobuino2.bootloader.lock_bits=0x0F
bobuino2.build.mcu=atmega1284
bobuino2.build.f_cpu=16000000L
bobuino2.build.core=mighty
bobuino2.build.variant=bobuino

When I compile a sketch, get a bunch of errors starting with:

unknown MCU 'atmega1284' specified
Known MCU names:
:
atmega1280
atmega1281
atmega1284p
:
LEDcube9x9x9.cpp:1: error: MCU 'atmega1284' supported for assembler only
In file included from c:/arduino/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:82,
                 from C:\Arduino\hardware\mighty-1284p\cores\mighty/Arduino.h:8,
                 from C:\Arduino\libraries\SPI/SPI.h:15,
                 from a_presetup.ino:1:
c:/arduino/hardware/tools/avr/lib/gcc/../../avr/include/avr/io.h:330:6: warning: #warning "device type not defined"
:

then a whole bunch of missing library errors, but all related to the missing processor.

So if not in avrdude.conf, where does the processor need to be added?
I'd do the same with 328/328P if I could figure out where to make the needed changes.

Could it be case sensitive?
desc = “ATMEGA1284”;

I guess that's just the description?

You're using an ancient compiler that doesn't have support for the 1284 (no p) in it's chip-specific includes.

Looking at my io.h file (1.6.3) , there are entries for the 1284, and that #warning is way below line 330, implying lots of new chips have since been added.

And yup - in the 1.0.6 versions of those files, there's no entry for the 1284 (no p)

LEDcube9x9x9.cpp:1: error: MCU 'atmega1284' supported for assembler only

It's from gcc, not from avrdude. Your compiler version doesn't support the chip. With the old compiler, you'll get the same error trying to use an "atmega328" target (which was one of the big reasons to let the bootloader lie about the signature if you wanted to use a 328 rather than a 328p. The same hack would work for 1284 vs 1284p, assuming they're otherwise identical. (IIRC, ATmega644 only has one UART, while 644a has two. Grr.))

So can I keep 1.0.6 and update the compiler? Or is it finally time to let it go and move on to 1.6.x?

CrossRoads:
So can I keep 1.0.6 and update the compiler? Or is it finally time to let it go and move on to 1.6.x?

Yes, upgrading the compiler should work.

You can do so much cool stuff with the new boards.txt options, though; I recommend upgrading to 1.6.x if you plan on others using the core. If you need to upgrade the compiler, but use 1.0.6, that’s a barrier for a lot of people (particularly due to Windows’ protections on things under program files). But a 1.0.6 core won’t work on 1.6.x without porting effort. Sp a1.0.6 core that required updating the compiler would not be very useful to most

Ok, will do some playing this weekend if I'm not too busy golfing. I was putting off going to 1.6.x due to all the problems folks have been reporting.

I have also been leery of moving to 1.6.x. The roar of bug reports seems deafening. But when it came to working with some of the ATtiny parts I had to choose: Update my tool chain or use 1.6.x. It was an easy decision. And I haven't had any problems with the new IDE, other than a few minor cosmetic issues. It even shrunk the code size of a Uno based project that I was afraid to migrate to 1.6.x, without any issues.

But I've also had to make some modifications to adjust for "deprecated" features. And you undoubtedly have many, many, many, many, many, many more projects than I have even imagined, yet to migrate.

So... be careful. :slight_smile:

I never use the installer versions of Arduino IDE’s and stick to zip installs that way I can have several versions available to use/test.
Also by putting the projects folder in the same folder level as the arduino IDE folders and using ‘…\Projects’ as it’s location in preferences it works fine off my Dropbox folder on several different PC’s without resorting to duplicates

Riva:
I never use the installer versions of Arduino IDE's and stick to zip installs that way I can have several versions available to use/test.

Amen to that!

The installer is made of fail and lose.