Open
Description
Add new board definitions based on this gist
#if defined(__AVR_ATmega168__)
// Arduino Diecimila and older
LINE("__AVR_ATmega168__", __AVR_ATmega168__);
#endif
#if defined(__AVR_ATmega328P__)
// Arduino Duemilanove and Uno
LINE("__AVR_ATmega328P__", __AVR_ATmega328P__);
#endif
#if defined(__AVR_ATmega2560__)
// Arduino Mega 2560
LINE("__AVR_ATmega2560__", __AVR_ATmega2560__);
#endif
#if defined(__AVR_ATmega1280__)
// Arduino Mega
LINE("__AVR_ATmega1280__", __AVR_ATmega1280__);
#endif
#if defined(__AVR_ATmega32U4__)
// Arduino Leonardo
LINE("__AVR_ATmega32U4__", __AVR_ATmega32U4__);
#endif
#if defined(__SAM3X8E__)
// Arduino Due
LINE("__SAM3X8E__", __SAM3X8E__);
#endif
// Determine board type
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__)
Serial.println("Regular Arduino");
#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
Serial.println("Arduino Mega");
#elif defined(__AVR_ATmega32U4__)
Serial.println("Arduino Leonardo");
#elif defined(__SAM3X8E__)
Serial.println("Arduino Due");
#else
Serial.println("Unknown");
#endif
Activity
ianfixes commentedon Jan 15, 2019
from https://www.microchip.com/webdoc/avrlibcreferencemanual/using_tools_1using_avr_gcc_mach_opt.html
via @per1234 (https://github.com/ianfixes/arduino_ci/issues/86#issuecomment-454173396)
__AVR_AT90S1200__
__AVR_ATtiny11__
__AVR_ATtiny12__
__AVR_ATtiny15__
__AVR_ATtiny28__
__AVR_AT90S2313__
__AVR_AT90S2323__
__AVR_AT90S2333__
__AVR_AT90S2343__
__AVR_ATtiny22__
__AVR_ATtiny26__
__AVR_AT90S4414__
__AVR_AT90S4433__
__AVR_AT90S4434__
__AVR_AT90S8515__
__AVR_AT90C8534__
__AVR_AT90S8535__
__AVR_AT86RF401__
__AVR_ATA6289__
__AVR_ATA5272__
__AVR_ATA6616C__
__AVR_ATtiny13__
__AVR_ATtiny13A__
__AVR_ATtiny2313__
__AVR_ATtiny2313A__
__AVR_ATtiny24__
__AVR_ATtiny24A__
__AVR_ATtiny25__
__AVR_ATtiny261__
__AVR_ATtiny261A__
__AVR_ATtiny4313__
__AVR_ATtiny43U__
__AVR_ATtiny44__
__AVR_ATtiny44A__
__AVR_ATtiny441__
__AVR_ATtiny45__
__AVR_ATtiny461__
__AVR_ATtiny461A__
__AVR_ATtiny48__
__AVR_ATtiny828__
__AVR_ATtiny84__
__AVR_ATtiny84A__
__AVR_ATtiny841__
__AVR_ATtiny85__
__AVR_ATtiny861__
__AVR_ATtiny861A__
__AVR_ATtiny87__
__AVR_ATtiny88__
__AVR_ATmega603__
__AVR_AT43USB355__
__AVR_ATmega103__
__AVR_AT43USB320__
__AVR_AT90USB82__
__AVR_AT90USB162__
__AVR_ATA5505__
__AVR_ATA6617C__
__AVR_ATA664251__
__AVR_ATmega8U2__
__AVR_ATmega16U2__
__AVR_ATmega32U2__
__AVR_ATtiny167__
__AVR_ATtiny1634__
__AVR_AT76C711__
__AVR_ATA6285__
__AVR_ATA6286__
__AVR_ATA6612C__
__AVR_ATmega48__
__AVR_ATmega48A__
__AVR_ATmega48PA__
__AVR_ATmega48P__
__AVR_ATmega8__
__AVR_ATmega8A__
__AVR_ATmega8515__
__AVR_ATmega8535__
__AVR_ATmega88__
__AVR_ATmega88A__
__AVR_ATmega88P__
__AVR_ATmega88PA__
__AVR_ATmega8HVA__
__AVR_AT90PWM1__
__AVR_AT90PWM2__
__AVR_AT90PWM2B__
__AVR_AT90PWM3__
__AVR_AT90PWM3B__
__AVR_AT90PWM81__
__AVR_AT90CAN32__
__AVR_AT90CAN64__
__AVR_AT90PWM161__
__AVR_AT90PWM216__
__AVR_AT90PWM316__
__AVR_AT90SCR100__
__AVR_AT90USB646__
__AVR_AT90USB647__
__AVR_AT94K__
__AVR_ATmega16__
__AVR_ATA5790__
__AVR_ATA5702M322__
__AVR_ATA5782__
__AVR_ATA6613C__
__AVR_ATA6614Q__
__AVR_ATA5790N__
__AVR_ATA5795__
__AVR_ATA5831__
__AVR_ATmega161__
__AVR_ATmega162__
__AVR_ATmega163__
__AVR_ATmega164A__
__AVR_ATmega164P__
__AVR_ATmega164PA__
__AVR_ATmega165__
__AVR_ATmega165A__
__AVR_ATmega165P__
__AVR_ATmega165PA__
__AVR_ATmega168__
__AVR_ATmega168A__
__AVR_ATmega168P__
__AVR_ATmega168PA__
__AVR_ATmega169__
__AVR_ATmega169A__
__AVR_ATmega169P__
__AVR_ATmega169PA__
__AVR_ATmega16A__
__AVR_ATmega16HVA__
__AVR_ATmega16HVA2__
__AVR_ATmega16HVB__
__AVR_ATmega16HVBREVB__
__AVR_ATmega16M1__
__AVR_ATmega16U4__
__AVR_ATmega32__
__AVR_ATmega32A__
__AVR_ATmega323__
__AVR_ATmega324A__
__AVR_ATmega324P__
__AVR_ATmega324PA__
__AVR_ATmega325__
__AVR_ATmega325A__
__AVR_ATmega325P__
__AVR_ATmega325PA__
__AVR_ATmega3250__
__AVR_ATmega3250A__
__AVR_ATmega3250P__
__AVR_ATmega3250PA__
__AVR_ATmega328__
__AVR_ATmega328P__
__AVR_ATmega329__
__AVR_ATmega329A__
__AVR_ATmega329P__
__AVR_ATmega329PA__
__AVR_ATmega3290__
__AVR_ATmega3290A__
__AVR_ATmega3290P__
__AVR_ATmega3290PA__
__AVR_ATmega32C1__
__AVR_ATmega32HVB__
__AVR_ATmega32HVBREVB__
__AVR_ATmega32M1__
__AVR_ATmega32U4__
__AVR_ATmega32U6__
__AVR_ATmega406__
__AVR_ATmega64RFR2__
__AVR_ATmega644RFR2__
__AVR_ATmega64__
__AVR_ATmega64A__
__AVR_ATmega640__
__AVR_ATmega644__
__AVR_ATmega644A__
__AVR_ATmega644P__
__AVR_ATmega644PA__
__AVR_ATmega645__
__AVR_ATmega645A__
__AVR_ATmega645P__
__AVR_ATmega6450__
__AVR_ATmega6450A__
__AVR_ATmega6450P__
__AVR_ATmega649__
__AVR_ATmega649A__
__AVR_ATmega6490__
__AVR_ATmega6490A__
__AVR_ATmega6490P__
__AVR_ATmega649P__
__AVR_ATmega64C1__
__AVR_ATmega64HVE__
__AVR_ATmega64HVE2__
__AVR_ATmega64M1__
__AVR_M3000__
__AVR_AT90CAN128__
__AVR_AT90USB1286__
__AVR_AT90USB1287__
__AVR_ATmega128__
__AVR_ATmega128A__
__AVR_ATmega1280__
__AVR_ATmega1281__
__AVR_ATmega1284__
__AVR_ATmega1284P__
__AVR_ATmega128RFR2__
__AVR_ATmega1284RFR2__
__AVR_ATmega2560__
__AVR_ATmega2561__
__AVR_ATmega256RFR2__
__AVR_ATmega2564RFR2__
__AVR_ATxmega16A4__
__AVR_ATxmega16A4U__
__AVR_ATxmega16C4__
__AVR_ATxmega16D4__
__AVR_ATxmega32A4__
__AVR_ATxmega32A4U__
__AVR_ATxmega32C3__
__AVR_ATxmega32C4__
__AVR_ATxmega32D3__
__AVR_ATxmega32D4__
__AVR_ATxmega8E5__
__AVR_ATxmega16E5__
__AVR_ATxmega32E5__
__AVR_ATxmega64A3__
__AVR_ATxmega64A3U__
__AVR_ATxmega64A4U__
__AVR_ATxmega64B1__
__AVR_ATxmega64B3__
__AVR_ATxmega64C3__
__AVR_ATxmega64D3__
__AVR_ATxmega64D4__
__AVR_ATxmega64A1__
__AVR_ATxmega64A1U__
__AVR_ATxmega128A3__
__AVR_ATxmega128A3U__
__AVR_ATxmega128B1__
__AVR_ATxmega128B3__
__AVR_ATxmega128C3__
__AVR_ATxmega128D3__
__AVR_ATxmega128D4__
__AVR_ATxmega192A3__
__AVR_ATxmega192A3U__
__AVR_ATxmega192C3__
__AVR_ATxmega192D3__
__AVR_ATxmega256A3__
__AVR_ATxmega256A3U__
__AVR_ATxmega256A3B__
__AVR_ATxmega256A3BU__
__AVR_ATxmega256C3__
__AVR_ATxmega256D3__
__AVR_ATxmega384C3__
__AVR_ATxmega384D3__
__AVR_ATxmega128A1__
__AVR_ATxmega128A1U__
__AVR_ATxmega128A4U__
__AVR_ATtiny4__
__AVR_ATtiny5__
__AVR_ATtiny9__
__AVR_ATtiny10__
__AVR_ATtiny20__
__AVR_ATtiny40__
ianfixes commentedon Jan 15, 2019
I guess I already had a bunch of this via https://github.com/ianfixes/arduino_ci/blob/master/cpp/arduino/avr/io.h ... the trick is correlating them all to Arduino platforms
s-celles commentedon Jan 18, 2019
I bought and received recently an Arduino MKRZero which is using a SAMD21 Cortex-M0+ 32bit low power ARM MCU. Any chance to have this MCU supported by arduino_ci ?
Here is the list of Arduino boards (from https://www.arduino.cc/en/products.compare )
Others boards
(1) currently defined in
misc/default.yml
... to be tested(2) name of the platform in Arduino CI
ianfixes commentedon Jan 28, 2019
Do these platforms have official identifiers (something that can be used in code, like
promini
orpro_mini
for the "Pro Mini")? That's the missing piece here. I can (of course) invent my own IDs, I just don't want to create accidental conflicts like the 2 "Pro Mini" possibilities above.s-celles commentedon Jan 28, 2019
Maybe @per1234 can tell us if Arduino platforms have official identifiers.
default.yaml
#7ianfixes commentedon Jan 28, 2019
Note to self, combine with this info from #7
This looks like a good resource for what
#define
s might be availablehttps://arduino.stackexchange.com/questions/21137/arduino-how-to-get-the-board-type-in-code
per1234 commentedon Jan 28, 2019
There is a standard convention that a macro be created
ARDUINO_{build.board}
, where the{build.board}
property is defined for each board in boards.txt. If{build.board}
is not defined, the Arduino IDE automatically defines it as{architecture}_{board ID}
. There is nothing that requires the actual macro to be defined in platform.txt so it's possible that some silly 3rd party hardware package author might leave that off, but I'm not aware of any instances of that. Certainly all of the official Arduino hardware packages are going to define it.Reference:
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification#boardstxt
This is in reference to Arduino-CI#89
14 remaining items