Displays

This section shows how to initialize and link displays in the kervi device library. All samples links to a text box in the ui where it is possible to enter the text that should be displayed.

See Displays for further details on display programming.

SSD1306(I2C)

from kervi.devices.displays.SSD1306 import SSD1306DeviceDriver
SSD1306DeviceDriver(
    height,
    width = 128,
    rst = None,
    i2c_bus=None,
    i2c_address=SSD1306_I2C_ADDRESS
)
height

Height of display.

width

Width of display.

rst

gpio to use as as hardware reset.

i2c_bus

I2C bus. If 0 or None default bus for platform is selected.

i2c_address

I2C address. Default is 0x3C.

from kervi.application import Application
APP = Application()

from kervi.displays import Display
from kervi.devices.displays.SSD1306 import SSD1306DeviceDriver
display = Display("d_1", "Display", SSD1306DeviceDriver(32))
display.text.value = "test"
display.text.link_to_dashboard()

APP.run()

HD44780(I2C, PCF8574)

This device driver supports HD44780 displays that are controlled via the PCF8574 gpio i2c chip.

from kervi.devices.displays.HD44780_PCF8574 import HD44780_PCF8574_DeviceDriver
HD44780_PCF8574_DeviceDriver(
    pin_map=0,
    cols=16,
    lines=2,
    address=0x3f,
    busnum=0
):
pin_map

There are several products that uses PCF8574 to control the display but have different pin setup. To handle this situation the driver has different pin_maps to use. Use values 0-3.

cols

Number of characters in a line.

lines

Number of lines.

address

I2C address. Default is 0x3C.

bus

I2C bus. If 0 or None default bus for platform is selected.

from kervi.application import Application
APP = Application()

from kervi.displays import Display
from kervi.devices.displays.HD44780_PCF8574 import HD44780_PCF8574_DeviceDriver
display = Display("d_1", "Display", HD44780_PCF8574_DeviceDriver(0))
display.text.value = "test"
display.text.link_to_dashboard()

APP.run()

HD44780(I2C, MCP23017)

This device driver supports HD44780 displays that are controlled via the MCP23017 gpio i2c chip.

from kervi.devices.displays.HD44780_MCP23017 import HD44780_MCP23017_DeviceDriver
HD44780_MCP23017_DeviceDriver(
    cols=16,
    lines=2,
    address=0x20,
    busnum=0
):
cols

Number of characters in a line.

lines

Number of lines.

address

I2C address. Default is 0x20.

bus

I2C bus. If 0 or None default bus for platform is selected.

from kervi.application import Application
APP = Application()

from kervi.displays import Display
from kervi.devices.displays.HD44780_MCP23017 import HD44780_MCP23017_DeviceDriver
display = Display("d_1", "Display", HD44780_MCP23017_DeviceDriver())
display.text.value = "test"
display.text.link_to_dashboard()

APP.run()

HD44780

This device driver supports HD44780 displays that is controlled via gpio.

from kervi.devices.displays.HD44780_MCP23017 import HD44780_MCP23017_DeviceDriver
HD44780DeviceDriver(
    rs, en,
    d4, d5, d6, d7,
    cols= 16,
    lines= 2,
    backlight=None,
    invert_polarity=True,
    enable_pwm=False,
    initial_backlight=1.0
):
rs, en, d4, d5, d6, d7

RS, EN, and D4…D7 parameters should be the pins connected to the LCD RS, clock enable, and data line 4 through 7 connections. The LCD will be used in its 4-bit mode so these 6 lines are the only ones required to use the LCD.

cols

Number of columns in the display

lines

Number of lines in the display.

backlight, invert_polarity

If you would like to control the backlight, pass in the pin connected to the backlight with the backlight parameter. The invert_polarity boolean controls if the backlight is one with a LOW signal or HIGH signal. The default invert_polarity value is True, i.e. the backlight is on with a LOW signal.

enable_pwm, initial_backlight

You can enable PWM of the backlight pin to have finer control on the brightness. To enable PWM make sure your hardware supports PWM on the provided backlight pin and set enable_pwm to True (the default is False). The appropriate PWM library will be used depending on the platform, but you can provide an explicit one with the pwm parameter. The initial state of the backlight is ON, but you can set it to an explicit initial state with the initial_backlight parameter (0 is off, 1 is on/full bright).

from kervi.application import Application
APP = Application()

from kervi.hal.gpio import GPIO
from kervi.displays import Display
from kervi.devices.displays.HD44780_MCP23017 import HD44780_MCP23017_DeviceDriver

display = Display(
    "d_1",
    "Display",
    HD44780DeviceDriver(
        GPIO[15], GPIO[14], GPIO[13], GPIO[12],
        GPIO[13], GPIO[12], GPIO[11], GPIO[10]
    ))
display.text.value = "test"
display.text.link_to_dashboard()

APP.run()