Skip to content

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:

  • panelPower in pin  8  is required, as the EXT3.2 extension board features a panel power control circuit, normally off;

  • panelCSS is not available, as the EXT3.2 extension board drives only small panels;

  • flashCS and flashCSS are not available, as the EXT3.2 extension board does not support external SPI memory;

  • touchIn and touchReset are 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 = power
  • O = output
  • I = input
  • SPI = serial peripheral interface
  • I²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_EXT structure, synonym of pins_t;
Main code
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.

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);

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.


See also