I suspect I got a bad display, or a bad cable, in my shipment

Hello,

I received my order today, which included the following:

SparkFun Qwiic OLED Display (0.91 in., 128x32)

LCD-24606 1

Qwiic Cable - 50mm

PRT-14426 1

SparkFun Thing Plus - ESP32 WROOM (Micro-B)

WRL-15663 2

I can power up both ESP32 boards, and run sketches - I can connect to wifi with them and connect them to my phone over bluetooth.

I cannot get either board to recognize the display.

Using the first example program from github (Hello), and defining the display as:

QwiicNarrowOLED myOLED;

I get the following output on the serial monitor, with either ESP32 board

Device begin failed. Freezing…

And nothing is showing up on the display.

I suspect either the display, or the cable is bad. I only have one of each, so I can’t easily troubleshoot further than that. Since I get the same output with either ESP32 board, I don’t believe either of those are the issue.

Also - FYI - I have been programming since 1980 (professionally since 1981), and programming embedded systems since 1983 (professionally since 1985). I’m not ruling out a rookie mistake, but I can’t figure out which one that would be right now.

I am running with the Arduino IDE on a Linux Mint installation (Linux Mint 21.2 Victoria). I use Linux exclusively, and do not have access to a Windows Machine. (The issue is between the board and the display, as far as I can tell, and not between the computer and the board).

Forgot to mention this:

In the IDE, I have the board selected as SparkFun ESP32 Thing Plus. I have tried some of the other variants selectable.

This is the full output:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

configsip: 0, SPIWP:0xee

clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00

mode:DIO, clock div:1

load:0x3fff0030,len:1184

load:0x40078000,len:13260

load:0x40080400,len:3028

entry 0x400805e4

Running OLED example

Device begin failed. Freezing…

I did nothing today except turn it on - it is working now - will investigate a bit

I suspect now it is the display.

When it is working, manipulating the cable does not seem to affect the display at all - it remains lit and showing the correct data.

I am powering the Thing Plus and the display with the USB cable I purchased with this order.

About 3% of the time I power it up, after 1 or 2 resets, the display will work (shows Hello).

If it works for a particular power up, it seems to always work for every reset of that power up

If it fails to work for a particular power up, it will fail every time I try to reset, for that particular power up.

I am doing my power cycling by unplugging/plugging at the USB/computer connection end of the cable. I have a System76 Linux box, and I have tried with both USB 2.0 and USB 3.0 ports, as well as a known working USB wall adapter.

And my luck seems to have run out - power cycling no longer appears to be working.

I am using Arduino IDE 2.3.2, with the following board manager added.

https://raw.githubusercontent.com/espre … index.json

I changed the program to update the display once a second, with differing text

rectangleFill(…), text(…), display(), delay(1000),

When I am fortunate enough to get the board to run, it will typically run anywhere from 1 to 4 of these cycles (one time it ran about 10 cycles), and then go black. Resetting the board here, without power cycling WILL start the sequence working again, until that particular sequence stops working. The failure point is always the same - it will remain lit during the delay portion, and only fail at the next communication attempt.

(The only change I have made to the program, is the above mentioned change inside ‘loop’ . The code inside ‘setup’ is unchanged from the repository).

Try disabling the i2c pull up resistors and see if that helps; otherwise: Was it purchased from us? If so head over to www.sparkfun.com/returns (contact vendor if purchased elsewhere) and we’ll get ya squared away

Thank you - I went there and started the return process. I haven’t gotten a reply from that yet, but I will give it a couple of days.

After I received the email saying the refund would be processed, I went ahead and cut the pullup traces. Still no luck. I’m a little hesitant to order another. What is the typical failure rate of these parts?

~1%