Board definitions for Arduino 2.0

Hi everyone.

I have a custom arduino that is built around an ATSAMD21J18A. Due to parts shortages I have also subbed in ATSAMD21J17A and ATSAMD21J17D. A friend of mine put together board definitions and bootloaders for all of these variants on the board. They work with Arduino IDE 1.8 (although not perfectly), but they do not work with Arduino IDE 2.0. I would like to learn how to update the board definitions to be compatible with 2.0 and also how to build bootloaders for the custom boards, but I don't see any guidelines or other documentation out there. Is this sort of thing documented or do you just have to crawl through examples enough to figure out how to customize? I'd appreciate links to any helpful resources for IDE 2.0. I found a few documents about 1.8, but they don't tell me what's different about board defs for 2.0.

There ought to excist documentation telling what the update to 2.0 consist of. Wheather that gives You enough help or not is another question.

Why fix what isn't broken. Just keep on using 1.8.
Several on this forum have downgraded to 1.8 after trying 2.0, because of other issues.
I don't see the advantage of 2.0. Maybe an insider can tell me.
Leo..

AFAIK, there weren't any changes in the boards.txt format between 1.8 and 2.0
The spec is here: Platform specification - Arduino CLI

I'm not sure about the bootloader. It's a slightly modified version of Atmel/Microchip's SAM-BA?BOSSA bootloader (adding the "1200baud causes RESET" feature, I believe.)
There's also the Microsoft UF2 bootloader.
This causes an annoying set of hierarchical instructions. "get the source from X, the patches from Y, and follow the instructions from Z" :frowning:

Hi @brid0030. It sounds like a cool project!

Please provide a detailed explanation of what you mean by this, including:

  • What did you do?
  • What were the results you expected from doing that thing?
  • What were the results you observed that did not match your expectations?
    • Make sure to include the full and exact text of any error or warning message you might have encountered.

Support for some new features have been added to the Arduino boards platform framework since Arduino IDE 1.8.x, but the work has been done with an attention to maintaining backwards compatibility with the platforms that don't use the features.

I successfully use many boards platforms that haven't received any modifications since the author developed them for Arduino IDE >1.0 (there were some breaking changes to the framework a decade ago at the Arduino IDE 1.5.0 release). So there definitely isn't any universal breakage in Arduino IDE 2.x.

Thanks everyone for your responses. I'll try to address each of them. Why switch to 2.0? It would simplify things when instructing people outside my lab on how to use the circuit boards (2.0 is now the default version). Also I like some of the new features in 2.0. But I could possibly go on forever with 1.8 I suppose.

Thanks, westfw, for the links to the board spec and bootloaders.

The whole project including the bootloader my friend wrote is here:

The board def link for the IDE is:

https://raw.githubusercontent.com/jaywilhelm/ArduinoCore-ETAGRFID/testing/package_ETAGRFID_index.json.

I'm not well versed in this code so I can't answer many questions about it. But one thing that is annoying is that if you program the board using an incorrect board variant, then the bootloader is disabled and the board becomes unresponsive. You have to program it again with an ATMEL-ICE or something, to get it working again. Also, not all of the analog inputs are working as analog inputs with the current board def.