Customer:
Is it possible to use Inkplate 4 TEMPERA as a USB host to connect to a different microcontroller board?
Originally submitted via email support on 8 January 2025. Migrated to the forum for community visibility.
Customer:
Is it possible to use Inkplate 4 TEMPERA as a USB host to connect to a different microcontroller board?
Originally submitted via email support on 8 January 2025. Migrated to the forum for community visibility.
Soldered Support:
The Inkplate 4 TEMPERA’s USB port is connected to a CH340 USB-to-serial chip for uploading code and serial communication. The ESP32 model in Inkplate 4 TEMPERA does not support USB OTG out of the box. Different ESP32 models such as the S3 do support USB OTG, but this device does not.
So no, it’s not possible. You can use Raspberry Pi in peripheral mode with Inkplate or write a custom sketch where the Raspberry Pi communicates to Inkplate to control the display.
Customer:
Instead of using USB to connect my Inkplate to another microcontroller board, I’m using a serial connection. I’m sharing the RXD and TXD pins between USB for programming and a serial connection for testing. This requires changing physical connections between burning code and testing.
I’ve seen indications that I could use other pins with Serial1 or Serial2, possibly using the IO Expander so I don’t have to share pins and reconnect wires. However, I could not find what pin numbers or macros to use with calls to Serial1 or Serial2 to identify which pins I will connect.
Soldered Support:
It’s absolutely advisable to use different pins rather than sharing Serial pins. On ESP32 you can use any pins with Hardware or Software Serial by setting them in the begin call. For example:
mySerial.begin(GPS_BAUD, SERIAL_8N1, RX_GPIO, TX_GPIO);
The last two arguments are the Serial’s RX and TX pins. This is documented in detail at ESP32 UART - Serial Communication, Send and Receive Data (Arduino IDE) | Random Nerd Tutorials and should work on Inkplate the same way.
As for which pins to use: Using pins from the GPIO expander would be more difficult because you would essentially have to use a custom software serial library which bit bangs on the GPIO expander via I2C. You would need to write a layer between Software Serial messages and I2C messages to the GPIO expander.
A better solution: Use pins connected directly to the onboard ESP32 at the top of the board. Most of these are SPI pins which can be used for anything if you’re not initializing SPI: 12, 13, 14, 15. IO35 appears to be totally unused. Pins 36 and 39 are not recommended.
Attachment omitted in migration: image.png