I have a plate wired to my Pi. https://www.adafruit.com/products/1109 < this one, except mine is the 1107 model without RGB and with only 16 pins. I would show you on fritzing but I can't get it to work properly, plus that part isn't included in the Adafruit Fritzing library yet. Oh well. Essentially I have the 3.3v, 5v, two GND, SDA and SLC pins wired up the corresponding pins on the plate's header.

Reading button presses from code works fine, the contrast pot works fine as well, I've turned it all the way in each direction, no real difference except for the pixel blocks disappear when you turn it up too high. Still no actual text. Turning on and off the backlight from code also works fine. For reference, I'm currently testing with the Adafruit Char LCD python lib, which I found at this github repo https://github.com/adafruit/Adafruit_Python_CharLCD with the char_lcd_plate.py example file.

So as I've said, most of the features work fine, except for arguably the most important one: actually displaying text. It just displays two lines of blocks, no matter what code I send to it.

Honestly, it might be my shoddy soldering that melted something on the PCB that shouldn't be melted and I just don't see it.

  • Have you checked the contrast on the screen there is usually a small pot on the back that you can turn with a small screwdriver. Commented Aug 9, 2016 at 17:19
  • Yeah I did, I should probably edit my post to make it a bit clearer Commented Aug 9, 2016 at 17:27

2 Answers 2


I had the same problem using a 1602 model without rgb.

Make sure python modules python-smbus and i2c-tools are installed.

Try checking that /etc/modules file contains the i2c related kernel modules (i2c-bcm2708 & i2c-dev)

Also check the bus you are using. Adafruits i2c use default bus but it may differ in some cases so try to edit Adafruit_CharLCDPlate class and replace the busnum parameter at line 425 with the one you are using. To check your bus use command: sudo i2cdetect -y 1 (bus format is like 0x00) (For old Rasp. Pi Model B 256MB command is sudo i2cdetect -y 0)

Actually the blocks are only visible with backlight at max but these are nothing but blank chars (no weird text).

Hope you can make it work. Working with raspberry pi can be tricky sometimes.

  • Everything seems to be fine in terms of what you mentioned. It comes up fine on the detect, at the same bus number as what is in Adafruit_CharLCDPlate. I'm starting to worry that my shoddy soldering screwed up somewhere. Commented Aug 9, 2016 at 16:03
  • The blocks aren't necessarily blank chars shown with backlight at max. I've had a similar problem with a 1602 using an Arduino, where the blocks were actually all pixels lit. I don't have any insight into the cause of the issue though.
    – goldilocks
    Commented Aug 9, 2016 at 16:24
  • Yeah goldilocks, that's about as I would describe it, they are very definitely lit pixels. It's just like the information isn't going through to the screen for some reason. Commented Aug 9, 2016 at 16:30
  • Ok so you're right, maybe a bad contact with the soldering or a defective screen.
    – 29axe
    Commented Aug 10, 2016 at 15:32
  • Have you tried with another lcd?
    – 29axe
    Commented Aug 12, 2016 at 9:59

So yeah, I fixed it. One of the pins wasn't making proper contact because I'm terrible at soldering. Kids, always make sure the solder actually touches the pin :D

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.