Hello, I am having difficulty setting up an OLED I2C display from wide.hk.
I am pretty certain I have connected as instructed (Ground to display pin #0, 5V to pin #1, A4 to pin #7 (SCL), A5 to pin #8 (SDA). I have not used any resistors. This is the display, a 1602 OLED Module Display from wide.hk: http://is.gd/zUSWiJ
Additional info: My UNO is R3. I am using the scanner code from the original email in this thread. For each of the 128 addresses, Wire.Endtransmission returns the value 2. There was no datasheet that came with the display, nor have I been able to find one online, the only info available is what's on the Ebay page.
I am wondering if the problem is due to the set-up of the board. I noticed in the photo below from the product website that holes had been drilled near to the BS2, BS1, BS0 bits of solder, presumably related to the communication method table in the upper left. My unit has no such holes.
Presuming as you have it, it matches that picture and therefore presently it is set to code "001" for a 6800 in 8-bit mode.
You need to set it to code "010" for I2C.
Nothing whatsoever to do with holes!
You need a soldering iron to melt and remove the solder connection (should be able to just flick it away with the tip of the iron) between the centre and the "1" on link BS2 (the top one) and solder it instead to the zero side like the other two links to the right of the chart. You then do exactly the opposite to link BS1.
The device does not use a i2c i/o expander chip so it is
very unlikely to look like a PCF8574 or MCP23008 to the s/w.
In other words, it isn't going to work with fm's library or any other i2c library
that wants to talk to a PCF8574 or MCP23008 i2c i/o expander chip.
You need to see if you can get some additional information on the board.
Ask the seller for a datasheet or at least which chipset the module uses.
If the module uses a SSD1311 then that other library might work
but it seems to be quite limited in functionality.
In looking at the SSD1311 commands, the
"Fundamental Command Table" are compatible with the hd44780 commands
so it would should work with the standard Arduino LiquidCrystal library when used
in 6800 mode.
Although if the contrast needs adjustment, you wouldn't have any way to adjust
it since it needs to use one of the commands from the "Extended Command Table"
and that library wouldn't be able to send it.
I have a i2c class plugin for fm's library that will work using the Fundamental commands
but again, if it needs a contrast adjustment, then it won't be able to do it.
I think the most important thing to figure out will be what chipset the module uses.
Once you know that, you can start looking for libraries that support it.
bperrybap:
Although if the contrast needs adjustment, you wouldn't have any way to adjust
it since it needs to use one of the commands from the "Extended Command Table"
and that library wouldn't be able to send it.
bperrybap:
Although if the contrast needs adjustment, you wouldn't have any way to adjust
it since it needs to use one of the commands from the "Extended Command Table"
and that library wouldn't be able to send it.
Hi everyone, thanks for your replies. In the end I got it communicating with 6800, and am not confident enough of my soldering skills to try Paul's suggestion, and haven't used up all my Arduino pins, so I will forgo the pin-saving benefit of I2C for this project.
My advice to others is beware wide.hk. They have zero documentation, their webpage was misleading (apparently "Specification: I2C/..." does not actually mean you get I2C out of the box), and their customer service was not helpful. Having said that, the OLED display looks really lovely and should be good in direct sunlight and any viewing angle, which is what I need.
BF72:
My advice to others is beware wide.hk. They have zero documentation, their webpage was misleading (apparently "Specification: I2C/..." does not actually mean you get I2C), and their customer service was not helpful. Having said that, the OLED display looks really lovely and should be good in bright light and any viewing angle, which is what I want.
I think think that is a little unfair. Yes the documentation could and should be much better but the device does
support i2c. While it doesn't come set to i2c interface mode by default, the information on how to change
the interface mode is actually on the module itself.
It does require soldering but it isn't that difficult of a job to do.
The trickier part is how to interface to the device once set to i2c mode.
For that a good datasheet is needed.