Scanner found i2c device but then not found

I just got an i2c 0.66 inch oled display, but when I scan it with this [[Arduino | How to Scan and Detect I2C Addresses | Adafruit Learning System]],
it return "no i2c device found", but sometime it return "I2C device found at address 0x3C !"
Screenshot_19

I don't have many experience in I2c but suspect that I have to use a pull up resistor for SCL and SDA, but when I connect a 10k resistor( I don't have 4.7k right now so I tried with 10K first), the Arduino just return "I2" or "I2C" then stop working and have to be restart

You haven't said what Arduino you have, nor what display you have.

In particular, are they both 5V, or both 3V?

Do you have a secure ground connection between them?

I2C always requires pullups somethwere on both SCL and SDA - the only question is whether these are already built-in to your master and/or slaves.
You will have to consult the documentation for each to find out

I use an Arduino Uno R3
The display I use is not very common, all the document I can find is from Chinese manufacture and all the page about the product wont load
Here are the specs from the seller

Details of the 0.66" OLED module:

LCD model: md066
Resolution: 64 * 48
Appearance size: 18.50mm * 23.60 * 3.80mm
Visual angle: full perspective
Screen size: 18.50mm * 18.10mm
Display color: white
Visual area: 13.42mm * 10.06mm
Backlight type: self luminous
Interface type: 2.54mm pin
Communication interface: IIC interface
Driver IC: ssd1317
Working voltage: 3.3V ~ 5V

Here are seller's image about the display


And what do you mean by "secure" ground connection, I only connect
GND to GND
VDD to 3.3v
SCL to SCL
SDA to SDA
no other Arduino pin are connected

1 Like

So why did you choose this display?

A good ground connection - not loose or missing.

Have you checked that all connections are good?

Some good, clear photos of your setup would help.

because I need a small display and this is the smallest I can find, and I usually don't read the document before I have the product and start working (unless its a important group project), also I think it just like other display and wont have any issue

ran out of solder so I strip the wires and gave them a good twist, my multimeter don't detect any disconnect, may be the main issue is still the lack of pull up resistor, any suggestion so that I can go grab them tomorrow ?

That is a 3.3V display, and cannot safely be connected to a 5V Arduino without using logic level shifters. Example

If the display was ever working, the chances are good that it has been damaged.

:rofl:

:scream: :scream: :scream:
That's a recipe for disaster - intermittent connections galore!

A multimeter won't detect brief, intermittent drop-outs!

I will solder everything tomorrow and try again, so a 4.7K resistor is ok right?

No. Use a logic level shifter, as required.

Depends what (if any) pullups are already on the boards ...

or make sure the pullup goes to 3V

(but a level shifter would be better)

There is no guarantee that the Uno R3 can detect 3V as a logic 1.

It should do:
image

Yes, but that is not guaranteed behavior. The graph is "typical" behavior.

I don't think it serves any useful purpose to advise people that they can directly connect 3.3V and 5V I/O lines, and be confident that their setup will work. There are plenty of posts on this forum reporting destroyed sensors and MCUs as a result.

I always recommend to either use level shifters, or use 3.3V Arduinos with 3.3V devices.

1 Like

The problem was the res pin, I connect it to 3.3v and the display works like a charm


The display don't need logic level shifter or even pull up resistor

As @jremington said, it might work for now - but it would be more reliable with a proper level shifter.

Again, I2C always needs pull-up resistors - this just shows that your board has them built in.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.