smemlcd icon indicating copy to clipboard operation
smemlcd copied to clipboard

Library for Sharp Memory LCDs

Introduction

The smemlcd library provides C library (with Python 3 bindings) for Sharp Memory LCDs

http://www.sharpmemorylcd.com/

At the moment only 2.7" LCD screen (LS027B7DH01) is supported.

The screen was tested with Raspberry Pi, Arietta G25 and Kuzyatech Sharp Memory LCD breakout A2

https://www.tindie.com/products/kuzyatech/sharp-memory-lcd-breakout-a2/

Connecting 2.7" LCD

The LCD should be connected to a board using the following connection scheme::

Breakout    Raspberry Pi     Arietta G25
---------------------------------------
VIN         3V3 Power        3V3 Power
GND         Ground           Ground
DISP        GPIO 25          PA25
SCS         GPIO 24          PA24
SI          GPIO 10 (MOSI)   PA22 (SPI1 MOSI)
SCLK        GPIO 11 (SCLK)   PA23 (SPI1 CK)

SPI Message Length

SPI message length limit is 4096 bytes by default. For 2.7" screen it has to be increased to 12482 bytes.

If spidev module is built into kernel, then parameter::

spidev.bufsiz=12482

should be added into /boot/cmdline.txt file (Raspberry Pi) or bootloader (i.e. Arietta G25).

Otherwise, create /etc/modprobe.d/spidev.conf file with the following contents::

options spidev bufsiz=12482

Compiling Library

The library build system uses GNU Autotools. To build the library one has to execute configure script followed by make command. The BOARD variable has to be passed to configure script to build the library for specific board, i.e.

$ ./configure BOARD=at91

will build the library for Arietta G25 board.

The list of boards and BOARD variable values is contained in the table below::

Board           `BOARD` value
-----------------------------
Raspberry Pi    rpi
Arietta G25     at91

Using Library

The library is very basic and does not provide any drawing primitives. Additional library like PIL or Cairo should be used to create framebuffer, draw in the framebuffer and finally send the framebuffer to a LCD screen.

See examples directory for various examples.