Used environment¶
The Pervasive Displays Library Suite is developed in C++ and relies on objects.
Editions¶
The PDLS comes in four editions: Basic, Evaluation, Commercial and Viewer.
Basic edition SDK¶
The Basic edition leverages the Arduino SDK as a hardware abstraction layer for the peripherals GPIO, UART, SPI and I²C.
The Arduino SDK supports a large range of platforms and boards, including AVR, Cortex-M, Cortex-A, ESP32, Intel x86, MSP430, PIC32 and more.
The recommended IDE is the Arduino IDE with the boards package corresponding to the targeted platform and board.
The Arduino wiki provides an Unofficial list of 3rd party boards . Another reference is the list of all known Arduino hardware packages .
Users can adapt the Peripherals library to target another SDK.
Evaluation edition pre-compiled libraries¶
The pre-compiled libraries of the Evaluation edition are generated according to the Precompiled binaries procedure of the Library specifications page for Arduino CLI.
They are available for the following platforms and boards:
- 32-bit Cortex-M0+ Raspberry Pi Pico RP2040, with Arduino IDE and boards package Pico RP2040 ;
Info
The Raspberry Pi Pico with Arduino-Pico is part of the EPD Pico Kit (EPDK) .
- 32-bits Arduino Nano Matter, with Arduino IDE and boards package Silicon Labs Arduino Core .
Info
The Arduino Nano Matter is part of the E-Paper Development Kit for Matter (EPDK-Matter) .
-
32-bits Espressif ESP32-DevKitC, with Arduino IDE and boards package ESP32 ;
-
32-bits Adafruit Feather nRF52840, with Arduino IDE and boards package Adafruit nRF52 .
Other platforms and boards may be available on request, as long as they are supported by the Arduino SDK.
Commercial edition SDK-agnostic¶
The Commercial edition is SDK- and API-agnostic and only requires standard C/C++ libraries. The peripherals library should be adapted accordingly.
Adaptations have been successfully tested against the following SDKs:
- ARM Mbed-OS with IDE Mbed Studio for ARM Cortex-M MCU-based boards;
Warning
ARM has announced the end of life of Mbed-OS .
The new Mbed Community Edition is presented as a community-driven alternative.
-
BCM2835 library for the Raspberry Pi boards;
-
MRAA library for the Raspberry Pi boards.
The technical note details how to Migrate to another SDK.
Viewer edition for Linux and Windows¶
The Viewer edition runs as a Linux or Windows native application to simulate an e-paper screen and manage touch. It shares the same fonts and application libraries with the Commercial edition.
It allows to develop the application software independently of the hardware. It is meant to be used with the Commercial edition.
It has been tested successfully on Windows, WSL 2 with Debian on Windows, and Linux Debian.
Releases¶
Commercial version name¶
PDLS follows a quartely release named after the seasons.
Release Summer 2025
Technical release number¶
The version name corresponds to a technical release number with the standard MAJOR
.MINOR
.PATCH
format.
The Summer 2025 release includes the changes from 9.0.8, 9.0.9 and 9.1.0.
The technical release number is based on the Semantic Versioning 2.0.0 .
Given a version number
MAJOR
.MINOR
.PATCH
, increment the:
MAJOR
version when you make incompatible API changesMINOR
version when you add functionality in a backward compatible mannerPATCH
version when you make backward compatible bug fixesAdditional labels for pre-release and build metadata are available as extensions to the
MAJOR
.MINOR
.PATCH
format.
This format allows the Arduino IDE to management the updates automatically and the libraries to checks their dependencies.
Check of dependencies¶
Each library has its own technical release number.
``` cpp
define hV_FONT_TERMINAL_RELEASE 503¶
```
Each library checks its dependencies at pre-processing by testing the technical release number.
``` cpp
include “hV_Font_Terminal.h”¶
if hV_FONT_TERMINAL_RELEASE < 504¶
error Required hV_FONT_TERMINAL_RELEASE 504¶
endif¶
```
In this example, if the hV_Font_Terminal
library release is 503
, the pre-processor expects 504
and prompts an error message:
``` cpp
error Required hV_FONT_TERMINAL_RELEASE 504¶
```
Externals tools¶
External tools have been tested on Linux Debian 12
.
Tool | Release | Status |
---|---|---|
Arduino IDE | 2.3.6 |
|
Arduino CLI | 1.2.2 |
|
Adafruit nRF52 core for Arduino | 1.6.1 |
|
ESP32 core for Arduino | 3.0.4 |
|
Silicon Labs core for Arduino | 2.1.0 |
|
Pico RP2040 core for Arduino | 3.9.5 |
|
Visual Studio Code IDE | 1.92.1 |
|
Arduino extension | 0.6.230727001 |
|
ARM Mbed-OS | 6.17.0 or legacy 5.14.2 |
|
Mbed Studio | 1.4.6 |
|
BCM2835 library for Raspberry Pi | 1.73 |
|
MRAA library for Raspberry Pi | 2.2.0 |
|
Linux Debian | 12.6 |
|
Windows | 11 24H2 |
highView library Suite¶
The Pervasive Displays Library Suite relies on the highView Library Suite technologies.


Pervasive Displays Library Suite and highView Library Suite
The highView Library Suite provides a common high-level interface to drive multiple screen technologies, such as TFT, STN, OLED and e-paper, resistive and capacitive touch, and enhanced haptic feed-back.
The suite leverages objects for modular design, focuses on light footprint for memory and processing, and ensures compatibility with previous iterations of the suite.