Customer:
I’m working on a project using Inkplate 6 that requires both Modbus (Serial2) and SD card access. I’m using pins 12 and 13 for Serial2 (TxD0 and RxD0 don’t work). After receiving data, I can write to the SD card without problems.
To get data for a second curve, I need to deactivate SPI and reactivate Serial:
SPI.endTransaction(); // End any ongoing SPI transaction
SPI.end(); // Reinitialize SPI for other devices
MODBUS_SERIAL.begin(MODBUS_BITRATE, SERIAL_8N1, RX_PIN, TX_PIN);
node.begin(MODBUS_SLAVE_ADDRESS, MODBUS_SERIAL);
But then I can’t reactivate the SD Card, even with initialising the SPI bus with SPI.begin(); or SPI.begin(14,12,13,15);
Is it possible to switch like this between Serial and SPI on the same pins? Or is there another solution?
My project is documented at Solar Master and GitHub - weigu1/solar_master: Monitor your solar panels · GitHub
Originally submitted via email support on 30 September 2025. Migrated to the forum for community visibility.
Soldered Support:
Try uploading the hello world sketch from the latest version of the library to verify basic functionality: Inkplate-Arduino-library/examples/Inkplate6/Basic/Inkplate6_Hello_World/Inkplate6_Hello_World.ino at master · SolderedElectronics/Inkplate-Arduino-library · GitHub
If it doesn’t work, disconnect and reconnect the e-paper connector on your Inkplate 6 carefully - this connector must not be creased. Simply open the latch holder for the connector, pull it up, place the connector back in, and test with the hello world sketch again.
Also test whether the Inkplate works without anything else connected to it, as other connections can sometimes draw too much power.
Soldered Support:
For switching SPI pins: it’s preferable to use other available pins for Modbus rather than the default SPI pins used for the microSD card. Can you provide a diagram of what you have connected so we can analyze which pins you can use?
Would you be willing to sacrifice one of the touchpads for Modbus to keep the microSD working?
Customer:
I only unscrewed and reassembled the housing, but noticed the Expander Inputs read 1 instead of 0 when no button is pressed, and then the display stopped working as well.
I think the display itself is OK and the ESP32 works fine (I can program it without problems), but something else broke.
I have an Inkplate 5 available, but I need to solve my main problem first.
I see only GPIO 12-15 (SPI) are free, and pins after GPIO34. If I’m not mistaken, these pins are input-only and can’t be used for a full hardware serial connection. SCL and SDA are already used for the MCP23017. TxD0 and RxD0 didn’t work for my Modbus (12/13 worked fine).
I see no pins to multiplex Serial2 or available for software serial.
My circuit is documented here: Solar Master
Soldered Support:
GPIO34 is indeed input-only as you mentioned.
There doesn’t appear to be a simple solution since the pins are taken. I would recommend leaving the SPI pins exclusively for the microSD card and other SPI devices (enabled by their dedicated chip select line, which is pre-connected to the microSD card at GPIO 15).
Alternatives:
-
Log via WiFi to a webserver instead of microSD card, freeing up your pins.
-
Write a software serial library for the GPIO expander, though this may struggle at 9600 baud.
-
For your Inkplate 5, check the available pins documentation - they’re on the GPIO expander so you’ll likely run into the same constraints.
Soldered Support:
If you want to revisit this approach: you can take a microSD breakout and connect it to a microcontroller like the ATtiny, and send data over the Qwiic/EasyC/STEMMA QT I2C port to the microcontroller which will then write to the microSD card. This uses the microcontroller as a bridge between Inkplate’s I2C and the microSD card.