Also tried this on my Flyduino MEGA and sure enough, same shizzle, different board

Maybe sensors are polled too soon for OLED to boot up? Dunno the code, but some geekish logic applied there

Bergerac56 wrote:I have two crius oled (co-16) and have the same problem with both. Random dots at startup unless it is connecetd after full initialisation of the oled. Could it be a problem with the init sequence?
Jantar wrote:RESET pin should be pin 14 of the 30 pin flat cable.
On the photo you can see that you have used the pin 13.
Hamburger wrote:Is it positive these problems are limited to crius oleds?
I have 3 oleds from wide.hk direct or via ebay and never had any of the issues with powerup / init.
Code: Select all
#define LCD_CONF
#define OLED_I2C_128x64
#define SUPPRESS_OLED_I2C_128x64LOGO
#define LCD_TELEMETRY
#define LCD_TELEMETRY_STEP "015240"
jgarnham47 wrote:Hamburger wrote:Is it positive these problems are limited to crius oleds?
Yes, I believe it is just the Crius version. I got mine from RCTimer.
ardufriki wrote:Hi again, anybody has got this OLED working with "Wire.h" (i2c) library from Arduino IDE? Or with the examples from WIDE.HK? I mean, in a separate scenary, not conected to MultiWii board, but to Arduino board...
Hubbie0001 wrote:My oled works with your coding. Thank you. Greate job. The reason off the failure with the wire-library is the missing acknowledge from the oled. It never send an ack. I have checked it with a 2-ray oscilloscope.
jgarnham47 wrote:Yes, it's tiny delicate work. If you are using wire ended components then I would probably just solder to the back of the 4 pin I2C connector and have a flying lead to pin 14.
At last, no more re-booting to see the display
![]()
ardufriki wrote:Checking deeply this in the datasheet, there are two wires coming from the sd1306 controller, but in this oled only the SDIN is connected. If you join SDOUT to SDIN it should send the ACK (not tested, dificult to solder...).
dominicclifton wrote:Here's a picture of my fix, not as clean as johns but it works just fine.
ardufriki wrote:ardufriki wrote:Checking deeply this in the datasheet, there are two wires coming from the sd1306 controller, but in this oled only the SDIN is connected. If you join SDOUT to SDIN it should send the ACK (not tested, dificult to solder...).
Hi, I´ve got the ACK from the SSD1303 chip inside our OLED(seen in logic analyzer). Just joining pins 19 and 20 with a drop of soldering (no so hard to do). Now it works fine with Adafriut libraries and other Arduino skectches.
Antscran wrote:Hi all,
Just read this post all the way through to see where I am going wrong or if the display is faulty. I am just trying to connect to an Arduino Uno to start with.
I have a no display issue, not even the random dots issue which seems to be the main cause for concern, have tried several software samples including the one posted earlier by 'dominicclifton' here https://github.com/hydra/UG2864HSWEG01
I have also tried the 100 Ohm resistor trick, and double checked the connections 5V, Gnd, SDA (Arduino A4) and SCL (Arduino A5).
I am going to try the pin 14 reset fix (posted by jgarnham47) next but out of idea's after that, any further tips anyone can offer as a potential solution?
Cheers,
Ant
Code: Select all
void i2c_init(void) {
// #if defined(INTERNAL_I2C_PULLUPS)
I2C_PULLUPS_ENABLE
// #else
// I2C_PULLUPS_DISABLE
// #endif
TWSR = 0; // no prescaler => prescaler = 1
TWBR = ((F_CPU / I2C_SPEED) - 16) / 2; // change the I2C clock rate
TWCR = 1<<TWEN; // enable twi module, no interrupt
}
Code: Select all
void i2c_OLED_set_XY(byte col, byte row) { // Not used in MW V2.0 but its here anyway!
i2c_OLED_send_cmd(0xb0+row); //set page address
i2c_OLED_send_cmd(0x00+(8*col&0x0f)); //set low col address
i2c_OLED_send_cmd(0x10+((8*col>>4)&0x0f));