I was able to solve it and since I haven't seen this online anywhere, I think it might be helpful to explain it here. Turns out, that the model of SSD1306 I'm using comes with three operation modes: I2C, 3-wire SPI and 4-wire SPI. By default, 4-wire SPI is used, however, it comes with what I think is a pull-up resistor marked as R6 for the I2C mode, which also serves as the MOSI pin for the 4-wire SPI mode. I desoldered R6 as shown in the attached image and now the Omega2+ boots with no problem and I was able to use the display using Blinka and the python driver from Adafruit.
Posts made by dviracachas
-
RE: SPI SSD1306 Display boot problem
-
SPI SSD1306 Display boot problem
Re: Using Touch Screen with Omega2
Hi everyone. Currently I'm working in a project that uses the SPI version of the SSD1306 Display, I'm connecting it to the native SPI bus of the Omega2+ and as @luz said in the linked post, I've encountered that the board won't boot when the display is connected, however, if I disconnect it during boot and then connect it, it works just fine. I've isolated the issue to the MOSI pin, this suprised me since the Omega2+ datasheet doesn't say that this pin is important for the boot sequence.
With that said, I would like to know if anyone has encountered this problem with this or other SPI device and knows why it happens or, even better, how to solve it, because disconnecting the device during the boot sequence is not an option.
Thank you!