Customer:
The library doesn’t work with PlatformIO due to incompatibility of Expander. System.h has a problem with the definition:
#if defined(ARDUINO_INKPLATE10) || defined(ARDUINO_ESP32_DEV) || defined(ARDUINO_INKPLATE6PLUS)
#include "Mcp.h"
#endif
#if defined(ARDUINO_INKPLATE10V2) || defined(ARDUINO_INKPLATE6V2) || defined(ARDUINO_INKPLATE6PLUSV2) || \
defined(ARDUINO_INKPLATECOLOR) || defined(ARDUINO_INKPLATECOOL) || defined(ARDUINO_INKPLATE5) || \
defined(ARDUINO_INKPLATE5V2) || defined(ARDUINO_INKPLATE4) || defined(ARDUINO_INKPLATE7) || \
defined(ARDUINO_INKPLATE4TEMPERA) || defined(ARDUINO_INKPLATE6FLICK)
#include "Pcal.h"
#endif
Mcp.h and Pcal.h are both included and Expander is defined twice. Haven’t found a way to solve this.
Originally submitted via email support on 29 September 2025. Migrated to the forum for community visibility.
Soldered Support:
The Arduino library should work with PlatformIO as intended. You need to do this:
- Select ESP32 Arduino Core 2.0.14
In your platformio.ini, set the ESP32 platform to exactly 2.0.14, this one is used in the Inkplate library with Inkplate board definitions:
[env:inkplate]
platform = espressif32@6.9.0 ; maps to Arduino-ESP32 2.0.14
board = esp32dev ; or your Inkplate's base board
framework = arduino
platform = espressif32@6.9.0 pins the ESP32 Arduino Core to 2.0.14. PlatformIO Espressif32 release numbers map to Arduino core versions. 6.9.0 = 2.0.14
- Define ARDUINO_INKPLATECOLOR Globally
You don’t need to modify library headers. Just add a build flag:
[env:inkplate]
platform = espressif32@6.9.0
board = esp32dev
framework = arduino
; Pass a global macro definition
build_flags =
-D ARDUINO_INKPLATECOLOR
This makes #ifdef ARDUINO_INKPLATECOLOR evaluate as true in all files during compile - this will make sure the library works.