Adafruit CharLCD Plate&Chinese “LCD RGB KEYPAD” shield output driver

This driver works with Adafruit Raspberry Pi character LCD&button shields, as well as with Chinese clones following the schematic (can be bought for 5$ on eBay, typically have “LCD RGB KEYPAD ForRPi” written on them).

If you have a genuine Adafruit board, pass "chinese":false keyword argument to the driver in config.json so that the backlight works right.

Sample config.json section for Adafruit board:


Sample config.json section for Chinese clone:



Generally, you won’t need to edit config.json if you’re using this shield because it’ll be done automatically by

class output.drivers.adafruit_plate.Screen(bus=1, addr=32, debug=False, chinese=True, **kwargs)[source]

A driver for Adafruit-developed Raspberry Pi character LCD&button shields based on MCP23017, either Adafruit-made or Chinese-made. Has workarounds for Chinese plates with LED instead of RGB backlight and LCD backlight on a separate I2C GPIO expander pin.

Tested on hardware compatible with Adafruit schematic and working with Adafruit libraries, but not on genuine Adafruit hardware. Thus, you may have issues with backlight, as that’s the ‘gray area’.

__init__(bus=1, addr=32, debug=False, chinese=True, **kwargs)[source]

Initialises the Screen object.


  • bus: I2C bus number.
  • addr: I2C address of the board.
  • debug: enalbes printing out LCD commands.
  • chinese: flag enabling workarounds necessary for Chinese boards to enable LCD backlight.

Inits the MCP23017 expander.

setMCPreg(reg, val)[source]

Sets the MCP23017 register.

write4bits(data, char_mode=False)[source]

Writes a nibble to the display. If char_mode is set, holds the RS line high.