I just installed the Inkplate boards in my Arduino IDE, and I can select among several Inkplate products, but there are no sketch examples for them. In the Examples dropdown menu there is an Inkplate item, but the list of examples beneath is not related to an Inkplate product. Instead there are EEPROM, DNS Server, etc.
Second question: I’m looking for an e-paper display to serve as a dashboard for a boat. I don’t need fast refresh (2 per second is enough) and only for limited areas of the screen (such as the speed display), but the Waveshare website says that repeated partial refreshes will reduce the lifetime of the e-paper display. What lifetime can you guarantee for your devices?
Originally submitted via email support on 18 December 2025. Migrated to the forum for community visibility.
Also, I would recommend reading the following documentation, which compares the features of each specific Inkplate device as well as showing how to set it up and explaining in detail some of the basic examples:
Regarding your second question: All of our Grayscale models (so 6, 6FLICK, 5V2, 10) have a full refresh of under 2 seconds. As the lifetime largely depends on how the panel was stored, what temperatures it has been exposed to as well as how intensively you use it, we cannot guarantee a specific lifetime for it. Your choice should boil down to how large you want the screen to be and the resolution of it. The highest resolution display is the Inkplate 5V2 with a 720p panel. A good choice could also be the 6FLICK, as it has a touchscreen which could be used to navigate through different UIs.
My project has progressed, and I have the following questions:
What is the exact syntax to declare a GPIO pin (e.g. pinMode(PC10, INPUT_PULLUP);)?
How can I activate ADC1 and set its resolution to 12 bits?
What is the VIN signal in the schematic?
Can the board work at full speed on battery, or is the battery only there to keep the RTC and the RAM alive?
Do you have a reference document for the Inkplate6Motion library (with all function headers, their parameters, return values, and action)?
The FreeRTOS library by default uses Timer1, is this ok for the Inkplate6Motion?
What is the relationship between the size of a font in point and the height of the characters in pixels?
Is it possible to use a timer in PWM mode as an output device for the MOZZI library?
Does the ESP32 provide a measurement of the WiFi signal strength so that it can be displayed on screen?
Is there a battery gauge in the library, to allow displaying the state of charge and an evaluation of the remaining time, or must I measure the battery voltage and infer the state of charge from it?
You can call display.pinModeIO(pin, mode), where pins are named from IO_PIN_A0 to IO_PIN_A7 and IO_PIN_B0 to IO_PIN_B7 respectively. Mode is the same as the ones defined in the Arduino framework, so INPUT, INPUT_PULLUP and OUTPUT. So, for example, setting the pinmode of the A2 pin would look like: display.pinModeIO(IO_PIN_A2, OUTPUT); Likewise, you can call display.digitalWriteIO(IO_PIN_A2, HIGH) to set the pin to a high state. A basic code reading the value off of PA1 looks like this:
void setup() {
Serial.begin(115200);
delay(1000);
// Set ADC resolution to 12 bits (0–4095)
analogReadResolution(12);
// Optional: set ADC clock speed (if supported)
// analogReadFrequency(1000000); // 1 MHz (core-dependent)
}
void loop() {
int adcValue = analogRead(PA1);
Serial.println(adcValue);
delay(500);
}
Timer1 is fine for the Inkplate 6MOTION since the e-paper is driven by STM32 processor, ESP only handles WiFi and Bluetooth connection. This largely depends on the font you are using, there is a standard of 1px=0.75pt. It is possible, but you need to know which timers to use to avoid conflicts. Yes. WiFi.RSSI() function returns the signal strength in dBm in range from: 0 dBm (perfect signal) to -90 dBm (poor or unstable). There is no built in support that evaluates the remaining charge time, you need to measure the battery voltage and estimate the remaining charge time manually.
There also must be IO_PIN_A9 to A15, B9 to B15, same for PC, PG, PH, as well as PC2.C and PC3.C, right?
Is VIN supposed to be fed by an external power supply? or is it just another name for the 5V that comes in through the USB-C connector?
6 & 8. Does the eink driving mechanism take up one or more timers? Which ones?
I apologize, I understood you wanted to know how to access pins that are on the GPIO expander. The pins connected to the onboard STM32 are even easier to configure. You can configure them using the function pinMode(PA10, OUTPUT) and to set it to high you call digitalWrite(PA10, HIGH); no need to call display.pinModeIO and such.
It is just a standard we use for the 5V that comes from the USB-C connector.
None of the Timers are blocked by the Panel and can be used.
The eink drive mechanism likely requires some timing to be used to generate the proper waveforms. Do you mean that this timing is provided by hardware, so that no timer of the STM32H7 is used?
The 6 Motion uses the FMC alongside DMA to control the panel as well as the onboard 32MB DRAM. Both of them have independent timing and control registers. It does use data bus clocks but it doesn’t block other peripherals from using them.
When compiling my project, I get the following warning:
e:\arduino2\portable\sketches\libraries\inkplate_motion_library\src\system\defines.h:51:1:
warning: 'typedef' was ignored in this declaration
51 | typedef struct InkplateWaveform
| ^~~~~~~
Is this due to a multiple definition? Anyway, this does not make the compilation fail.
That specific warning was an oversight from our part. When defining a typedef you should give a symbolic name for the structure, since that was not done the compiler ignored the typedef keyword. This is a slight difference between C and C++. This warning has nothing to do with multiple definitions and it will not bring you any errors when developing your project.