Use PDLS with the EXT-ULP extension board¶
This technical note details how to use PDLS with the EXT-ULP extension board.
EXT-ULP extension board¶
The EXT-ULP extension board is specifically designed to be used with an ultra-low power device.
It features the circuit for a small e-paper display with a panel power control circuit.
Warning
The EXT4 and EXT-ULP extension boards require the panelPower
signal, as the power control circuit is normally off.
Board configuration¶
Driving an e-paper display through the EXT-ULP extension board requires a minimum of 9 signals, and up to 20 signals with all the sensors and interrupts, RGB LED and external memory.
Contrary to the EXT3.1 extension board, the EXT-ULP 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 EXT-ULP extension board, with four major differences compared to EXT3.1 extension board:
-
panelPower
in pin 8 is required, as the EXT-ULP extension board features a panel power control circuit, normally off; -
panelCSS
is not available, as the EXT-ULP extension board drives only small panels; -
flashCS
andflashCSS
are not available, as the EXT-ULP extension board does not support external SPI memory; -
touchIn
andtouchReset
are not available, as the EXT-ULP extension board does not support touch.
Connector¶
The EXT-ULP 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 EXT-ULP 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 EXT-ULP extension board requires the panelPower
in pin 8 , as the power control circuit is normally off.
There are three options to define the panel power pin.
-
Edit the board definition on the
hV_List_Boards.h
header file. -
Define a specific board on the main program and set
.panelPower
.
Example
This example shows a modified board definition, to be adapted to the specific main controller board.
const pins_t myBoardEXT_ULP =
{
.panelBusy = 13, ///< EXT-ULP pin 3 Red
.panelDC = 12, ///< EXT-ULP pin 4 Orange
.panelReset = 11, ///< EXT-ULP pin 5 Yellow
.flashCS = NOT_CONNECTED, ///< Signal not available
.panelCS = 17, ///< EXT-ULP 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, ///< EXT-ULP pin 8 Violet, required
.cardCS = NOT_CONNECTED, ///< Separate SD-card board
.cardDetect = NOT_CONNECTED, ///< Separate SD-card board
};
// Driver
#include "Pervasive_Wide_Small.h"
Pervasive_Wide_Small myDriver(eScreen_EPD_271_KS_09, myBoardEXT_ULP);
// Screen
#include "PDLS_Advanced.h"
Screen_EPD myScreen(&myDriver);
- Use the standard board definition and specify the panel power pin at run-time.
// Driver
#include "Pervasive_Wide_Small.h"
Pervasive_Wide_Small myDriver(eScreen_EPD_271_KS_09, boardRaspberryPiPico_RP2040);
// Screen
#include "PDLS_Advanced.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
The setPanelPowerPin()
function should always be called before begin()
so the panel power pin is initialised.
Use¶
Use the screen like any other.