-
Notifications
You must be signed in to change notification settings - Fork 7
Building a remote LCD display
DRAFTING
This page describes how to build a remote LCD display using the Frugal-IoT system. The display connects over WiFi/MQTT and can show sensor readings or messages from elsewhere on the network.
Total time to build this is probably an hour the first time, or 5-10 minutes per item if building multiple.
- PlatformIO or Arduino IDE and basic understanding of using it. Though I will provide instructions they may not be suitable for total beginners.
- Minimal soldering required — 4 jumper wires have to be soldered to the dev board.
- Multimeter — optional, useful for troubleshooting power issues.
| Item | Cost | Notes |
|---|---|---|
| LCD 1602 with I2C backpack | ~€1.50 | The I2C backpack is essential — it reduces wiring from 16 pins to 4. |
| Tenstar C3 Supermini dev board | ~€2.00 | Compact ESP32-C3 board; any similar ESP32 board should work. |
| Jumper wires (female-female) | ~€1.00 | You need 4 wires. |
Note: all prices are approximate; there may be better sources for the same or equivalent items.
The LCD I2C backpack uses the I2C protocol, which requires only 4 connections:
| LCD (I2C backpack) | C3 Supermini |
|---|---|
| VCC | 5V (or 3.3V — see note) |
| GND | GND |
| SDA | 4 |
| SCL | 5 |
Note that on a Supermini, the default pins for I2C are SDA=8 SCL=9 but pin 8 conflicts with the LED so the pins need defining in platformio.ini
-D I2C_SDA=4
-D I2C_SCL=5
If you use a different board, see Pin Usage on various dev boards for pointers as to which pins to use.
Note on voltage: The 1602 LCD backlight works best at 5V, but the I2C logic runs at 3.3V. On the C3 Supermini, use the 5V pin if available via USB power; the I2C lines should be fine at 3.3V logic, BUT I have seen problems that might have been caused by using 5V and my current version uses 3.3V.
The LCD modules are designed to be bolted behind a face-plate, so I am not suggesting an enclosure for this. To stop any potential shorts between the dev board and the back of the LCD panel, I've enclosed the dev board in some heat shrink sleeving, which I'll shrink to finalize the project.
Follow the instructions at Programming and Configuring a Device on PlatformIO or Arduino IDE to set it up.
The example to use for this display is examples/lcd_i2c.
Check the pin definitions in examples/lcd_i2c/main.cpp and platformio.ini match the pins where you have connected your display.
-
Blank display (backlight on): The I2C address may differ from the default. Common addresses are
0x27and0x3F. If you defineACTUATOR_LCD_DEBUGin platformio.ini then it will use an I2C scanner sketch to find the device. - No backlight at all: Check VCC and GND connections; verify the board is powered.
- Backlight but no, or just garbled characters: Usually a contrast issue — adjust the small potentiometer on the I2C backpack with a small screwdriver. Note that some lower quality boards do not seem to allow adjusting as far as you would like.
- Display not updating: Check MQTT broker connectivity and that the topic the display subscribes to matches what is being published.
Compile with -DACTUATOR_LCD_DEBUG in PlatformIO for additional serial output to help diagnose issues.
If you get stuck — please open an issue on GitHub. You will need an account, but it's free.