I have used an OLED SSD1327 128X128 pixels (from waveshare) together with an Arduino Nano (the old model) and the U8G2 library. It worked perfectly. Recently I bought an Arduino Nano BLE 33 sense, thinking that I could have easily substituted it without changing the software and the wiring, but it doesn't work.
As an example:
I tried the U8G2 example > page buffer > hello world.
OK, I thought maybe the problem was that you were using the VUSB pin on the Nano 33 BLE Sense (equivalent to the 5V pin on the original Nano).
Unfortunately, I don't have any other ideas about what could be wrong, and I don't own a display I can use to try it out myself. Hopefully someone else here on the forum will be able to provide assistance.
at the end I switched to the I2C communication which is working nicely (although slower compared to the SPI) with the u8g2 library.
In order to do use this display with the I2C there is a little change you have to do by shifting a resistor on the back. You can find more details here:
Hi,
I recently got the same problem as Lorenzo.
After some hours of troubleshooting I found the problem, so I share this: in short, there is a bug in the display PCB from Waveshare.
[...]
In SPI mode, D0 acts as SCLK, D1 acts as SDIN. For the unused data pins, D2 should be left open.
[...]
Unfortunately, on the pcb from Waveashare, D1 and D2 are connected together. This is necessary for I2C interface, but unwanted for SPI.
When in SPI mode, D2 output is conflicting with D1 input signal.
With some Ardunino board (e.g. Arduino Zero) the display works anyhow, as the processor pin drivers are strong enough to drive the correct levels on MOSI (D1).
The Nano BLE 33 has lower pin strenght, so the voltage levels are not correct and SPI tranfer is corrupted --> display doesn't work.
Workaround (needs HW modification):
-by looking at the bottom of the pcb, where the flat cable coming from the display is soldered, find the pin number 18. (note that pin 25 and pin 1 are indicated with silk print for reference).
with a sharp cutter, cut the pcb trace that comes out from pin 18 and connect the to the trace coming out from pin 17. The purpose is to disconnect pin 18 (D2) from pin 17(D1 = MOSI), leaving pin 17 connected the rest of the circuit.
check with the multimeter that D2 and D1 are effectively not connected anymore