OLED screen on DIY V4 showing gibberish

Hi!
I recently got my Airgradient DIY v4 kit and just finished assembling it. However there seems to be a problem with the OLED display as the output is mostly just gibberish except for a small part in the upper left corner which seem to be displaying the humidity.

I’ve done the following when it comes to diagnostics:
Rechecked the solder joints.
Checking the logs for anything that indicating a problem but they seem fine.
Reflashing both via browser and from scratch.
I2C scanner says that devices are found at address 0x3C and 0x44.
Tried starting it without any sensors connected.

Unfortunately nothing seems to give a different result. Does anyone have any suggestions on what I can test?

It is most like a driver issue. Which firmware version did you flash on the device?

I am inclined to agree, after doing some more research it seems like something similar can happen if the OLED isn’t configured correctly but I’m using the default sketch that seems to work for most people, so I find that a bit confusing.

Regardless, I am using the 2.4.15 “DIY_BASIC” build available in the Arduino Library manager.

have same issue any sugestions ?
also during compilation errors below

i did folow all recomended firmvare versions
also i did try to downgrade OLED driver no luck

all mesurmets working fine just screen is not working

\AirGradient.cpp: In member function ‘TMP_RH AirGradient::returnError(TMP_RH_ErrorCode)’:
//\Arduino\libraries\AirGradient_Air_Quality_Sensor\AirGradient.cpp:684:14: warning: converting to non-pointer type ‘float’ from NULL [-Wconversion-null]
684 | result.t = NULL;
| ^~~~
/Arduino\libraries\AirGradient_Air_Quality_Sensor\AirGradient.cpp:685:15: warning: converting to non-pointer type ‘int’ from NULL [-Wconversion-null]
685 | result.rh = NULL;
| ^~~~
. Variables and constants in RAM (global, static), used 31924 / 80192 bytes (39%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1512 initialized variables
╠══ RODATA 3316 constants
╚══ BSS 27096 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 62667 / 65536 bytes (95%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 29899 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 347744 / 1048576 bytes (33%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 347744 code in flash

We are looking into this but its hard to reproduce as it seems to only affect some units.

Thanks for taking the time to look into this! I have done some digging on my own and thought I might share it:
I decided to try the 'SSD1306SimpleDemo" from the “ESP8266 and ESP32 OLED Driver for SSD1306 displays” to see if it made a difference. The demo runs without any garbled content, however things are offset. After additional digging I found this thread which described the same problem for a similar (if not identical) setup to the DIY v4 kit. I tried to replicate the same success mentioned in the thread, however I gave up quite quickly but satisfied that it seems to be possible to achieve output that isn’t offset.
I then went back to the u8g2 library and tried to get it to work, unfortunely all my tests thus far have resulted in the same garbled output as pictured earlier. This is as far as I have gotten, I might spend some time during this weekend to see if I can manage to get the display to work correctly with the u8g2 library and see if I can narrow it down further.

same issue
tried different versions of u8g2 library to no avail.



@projous @PaparazziN I just published a new version that works for my basic kit.

The AirGradient DIY Air Quality Sensor (Basic Version PCB Version 4.0+)

Please note the following:

  • Make sure you flash the version 3.0.0 3FEB. You might need to reload your browser page or clear cache
  • After flashing the display is dark. You then need to power cycle the monitor

Please let me know if that fixes the issue.

That worked

Is the display rotation correct for the DIY kit?
The Plantower vent will face the ceiling?

It probably does not matter too much but we can rotate the display in one of the next updates.

Worked for me as well, thank you so much!
Keep up the great work :smiley:

worked for me also thx