4. Examples¶
All examples included in our library can be found here: Examples for Inkplate After you download inkplate Arduino library you will have all examples inside Arduino IDE. There are comments in all examples that describe how it works and what hardware you need.
Note: There is not every example for every Inkplate, but most of them exist on each Inkplate board. For example, for Inkplate2 there are no examples that use an SD card because Inkplate 2 does not have an SD card slot. Examples that are for specific Inkplate boards, in the text below it contain a version of Inkplate for which is intended. Examples that don’t have versions of Inkplate in the name are examples for each Inkplate board.
4.1. Basic¶
4.1.1. Inkplate2_Black_White_Red¶
4.1.2. Inkplate2_Text_With_Shadow¶
4.1.3. Inkplate_Black_And_White¶
This example shows basic Inkplate functionalities in black and white mode (writing text, drawing shapes and images, …).
4.1.4. Inkplate_Grayscale¶
This example shows basic Inkplate functionalities in gray mode (writing text, drawing shapes and images).
4.1.5. Inkplate_Partial_Update¶
4.1.6. Inkplate6PLUS_Simple_Frontlight¶
This example will show you how to use Inkplate 6Plus frontlight.
4.1.7. Inkplate6PLUS_Touch_In_Area¶
This example shows you how to use Inkplate 6Plus touchscreen. Once the code is uploaded, try to touch the rectangle on the screen :)
4.1.8. Inkplate6PLUS_Touch_Registers¶
This example shows you how to use Inkplate 6Plus touchscreen. Once the code is uploaded, open the serial monitor in Arduino IDE and you’ll see touchscreen events there.
4.1.9. Inkplate6PLUS_Touchscreen_Draw¶
This example shows you how to use Inkplate 6PLUS touchscreen. Once the code is uploaded, try drawing on the screen :)
4.1.10. Inkplate6PLUS_Touchscreen_Serial¶
This example shows you how to use Inkplate 6Plus touchscreen. Once the code is uploaded, open the serial monitor in Arduino IDE and you’ll see touchscreen events there.
4.1.11. Inkplate6COLOR_Full_Screen_Colors¶
Simple Inkplate 6COLOR example showing all colors of the Inkplate.
4.1.12. Inkplate6COLOR_Simple¶
Simple Inkplate example showing drawing functionalities of the Inkplate 6COLOR library.
4.2. Advanced¶
4.2.1. Communications¶
4.2.1.1. Inkplate_Bluetooth_Peripheral_Mode¶
This example shows how to use Inkplate as a peripheral device over Bluetooth.Note: for this to work you need to use ESP32 Wroover Board definition, as ours currently has a bug :(
4.2.1.2. Inkplate_Bluetooth_Serial¶
This example shows how to use Bluetooth on Inkplate devices. Upload this example to the Inkplate and connect your phone to it via Bluetooth. On the screen (or Serial monitor on Inkplates with slow refresh rate), you will see what the phone sends while in the app you will see what the Inkplate sends over the Serial Monitor.
4.2.1.3. Inkplate_EasyC¶
4.2.1.4. Inkplate_Second_SPI¶
This example will show you how you can read a tag ID and print it on the Inkplate screen.
4.2.2. DeepSleep¶
4.2.2.1. Inkplate_Partial_Update_With_Deep_Sleep¶
4.2.2.2. Inkplate_RTC_Alarm_With_Deep_Sleep¶
This example will show you how to use RTC alarm interrupt with deep sleep. All Inkplates except Inkplate2 features an RTC chip with an interrupt for alarm connected to GPIO39.
4.2.2.3. Inkplate_Simple_Deep_Sleep.ino¶
4.2.2.4. Inkplate_Wake_Up_Button¶
Here is shown how to use ESP interrupts to wake up the MCU from deepsleep when wake up button is pressed. Also, wake up on timer after 30 seconds of deep sleep if the button is not pressed.
4.2.2.5. Inkplate_Wake_Up_On_Touchpads¶
4.2.3. IO¶
4.2.3.1. Inkplate_External_IO_Expander¶
This example will show you how you can manipulate with I/Os of external IO Expander.Note: Only available on Inkplates that have external IO expander.
4.2.3.2. Inkplate_Internal_IO_Expander¶
This example will show you how you can manipulate with I/Os of internal IO Expander.Note: Only available on Inkplates that have internal IO expander.
4.2.3.3. Inkplate_Read_Touchpads¶
This example will show you how you can use built-in touchpads (on PCB marked with numbers 1, 2 and 3).Note: Only available on Inkplates that have touchpads.
4.2.4. Other¶
4.2.4.1. Inkplate_EEPROM_Usage¶
This example will show you how to use EEPROM with Inkplate board. EEPROM is a permanent memory that holds data even if the power supply is disconnected. You can use EEPROM to store any data you don’t want to lose during restarting or powering down the device. It shows how to use basic operations with EEPROM like clearing, writing, and reading.
4.2.4.2. Inkplate_Faster_Display_Refreshes¶
We can display and partial update our screens faster by leaving the panel power on. Just be sure to turn it off when going to deep sleep to save power.
4.2.4.3. Inkplate_Read_Battery_Voltage¶
This example will show you how to read voltage of the battery.Note: Not available on Inkplate2
4.2.4.4. Inkplate_Read_Temperature¶
This example will show you how to read temperature from on-board temperature sensor which is part of TPS65186 e-paper PMIC.Note: Only available for Inkplates that have TPS (5, 6, 6PLUS, 10).
4.2.5. RTC¶
4.2.5.1. Inkplate_RTC_Alarm¶
In this example we will show how to use basic alarm and clock functions of PCF85063 RTC on Inkplate board. This example will show how to set time and date, how to set alarm, how to read time and how to print time on Inkplate.
4.2.5.2. Inkplate_RTC_Interrupt_Alarm¶
In this example we will show how to use PCF85063A RTC Alarm functionality with interrupt. This example will show how to set time and date, how to set up a alarm, how to read time, how to print time on Inkplate.
4.2.5.3. Inkplate_RTC_Simple¶
Example shows how to use basic clock functions of PCF85063A RTC on Inkplate board. This example will show how to set time and date, how to read time and how to print time on Inkplate.
4.2.5.4. Inkplate_RTC_Timer¶
In this example we will show how to use PCF85063A RTC Timer functionality. This example will show how to set time and date, how to set up a timer, how to read time and how to print time on Inkplate.
4.2.6. SD¶
4.2.6.1. Inkplate_SD_Pictures¶
This example will show you how you can read .bmp and .jpeg files (pictures) from SD card and display that image on e-paper display.
4.2.6.2. Inkplate_SD_TXT_Read¶
This example will show you how to open .txt files and display the content of that file on Inkplate epaper display.
4.2.6.3. Inkplate_SD_TXT_Write¶
This example will show you how to write in .txt file.
4.2.7. WEB_WiFi¶
4.2.7.1. Inkplate_HTTPS_POST_Request¶
This example will show you how to connect to a WiFi network and send a POST request via HTTPS.
4.2.7.2. Inkplate_HTTP_POST_Request¶
This example will show you how to connect to a WiFi network and send a POST request via HTTP.
4.2.7.3. Inkplate_HTTP_Request¶
4.2.7.4. Inkplate_HTTP_Web_Server¶
This example will show you how you can use Inkplate as a small and simple standlone Web Server. You need to connect to Inkplate with WiFi and open IP address shown on Inkplate display. After opening IP address, you will se text box where you can type some text and after that you press “Send to display”. Text will apper on Inkplate display! This is just simple example what you can do with it and of course, you can create much more complex stuff.
![]()
4.2.7.5. Inkplate_Show_Pictures_From_Web¶
4.3. Diagnostics¶
4.3.1. Inkplate_Burn_In_Clean¶
This example will try to remove heavy burn-in visible on the panel.
4.3.2. Inkplate_Factory_Programming_VCOM¶
This example should not be used if you dont know what VCOM is and what exactly you are doing as it can damage panel. Some Inkplates does not support auto VCOM, it has to be set manually. The user will be prompted to enter VCOM via serial (baud 115200). VCOM ranges from 0.0 to -5.0.!WARNING! VCOM can only be set 100 times, so keep usage to a minimum.!WARNING! Use at your own risk.
4.3.3. Inkplate_Peripheral_Mode¶
Using this sketch, you don’t have to program and control e-paper using Arduino code. Instead, you can send UART command (explained in documentation that can be found inside folder of this sketch). This give you flexibility that you can use Inkplate on any platform! Because it uses UART, it’s little bit slower and it’s not recommended to send bunch of drawPixel command to draw some image. Instead, load bitmaps and pictures on SD card and load image from SD. If we missed some function, you can modify this and make yor own. Also, every Inkplate comes with this peripheral mode right from the factory.
4.3.4. Inkplate6COLOR_Gallery¶
This example will show you how you can use Inkplate 6COLOR to random images in the root sdcard folder.
4.3.5. Inkplate6COLOR_Mapbox_API¶
This example will show you how you can use Inkplate 6COLOR to display map data. This example gets html data from crowdsource campaing and displays them on Inkplate screen.
4.3.6. Inkplate10_Waveform_EEPROM_Programming¶
NOTE: This example is only available on Inkplate 10 board.
In order for the image to display correctly on Inkplate, Inkplate needs to have a proper waveform saved in the EEPROM memory. If there is no waveform data available, the message “Waveform load failed! Upload new waveform in EEPROM. Using default waveform.” on the Serial monitor will be displayed (if the Serial.begin() is called before display.begin()). If something like this happens, or you’re not satisfied with the grayscale, you can run this example and choose one of three available waveforms.
Waveforms are responsible for the grayscale image on the e-paper display. It’s just a series of frames that darken or whiten pixels in each frame in order to get desired pixel color. They depend on many parameters like temperature, previous pixel color, next pixel color, and even the type (batch) of the e-paper panel.
Upload this example code on your Inkplate 10. After upload, with touchpad 1 and touchpad 3 choose one of the available waveforms. In the next images, you can see what the correct waveform will look like on the Inkplate. After you find the waveform that best suits for your panel, press touchpad 2 to store it in the EEPROM memory of the ESP32. Calling display.begin() function, the waveform will be copied from EEPROM memory into the library. There is no need for waveform selection before every usage of the Inkplate. One waveform on one Inkplate may not be compatible with another Inkplate (as you can also see in the pictures, there are two different panels, each with its own waveform).
![]()
After successfully saving waveform data to EEPROM, it shows the next image.
![]()
Waveforms on the Inkplate are reverse engineered and made to best fit a large number of e-paper panels, but they are not perfect.
4.4. Projects¶
4.4.1. Inkplate_Crowdsupply_Campaing_Tracker¶
4.4.2. Inkplate_Crypto_Currency_Tracker¶
4.4.3. Inkplate_Daily_Weather_Station¶
4.4.4. Inkplate_Game_Of_Life¶
Our first community created example, made by: https://github.com/claud9999 To run it, jut upload the code and watch Conways game of life animation!
![]()
4.4.5. Inkplate_Google_Calendar¶
4.4.6. Inkplate_Hourly_Weather_Station¶
4.4.7. Inkplate_Image_Frame_From_SD¶
This example will show you how you can make slideshow images from an SD card. Put your images on the SD card in a file and specify the file path in the sketch.
4.4.8. Inkplate_Image_Frame_From_Web¶
This example shows how you can set inkplate to show random pictures from web.
4.4.9. Inkplate_Mandelbrot_Set¶
4.4.10. Inkplate_Maze_Generator¶
4.4.11. Inkplate_News_API¶
This example will show you how you can use Inkplate to display API data. Here we use News API to get headline news and short description and display them on the Inkplate screen.
4.4.12. Inkplate_OpenWeather_Station¶
4.4.13. Inkplate_Quotables¶
This example shows you how to use simple API call without API key. Response from server is in JSON format, so that will be shown too how it is used. What happens here is basically ESP32 connects to WiFi and sends API call and server returns HTML document containing one quote and some information about it, then using library ArduinoJSON we extract only quote from JSON data and show it on Inkplate. After displaying quote ESP32 goes to sleep and wakes up every 300 seconds to show new quote(you can change time interval).