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
libraryof theArduinofolder. -
Delete all the sub-folders starting with
hV_,PDLS_andPervasive_.
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.