Inkplate 6 compilation error after SdFat library update

Customer:

After installing recommended library updates including SdFat, example sketches no longer compile. I’m getting this error:

/Users/[user]/Documents/Arduino/libraries/Inkplate_6_Arduino_library_master/Inkplate.cpp:7:15: error: no matching function for call to 'SdFat::SdFat(SPIClass*)'

SdFat sd(&spi2);

^

In file included from /Users/[user]/Documents/Arduino/libraries/Inkplate_6_Arduino_library_master/Inkplate.h:17:0,

from /Users/[user]/Documents/Arduino/libraries/Inkplate_6_Arduino_library_master/Inkplate.cpp:4:

/Users/[user]/Documents/Arduino/libraries/SdFat/src/SdFat.h:310:7: note: candidate: SdFat::SdFat()

class SdFat : public SdFileSystem {

^

/Users/[user]/Documents/Arduino/libraries/SdFat/src/SdFat.h:310:7: note: candidate expects 0 arguments, 1 provided

/Users/[user]/Documents/Arduino/libraries/SdFat/src/SdFat.h:310:7: note: candidate: constexpr SdFat::SdFat(const SdFat&)

/Users/[user]/Documents/Arduino/libraries/SdFat/src/SdFat.h:310:7: note: no known conversion for argument 1 from 'SPIClass*' to 'const SdFat&'

/Users/[user]/Documents/Arduino/libraries/SdFat/src/SdFat.h:310:7: note: candidate: constexpr SdFat::SdFat(SdFat&&)

/Users/[user]/Documents/Arduino/libraries/SdFat/src/SdFat.h:310:7: note: no known conversion for argument 1 from 'SPIClass*' to 'SdFat&&'

Multiple libraries were found for "SdFat.h"

Used: /Users/[user]/Documents/Arduino/libraries/SdFat

Not used: /Users/[user]/Documents/Arduino/libraries/Inkplate_6_SDFat_Arduino_Library_master

exit status 1

Error compiling for board Inkplate 6(ESP32).

The error repeats when I try to compile. What should I do?

Originally submitted via email support on 29 July 2020. Migrated to the forum for community visibility.

Soldered Support:

The issue is with the SdFat library version. Remove your current SdFat library and install the correct version from https://github.com/e-radionicacom/Inkplate-6-SDFat-Arduino-Library

Try compiling the 1-Inkplate_basic_monochrome.ino example to test: https://github.com/e-radionicacom/Inkplate-6-Arduino-library/blob/master/examples/1.%20Basic%20Inkplate%20Functionality/1-Inkplate_basic_monochrome/1-Inkplate_basic_monochrome.ino

Customer:

I tried reverting to the old SdFat library but it still doesn’t work. The problem might be that Arduino suggested upgrading another file along with SdFat, and since I don’t remember the name of that second file, I can’t undo that upgrade either. What’s the easiest way to fix this?

Customer:

I’ve managed to get Inkplate to display one bitmap, or another bitmap using your sample code. However, when I tried to modify the code to display bitmap1, pause, then show bitmap2, it didn’t work. Do you have sample code to display 3 or 5 pictures with editable delays between them?

Also, do you have sample code for a weather station?

One more question: how do I get the serial port installed on macOS Catalina? The serial port that was listed in Arduino’s port selection seems to have disappeared.

Soldered Support:

Great that you’ve resolved the IDE issue and are working with the library.

The issue with displaying multiple images is likely a logic error in your code. Are you loading the images from the SD card?

We have a weather station example in development. Check it here: https://github.com/e-radionicacom/Inkplate-6-Arduino-library/tree/master/examples/3.%20Projects/1-Weather_station_example

For the serial port issue on macOS: if you had the port working once, the drivers are already installed. Try restarting your Mac or using a different port. Similar issues with macOS are common.

Customer:

How do I download and use the weather station code? Which files should I copy where to get the weather station working? I don’t see a clear download button. I’m not very familiar with GitHub, and I’ve read the instructions multiple times but still find it confusing.

Soldered Support:

I’ve written an example that loads image1.bmp, image2.bmp and image3.bmp from your SD card and displays them with a 45 minute delay between each. Put the BMP files on your SD card with those exact filenames and try the code.

To display 5 images, it’s just a small code change—try looking at the example and modifying it.

To use the other examples like the weather station:

  1. Download the library from GitHub - SolderedElectronics/Inkplate-Arduino-library: Inkplate family Arduino library. The easiest way to add e-paper to your project. · GitHub
  2. Follow the installation tutorial at https://www.baldengineer.com/installing-arduino-library-from-github.html
  3. Once installed, go to File → Examples → Inkplate → Projects → Weather station
  4. Add your WiFi network name and password to the example so Inkplate can connect

Attachment omitted in migration: Marus-show-3-bmps.ino