I am trying to edit an old code for a dot matrix display. This code was written on Arduino IDE in Windows 10, for DOIT ESP32 DEVKIT V1. I never had a problem with libraries in the Windows environment but it started breaking up when I am trying to install the necessary libraries in Linux Mint 22.
I would prefer to install it using the LIBRARY MANAGER (rather than manually extract a zip file in the include folder) so the IDE knows in its own way which libraries are installed and to avoid having similar dependency conflicts in future.
Problem: When I press "Install" button on the MD_MAXPanel library, an error pops up saying, among other things, "MD_MAX72xx is not available". You can see it right there, version 3.5.1 already installed and reported by the same LIBRARY MANAGER that says it's not installed. There is a folder with that name in the libraries folder among others. I have restarted the IDE several times but it doesn't help. All my libraries and boards are installed up to date.
Question: How do I install "MD_MAXPanel" library through the Arduino IDE LIBRARY MANAGER?
1 Answer 1
Just guessing... This looks like a case-sensitivity problem to me:
the MD_MAXPanel library repost a dependency on MD_MAX72xx
(lowercase xx
), whereas MD_MAX72XX explicity states its name is
MD_MAX72XX
(upppercase XX
). I guess Windows does not care, as
it uses a case-insensitive filesystem.
I suggest you report this inconsistency to the author of these
libraries, maybe with a pull request fixing the depands=
line of
MD_MAXPanel. In the mean time, you may try to create a symlink in your
libraries directory, from MD_MAX72xx
to MD_MAX72XX
.
-
I don't think it's a case problem. I changed the library name to lower case
xx
in the file name, folder name, and in thelibrary.properties
file but it doesn't seem to work.paki eng– paki eng2024年11月04日 19:09:58 +00:00Commented Nov 4, 2024 at 19:09 -
@pakieng: I would avoid renaming an existing library: this one is already known as
MD_MAX72XX
by the Arduino IDE (it should be listed in a file namedlibrary_index.json
). You could try changing thedepends=
line in MD_MAXPanel instead.Edgar Bonet– Edgar Bonet2024年11月04日 19:56:34 +00:00Commented Nov 4, 2024 at 19:56 -
@pakieng Edgar Bonet is completely correct about it being a case problem and a problem on the part of the library author. He is also correct about editing
library_index.json
. Within about 45 minutes of you posting the question I'd verified this. But you asked how to do this in the IDE, and this is more work than using manually installing or usingarduino-cli lib install --no-deps MD_MAXPanel
(which also works), so I figured you wouldn't be satisfied with it as an answer. But since he's provided an answer and you haven't accepted it or voted it up, I will.timemage– timemage2024年11月05日 00:58:09 +00:00Commented Nov 5, 2024 at 0:58 -
1@pakieng Also, only editing the
dependencies
key inlibrary_index.json
in the arduino15 directory mattered. The library author would need to edit theirlibrary.properties
in order to make the indexer produce the correct entries inlibrary_index.json
. Unfortunately editinglibrary.properties
locally has no effect.timemage– timemage2024年11月05日 01:05:25 +00:00Commented Nov 5, 2024 at 1:05