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, EXT3.2 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, EXT3.2 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, except pin 8, 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.

hV_List_Boards.h
const Board_EXT boardRaspberryPiPico_RP2040_EXT3 =
{
    .scope = BOARD_EXT3, ///< Extension boards EXT3, EXT3.1, EXT3.2

    // Common
    .panelBusy = 13, ///< All EXT* pin 3 Red -> GP13
    .panelDC = 12, ///< All EXT* pin 4 Orange -> GP12
    .panelReset = 11, ///< All EXT* pin 5 Yellow -> GP11
    .flashCS = 10, ///< All EXT* except EXT3.2 pin 8 Violet -> GP10
    .panelCS = 17, ///< All EXT* pin 9 Grey -> GP17
    // End of Common

    // EXT3, EXT3.1 and EXT3-Touch, EXT4 specific
    .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 EXT3.2 and EXT4 power circuit
    // End of EXT3, EXT3.1 and EXT3-Touch specific

    // External SD-card
    .cardCS = NOT_CONNECTED, ///< External SD-card board
    .cardDetect = NOT_CONNECTED, ///< External SD-card board
    // End of External SD-card

    // 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
hV_List_Boards.h
const pins_t boardRaspberryPiPico_RP2040 =
{
    .panelBusy = 13, ///< EXT3 pin 3 Red -> GP13
    .panelDC = 12, ///< EXT3 pin 4 Orange -> GP12
    .panelReset = 11, ///< EXT3 pin 5 Yellow -> GP11
    .flashCS = 10, ///< EXT3 and EXT3.1 pin 8 Violet -> GP10
    .panelCS = 17, ///< EXT3 pin 9 Grey -> GP17
    .panelCSS = 14, ///< EXT3 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 Board_EXT 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.

Main code
// 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, EXT3.2 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, except pin 8, 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
.flashCS  8  Flash /CS Input Flash chip select
.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
.flashCS  8  Flash /CS Input Flash chip select
.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

Pin 8 is specific to the EXT3.2 extension board.

Variable Number Signal Type Function
.panelPOWER  8  P_POWER Input MOSFET for panel power control
.flashCS - F_CS Input Flash memory chip select
.flashCSS - F_CS2 Input Second SPI memory chip select
.panelCSS - P_CS2 Input Panel second chip select

The EXT3.2 extension board features a panel power control circuit instead of Flash memory, and does not support large screens.

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

Variable Number Signal Type Function
.flashCS  8  Flash /CS Input Flash chip select
.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 only supports screens up to 2.9”. It 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.

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
boardArduinoZero_EXT3 Arduino Zero or M0 Pro
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