Customer:
I’m interested in getting an Inkplate 6 to migrate my project from waveshare displays. I see you have Arduino libraries and MicroPython support. Would I be able to drive this display from Python on a Raspberry Pi Zero? I’ve written a typewriter application and it would be great if I could use the libraries with some tweaks to get it running.
Originally submitted via email support on 23 August 2023. Migrated to the forum for community visibility.
Soldered Support:
Unfortunately, you cannot run it directly from the Raspberry Pi Zero. Inkplate is a standalone system with ESP32 as the microcontroller. Your options are:
a) Run it from Arduino and program the ESP32 directly with your code
b) Run it from Raspberry Pi Zero in peripheral mode - see the documentation at Inkplate Peripheral Mode — Inkplate docs documentation
c) Run it using MicroPython with commands sent from Raspberry Pi Zero
Customer:
Peripheral mode sounds like it would work well for what I want to do. Do you have any videos or examples that demonstrate the partial refresh time, and is partial refresh supported in peripheral mode? I don’t see it in the documentation at Inkplate Peripheral Mode — Inkplate docs documentation
Soldered Support:
You’ll find a short video of the partial refresh on the Inkplate 6 campaign page at Inkplate 6 | Crowd Supply - scroll down a bit to see it.
As for partial refresh using peripheral mode, send the commands to change the screen contents as usual, then call this method: Inkplate Peripheral Mode — Inkplate docs documentation
It will refresh the part of the screen you submit via the command.
Customer:
The peripheral mode documentation is helpful. I’m having trouble finding any examples with peripheral mode online and think I’ll be able to make do with the text and font controls.
Where can I control which font is loaded? Also, is there any way to display from a buffer, like a Pillow image?
I see these peripheral mode commands in the documentation:
3.1.14. print: #C(“STRING”)* STRING - Text/String coded in HEX Char (example: HELLO WORLD would be coded like 48454c4c4f20574f524c44, where 48 means 0x48 which is H in ASCII table) example: for HELLO WORLD: #C(“48454c4c4f20574f524c44”)*
3.1.15. setTextSize: #D(NN)* NNN - Text scaling (with leading zeros) example: #D(02)*
3.1.16. setCursor: #E(XXX,YYY)* XXX - X position of text cursor (with leading zeros) YYY - Y position of text cursor (with leading zeros) example: #E(002,010)*
3.1.17. setTextWrap: #F(T/F)* T - True if enable text wrapping F - False if disable text wrapping example: #F(T)* or #F(F)*
Soldered Support:
We don’t have examples for peripheral mode yet, but it’s a very good idea and I’ve added it to our TODO list.
For fonts: via peripheral mode, you can only use the default font.
As for displaying images, you can show an image: Inkplate Peripheral Mode — Inkplate docs documentation
Or a bitmap: Inkplate Peripheral Mode — Inkplate docs documentation
Both need to be on the SD card of the Inkplate.