Had problems with getting the OLED working with the MEGA, but I've solved it with this thread. Thanks.
This was I did:
Got the CRIUS CO-16 v1.0 from dx.com this week.
Solution (tested Arduino v1.0.5):
Use pins: SCL = D0 (21) , SDA = D1 (20), VCC = 5V , GND=GND (no 100 ohm resistor was needed in my case)
Download the files from Mike's post
Open .ino, config.h (OLED_address must be set to 0x3c) and data.c in one Sketch in Arduino
Alter the ino file on the lines for the PULLUPS into: #define I2C_PULLUPS_ENABLE PORTD |= 1<<0; PORTD |= 1<<1; // PIN D0&D1 (D1: SDA & D0: SCL) //Mod #define I2C_PULLUPS_DISABLE PORTD &= ~(1<<0); PORTD &= ~(1<<1); //Mod
Check code and upload
Thanks and have fun!
11-10-2013: Used it also with a Teensy++2.0 with the same code modification. It worked for some days and somedays not and tonight I got also snow!! I could only solve this by placing the 100 Ohm resistor in the Vcc line. I'm looking for a different combination of OLED and PCB (I don't have the eyes anymore for building one and/or soldering in this detail).
Hi all, I've been playing around with the crius oled for a while but I recently came across this post CRIUS CO-16 SSD1306 ยท Issue #1 ยท hallard/ArduiPi_SSD1306 ยท GitHub It shows a mod done to the oled to separate the reset pin (14) for the oled and bridging 2 pins (19,20) together. Anyway I tested it and works with the adafruit examples and libraries, address just needs to be changed look for this line - display.begin(SSD1306_SWITCHCAPVCC, 0x3D); // initialize with the I2C addr 0x3D (for the 128x64) and either remove the address 0x3D or replace it with 0x3C.
One of the attached libraries has the ASCII table stored in data.c, and all that is loaded into ram. Takes up ~38% of a 328's RAM.
I edited the sketch to put the ASCII table into progmem, now the sketch only takes up 2% of ram. One of the leanest ways to output to the oled.
note: I also had to use a 100ohm resistor as the + lead to make the display work.
Hi,
Thanks all of you for the helpful info. I want to say, the pcb of this diaplay is too bad, many bugs have to be fixed. As Peter said, two things I suggest the people with this display to do before using it:
first, reconnect the RESET pin, this must be done, otherwise the display may become crazy!
second, connect the pin19 and 20 together, this is easy, and your MCU can get correct ACK signal from the I2C bus.
After doing above two things, this display works well with my MCU(ATMEGA32).
Enjoy it,
-hy
Today i found some time to have another look at the display and was able to connect pins 19 and 20 from the glass.
Now the display also answers the Nick Gammon's I2C scanner with 0x3C.
I tried the sketch EVRE has attached, which shows the test texts.
It stops after i changed the address to 0x3D, so this is a difference between the other sketch i tried.
Still need the 100 Ohm resistor, or else there's only noise visible.
So now it's time to find out a way to use larger characters and be able to read the display from some distance.
I also tried to desolder the flatcable from the pcb, but wasn't able to do that.
How did you guys do that, what temperature did you set (if any) and did you put the iron at the pcb or direct to the plastic ?
To remove the yellow flex cable from the board that its soldered to I applied a fair amount of flux, used flathead soldering tip at a regular temperature, and put a medium size bead of solder onto the tip. I taped the display to a table to keep it from lifting and lifted one end of the flex cable tweezers. Then rubbed the iron back and fourth, starting at one end of the flex cable working my way up while gently lifting with the tweezers. I've found the more I do the better I got at it. The flex cable is heat resistant so it wont melt.
Hi folks. I had ordered a crius display 128x64 and stumbled across this thread before i even received the display. I was reluctant to try it out, seeing all the troubles posted here.
I'm a lucky guy. I received a Crius v1.2 board. I used the modified dealextreme_oled code from the beginning of the forum and the display works without modification! Very satisfied customer here.
Could you try and make a photograph of the backside of your display (showing the other components) and upload that ?
I'm curious if the differences would be visible.
This topics helped me a lot! I ordered a Crius V1.0 oled display from DX, but I got it working on my Arduino Duemilenueve and Mini Pro only after:
Insert an 100ohm resistor between 5v pin and Vcc
Soldering the 19-20 display pins together
Soldering and small cable on 14 display pin (reset)
By the way, I'm searching for a tiny battery for my project (using this OLED display). I tried the CR2032, but It has no enough power to turn on this display.
Could you try and make a photograph of the backside of your display (showing the other components) and upload that ?
I'm curious if the differences would be visible.
Alvast bedankt.
Pictures ofthe v1.2 board, as promised. This one works without modifications.
Thank you very much for those pics.
They do indeed show that pin 14 is now connected through a resistor (value 104 == 10K) and a capacitor.
This means the guys at Crius learn from their faults, which is encouraging.
They did however still not seem to bother to connect wires 19 and 20 so the display can talk back to the master (your Arduino).
So, if you are going to order this display, make sure it is at least a PCB v1.2, and throw in some extra solder to have a full feature display.
Just tried olikraus' u8glib, and works like a charm.
So larger fonts are available and the display can be read from a larger distance.
Next is to find out how to clear the display and other commands like that.
So more sleep deprivation for the next weeks..
I've picked up this display (v1.2) and compiled mikes code. I was crossing my fingers (and eyes) in the hopes this would run without a hitch.
It almost made it. It stopped to spit out a compile error:
core.a(main.cpp.o): In function `main':
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/main.cpp:5: undefined reference to `setup'
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/main.cpp:15: undefined reference to `loop'
I'm using Arduino 1.0.5. with a Mega 2560 (but not connected yet).
Anyone know what this means? Perhaps I didn't import mikes code right?
Thanks.
Doing a little reading, I wonder if the issue is due to no having a loop or setup in the Mike's sketch. I also found an EXE file in the folder. I'm using a Mac. What's "LCDAssistant.exe" all about?