Error resolving FQBN (Adafruit Feather 328p)

Error when compiling:
"Compilation error: Error: 2 UNKNOWN: Error resolving FQBN: missing platform release arduino:avr referenced by board adafruit:avr:feather328p"

Steps to reproduce:

The Adafruit board extensions work perfectly under IDE 1.8.15 (Windows Store 1.8.49.0)

Hi @paulcha. Arduino boards platforms can reference resources of other boards platforms. This means that one platform can have a dependency on another. That is the case with the "Adafruit AVR Boards" platform, which has a dependency on the "Arduino AVR Boards" platform.

The classic Arduino IDE comes with a copy of Arduino AVR Boards platform pre-installed, so we are accustomed to always having this available. But Arduino IDE 2.0.0 does not come with any boards platforms pre-installed, so you must install the platform of every board and also the dependencies of that platform.

That is easily done via Boards Manager:

  1. Select Tools > Board > Boards Manager from the Arduino IDE's menus to open the Boards Manager panel from the side bar.
  2. Scroll down through the list of boards platforms until you see "Arduino AVR Boards". Click on it.
  3. Click the Install button.
  4. Wait for the installation to finish.

You should now be able to compile for your Adafruit Feather 328P.

1 Like

Thanks @pert for the quick response. I can confirm this fixes the problem.

Would be good to have the Arduino AVR dependency automatically picked up but I'm guessing that's an issue for Adafruit to fix.

Many thanks again.

I'm very glad to hear it!

I agree. In this specific case, it's probably especially confusing because not having Arduino AVR Boards pre-installed always is a relatively new phenomenon, an thus there is not likely to be a lot of information about fixing this error. However, even with other platforms that have dependencies which were never pre-installed, thus requiring documentation and support for that situation, it still came up periodically that people had missed that requirement to manually install the dependency. Having it install automagically would make all that a non-issue for the users, who just want to get past the setup slog and to the fun parts.

Unfortunately, although there is a very capable system for defining toolchain dependencies, the Arduino development software does not currently provide the capability to define dependencies on platforms. So the ball is in Arduino's court at this point (though the platform authors would need to define their dependencies if the capability is added):

I just noticed that Adafruit AVR Boards is actually used as the example in that feature request.

You're welcome. I'm glad if I was able to be of assistance.

Update on this. Starting with Arduino IDE 2.0.0-beta.12, the "Arduino AVR Boards" platform is automatically installed the first time you run the Arduino IDE: