Skip to content

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 and flashCSS are not available, as the EXT-ULP extension board does not support external SPI memory;

  • touchIn and touchReset 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 = 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 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.


See also