Support for classic avr's (AT90S series)

Just wondering how I can add support for some at90S2313 and at90S4414 devices to use the arduino IDE.

I am well aware that these devices don't support the SPM instructions, therefore a bootloader is not possible.

I don't want to program the device using the arduino IDE anyways as usbasp supports these devices.

I am familiar with each device in terms of memory, timers, etc.
Just like to know what to change to add a board file to the IDE.
Thanks in advance.

Dr Azzy's ATtinyCore supports ATtiny2313 and ATtiny4313; i'd start by looking at those.

I have this core installed. Just wondering how to write my own core for the 90S devices I mentioned above.

Thanks

Just like to know what to change to add a board file to the IDE.

Well, it looks like AT90S2313 is essentially identical to ATtiny2313, so you might get away with just using the existing ATtiny2313 settings. (Check the fuses, though. Or program them from outside the IDE.) If you must, you can modify the "chip" sub-menu of the attinyx313 entry in the ATtinyCore boards.txt:

attinyx313.menu.chip.2313=ATtiny2313/ATtiny2313A
attinyx313.menu.chip.2313.build.mcu=attiny2313a
attinyx313.menu.chip.2313.upload.maximum_size=2048
attinyx313.menu.chip.2313.upload.maximum_data_size=128

The AT90S4414 looks like a cut-down and older version of the ATmega8515, so that means a different core, and probably conditionals in the core files themselves to support the differences in UART, Timers, etc. (It looks like they're similar to the existing differences between ATmega8 and ATmega88, so there might be existing conditional code in the relevant places; you'd just have to add the check for AT90S4414.)

See also Platform specification - Arduino CLI


PS: Why?
If you've got significant stock of AT90S series parts, you can probably find some commercial manufacturer who "needs" them and will pay more for them than it would cost you to buy a new and better parts. (Hmm. Not counting global chip shortages :frowning: ) A chip with only 2k of program memory and essentially no peripherals is barely worth using Arduino functions.

1 Like

This PDF discusses adding new boards / chips.

Essentially, the IDE is just a bunch of JAVA code that manipulates numerous script files.

https://cdn-learn.adafruit.com/downloads/pdf/add-boards-arduino-v164.pdf

thanks westfw for the information. I don't need any newer peripherals just the uart and timers to work. (that will be the biggest hurdle) the rest should be straightforward.

That information is only of use when someone has already created an Arduino boards platform that provides support for the hardware of interest.

In this case, newmguy is not so fortunate (though it sounds like they at least have some material to start from). For developing a new Arduino boards platform, the Arduino Platform Specification mentioned above by westfw will be the useful reference:

https://arduino.github.io/arduino-cli/latest/platform-specification

and if you want to make it possible for everyone to install and update the platform you created, following the method described in the Adafruit document, you also need this:

https://arduino.github.io/arduino-cli/latest/package_index_json-specification/