Trying to share SPI-bus with LoRa and Epaper-display (Waveshare 2,9")

I am trying to share SPI with LoRa and I am using HeltecLoRa v2. LoRa part works fine but I dont get any response on display. My pin mapping is below:

//// Pin mapping
const lmic_pinmap lmic_pins = {
  .nss = 18,
  .rxtx = LMIC_UNUSED_PIN,
  .rst = 14,
  .dio = {26, 34, 35}, //oli 33,32

// BUSY -> 4, RST -> 16, DC -> 19, CS -> SS(5), CLK -> SCK(18), DIN -> MOSI(23), GND -> GND, 3.3V -> 3.3V
GxIO_Class io(SPI, /*CS=5*/ 15, /*DC=*/ 19, /*RST=*/ 16);
GxEPD_Class display(io, /*RST=*/ 16, /*BUSY=*/ 4);

What am I doing wrong?


I believe correct pin for MOSI is 27? I have tried using that + using CS,DC,RST and BUSY pins for free pins like 36,37,38,39 also. Still no success.

I tested it and it is possible to share the SPI with the LoRa part.
It is necessary to set different CSS pins for different peripherals.

Thanks for helping out! But I am still struggling with this issue.

What CS pin did you use for the other device (than LoRa).

Did you happen to test e-paper or some other SPI device?
Waveshare E-paper also requires DC, Busy and RST pins which I have tried to define on free pins 36-39

I did the same try as you. No abnormalities were found.
My e-ink 2.9 pin configuration is as follows:
CLK --> 5
CS -->18
SDI (MOSI)–>27
DC -->22

1 Like

Dear Saber, I am trying to connect the Waveshare 200x200 1.54inch Black&White E-Ink Display to the Heltec ESP32 LoRa V2 board.

For some reason, I cannot do it, though the board and the inbuilt OLED display work all right. Could you, please, post the code? Just some lines to display a “Hello world” string on the e-ink display.

[SOLVED] I connected exactly as Saber indicated, and it works all right. Both OLED and e-ink displays work fine.

1 Like