Hello xfpd,
Thanks for helping.
Here are some photos from the displays from a UNO board. The code is from the DroneBot Workshop, ‘Using LCD Displays with Arduino.’






Here is the code if you need it:
/*
LCD Display with I2C Interface Demo
lcd-i2c-demo.ino
Use NewLiquidCrystal Library
DroneBot Workshop 2018
https://dronebotworkshop.com
*/
// Include Wire Library for I2C
#include <Wire.h>
// Include NewLiquidCrystal Library for I2C
#include <LiquidCrystal_I2C.h>
// Define LCD pinout
const int en = 2, rw = 1, rs = 0, d4 = 4, d5 = 5, d6 = 6, d7 = 7, bl = 3;
// Define I2C Address - change if reqiuired
const int i2c_addr = 0x3F;
LiquidCrystal_I2C lcd(i2c_addr, en, rw, rs, d4, d5, d6, d7, bl, POSITIVE);
void setup()
{
// Set display type as 16 char, 2 rows
lcd.begin(16,2);
// Print on first row
lcd.setCursor(0,0);
lcd.print("Hello world!");
// Wait 1 second
delay(1000);
// Print on second row
lcd.setCursor(0,1);
lcd.print("How are you?");
// Wait 8 seconds
delay(8000);
// Clear the display
lcd.clear();
}
void loop()
{
// Demo 1 - flash backlight
lcd.setCursor(0,0);
lcd.print("Backlight demo");
lcd.setCursor(0,1);
lcd.print("Flash 4 times");
delay(3000);
lcd.clear();
// Flash backlight 4 times
for(int i = 0; i< 4; i++)
{
lcd.backlight();
delay(250);
lcd.noBacklight();
delay(250);
}
// Turn backlight back on
lcd.backlight();
// Demo 2 - scroll
lcd.setCursor(0,0);
lcd.print("Scroll demo - ");
delay(1500);
// set the display to automatically scroll:
lcd.autoscroll();
// print from 0 to 9:
for (int thisChar = 0; thisChar < 10; thisChar++) {
lcd.print(thisChar);
delay(500);
}
// turn off automatic scrolling
lcd.noAutoscroll();
// clear screen
lcd.clear();
//Delay
delay(1000);
}
The DroneBot Workshop wanted the library from GitHub, ’Newliquidcrystal_1.3.5. This library opens 13 libraries. Initially there was a compilation error: exit status 1. I commented those libraries out one by one. Commenting the last one out actually worked!
#include <FastIO.h>
#include <I2CIO.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal_I2C_ByVac.h>
#include <LiquidCrystal_SI2C.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_SR1W.h>
#include <LiquidCrystal_SR2W.h>
#include <LiquidCrystal_SR3W.h>
#include <SI2CIO.h>
//#include <SoftI2CMaster.h>
Then I removed the UNO and plugged in the NANO board but I removed the comments. There was a Compilation error, so I again commented the last library and compilation worked OK. Then I Uploaded and there was an uploading error. There were 5 possible Ports: 3, 4, 9, 12, and 21. Port 4 worked OK.
Here is the display:


The photo has a lot of glare but it does show the gibberish instead of 'Hello World!' and scroll from 1 to 10.
I tried using the Blink sketch on that NANO board and it worked OK. Does that mean the board is OK?
Finally, some time ago, I used this same code with a similar NANO board and it worked fine. This board itself also worked for a short time and then the gibberish began.
Thanks again for listening.
BillRT