More Views

SainSmart IIC/I2C/TWI Serial 2004 20x4 LCD Module Shield for Arduino Raspberry Pi


Availability: In stock

Regular Price: $14.99

Special Price: $11.99

2012 latest IIC LCD2004-character LCD display module, a new high-quality 4 line 20 character LCD module not only set the contrast control knob selector switch also has a backlight and IIC communication interface.

10 + $10.79  save 11%
50 + $10.19  save 16%
100 + $9.23  save 24%


Description :

2012 latest IIC LCD2004-character LCD display module, a new high-quality 4 line 20 character LCD module not only set the contrast control knob selector switch also has a backlight and IIC communication interface. For Arduino beginners, not for the cumbersome and complex LCD driver circuit connection and a headache, the real significance of this LCD module will simplify the circuit, this module directly into the Arduino Sensor Shield V5.0 sensor expansion board IIC device interface can, GM 4P sensor connection cable, programmed through the Arduino controller, you can easily identify the slogan, sensor data records


  • Interface: I2C
  • I2C Address: 0x3F
  • Pin Definition : GND、VCC、SDA、SCL
  • Back lit (Blue with White char color)
  • Supply voltage: 5V
  • Pcb Size : 60mm×99mm
  • Contrast Adjust :  Potentiometer
  • Backlight Adjust : Jumper

Arduino Test Code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,16,2); //set the LCD address to 0x3F for a 16 chars and 2 line display

void setup()
    lcd.setCursor(0, 0);
    lcd.setCursor(0, 1);
    lcd.print("Voltage: ");
    lcd.setCursor(13, 1);
void loop()
    int val;
    float temp;
    lcd.setCursor(9, 1);

Package List:

  • 1x SainSmart IIC/I2C/TWI Serial LCD


Customer Reviews

9 Item(s)

per page
Struggled to get it working on the LeonardoReview by JIK
I eventually got this LCD working on the Leonardo with the following . h file which i obtained at

does anybody know if this is the latest file available as t was posted in 2012. (Posted on 3/24/14)
Works fine, but example code is out-of-dateReview by Mike
The setup call in the example code needs to be changed to the following for the sketch to work with the Malpartida Liquid_Crystall_I2C library.

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
//LiquidCrystal_I2C lcd(i2c_addr, en, rw, rs, d4, d5, d6, d7, BACKLIGHT_PIN, POSITIVE); // Set the LCD I2C address

Also change the lcd.begin call to the following.
lcd.begin(20, 4, LCD_5x8DOTS); // initialize the lcd

Hopes this helps people.

(Posted on 1/14/14)
Address has changedReview by Raj
I had to use an updated LiquidCrystal_I2C library because the older library they have linked doesn't work with the latest editor. Also, I used the I2C scanning program (google for it) and found that the LCD device address was 0x27, which when you shift to the left by one bit, resolves to 0x4E or 0x4F. Seems like they may have changed the device address to 0x4F in the last year.

Unfortunately, even after figuring that out, the LCD now powers up but I can't seem to write anything to the display. Still working on that part. (Posted on 12/29/13)
Agree with BillReview by Doug
Bill was spot on - seems like a good device, but as it usually goes, code and examples don't work. I am still trying to get this thing going. I wish vendors would pay more attention to details rather than just trying to sell stuff. Not very happy at all. (Posted on 12/4/13)
Good device, crummy instructionsReview by Bill
It took me a while to figure this out. I am new to arduino and LCDs so it is expected to be harder. I am using an arduino uno. My problem was figuring out the pins. I found numerous examples that showed different pins used.

Ultimately, I followed Eric's example from above and used the I2C scanner and then tested out the various pin locations until I the LCD was recognized.

Like Eric, the software came up with the address 0x3F so that has to be changed in the code sample. The BYTE keyword is no longer valid, but to make the code sample above work, simply delete the word BYTE and the comma that precedes it where ever you see it. Lastly, make sure that you download and install the custom library and header files LiquidCrystal_I2C. The link is below the sample code above called LCD2004. Look on the arduino site for instructions for how to install custom libraries if you need help on that.

For the UNO, connect the pins as follows:

SDA - A4
SCL - A5
VCC - 5V

Works like a charm. (Posted on 12/1/12)
Great LCDReview by Erik
Worked great, using only 2 wires is very nice.

The I2C address wrong in the docs, but I ran the I2C scanner from the Arduino website and it showed the address as 0x3F, plugged that into the examples an everything worked perfectly.

Thank you! Nice looking LCD. (Posted on 10/16/12)
Seems like a nice productReview by George
Can someone please document how this thing works?? It seems like a nice product, but there isn't a PDF available explaining how it works. The sample code only helps so much and only if you are using Arduino. (Posted on 10/6/12)
DreadfulReview by Clive
You can waste a lot of time trying to get one of these to work.
There is a multitude of scripts out there , not one of them work including the one offered on this page. (Posted on 9/8/12)
I make a good choice!Review by Solomon
I2C interface, this permits interfacing with only two wires (SDA/SCL) plus ground and provides its own version of the Arduino LiquidCrystal library and some example code for this particular board. They are not of much help, but it is a nice display, though. (Posted on 7/16/12)

9 Item(s)

per page

Write Your Own Review

Only registered users can write reviews. Please, log in or register

We accept payment through Paypal
PayPal is a safer, easier way to pay. You can use your credit card or bank account without exposing your financial information. You can link your credit card or bank account to your PayPal account so you don't have to enter your card number or address when you shop on SainSmart. Just log in to PayPal and quickly check out in a few clicks. In addition, PayPal accepts payments in multiple currencies.

Using PayPal with SainSmart:

1. Visit product page, and click “” or checkout on shopping cart page after reviewing your order details. You will be directed to PayPal website.
2. Log in to your PayPal account, or pay by using your credit cart.
3. Just follow the instructions given by PayPal. You will quickly check out in a few clicks.
4. Please key in the correct shipping address in English while checking out with PayPal. Or the order will be shipped to your PayPal address.

5. Normally, order will be shipped out in 1-2 business days.

Advantages of using PayPal:
Payment is traceable. You can trace the status of your payment using your PayPal account.

Payment does not require you to use your credit card online (you can transfer directly from your bank account). If you do use your credit card through PayPal, and other users cannot see your credit card information, therefore minimizing the risk of unauthorized use.

Prices and Rates

1.SainSmart provides two delivery methods from which to choose:
   (1)STANDARD SHIPPING (Free to United States, United Kindom, Canada, Australia, Germany, France, Spain, $5 to other countries. While for Remote Area, the shipping will be calculated based on Weight VS Destination.)

   (2)EXPEDITED SHIPPING (It's based on weight VS destination. You can get the express shipping rate at checkout page. Order(s) over $100 will be upgraded to express shipping as a special accommodation.)

Note: Import duties, taxes and charges are not included in the item price or shipping charges. Please find out as much as you can about import taxes in your own country before purchasing an item. In special cases, you may need to pay import duties on certain goods. We will endeavor to assist and cover in cases where duty is charged, if you are charged customs then please collect the package, pay any fees due and then contact us and we will reimburse half with you. For any assistant on this, you may kindly contact us. We promise to do our best for you.

Delivery & Tracking

Depending on your location and the type of goods you have purchased, will dispatch your items via 1 from 5 carriers. Items will be shipped from our main warehouse in China. If you prefer to have it shipped from other warehouse, please contact us via

China Post is economic airmail reaching most part of the world, which generally takes about approximately 20 business days to arrive. And this will reduce the risk charging by local custom.
The delivery status of a package can be checked via the Internet at (for tracking numbers beginning with “RA”)
EUB is also known as E-packet, which is especially for delivery to USA. It takes about 10-12 days to arrive. The delivery status of a package can be checked via the Internet at (for tracking numbers beginning with “LN”)

2. Express Shipping: DHL/UPS/EMS
DHL/UPS: We ship the item(s) by DHL / UPS from our warehouses in China. Your item(s) will normally be sent out within 1-2 business days and it takes approximately 3-5 business days to arrive depending on the destination.

Tracking website:

EMS: For some countries where UPS/DHL will not deliver, we will ship the item(s) via EMS, reaching you 8-15 days. Countries list for EMS shipping: Brazil, Russia, India, Turkey, Mexico, South Africa, Argentina, Saudi Arabia, Hungary, Romania, Israel, Philippines, Slovakia, Greece, South Korea.
The delivery status of a package can be checked via the Internet at (for tracking numbers beginning with “EE”)

Product Tags

Other people marked this product with these tags:

Use spaces to separate tags. Use single quotes (') for phrases.

SainSmart IIC/I2C/TWI Serial 2004 20x4 LCD Module Shield for Arduino Raspberry Pi