GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
Data Structures | Enumerations | Functions | Variables
gp_display.h File Reference

Hardware displays. More...

#include <backends/gp_backend.h>

Go to the source code of this file.

Data Structures

struct  gp_backend_display_model
 A display model description.
More...
 

Enumerations

enum  gp_backend_display_model_ids { GP_WAVESHARE_7_5_V2 = 0 , GP_WAVESHARE_3_7 = 1 , GP_WEACT_2_13_BW = 2 }
 Supported displays. More...
 

Functions

gp_backendgp_backend_display_init (enum gp_backend_display_model_ids model)
 Initializes a hardware display.
 

Variables

const struct gp_backend_display_model gp_backend_display_models []
 NULL-terminated array of display model names indexed by enum gp_backend_display_model_ids.
 

Detailed Description

Hardware displays.

Hardware display backends support various displays connected to hardware GPIO e.g. SPI e-ink RPi Hat. These displays are coupled with Linux input driver so that you can get a computer with a keyboard, mouse and display just by connecting display to GPIOs as well as USB keyboard and/or mouse.

In order to start an application with a hardware display backend display:$display_name string has to be passed to the display init function. This is usually done on a commandline by passing the -b option.

Attention
In order to run display backends as a regular user the user has to be in the right groups that is gpio and for SPI displays spi group as well.

SPI displays need spidev userspace SPI driver and a few GPIOs for additional signaling. The default RPi GPIO mapping is compatible with WaveShare e-ink display hats.

Attention
SPI displays require spidev (userspace SPI interface) driver that is bind to the hardware SPI driver. On RPi this is done by raspi-config where you enable SPI and reboot. After the reboot the /dev/spidev0.0 should be available.

RPi GPIO Map

Display GPIO Display SPI GPIO
Reset 17 MOSI 10
Data/Cmd 25 MISO 9
Power 18 SCLK 11
Bussy 24 CS0 8

Definition in file gp_display.h.

Enumeration Type Documentation

◆ gp_backend_display_model_ids

Supported displays.

Enumerator
GP_WAVESHARE_7_5_V2 

WaveShare RPi e-ink HAT 1BPP grayscale 800x480.

Chip GD7965 aka UC8179c

GP_WAVESHARE_3_7 

WaveShare RPi e-ink HAT 1BPP/4BPP grayscale 280x480.

Chip SSD1677

GP_WEACT_2_13_BW 

WeeAct 2.13 inch BW display.

Chip SSD1680

Definition at line 47 of file gp_display.h.

Function Documentation

◆ gp_backend_display_init()

gp_backend * gp_backend_display_init ( enum gp_backend_display_model_ids  model)

Initializes a hardware display.

Warning
Using wrong display model or connecting it wrongly can damage your hardware!

The backend uses Linux input devices for keyboard and mouse support.

Parameters
modelA display model.
Returns
An initialized backend.