SPI/I2C OLED display


#61

Thank you very much. I will try.


#62

Ok, one more question. Is it possible to use an i2c multiplexer to use more than 2 OLEDs at a time. Or is there another work around for this?


#63

Basically, you can connect two I2C OLED with different addresses (0x3C and 0x3D) with my OLED128x64Dbl object.

But if you want to use an I2C multiplexer similar to the Adafruit, you will have to code your own object (maybe based on mine) that would pilot the multiplexer and the multiple displays under it.


#64

Questions about changing the I2C address: Is soldering the only option, or is there perhaps a software way to do it? And: it looks above as though Cannonball just shorted the two blobs needed. I saw a youtube video where someone soldered the old resistor to the new slot (sorry, I don't know what these C6, R2 etc... double blobs are properly called), which made me shiver with panic just watching it. Directly connecting them seems within the realm of my eye-hand-coordination abilities, though.


#65

The modification made to my screens were to change them from spi to iic


#66

You're right. I guess I should have referred to Smashed Transistor's pic above that. Still, did you add a transistor or just drop a blob of solder to connect the two poles?


#67

They just need a jumper. No component necessary


#68

@servandisco, did you manage to convert one of your displays to another i2c address? i have the same displays here and would love to convert one of them.


#69

Hi @lokki . Not really.. :confused: I'm using the displays individually at the moment.. Made a bit of search but I havent found the specific spreadsheet about my displays and I feel lazy to move smd resistors around and risk to screw the displays... If I had to try just once, probably I would try the opposite config than now (2 to vdd and 1 to gnd) but I don't really know.. If you try and succeed, please keep us posted!
greetings


#70

@SmashedTransistors Thank you so much for your great OLED128x64 object. Looks amazing.
Unfortunatelly I have problem with compilation my test patch using OLED128x64 object. Everything done exactly as you described, but when i "live" checked, messages appear:

C:\Users\A1\Documents\axoloti/build/xpatch.cpp: In member function 'void rootc::instanceOLED128x64__1::calcScopePage(int, uint8t*)':
C:\Users\A1\Documents\axoloti/build/xpatch.cpp:181:27: error: 'class rootc' has no member named 'instancescope__1_i'
uint16_t y = ((parent->instancescope__1_i.t[i]+64)*3 )/8;
^

EDIT: Solved. Just scope object was missed in project. If you want to put text only on OLED you have to put scope object too (even not connected).
BTW: OLED object is amazing :slight_smile: Thx


#71

Hi guys, I've been trying to make my two cheapo OLEDs work (1.3 inch 128x64 SH1106) and I get no reaction whatsoever from them. The backlight won't light up, they just appear exactly like not connected.

But what I mean to ask you guys is: the ADD SELECT pads on the back of my OLEDs state the addresses 0x78 and 0x7B (written on the silkscreen). Should I adjust the tiar object(s) to these addresses?

(PB8 to SCK, PB9 to SDA
SCK and SDA each via a 10k pull-up to VDD
GND to GND
VCC to VDD (3.3V should be no problem?))

Sorry I don't have more information, I just can't seem to find the right datasheet. If found some info via this link: http://robotcantalk.blogspot.tw/2015/03/interfacing-arduino-with-ssd1306-driven.html

which says
"The I2C slave address is 0x3C, as the OLED address select jumpers have been soldered to 0x78 (I’ll explain this part later)."

That means I won't have to change anything software-wise, right?


#72

I'm not sure about your OLED display but i got mine from Adafruit and it also stated that I2C addresses are 0x78 and 0x7B but after testing i noticed the the addresses are indeed 0x3C and 0x3D so i didn't change anything in Tiar's code and the display works beautifully. I didn't use pull-up resistors because mine has internal pull-ups. It seems like you did everything right so my suggestion is to test your displays with an Arduino board if you have one to make sure they're not broken. I actually bought 2 display and I killed one! i suspect my hands electrostatic charge was the culprit so be careful not to touch the bare connectors on the display.


#73

0x78 == 0x3c << 1
The low order bit is used to specify a read or write.
Technically the address is 0x3c, but often you'll see the read value (0x3c << 1) | 0 = 0x78 in drivers.


#74

Thanks @deadsy it makes sense now.


#75

Thanks @Sharco and @deadsy.

Makes sense now!

Another question though, wouldn't the backlight of the OLED light up as soon as I connect VDD and GND, no matter if communication with the Axoloti works or not? Because then mine might just be DOA...

Are OLEDs really that sensitive to static and/or heat when soldering? I did solder connectors to both OLEDs but didn't heat them up too much (I believe I can say I'm experienced in soldering) and both are seemingly dead now? Is it possible some "gentle" soldering would already have killed them?


#76

Also do I need a good power supply to run OLEDs? I saw somewhere that one OLED display might only require 40mA max, so that should be something the Axoloti can provide, or?

(Was powering the Axoloti via USB from my laptop so far)


#77

Unlike LCD's, OLED don't have backlight. each dot is a separate LED and that's why their contrast ratio is much higher than LCD's (true black reproduction).

I don't think the OLED modules are that sensitive to heat because the chip is mounted not on the PCB but on the ribbon film connector. On the module there is only passive components i think. As far as sensitivity to electrostatic I think thy could be sensitive though. I'm powering mine (got it from Adafruit$$) from the 5V solder pads on the axolotl board and it's working fine.


#78

Got it, that's good news! I'll test the displays with an Arduino like you suggested then if they work I'll move them back to Axoloti.

So if I physically change the address of the second display to 0x3D (= 0x7A >> 1) and make sure all connections are correct, tiar's help patch for the double OLED object should be working right out of the box, shouldn't it?


#79

I think so. I only have one display but i tried it on both addresses with tiar's help patch and it worked both times. On my module it's easy to change I2C address whiteout having to solder anything. I think testing with an Arduino like board that supports 3.3V logic would be a good idea (I have a Due). With Adafruit libraries you can quickly test your displays.


#80

Fixed, done! It worked with Arduino, then I went back to try it with the Axoloti and finally found the error: one of my breadboard wires was faulty...weird. Thanks everyone, hope this story will help future Axoloteers.