WARNING: library LiquidCrystal_I2C-1.1.2 claims to run on (avr) architecture(s)

Hi i am kind of new to arduino and i was wondering what this meant?

WARNING: library LiquidCrystal_I2C-1.1.2 claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on (samd) architecture(s).

This probably means that the library writer marked the library as tested only for AVR (Uno, Mega etc) boards.

It does not mean it won’t work on other boards such as SAMD (MKR, Zero etc) but it isn’t tested at all by the author(s). There may well be another suitable library that is tested for your board.

As It’s a warning, compilation should still go ahead.

Most of my work is with ESP 8266 processors, so this warning gets old. I was able to eliminate this compile warning by doing the following:

  1. Navigate to your Arduino/libraries/LiquidCrystal_I2C library.
  2. Edit the library.properties file with a text editor.
  3. Change the architecture line from "architecture=avr" to "architecture=avr,esp8266".

Seems to work fine. If this is a bad thing to do, please let me know!

If the library works and you keep in mind that the lack of that architecture being specified in the unmodified library might indicate that the author hasn't made any specific attempts to check whether the library is compatible with ESP8266, I don't see any harm in what you did.

I also find it annoying to see this sort of warning over and over again. I always try to pay attention to all the warnings.

I've seen several libraries that has absolutely no architecture specific code, yet specified the avr architecture. I think a lot of library authors don't actually understand what library.properties does and don't bother to read the documentation. They just copy/paste from some other library, change the obvious parts, and leave the rest as is.

The hd44780 library has been tested on many platforms (avr, esp8266, pic32, samd) It has no architecture specific code so the properties file is setup to compile with no warnings on any/all architectures.

You may want to give that a try with the hd44780_I2Cexp i/o class. IMO, it is easier to use as will auto locate the expander chip i2c address and auto configure the pin mappings.

If there are any issues, create a thread here or post a github issue and I'll fix them.

--- bill