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.
Recommended boards¶
The recommended boards are:
| Constant | Board |
|---|---|
boardRaspberryPiPico_RP2040_EXT3boardRaspberryPiPico_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.