Skip to content

Boards definition

The boards definition lists the configuration of all the GPIOs of the main controller board connected to the EXT3, EXT3.1 and EXT4 extension boards.

The hV_List_Boards header file also provides a list of pre-configured main controller boards.

Danger

All the extension boards and developement kits require power and signals at 3.3V.

Boards configuration

The EXT3, EXT3.1 and EXT4 extension boards exposes up to twenty pins, including GPIOs, shared pins for the SPI and I²C buses, power and ground.

Signal Minimal Touch Optional
Power +3.3V, Ground
SPI bus Clock, Data in
Panel Select, Reset, Busy,
Data/Command,
Power (EXT4)
Second select
(EXT3 and EXT3.1)
Flash Select, Second select
I²C bus Clock, Data
Touch Reset, Interrupt

The first ten pins 1 to 10 are common to all the extension boards. The other pins are specific to each extension board. A pin set with NOT_CONNECTED is not used.

const Board_EXT boardRaspberryPiPico_RP2040_EXT3 =
{
    .scope = BOARD_EXT3, ///< Extension board EXT3 or EXT3.1

    .panelBusy = 13, ///< EXT3 and EXT3.1 pin 3 Red -> GP13
    .panelDC = 12, ///< EXT3 and EXT3.1 pin 4 Orange -> GP12
    .panelReset = 11, ///< EXT3 and EXT3.1 pin 5 Yellow -> GP11
    .flashCS = 10, ///< EXT3 and EXT3.1 pin 8 Violet -> GP10
    .panelCS = 17, ///< EXT3 and EXT3.1 pin 9 Grey -> GP17
    .panelCSS = 14, ///< EXT3 and EXT3.1 pin 12 Grey2 -> GP14
    .flashCSS = 15, ///< EXT3 pin 20 or EXT3.1 pin 11 Black2 -> GP15
    .touchInt = 2, ///< EXT3-Touch pin 3 Red -> GP2
    .touchReset = 3, ///< EXT3-Touch pin 4 Orange -> GP3
    .panelPower = NOT_CONNECTED, ///< Optional power circuit
    .cardCS = NOT_CONNECTED, ///< External SD-card board
    .cardDetect = NOT_CONNECTED, ///< External SD-card board

    // EXT4 specific
    .button = NOT_CONNECTED, // EXT4 pin 12 Grey
    .ledData = NOT_CONNECTED, // EXT4 pin 13 Violet WS2813C
    .nfcFD = NOT_CONNECTED, // EXT4 pin 17 Orange NT3H2111 !Field detect
    .imuInt1 = NOT_CONNECTED, // EXT4 pin 18 Red LIS2DH12 !INT2
    .imuInt2 = NOT_CONNECTED, // EXT4 pin 19 Brown LIS2DH12 !INT1
    .weatherInt = NOT_CONNECTED // EXT4 pin 20 Black HDC2080 !INT
    // End of EXT4 specific
};

Board_EXT is a synonym of the pins_t structure.

Legacy release 9
const pins_t boardRaspberryPiPico_RP2040 =
{
    .panelBusy = 13, ///< EXT3 and EXT3.1 pin 3 Red -> GP13
    .panelDC = 12, ///< EXT3 and EXT3.1 pin 4 Orange -> GP12
    .panelReset = 11, ///< EXT3 and EXT3.1 pin 5 Yellow -> GP11
    .flashCS = 10, ///< EXT3 and EXT3.1 pin 8 Violet -> GP10
    .panelCS = 17, ///< EXT3 and EXT3.1 pin 9 Grey -> GP17
    .panelCSS = 14, ///< EXT3 and EXT3.1 pin 12 Grey2 -> GP14
    .flashCSS = 15, ///< EXT3 pin 20 or EXT3.1 pin 11 Black2 -> GP15
    .touchInt = 2, ///< EXT3-Touch pin 3 Red -> GP2
    .touchReset = 3, ///< EXT3-Touch pin 4 Orange -> GP3
    .panelPower = NOT_CONNECTED, ///< Optional power circuit
    .cardCS = NOT_CONNECTED, ///< External SD-card board
    .cardDetect = NOT_CONNECTED, ///< External SD-card board
};

The library uses the structure pins_t to define all the GPIOs of the main controller boards, except those shared by the SPI and I²C buses.

The board is used by the driver.

// Board
Board_EXT myBoard = boardRaspberryPiPico_RP2040_EXT3;

// Driver
#include "Pervasive_Wide_Small.h"
Pervasive_Wide_Small myDriver(eScreen_EPD_271_KS_09, myBoard);

// Screen
#include "PDLS_Basic.h"
Screen_EPD myScreen(&myDriver);

The boards configuration defines all the GPIOs of the main controller boards connected to the EXT3, EXT3.1 and EXT4 extension boards, plus two signals for an external SD-card board.

Example

The variable myBoard.panelReset gives access to the pin number of the panel reset signal.

Common pins

Pins 1 to 10 are compatible with all the extension boards.

Variable Number Signal Type Function
 1  VCC +3.3V Power Power Supply
 2  SPI SCK SPI SPI clock
.panelBusy  3  Panel !BUSY Output Panel busy signal
.panelDC  4  Panel D/C Input Panel Data/Command control
.panelReset  5  Panel /RESET Input Panel reset
 6  SPI MISO SPI SPI MISO
 7  SPI MOSI SPI SPI MOSI
.flashCS  8  Flash /CS Input Flash chip select
.panelCS  9  Panel /CS Input Panel chip select
 10  Ground Power Ground

The SPI and I²C ports set their respective pins.

Specific pins

The other pins are specific to each extension board.

Pins 11 to 20 are specific to the EXT3 extension board.

Variable Number Signal Type Function
.panelPOWER - - MOSFET for panel power control
.flashCSS  20  F_CS2 Input Second SPI memory chip select
.panelCSS  12  P_CS2 Input Panel second chip select
The EXT3 extension board does not feature a panel power control circuit.

Pins 11 to 12 are specific to the EXT3.1 extension board.

Variable Number Signal Type Function
.panelPOWER - P_POWER Input MOSFET for panel power control
.flashCSS  11  F_CS2 Input Second SPI memory chip select
.panelCSS  12  P_CS2 Input Panel second chip select
The EXT3.1 extension board does not feature a panel power control circuit. The cables of the second SPI memory `11` and the second panel chip select `12` signals do not have assigned colours on the EXT3.1 extension board.

Pins T1 to T4 are specific to the EXT3-Touch expansion board.

Variable Number Signal Type Function
 T1  I²C SDA I²C I²C data
 T2  I²C SCL I²C I²C clock
.touchInt  T3  Touch !INT Output Touch interrupt
.touchReset  T4  Touch /RESET Input Touch reset

Pins 11 to 20 are specific to the EXT4 extension board.

Variable Number Signal Type Function
.panelPower  11  P_POWER Input MOSFET for panel power control
.flashCSS  16  F_CS2 Input Second SPI memory chip select
.panelCSS - P_CS2 - Panel second chip select
The EXT4 extension board does not feature a panel second chip select.

!!! warning

    The EXT4 extension board requires the `panelPower` signal, as the power control circuit is normally off.

!!! note

    When using PDLS with the EXT4 extension board, please refer to the technical note [Use PDLS with the EXT4 extension board](../../Volume5/Chapter1/Part7/Section22.md).

The SPI and I²C ports set their respective pins.

External pins

The SD-card is managed with an external board.

Variable Number Signal Type Function
.cardCS - Card /CS Input SD-card chip select
.cardDetect - Card !DETECT Output SD-card detect

The SPI and I²C ports set their respective pins.

Pre-configured boards

There are three families of main controller boards. The configuration file lists the recommended boards and includes other boards. Additional non-listed boards can easily be defined.

The recommended boards are:

Constant Board
boardRaspberryPiPico_RP2040_EXT3
boardRaspberryPiPico_RP2350_EXT3
Raspberry Pi Pico with Arduino-Pico
boardArduinoNanoMatter_EXT4 Arduino Nano Matter

The recommended boards have been extensively tested.

Info

The Raspberry Pi Pico with Arduino-Pico is part of the EPD Pico Kit (EPDK) .

Info

The Arduino Nano Matter is part of the E-Paper Development Kit for Matter (EPDK-Matter) .

Other boards

Other boards are also available.

Constant Board
boardFeatherNRF52840_EXT3 Adafruit Feather
boardESP32DevKitC_EXT3 ​Espressif ESP32-DevKitC
boardSiLabsBG24Explorer_EXT4 Silicon Labs EFR32xG24 Explorer Kit
boardFeatherNRF52832 Adafruit Feather
boardArduinoZero Arduino Zero or M0 Pro
boardNucleo64 STM32 Nucleo

Those boards are for reference only, as they may require specific SDK configurations.

Non-listed boards

if the main controller board is not listed among the hV_List_Boards header file, it needs to be defined.

Please refer to the technical note Define a non-listed board.


See also