Creative Commons images are CC BY-NC-SA 3.0

19.95

added to your
shopping cart

quantity
In stock 44 in stock
19.95 1+ units
17.96 10+ units
15.96 100+ units

Description: This is the serial backpack for graphic LCDs. The Graphic LCD Serial Backpack interfaces to either our 160x128 pixel “Huge” Graphic LCD, or the smaller 128x64 pixel display, and provides a simple serial interface to a full range of controls.

This backpack will allow you to write text, draw lines, circles and boxes, set or reset individual pixels, and erase specific blocks of the display. The backlight and baud rate can also be controlled via serial communication. There's also a reverse mode that allows the screen to operate blue on white instead of white on blue. Additionally, all source code for the ATMega168 processor is compiled using the free WinAVR compiler and is free for downloading.

There is a solder jumper on the backpack that determines which display is used. When the solder jumper is closed, code for the 128x64 display will run. If the jumper is open, code for the 160x128 display will run.

Check out this tutorial!

Features:

  • Supply voltage: 6V–7V DC
  • Current draw: 220mA (backlight at 100%)
  • Serial input: 0-5V
  • Adjustable baud rate (115200 default) with 8 data bits, no parity, 1 stop bit
  • Draw text, circles, lines boxes
  • Turn on or off individual pixels
  • Potentiometer controlled contrast adjustment
  • Backlight control

Dimensions: 2.02x1.11"

(51x28mm)

Documents:

Comments 58 comments

  • I posted this on the Serial Graphic LCD 128x64 page…..thought I would post it here aswell.
    I bought my first Aurduino (UNO Eleven) with this LCD and backpack 2 days ago. I got the backpack on the LCD with the idea it would simplify the interface to the LCD. I quickly came to the realisation that the rendering of this display was very slow and there was no flow control (e.g. Xon, Xoff) which ment I was going to run into trouble real quick with having to put delays in my code. Looking around I found SummoningDark’s firmware at http://serialglcd.sourceforge.net/ and I wanted to try it but didn’t know how to get the main.hex into the ATmega168. I finally worked it out and this is what I did:
    I built a simple programmer cable like this except I used 100ohm resistors - just used stuff I had laying around. I connected the cable to the 6 pin ISP connection on the backpack as shown here which is explained about a 1/3 of the way down on the page. I confirmed these connections with the pinouts from the manufactures datasheets which is on page 2 here . I downloaded and installed WinAVR from here . I changed the programmer options in SummoningDark’s firmware makefile (in firmware\trunk folder) to direct parallel “dapa” which has the correct pin out for this programmer cable (i.e AVRDUDE__PROGRAMMER = dapa)and also changed the port to lpt1 (i.e. AVRDUDE_PORT = lpt1). I’ll just mention here that programmer types are defined in the avrdude.conf file in WinAVR\bin folder. I then opened command prompt and changed directory to firmware\trunk folder and typed “make all” to recompile the main.hex file (WinAVR install adds its path to the system path variable so windows knows where make and avrdude is).
    With the LCD powered by the +5V from my Arduino (Arduino plugged into the USB) and the programmer cable connected to computers LPT1 I typed “make program” at the command prompt and avrdude proceded to flash the ATmega168 on the backpack. It said “verification error” and “safemode lfuse changed! Would you like this fuse to be changed back? y/n” I typed “n” and pressed enter…it did the same for hfuse and efuse and I said no to all three. I then flashed it again to check and it said fuses OK avrdude DONE. Thank You.
    My backpack works fine now! Thanks to SummoningDark’s firmware …. awesome job! I would like to try and contribute to this firmware - I have a few ideas. I hope this helps someone…. as it took me the last 2 days to figure all this stuff out.

  • Finding examples code for this controller it’s a lost game. Anyone?

  • Hello guys, I tried this backpack with PG24064E lcd 240x64 with Toshiba T6963C as a controller but I can not make it work, has anyone ever tried it? , Ideas? thanks

  • Ideally, I would assume this backpack should work with any KS0108B compliant controller (with 6-7V power level) for e.g. NT7108. Has anyone tried this or can think of any major issues that suggests otherwise?

  • Does anyone know what the required code changes are to use the code at (http://serialglcd.sourceforge.net/) for use with the 160x128. Is it just the hard coded display size or is driving the 160x128 different in any way to the 128x64?

  • I love you, Sparkfun, so I gotta be honest with you: for me, this board is a fail. Without flow control, there’s no way I could build this into my product. I started coding a NetMF library for this display only to realize that I could not reliably control the unit without slowing down the baud rate to 9600 and putting huge delays between sequential writes, or clearing the screen every few seconds and re-writing the screen so the user didn’t notice the garbage pixels that appear all the time. Neither choice is adequate. The worst part is, occasionally the unit will misinterpret one of my commands as LCD Brightness, and then you can’t see the screen.

    I think if you re-worked this board to add flow control or use SPI (my preference), you could sell a lot more of them. But as it stands, I will have to look around for a LCD that supports SPI directly, or a module that supports SPI or Uart+Flow control.

  • Could you publish eagle schematic please. Thanks

  • Tried building my own using the schematic and source but I dont have a 32-pin atmega168, i only have 28-pin atmega328p .. tried wiring to the appropriate pins but that wasnt good enough, need to make some changes to the source for the appropriate differences but im not that good!!

  • Hi,

    Anyone know why when I try to print the serial com onto the backpack, it only prints it as characters? serial.print(“d (0x04)”)//==> should activate the DEMO. However, it only prints it as it is typed in ascii chars.!? Why? The controller on the LCD driver backpack doesn’t distinguish between my commands, and the ASCII chars!??!

    I need help.

    anyone has solved this issue?

    I am using Arduino to send my serial commands.

  • Problem loading new firmware from: http://sourceforge.net/projects/serialglcd/files/, i hocked up an “Arduino One” as programer, and downloaded firmware, used CommandPrompt in Win7 with avrdude. The first command i Tried (from folder with SummoningDark’s firmware):

    avrdude -P COM5 -b 19200 -c avrisp -p m168 -v -e -U flash:w:main.hex resulted in:

    avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x6 avrdude: stk500_cmd(): programmer is out of sync

    Solution:

    After som reading, I found a tip lowering baudrate:

    In arduino enviroment, the Scetch ArduinoISP(the scetch downloadet to the programmer) I found the line Serial.begin(19200);, CHANGED it to: Serial.begin(9600); tried again with avrdude:

    avrdude -P COM5 -b 9600 -c avrisp -p m168 -v -e -U flash:w:main.hex

    == problem swolved

  • Hi there,

    greetings from Germany, the Backpack is really nice, but as you can read in the manual, still experimental. There is no feedback “READY” on the TX line, sadly enough, so you have to wait.

    I will try SummoningDark’s firmware tomorrow: http://sourceforge.net/projects/serialglcd/files/

  • There are a lot of +/- 3.2" 320x240 Touch TFT LCD’s on eBay from Hong Kong for < $20 with a 2x20 pin 0.1" pitch header and built-in sd card cage. Is there any possibility we might see a backpack/carrier board for this? I think larger LCD’s with touch input, coupled with SD access would be a very attractive option for developers.

  • Are the serial backpacks usable with the GLCD library for arduino?
    http://code.google.com/p/glcd-arduino/downloads/list

    • I don’t believe so. That library and backpack serve the same purpose; to provide a layer between the low-level LCD I/O lines, and high-level easy to use commands. The library would be better suited to a bare graphic LCD with a driver chip supported by the library.

  • After almost 2years I finally got round to putting SummoningDark’s firmware on my backpack. The firmware is a vast improvement over stock.
    I’m wondering why Sparkfun still haven’t updated the firmware.

  • Hallo everyone
    I have made a guide on how to upload SummoningDark’s firmware using a Arduino as an In System Programmer (ISP).
    For information look at my post at the Arduino forum
    Thanks to SummoningDark for a nice firmware :)

  • I purchased one of the 128x64 displays along with the serial backpack to be included on my robot which is operated by the Orangutan SVP MCU by Pololu. I am the most extreme novice when it comes to coding. My question is, what all functions must I include in my code if I simply wish for my screen to display 4 digits, each of which is 1" tall? As of right now, whenever I send any serial data, the display simply starts to fill in the pixels from left to right.

  • I finally got a working backpack thanks to SummoningDark’s firmware.
    I would suggest anyone that buys this to load the firmware instead of spending hours hitting your head against the wall.
    Here is the link
    http://serialglcd.sourceforge.net/
    It fixes the issues with slowness, flipped Y, axis the erase function not working and others.
    I hope that Sparkfun can adopt this as the official firmware.

    • Just a note, my firmware is only for the 128x64 display. I don’t have the larger one and so can’t write code for it.

      • summoning, sorry im kinda a noob with this. wanting to try your software on my backpack, and im using a mega 2560 to program it. How do i install your software onto my backback? i downloaded your files from source forge but still am not sure what to do with them.
        Thanks,
        ryan

        • There are six pads on the backpack which have no pins soldered into them. these are the programming pins, and you will need to connect your programmer to them. If you look at the second image of the board on this page, they are the six right above the mega168. The current zip file 1.62 has a pre-compiled main.hex in firmware/trunk. You just need to use your programmer to flash this file to the chip. If you want to change anything, you will need avr development tools. You should be able to run “make” in the trunk directory to build the firmware. if you edit the makefile to reflect your programmer, you can run “make program” to flash the firmware.

          • thank you i will give this a try

            • Having installed SummoningDark’s firmware brings this product from useless, to wonderful in a few seconds.
              Having shorted out the voltage regulator on the board, bring this product to a useful state. No one has 6-7V on the supply side, 5V or 3,3V that’s standard. And since the voltage controller only brings the supply down to 5V, I don’t understand it being there other than a waste of components. Short it out and use 5V for supply.
              Man, this thing could be cheaper if that useless
              voltage regulator was not there.
              PS: Thanks a lot for that firmware SummoningDark, it really makes this display work as it should.

  • Is there going to be a official version that fixes the speed and the erase box function? I can’t erase a box or draw a box that erases, both do nothing.

  • I’m taking a look at reprogramming the backpack for some additional functionality, but can’t figure out how to get an ICSP header soldered on to the backpack since it’s hard-soldered to the display, perhaps in the future you could ship the displays with the backpack removable.

  • As this seems to be a point of confusion, this backpack ships with the solder jumper closed, so you will need to unsolder for the 160x128 display.

  • Hi,
    I created a driver so that it can be easily used on the fez.
    http://www.microframeworkprojects.com/index.php?title=Graphic_LCD_Serial_Backpack
    Roy

  • Above, it say :<br />
    <br />
    “There is a solder jumper on the backpack that determines which display is used. When the solder jumper is closed, code for the 128x64 display will run. If the jumper is open, code for the 160x128 display will run.”<br />
    <br />
    I have it working with the smaller display with no mods to the backpack. What does this ‘Jumper’ do? I don’t see this documented in the spec sheet, or did I miss it? Can anyone clarify what it does and where it is on the board?

  • I just found a graphic LCD backpack in the mailbox today. What code would be programed into the Flash? Should I solder up an ICSP header and head over to SourceForge?

    • You found it? Are you sure it’s yours?

      • Let’s see — the name on the box matches the name on my credit card, so I guess it’s mine. ;-)
        But seriously, I’d like to know what version of firmware is in there.

        • Just checking. It should be the same as the source code posted. There’s no need to load any code onto it, it will have the most recent code on it.

  • I too have been having trouble with the responsiveness of the display. Over the weekend I did an almost complete re-write of the code with many speed improvements. There are still some bugs which I plan to work out soon, but if people want it, the beta code is here: http://jennwork.homelinux.net/drupal6/sites/default/files/GLCD_firmware0.1.zip
    the text rendering is ~10 times faster. the line and circle algos are ~2 times faster, the display responds to CR/LF, there is support for sprites and bitblt-type image transfers. as well as low-level access to the LCD interface. I changed the coordinate system to (0,0) in the upper left, increasing down and right.
    the bitlbt is a little buggy, but I’ll work on fixing this.
    (since the character rendering relies on bitblt, there might be problems if the characters are not drawn on integer*8 pixel y values.)
    also this code ONLY works for the small screen. I don’t have a large one, so this is what I wrote. Anyone is welcome to take/modify/fix the code if they want.

    • I have set up a sourceforge page for the code. it anyone is interested in helping develop let me know.
      http://serialglcd.sourceforge.net

      • Ahh, an improvement indeed!
        I’ve increased the RX buffer to 256 characters and added draw/clear functionality to the box() functions and now it’s perfect for me. It even runs on Adafruit’s MONOCHRON white-on-black display (I also had to make an adapter for the LCD connector pins), where the native firmware had trouble. Thanx a lot for this contribution!

        • Thanks for pointing out the missing draw/clear function of box(). I have fixed it in the SVN tree and will make a version .61 .zip for download soon.

  • The code is too large to post in forums – I tried.
    Does SparkFun have an FTP site? Or is there a CVS/SVN server? I have code to contribute, but no means to contribute it.
    Does this go back through Google Code?
    Do I need to create a SourceForge project for it?
    Should I put it on my own web site?
    All of these seem a little haphazard. Surely there must be a way to get code back to SparkFun (where I got the original code)?
    What are the procedures and rules for working with SparkFun to improve your products?
    – Carl

  • I flashed the new code last night, and it seems a little better, but I’m still surprised at how slow the unit is at rendering text. I can literally see it printing out the text, character by character. It can do maybe 2-3 lines per second. Is this what everyone else is seeing?
    In contrast, my 20x4 line displays can render the entire LCD in probably a tenth of a second ( you can barely see it ). This is my first foray into graphic LCD’s, and if this is normal then set me straight. ;)
    foxkid: I’ll look for your updated drivers and give them a try.
    Thanks,
    Nathan
    MrRoot.net

  • I fixed the last bug that currently annoys me, and have a new main.c to distribute. For my purposes, it not only works better, but it turns out that I no longer ever get an X-OFF character. Still, it’s good to have it built in so noone, including me, needs to worry about overrunning the Serial Graphic LCD Backpack input buffer.
    I can’t simply include the file here, as it is too big. How does one release code into the Arduino/AVR development society?
    The display is ever-so-much more responsive now, and I’m getting no extraneous pixels or screen clearing events. It’s been rock solid for hours.
    I don’t have a good test suite, so although i’ve tried to limit the scope of my changes to those things which I am testing, I welcome more testing or code review by anyone interested.
    – Carl

    • Some people post their code on the SparkFun forums. Feel free to link people to it in the comments section.

  • Does this work with any Graphics LCD? Or is it restricted by size? controller?
    Will this work http://www.newhavendisplay.com/index.php?main_page=product_info&cPath=21_107&products_id=613?
    Or how about this one 160*128? http://www.newhavendisplay.com/index.php?main_page=product_info&cPath=21_101&products_id=3146
    I already have the last two, that’s why I’m asking.

  • Thanks for the info. I was able to program it using the Arduino FTDI bitbang method.
    Looks like mine already had the latest firmware though (bought it Monday, 5/17), as I didn’t notice any change… graphics seem to work ok, aside from the box command not reading the on/off flag, but character stuff is pretty problematic.
    I’ll probably take a stab at tweaking the firmware myself, and I’ll post the code if I fix anything…

  • Happy to help out Pete! Hope everyone has better luck now.
    Tip for anyone who already has the backpack but no programmer, you can turn your Arduino into one and program the new LCD code without buying any new hardware. http://www.arduino.cc/playground/Hacking/AvrdudeFTDIBitbang

  • OK, I had to wait until I was sure that this change had happened for the 3 different items to which this pertains…
    Many thanks to Eric Gaertner for his code additions. We have reviewed and assimilated his code, and all the backpacks that we currently have in stock (including the ones attached to LCDs) have been pulled from the shelves and reprogrammed accordingly. The source code links have also been updated. And I owe Eric a 4-pack of SFE pint glasses. You rock, dude.

  • I see the new firmware is posted, but I’m having trouble updating my device. I’m using the FTDI Basic breakout, which I can use to write text on the display, but I can’t seem to find a command string (or programmer-id) for avrdude that works. I have both Tx and Rx hooked up, but it would seem that the device isn’t responding to avrdude. Any suggestions? Thanks.

  • OK, a very generous customer has given me some code to integrate into the existing code (for the cost of some pint glasses - glad to see his priorities are in the right place). I’m going to try and get this done in the next day or so. If all goes well, this will become the new production code and we’ll post it here, too.

  • Hi guys,
    Sorry you’re having so much trouble. We’re going to attack this in short order. If you’ve got one of these and you’re having trouble, contact tech support and tell them Pete sent you and why. They’ll forward on your concerns directly to me and I’ll make sure the code gets fixed.

  • Does anyone know if this thing has been bug fixed of it’s issues? I spent weeks on mine having eratic issues drawing images and get odd results with stray lines and pixels. Not to mention the command codes in manual are a bit wrong as mention by others.
    Please update this device and replace our units that are barely usable at best.

  • Hi, does anyone know if you can use this for the “Graphic LCD CFAX” found here?
    http://www.sparkfun.com/commerce/product_info.php?products_id=463
    Thanks.

  • Don’t waste your time, guys. The Graphic Serial LCD Backback’s firmware is quite buggy (to the point it won’t handle carriage returns (CR) or linefeeds (LF). Additionally, there are other, even stranger bugs (like you can only draw a line from, say, 23, 35 to 39, 48; but if you try drawing the same line 39, 48 to 23, 35, you get crap–caused by a missing absolute value expression in the firmware)
    The long and short of it is, do not buy this backpack until Sparkfun fixes their code. You’ll only be throwing your time, peace of mind, and money away.

  • I’d like to see some source code that uses this backpack…

    • I guess my problem (random symbols) is the solder jumper for the 128x64 lcd.
      Do I really have to unsolder that piece of solder close to the resistor on the left of the “Graphic LCD Backpack” text?

  • Hello, I bought this adapter with the HUGE 160x128 screen. I cant seem to find the Solder bridge. That is my last hope that the adapter comes set for the smaller screen. I have it hooked up to the screen right and triple checked the code going to the backpack.
    Using a logic probe the backpack is reciving. I see the lcd screen dim for a split second when I send the code but nothing happends. Sending the demo code.

    • Found it and that was the problem. I am talking to the screen now but when I generate a vertical line above the value of 59 I get a weird horizontal line at 60. Using an arduino to send the serial.


Related Products