Hi,
How do I interface an Uno Q to a LCD Display with I2C?
The only information I can find is for a basic Uno, which does not work with the Q
Hi,
How do I interface an Uno Q to a LCD Display with I2C?
The only information I can find is for a basic Uno, which does not work with the Q
As your topic does not relate directly to the installation or operation of the IDE it has been moved to a more relevant category of the forum
I'm not an Uno Q user but have to ask "Why not"? Can you provide more details like which library you're using and which problems you're experiencing?
The below compiles in IDE 2.x for the Uno Q (there are some warnings).
#include <LiquidCrystal_I2C.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
FQBN: arduino:zephyr:unoq
Using board 'unoq' from platform in folder: C:\Users\bugge\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.0
Using core 'arduino' from platform in folder: C:\Users\bugge\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.0
...
...
Using library LiquidCrystal_I2C at version 2.0.0 in folder: C:\Users\bugge\OneDrive\Documents\Arduino\libraries\LiquidCrystal_I2C
Using library Wire in folder: C:\Users\bugge\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.0\libraries\Wire (legacy)
"C:\\Users\\bugge\\AppData\\Local\\Arduino15\\packages\\zephyr\\tools\\arm-zephyr-eabi\\0.16.8/bin/arm-zephyr-eabi-size" -A "C:\\Users\\bugge\\AppData\\Local\\arduino\\sketches\\C131FE2CE111768691B5328F19FF9BFE/sketch_feb17a.ino.elf"
Sketch uses 1289 bytes (0%) of program storage space. Maximum is 1966080 bytes.
Global variables use 1212 bytes (0%) of dynamic memory, leaving 522412 bytes for local variables. Maximum is 523624 bytes.
1. Make Connection among UNO Q, level shifter, and I2CLCD as per Fig-1.
Do not forget to use level shifter; otherwise, 5V logic of I2LCD will destroy your 3.3V UNO Q. You can avoid it if you have a LCD that works for Vcc = 3.3V.
2. Uplod the following sketch (tested) and check that Hello has appeared on the Topline of the LCD.
#include<LiquidCrystal_I2C.h>
#include<Wire.h>
#define slaveAddress 0x27 //if problem, try with 0x3F
#include<Arduino_RouterBridge.h>
LiquidCrystal_I2C lcd(slaveAddress, 16, 2);
void setup()
{
Bridge.begin();
Monitor.begin();
Wire.begin();
lcd.begin();//if problem, try with lcd.init();
lcd.backlight(); //if proble try with: lcd.init();
lcd.setCursor(0, 0); //DPos (0-15), LPos (0-1)
//----------------------
Wire.beginTransmission(slaveAddress);
byte busStatus = Wire.endTransmission();
if (busStatus != 0)
{
Monitor.println("I2CLCD is not found!");
while (1); //wait for ever
}
Monitor.println("I2CLCD is found!");
//---------------------
lcd.print("Hello");
}
void loop() {}
When using the Arduino IDE you install the Arduino Q library Arduino UNO Q Board the SDA/SCL pins should work pretty much the same way as on the UNO R3. If you are using the QWIIC port, then you need to change from Wire to Wire1.
What is this Library?
My I2CLCD is working well without this library and using SDA/SCL pins of the header.
Hi.
I want to do this on the Arduino IDE.
Thanks
Do you mean the Arduino Q board files rather than a library ?
Apologies for the lapse in concentration. I didn't give the correct name. I meant to refer to the "Arduino UNO Q Board" package. I have run both a 1602 LCD display and a small OLED from the I2C (not Qwiic) pins.
Does your LCD run with Vcc = 3.3V?
I have deleted your other cross-post @Bulldg1989.
Cross-posting is against the Arduino Forum rules. The reason is that duplicate posts can waste the time of the people trying to help. Someone might spend a lot of time investigating and writing a detailed answer on one topic, without knowing that someone else already did the same in the other topic.
Repeated cross-posting can result in a suspension from the forum.
In the future, please only create one topic for each distinct subject matter. This is basic forum etiquette, as explained in the "How to get the best out of this forum" guide. It contains a lot of other useful information. Please read it.
Thanks in advance for your cooperation.
Yup. Can't remember whether I used the onboard 3.3V output or an external supply, but yes, 3.3V. I am aware that some of the pins on the UNO Q are NOT 5V tolerant.
The backlight is a bit darker and the contrast pot needs adjustment on the 1602, but otherwise works OK.
My I2CLCD does not work with Vcc = 3.3V. I have to use Vcc = 5V; consequently, I have to use level shifter for the SDA/SCL lines to protect my UNO Q from the 5V logic stress of 5V I2CLCD.
I have also used those level shifters before, I think when interfacing an ESP32 or Pico. Its definitely safer. I won't say that I have never connected a 5V logic device to a 3.3V MCU board before ....
You have been correct and safe as you have used an I2CLCD that works for Vcc = 3.3V for which no level shifter is requred.
Thanks for the reply.
Run this sketch on my Arduino IDE, but got the following error msg:
In file included from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RPClite\src/client.h:14,
from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RPClite\src/Arduino_RPClite.h:22,
from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RouterBridge\src/bridge.h:30,
from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RouterBridge\src/Arduino_RouterBridge.h:16,
from C:\Users\User\OneDrive\Desktop\Project 2026\UnoQ_LCD_2\UnoQ_LCD_2.ino:4:
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RPClite\src/error.h:20:10: fatal error: MsgPack.h: No such file or directory
20 | #include "MsgPack.h"
| ^~~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: exit status 1
Will purchase a 3.3V LCD display once I can get some code to compile.
Download the above two library files and include them in your IDE. Now, you should not have compilation error.
Arduino_RouterBridge-main.zip (46.3 KB)
MsgPack-0.4.2.zip (321.5 KB)
Arduino UNO Q Board is present. Don’t know if I am using the QW!!C port, But still get the error:
In file included from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RPClite\src/client.h:14,
from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RPClite\src/Arduino_RPClite.h:22,
from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RouterBridge\src/bridge.h:30,
from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RouterBridge\src/Arduino_RouterBridge.h:16,
from C:\Users\User\OneDrive\Desktop\Project 2026\UnoQ_LCD_2\UnoQ_LCD_2.ino:4:
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.53.1\libraries\Arduino_RPClite\src/error.h:20:10: fatal error: MsgPack.h: No such file or directory
20 | #include "MsgPack.h"
| ^~~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: exit status 1
On the Arduino IDE.
Thanks for your help.
Alan
The QWIIC port is the white connector next to the 6-pin ICSP header (marked JSPI) and the matrix, and is located at the far end of the board. Its actually marked QWIIC on the silkscreen. Some of the newer modules now come with a short ribbon cable with plug that fits into this connector. The "legacy" SDA/SCL I2C pins are the ones after pin13, next to the 10-pin header. The display would be connected to these using ordinary male to female jumper (DuPont) wires.
To install libraries from ZIP files in IDE 2.3.7 use:
Sketch -> Include Library -> Add .ZIP library and then browse to and select the ZIP file.
Alternatively, it might be easier to install using the Library feature within the IDE. Click the books icon on the upper far left. This will reveal the Libray Manager. Type MsgPack into the field at the top. It should show this:
Click the Install button on the Arduino_RouterBridge and MsgPack tiles.
(I already have MsgPack installed so it shows 'REMOVE', but if its not yet installed, then it will show INSTALL).
@Bulldg1989 I second @BitSeeker's advice about using the Arduino IDE Library Manager to install the "MsgPack" library dependency. This is the easiest way to install libraries.
The alternative "Add .ZIP library" library installation method is useful in one of the following situations:
In this case, the "MsgPack" library is published in Library Manager, and you want to use the release version of the library. So there is no reason not to use Library Manager to install the library.