SparkFun 16x2 SerLCD - RGB Backlight (Qwiic)

The SparkFun SerLCD is an AVR-based, serial enabled LCD that provides a simple and cost effective solution for adding a 16x2 Black on RGB Liquid Crystal Display into your project. We've seriously overhauled the PCB design on the back of the screen by including an ATmega328P that handles all of the screen control, meaning a backpack is no longer needed! This display can now communicate in three different ways: serial, I2C, and SPI. This version comes equipped with a Qwiic connector, bringing serial LCDs into the Qwiic ecosystem. This simplifies the number of wires needed and allows your project to display all kinds of text and numbers.

The on-board ATmega328P AVR microcontroller utilizes 11.0592 MHz crystal for greater communication accuracy with adjustable baud rates of 1200 through 1000000 but is default set at 9600. The firmware for this SerLCD is fully opensource and allows for any customizations you may need.

Note: Since the SerLCD is a 3.3V device, please make sure you convert to 3.3V logic depending on your chosen microcontroller or single board computer. Otherwise, you may risk damaging your board.

The SparkFun Qwiic Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.

Need a custom board? This component can be found in SparkFun's À La Carte board builder. You can have a custom design fabricated with this component - and your choice of hundreds of other sensors, actuators and wireless devices - delivered to you in just a few weeks.

  • 16x2, Black on RGB Display
  • The AVR ATMega328p (with Arduino-compatible bootloader) is populated on the back of each LCD screen and handles all of the LCD control
  • Three communication options: Serial, I2C and SPI
  • Qwiic connection
  • Adjustable I2C address controlled via software special commands (0x72 default)
  • Emergency reset to factory settings (Jumper RX to GND on bootup)
  • Operational backspace character
  • Incoming buffer stores up to 80 characters
  • Pulse width modulation of backlight allows direct control of backlight brightness and current consumption
  • Pulse width modulation of contrast allows for software defined contrast amount.
  • User definable splash screen
  • Open-sourced firmware and Arduino-compatible bootloader enables updates via the Arduino IDE
  • Input voltage: 3.3V-9V (3.3V only via Qwiic connector and "+" pin)
  • I/O logic levels: 3.3V
  • Current consumption @ 3.3V
    • minimum with no characters
      • 4.4mA (LEDs off)
    • maximum with all character spaces filled
      • 11.9mA (red)
      • 8.9mA (green)
      • 8.1mA (blue)
      • 19.6mA (white)
  • Dimensions (LxWxH): 80.29mm x 35.90mm x 14.09mm
  • Weight: 0.0766 oz.

SparkFun 16x2 SerLCD - RGB Backlight (Qwiic) Product Help and Resources

AVR-Based Serial Enabled LCDs Hookup Guide

August 2, 2018

The AVR-based Qwiic Serial Enabled LCDs are a simple and cost effective solution to include in your project. These screens are based on the HD44780 controller, and include ATmega328P with an Arduino compatible bootloader. They accept control commands via Serial, SPI and I2C (via PTH headers or Qwiic connector). In this tutorial, we will show examples of a simple setup and go through each communication option.

Qwiic GPS Clock

September 14, 2020

What time is it? Time for you to... Qwiic-ly build a GPS clock and output it to a display! This project provides you with the current date and time using GPS satellites. Read the date and time as a digital or analog clock. Or even configure the clock for military, your time zone, or automatically adjust the time for daylight savings time!

Qwiic SHIM Kit for Raspberry Pi Hookup Guide

February 16, 2021

Get started with the Serial LCD with RGB backlight and 9DoF IMU (ICM-20948) via I2C using the Qwiic system and Python on a Raspberry Pi! Take sensor readings and display them in the serial terminal or SerLCD.

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • jriley / about 3 years ago / 1

    Is there any data input/output pins available from the 328? I'd like to drive an RGB power button from this. So, push button for power, and ability to drive LED on power button? Thanks!

  • Member #1356580 / about 4 years ago / 1

    It is perfect it user friendly and no heat exposed from the LCD processer such as others cheap brand.

Customer Reviews

4.5 out of 5

Based on 2 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Exactly what I needed... with some tinkering

For most people: The LED switching time is fast and the color representation is great. The libraries are very nice and the range of options is more than you will most likely need. I love this little device and will be using it for a long time to come. If you are working in a high-speed location you may need to modify the firmware for outward development tasks. one such example is changing the contrast displays a message about changing the contrast for a brief moment, it's nice to just skip that altogether. It allows me to do everything I need at minimal cost compared to building my own, and a lot less time. I would buy it again.

For non-Arduino users: CONS: There is one MAJOR downside. This LCD has pull-up resistors... Now that doesn't seem that bad, but if your microcontroller has pull-up resistors as well, you most likely need to remove them from this board. There is no documentation on which resistors are the pull-up resistors and which jumper they are connected to. I would put that here but for fear of iterating designs, I will let you look through the forums at the time of your purchase. It's frustrating to get a product and have to run around with a multimeter trying to find the pull-up jumper that should just have been labeled in the first place, or at least in the documentation.

PROS: I've been using this SerLCD with a custom STM32 microcontroller so I had to adapt all libraries and I2C commands to a new system. Other than missing a typical datasheet, the libraries were really nice! It was very simple to adapt them to a new system, and worked perfectly when switched. The ability to modify the firmware allowed me to speed up some processes that I wanted to, such as changing the contrast of the text of the device.

Works great.

I've got it hooked up to an MSP430 via I2c. It's easy to command and display text. I like that you can get pretty much any backlight color with the R G B setting. It's compact. I've used more than one.