OK, so this is what I think is going on and the solution that seems to have worked for me.
The rpi image build script (in pwnagotchi.yml) uses the EPD_IO=‘epd_io.h’ flag which uses the physical pins listed in this header file:
The header file specifies pins 8 and 10 (GPIO 14 and 15) which are also the serial UART pins. I don’t think the Waveshare displays actually uses these signals.
The “epd_io_free_uart.h” header in the same directory has the same pins but moves two defines away from the UART pins to (so far, unused) pins 13 and 15.
And the solution:
The waveshare display driver needs to be recompiled to use the alternative header. You can SSH into your pwnagotchi and do the following:
sudo make rpi-remove PANEL_VERSION=‘V231_G2’
sudo make rpi-clean PANEL_VERSION=‘V231_G2’
sudo make rpi PANEL_VERSION=‘V231_G2’ EPD_IO=‘epd_io_free_uart.h’
sudo make rpi-install PANEL_VERSION=‘V231_G2’ EPD_IO=‘epd_io_free_uart.h’
Then reboot the rpi. The screen should still work and you should be able to use the UART pins (remember to configure these with raspi-config). The above removes the old driver and cleans the build then recompiles and installs the driver.
This, so far, seems to have worked for me, please let me know if I got anything wrong.