Skip to content

Migrate from Basic to Evaluation or Commercial edition

This technical note lists how to migrate from Basic to Evaluation or Commercial edition.

Remove prior installation

If another edition of PDLS has been installed,

  • Open the sub-folder library of the Arduino folder.

  • Delete all the sub-folders starting with hV_, PDLS_ and Pervasive_.

This ensures a clean installation of the new edition.

In case of an edition mismatch, an error is raised at build-time.

./PDLS_Advanced/src/PDLS_Advanced.h:43:2: error: #error Required Advanced (Commercial or Evaluation) edition of PDLS_Common
   43 | #error Required Advanced (Commercial or Evaluation) edition of PDLS_Common
      |  ^~~~~

Changes

Fonts

The Basic edition includes the Terminal fonts. No pre-processor statements are needed to use them.

The Evaluation and Commercial editions require a pre-processor statement to include the fonts. The main code selects and adds the fonts.

// Fonts
#include "hV_Font16_Latin_DejaVu.h"
#include "hV_Font16_Chinese_Noto.h"

uint8_t fontLatin;
fontLatin = myScreen.addFont(Font_Latin_DejaVu20);
fontLatin -= (fontLatin > 0) ? 1 : 0;

uint8_t fontChinese;
fontChinese = myScreen.addFont(Font_Chinese_Noto20);
fontChinese -= (fontChinese > 0) ? 1 : 0;

Screen update

The Basic edition shares the same command across the different variants.

  • flush() performs a fast update when the driver supports it, otherwise a normal update.

The Evaluation and Commercial editions have specific commands for each update mode.

  • flush() performs a normal update;

  • flushFast() performs a fast update.

Specific boards

ESP32 SPI

The Basic edition uses the default SPI port.

SPI.begin(14, 12, 13); // SCK MISO MOSI

The Evaluation and Commercial editions set the pins for the SPI port explicitly.

SPI.begin(14, 12, 13); // SCK MISO MOSI

Warning

The ESP32 boards have a specific implementation of SPI on the Arduino SDK. The source code may require to be manually adapted.

PSRAM

If PSRAM is available, the Basic edition uses PSRAM by default.

The Advanced and Commercial editions require PSRAM to be explicitly defined for the frame-buffer.

uint8_t * frameBuffer = (uint8_t *) ps_malloc(frameSize_EPD_271);
Screen_EPD myScreen(&myDriver, frameBuffer);

SDK

The Basic edition focuses on the Arduino SDK and can be interfaced to another SDK by adapting the Peripherals library.

The Evaluation edition only supports the Arduino SDK.

The Commercial edition gives access to other SDKs and APIs by adapting the Peripherals library. The twenty-four functions manages general initialisation and exit; configuration and use of GPIOs and UART, SPI and I²C buses; and miscellaneous like time and random.