Use PDLS with the EXT3.2 extension board¶
This technical note details how to use PDLS with the EXT3.2 extension board.
EXT3.2 extension board¶
The EXT3.2 extension board is specifically designed for ultra-low power usage. It includes a dedicated circuit to turn power off.
Warning
The EXT3.2 extension board requires the panelPower signal, as the power control circuit is normally off.
Danger
The EXT3.2 extension board requires power and signals at 3.3V.
Board configuration¶
Driving an e-paper display through the EXT3.2 extension board requires a minimum of 9 signals.
Contrary to the EXT3.1 extension board, the EXT3.2 extension board includes no SPI Flash memory. Similarly, it provides no pads for a second external SPI memory, Flash or SRAM.
| Signal | Minimal | Optional |
|---|---|---|
| Power | +3.3V, Ground | |
| SPI bus | Clock, Data in | |
| Panel | Select, Reset, Busy, Data/Command, Power | |
| Total | 9 | 0 |
The standard board definition of PDLS can be used with the EXT3.2 extension board, with four major differences compared to EXT3.1 extension board:
-
panelPowerin pin 8 is required, as the EXT3.2 extension board features a panel power control circuit, normally off; -
panelCSSis not available, as the EXT3.2 extension board drives only small panels; -
flashCSandflashCSSare not available, as the EXT3.2 extension board does not support external SPI memory; -
touchInandtouchResetare not available, as the EXT3.2 extension board does not support touch.
Connector¶
The EXT3.2 extension board features a 1x10-way connector.
Pins 1 to 10 are compatible with the EXT3 and EXT3.1 extension boards.
| Variable | Number | Signal | Type | Function |
|---|---|---|---|---|
| 1 | VCC +3.3V | P |
Power Supply | |
| 2 | SPI SCK | SPI |
SPI clock | |
.panelBusy |
3 | Panel !BUSY | O |
Panel busy signal |
.panelDC |
4 | Panel D/C | I |
Panel Data/Command control |
.panelReset |
5 | Panel /RESET | I |
Panel reset |
| 6 | NC | - | Not connected | |
| 7 | SPI MOSI | SPI |
SPI MOSI | |
.panelPower |
8 | Panel POWER | I |
MOSFET for panel power control |
.panelCS |
9 | Panel /CS | I |
Panel chip select |
| 10 | Ground | P |
Ground |
Type
P= powerO= outputI= inputSPI= serial peripheral interfaceI²C= inter-integrated circuit
The SPI bus connects the screen but does not use MISO.
Screens¶
The EXT3.2 extension board supports the monochrome screens with wide temperature and embedded fast update (film K) and the colour black-white-red-yellow screens (film Q) up to 4.37”.
Configure¶
The EXT3.2 extension board requires the panelPower in pin 8 , as the panel power control circuit is normally off.
There are two options to define the panel power pin.
Custom board procedure¶
A custom board is defined on the main program with .panelPower set.
Example
This example shows a modified board definition, to be adapted to the specific main controller board.
- Create a variable with the
Board_EXTstructure, synonym ofpins_t;
const Board_EXT myBoard_EXT3_2 =
{
.scope = BOARD_EXT3;
.panelBusy = 13, ///< EXT3.2 pin 3 Red
.panelDC = 12, ///< EXT3.2 pin 4 Orange
.panelReset = 11, ///< EXT3.2 pin 5 Yellow
.flashCS = NOT_CONNECTED, ///< Signal not available
.panelCS = 17, ///< EXT3.2 pin 9 Grey
.panelCSS = NOT_CONNECTED, ///< Signal not available
.flashCSS = NOT_CONNECTED, ///< Signal not available
.touchInt = NOT_CONNECTED, ///< Signal not available
.touchReset = NOT_CONNECTED, ///< Signal not available
.panelPower = 16, ///< EXT3.2 pin 8 Violet, required
.cardCS = NOT_CONNECTED, ///< Separate SD-card board
.cardDetect = NOT_CONNECTED, ///< Separate SD-card board
// EXT4 specific
.button = NOT_CONNECTED, // Signal not available
.ledData = NOT_CONNECTED, // Signal not available
.nfcFD = NOT_CONNECTED, // Signal not available
.imuInt1 = NOT_CONNECTED, // Signal not available
.imuInt2 = NOT_CONNECTED, // Signal not available
.weatherInt = NOT_CONNECTED // Signal not available
// End of EXT4 specific
};
// Driver
#include "Pervasive_Wide_Small.h"
Pervasive_Wide_Small myDriver(eScreen_EPD_271_KS_09, myBoard_EXT3_2);
// Screen
#include "PDLS_Basic.h"
Screen_EPD myScreen(&myDriver);
Custom pin procedure¶
A standard board definition is used and a custom pin is specified as panel power at run-time.
// 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);
myScreen.setPanelPowerPin(16);
myScreen.begin();
setPanelPowerPin()- defines the pin used for panel power.
The required parameter is
- the GPIO or pin number for the panel power signal.
Warning
If the pin number is already used as panelCS, panelCS is set to NOT_CONNECTED and the pin number is used for panelPower.
Danger
The setPanelPowerPin() function should always be called before begin() so the panel power pin is initialised.
Use¶
Use the screen like any other.