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 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.
You can find a user contributed Eagle library for this part here!
You can find a basic mechanical drawing for this LCD here.
You can find the additional libraries needed to compile the SerLCD firmware at the link below. LiquidCrystalFast and SoftPWM libraries
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
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.
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
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.
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
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 5 ratings:
1 of 1 found this helpful:
I bought this to connect to a Raspberry pi, and picked it for it's I2C interface, and intended to use it with some QWIIC components.. I was able to wire it up easily enough, but theres like ZERO documentation for using it with the Pi. I was able to find what I believe is a 3rd party attempt to make some code to work with it in Python, and I am able to get it to work, but it has a documented bug which causes random crashes with "external IO error" and the code development seems to have stopped. I would have ASSUMED that the standard I2C display backpack code would have worked with this, but somehow it does not.. it just produces garbage on the display. I guess I'll put it in a drawer until I have a serial use for it, and/or want to use it on an Arduino. Very dissapointing.. I expected more support from a sparkfun product.
I was looking for simple LCD option that was 3.3V I/O compatible and would operate off of some very simple I2C commands. The beauty of this product is the simplicity of hooking it up to a 3.3V compliant Arduino device using I2C for communication. Well designed, and easy to use. Recommend it for any Arduino based project where you want to display some status or information.
Works as advertised, and I was able to cook up a lightweight Python driver with smbus2 for use with RPi. I occasionally observe a garbled chars on the screen, combined with a Python IOError, but haven't yet taken the time with the logic analyzer in attempt to find who is at fault.
The product is lacking a bit of documentation however. Notably, there is no mechanical drawing I could find (the 16-pin header is 0.100", sure, but what about size, and location of mounting holes, size of LCD module, etc.). A small oversight for an otherwise good board.
EDIT: (I would reduce rating to 3/5 if possible). I purchased 2 of these units through DigiKey (ease of BOM mgmt for large proj), and am disappointed to find that the DK units do not have the recent firmware on them (as evidenced by inability to query firmware version and control backlight color via 0-255 RGB values - which according to GitHub were not present in earlier firmware versions). I attempted to re-flash via FTDI, but the Arduino IDE couldn't complete comms, so I'm guessing the earlier pieces of hardware that were bulk shipped to DK for resale do not have a bootloader. I'm confidant in my setup, as I was able to successfully flash v1.3 firmware to the unit that I ordered directly from Sparkfun. Additionally, the units from DK have 4.7k I2C pullups, whereas the unit I purchased from Sparkfun had them removed (not DNP, as evidenced by solder on the ENIG pads).
If you're expecting to connect over i2c, I wouldn't purchase this product until they update the documentation substantially (or fix the firmware). I've dumped 2 days into trying to get it to work and while all of the basic functions work (text, colors, clear, ...) you can't turn off the on-screen debug messages or control other aspects that the docs say you can. This is not going to look good in your project.
Edit: They state "The latest Serial Enabled LCDs shipped after February 2019 will have the firmware version. If you are having any issues using the commands listed below, make sure to update the firmware."
But the boards I ordered in September 2019 did not have the new firmware. That's why they weren't working right. If you're comfortable upgrading the firmware, these are an OK choice.
After getting a level shifter, I hooked this up to my computer serial port and it worked right away. Next up is to try other types - i2c perhaps.
where is the CAD model?
I'm confused. Since all interfacing is done via an ATMega328, why would this device be harmed by 5V?
If the ATMega328 is running at 3.3V anything above that is technically out of spec and can cause harm. But I think the bigger issue is that the LCD needs to be powered at 3.3V. In other words use voltages above 3.3V at your own risk.
Hey M-Short, Thanks for chiming in here, but just to be clear, these can be powered safely from 3.3V up to 9V on the "RAW" power input pin. The data lines (RX, TX, SDA, SCL, etc.) should all be talking 3.3V logic.
It is important to note that the "+" pin on the FTDI header, is actually the VCC for the chip, and is supplied downstream from a 3.3V voltage regulator, so that pin should definitely never see above 3.3V. The hardware overview has more info, and the pinout graphic is a nice reference. Thanks!