Creative Commons images are CC BY-NC-SA 3.0

24.95

added to your
shopping cart

quantity
In stock 89 in stock
24.95 1+ units
22.46 10+ units
19.96 100+ units

Description: This is the latest evolution of our serial LCD. Included on a single board is a 16x2 LCD and an embedded circuit based around a PIC 16F88. The on-board PIC takes a TTL serial input and prints the characters it receives onto the LCD. The installed firmware also allows for a number of special commands so you can clear the screen, adjust the backlight brightness, turn the display on/off, and more.

Communication with SerLCD requires 5V TTL serial at a default baud rate of 9600bps (8-N-1). You can adjust the baud to any standard rate between 2400 and 38400bps. The power (VDD), ground (GND) and RX pins are all broken out to both a 0.1" pitch header as well as a 3-pin JST connector.

SerLCD has the ability to dim the backlight to conserve power if needed. There is also a potentiometer on the back of the display to adjust the contrast.

This LCD makes for a great gift, because it can be used for so many different projects! For more gift ideas check out the SparkFun Gift Guide!

Features:

  • Embedded PIC 16F88 utilizes onboard UART for greater communication accuracy
  • Adjustable baud rates of 2400, 4800, 9600 (default), 14400, 19200 and 38400
  • Operational Backspace
  • Greater processing speed at 10MHz
  • Incoming buffer stores up to 80 characters
  • Backlight transistor can handle up to 1A
  • Pulse width modulation of backlight allows direct control of backlight brightness and current consumption
  • All surface mount design allows a backpack that is half the size of the original
  • Faster boot-up time
  • Boot-up display can be turned on/off via firmware
  • User definable splash screen

Dimensions:

  • PCB: 103x36mm
  • LCD: 71.4x26.4mm

Documents:

Comments 29 comments

  • When I received my SerLcd, I could only print to the first column of the two rows of my 16x2 serlcd using the normal Serial.print(“Hello”). Only the “o” would show up.
    I had to use the following function to set the width to the proper setting:
    void configureLcd(){
    LCD.print(0x7C, BYTE); //command flag for backlight stuff
    LCD.print(0x04, BYTE); //16 chars wide (i.e. 16x2)
    }
    The correct value you need to send may differ based on how many columns you have on your device. See the data sheet for the exact value.

  • Any chance these can do ‘inverse video’ highlighting? That’s a good way to show a parameter that’s selected for adjustment.

  • …and it’s made by sparkfun!!!!

  • I’m using an LCD-09393 [manufacture date 2010-4-17] and all I’m getting is gobbledy-gook on the screen. I’m using the sketch I got from your website and running the current Arduino software on an iMac (OS is 10.6.8). I have the appropriate jack connected to GND and 5V+ and TX [pin 1] of an Arduino Uno. No problem uploading the sketch.

    Suggestions, please…

  • I’m using MPLAB with CCS C Compiler . I used this LCD , but I don’t know the code which clear the screen . this is the Code :

    #include
    #fuses HS, NOWDT , NOPROTECT , NOLVP 
    #use delay(clock = 8000000)
    #use rs232(baud = 9600 , xmit = PIN_C6 , rcv =PIN_C7)
    void main()
    {
            int1  x; 
            while(TRUE)
            {
                    x = input(PIN_A0);
                    if(x == 0 )
                    {
                            printf("The Port A is 0 ");
                            output_BIT(PIN_B0,0);
                            output_BIT(PIN_B1,0);
                            delay_ms(1000);
                            output_BIT(PIN_B0,1);
                            output_BIT(PIN_B1,1);
                            delay_ms(1000);
                    }
                    else
                    {
                            printf("The Port A is one");
                            output_BIT(PIN_B0,0);
                            output_BIT(PIN_B1,1);
                            delay_ms(1000);
                            output_BIT(PIN_B0,1);
                            output_BIT(PIN_B1,0);
                            delay_ms(1000);
                    }
    
            }
    }
    
  • Nice compact unit, is there a library for this display written for the Netduino plus; VB or C#

  • i know nothing about the code or anything used to run these things. ive been given one to fit to a project i just nned to know if the display read out can be flipped ie: upside down

  • Can this unit work with 56k baud rate? If not ata ll canwe include that baud rate in the next release of the firmware? Very nice product makes it easy for those who dont have the time to make a library

  • I think SparkFun needs to add a pull-up resistor on pin 4 (Vpp). This pin is an input (not input/output) and should not be left floating. Another pull-up on the RX pin would also be advisable.

  • For those wanting the latest source code: I managed to get a hold of the v2.7.2 source code by emailing a request to techsupport@sparkfun.com . Send me an email exuvo@exuvo.se if you want a copy.

  • “SFE, could you please post the schematic and source code for v2.5? The versions you have now appear to be the v2 (with the 16f688). Thanks!"
    I 3rd that motion.
    The hex file is not the same as the one that read from 16F88 originally. Please give us the correct soure code.
    Many thanks.

  • I have ported LiquidCrystal library for use with the serial LCD you can look at my code here. Still working on finishing all the documentation. But putting up for now hopefully someone will find it usefull.
    http://arduino.cc/playground/Code/SerLCD
    -Thanks

  • Any suggestions for mounting screw/bolt size and associated standoffs? A 4-40 just doesn’t make it through the hole… Though the schematic, datasheet and source code are nice, the PCB layout is missing and therefore mounting hole sizes. I’m hoping not to drill and lose the through hole plating. Thanks!
    [Found my answer at a real local hardware store… metric m2.5x20 bolt with washer/nut will work with a 4-40 x ½" stand off.]

  • is there any chance I could replace some of the glyphs that come with this unit?
    for instance I would like to have progressively bigger [1-7]x5 blocks as glyphs so I use this device as a spectrum analyzer (or vumeter).
    the chinese alphabet and all the empty spaces could all be replaced with lots of nice goodies.

  • I used this screen as my first Arduino project and found the following Arduino playground page very helpful!
    http://www.arduino.cc/playground/Learning/SparkFunSerLCD
    Note, that if the screen is still showing random characters that it is possible your program is fine and you just need to power cycle the board and screen.

  • Very nice! Just received this display and it’s very easy to control from my arduino.
    However, I want to change the splash screen and the datasheet tells me to send “j” to the board. I’m confused; what is the character?
    Edit: It’s hex 0xA :)

  • “SFE, could you please post the schematic and source code for v2.5? The versions you have now appear to be the v2 (with the 16f688). Thanks!"
    I 2nd that motion.
    Thank You

  • SFE, could you please post the schematic and source code for v2.5? The versions you have now appear to be the v2 (with the 16f688). Thanks!

  • also… Can i replace it with my own text?
    thnx

  • is there anyway to remove the “Sparkfun” text upon bootup?

    • Yes, check the datasheet for the command to do so. (Note that even if you clear the boot screen, the display will still have a short delay on startup to provide a mechanism to reset it to 9600 baud if you lose the baud rate).

  • A few tricks to get it to work with the PICAXE-18X: overclock at 8MHz (4MHz is the chip’s default), use a pull-up resistor to Vcc on the serial line, and code something like: “serout 1,N9600_8,("Hello”)“
    (254, 1) clears the display.

  • I’ve had the same problem with the schematic. is there a better copy?

  • Sample to get you started. Simply connect rx pin to pin 1(rx), and apply power to the LCD.

    include

    define txPin 1

    SoftwareSerial LCD = SoftwareSerial(0, txPin);
    // since the LCD does not send data back to the Arduino, we should only define the txPin
    void setup()
    {
    pinMode(txPin, OUTPUT);
    LCD.begin(9600);
    delay (1000);
    }
    void loop()
    {
    selectLineOne();
    delay(100);
    LCD.print(“line 1”);
    selectLineTwo();
    delay(100);
    LCD.print(“line 2”);
    delay(100);
    }
    void selectLineOne(){ //puts the cursor at line 0 char 0.
    LCD.print(0xFE, BYTE); //command flag
    LCD.print(128, BYTE); //position
    }
    void selectLineTwo(){ //puts the cursor at line 0 char 0.
    LCD.print(0xFE, BYTE); //command flag
    LCD.print(192, BYTE); //position
    }
    void clearLCD(){
    LCD.print(0xFE, BYTE); //command flag
    LCD.print(0x01, BYTE); //clear command.
    delay(50);
    }

    • SoftwareSerial LCD = SoftwareSerial(0, txPin); // since the LCD does not send data back to the Arduino, we should only define the txPin.
      Pin 0 is still a valid digital I/O.
      Per the author of the SoftwareSerial lib, use -1 when you do not need to define TX or RX.
      SoftwareSerial(-1, txPin);

  • The Source code Archive (ZIP file) appears invalid !!

  • I’ve put together some python code for sending serial data to these LCD screens. In particular, the code pulls my twitter status and writes it to the LCD. To work with the extra characters, I wrote functions to page the text (vertical scroll) or scroll the text (horizontal scroll). Details are available here: http://dawes.wordpress.com/2009/12/23/twitter-to-lcd/
    Thanks for this great module, I’ve really enjoyed tinkering and actually had the first version working in under an hour!

  • The datasheet and schematic do not match with the pictures. What are the SMD jumpers (S1-4) and the second serial connector for? Can this be reconfigured to use I2C or SPI?


Related Products