Comments: AVR-Based Serial Enabled LCDs Hookup Guide


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.

  • I needed this to run on AdaFruit's CircuitPython. I like the 3.3V instead of having to add hardware to convert 5V. I also needed it to run I2C as I wanted the GPS to be on the serial pins for my new Express based project. I got it all to work after some effort--mostly having to read the directions. I have the combined code from both Sparkfun, AdaFruit and me here: Harvest the code. I have tried to document it and make it clear and include Sparkfun's notes on how to use the OpenLCD based code.

  • How do you turn off the system messages? It's hard to seriously use this in a project if every time you change the backlight (or any other setting) you see that confirmation briefly on screen. Some versions of the firmware apparently use 0x2E and 0x2F to enable/disable that but mine doesn't respond to those messages at all.

  • I ported the Arduino code for the SerLCD library to CircuitPython, and released it to the CircuitPython Community bundle. The CircuitPython library supports I2C, SPI and UART (Serial) communication. All the Arduino examples were ported to Python.

    The code along with installation instructions and other information is available on GitHub ([]

    You can install the SerLCD CircuitPython libraries on a Raspberry Pi with the following command:

    pip3 install sparkfun-circuitpython-serlcd

    The code was written on my own time and is open source and free to use.

  • I just purchased this for a project, and have read through all the documentation. The text is showing up ok, but the backlight is not on or almost not on. I have tried different contrast settings, and different backlight settings and nothing. I know it is communicating ok, but the backlight appears to be off no matter what I do. I am running it on a adafruit feather 32u4.

    • Hey There, I seem to remember a bug in the initial release of firmware having to do with the backlight. Have you tried updating to the latest firmware. There is a guide on how to do this in the troubleshooting section of this hookup guide:

      Hope this helps!

  • Hi, thanks for the nice product.

    I have encountered some problems using the LCD in the following sequence: - set the contrast - send the clear setting - send characters then the characters are shifted by some position. (not starting at 0 row 0 column) I resolved the problem putting a delay in between set the contrast and send the clear setting. can someone give an advice? ps. i'am using an launchpad without using energia

  • Hi, are there any specifiations on the operating conditions with respect to temperature and humdity. We plan to use this LCD display in a farm in a case under direct sunlight so the temperature may reach 60-70C. Thanks

  • Thanks for a great tutorial. I really enjoyed it.

    To make my display easier to use, I attached a Sparkfun Qwiic (3.3v I2C) adapter to my display. I ported the Arduino LiquidCrystal library to use with the serLCD display and Qwiic. I also ported all the LiquidCrystal examples as well. This way you can use the Serial Enabled LCD display pretty much like any other LCD display with the Arduino. The library is available here on github if you want to check it out:

    I also played around with updating the firmware. I have a few more comments that might help others with the Firmware Update section of the tutorial, based on things I learned.

    1) You can program the display with a regular (non-Beefy) 3.3v FTDI buddy if you supply power to the display from some other source. Since I have a Qwiic Adapter soldered to my display, I just supplied power through Qwiic adapter and used the regular FTDI buddy for programming.

    2) The URL you want to add to the Arduino IDE File->Preferences: Additional Board Manager URL field is:

    If you already have another board manager URL defined in the field, use a comma to separate it from the new URL.

    3) In my Arduino IDE the name of the board for programming the display was slightly different than the tutorial images. The board was shown as 'Sparkfun SerLCD' in my IDE.

    4) Two libraries are pre-requisite for recompiling the display software: SoftPWM and LiquidCrystalFast. I found SoftPWM through the Arduino IDE Library Manager, but I had to go here for the LiquidCrystalFast library:

  • Is there a mechanical drawing of the board available? Or, even better, an Eagle footprint? I'd like to plug this into another PCB.

    • It's here:

If you've found a bug or have other constructive feedback for our tutorial authors, please send us your feedback!