Serial communication between Radxa ROCK 3A and Inkplate 4 TEMPERA

Customer:

I’m working on a prototype dumb phone using the Inkplate 4 TEMPERA as the display and the Radxa ROCK 3A as the SoC. I need to enable serial communication between the Radxa and the TEMPERA.

My approach is to: (1) create an Arduino sketch for the Inkplate’s ESP32 to listen for commands and (2) create a Python script for the Radxa to send images and commands to the Inkplate.

What approach would you recommend?

Originally submitted via email support on 28 May 2025. Migrated to the forum for community visibility.

Soldered Support:

For communication with the Inkplate 4 TEMPERA, you have two main options:

SPI is recommended because of its speed and reliability. Check out this SPI example for the second SPI: https://github.com/SolderedElectronics/Inkplate-Arduino-library/blob/master/examples/Inkplate4TEMPERA/Advanced/Communication/Inkplate4TEMPERA_Second_SPI/Inkplate4TEMPERA_Second_SPI.ino

Verify the GPIO pins used for second SPI in the hardware files: GitHub - SolderedElectronics/Soldered-Inkplate-4-TEMPERA-with-glass-panel-hardware-design · GitHub

Your sketch approach is correct: write a sketch on the Inkplate 4 TEMPERA’s ESP32 using the Inkplate Arduino library to act as an interface between your modem and the e-paper screen. It receives string codes and commands for what to display, and can send back touch events to the SoC. See this peripheral mode sketch for an example: Inkplate-Arduino-library/examples/Inkplate4TEMPERA/Diagnostics/Inkplate4TEMPERA_Peripheral_Mode/Inkplate4TEMPERA_Peripheral_Mode.ino at master · SolderedElectronics/Inkplate-Arduino-library · GitHub

This example works over Serial and provides a decent starting point. A new version with better command structure, robustness, and more function support is planned.

UART is available on any available ESP32 pins if you prefer that protocol instead of SPI.

Alternatively, you can totally render the 600x600px frame and send it over SPI to Inkplate to decode and display for each frame. This gives beautiful control over rendering and graphics but might be slower.