Example¶
To open the example,
- Call the menu Files > Examples > Pervasive_Wide_Small > Demo_NEW on the Arduino IDE;
or
- Double-click on the Demo_NEW.inofile under theArduino/libraries/Pervasive_Wide_Small/examples/Demo_NEWfolder.
Configure¶
SDK and configuration¶
// SDK and configuration
#include "PDLS_Common.h"
The pre-processor statement calls the shared libraries.
The PDLS_Common umbrella header file includes the SDK with the peripherals library, and the configuration with the common library.
Driver¶
// Driver
#include "Pervasive_Wide_Small.h"
Pervasive_Wide_Small myDriver(eScreen_EPD_152_KS_0J, boardRaspberryPiPico_RP2040);
The pre-processor statement includes the driver library.
- Pervasive_Wide_Small
- The constructor creates the driver object.
The required parameters are
- 
The first line sets the model of the screen; 
- 
The second line selects the configuration of the main controller board connected to the EXT3, EXT3.1 or EXT4 extension board. 
Use¶
Initialisation¶
hV_HAL_begin();
myDriver.begin();
- hV_HAL_begin()
- proceeds with the general initialisation. It configures and starts the peripherals GPIO, UART, SPI, and I²C if needed.
- begin()
- initialises the driver, including the required GPIOs, and the SPI and I²C ports.
Temperature¶
myDriver.setTemperatureC(25);
myDriver.setTemperatureF(77);
- setTemperatureC()
- sets the temperature in degrees Celsius, with default value 25 °C.
- setTemperatureF()
- sets the temperature in degrees Fahrenheit, with default value 77 °F.
Update¶
myDriver.updateNormal(Image_BW, frameSize);
myDriver.updateFast(Image_BW_Next, Image_BW_Previous, frameSize);
- updateNormal()
- performs the update of the screen in normal mode. It requires one image and the size of the frame.
- updateFast()
- performs the update of the screen in fast mode. It requires two images, the next and the previous, and the size of the frame.
Terminate¶
hV_HAL_exit();
- hV_HAL_exit()
- enters an endless loop for micro-controllers.
Example¶
Each driver includes the code of an example under the folder Pervasive_Wide_Small/examples/Demo_NEW, like the project below.
// SDK and configuration
#include "PDLS_Common.h"
// Driver
#include "Pervasive_Wide_Small.h"
Pervasive_Wide_Small myDriver(eScreen_EPD_152_KS_0J, boardRaspberryPiPico_RP2040);
// DEMO Image Set <Comment out when in User Mode>
// Screen Size: 152, 154, 206, 213, 266, 271, 290, 370, 417, 437
#define SCRN 152
#include "globalupdate_src/demoImageData.h"
#include "fastupdate_src/demoImageData.h"
void setup()
{
    hV_HAL_begin();
    myDriver.begin();
    myDriver.updateNormal(BW_monoBuffer, frameSize);
    myDriver.updateFast(FastPic_w, FastPic_1, frameSize);
    myDriver.updateFast(FastPic_b, FastPic_w, frameSize);
    myDriver.updateFast(FastPic_2, FastPic_b, frameSize);
    myDriver.updateFast(FastPic_3, FastPic_2, frameSize);
    myDriver.updateFast(FastPic_4, FastPic_3, frameSize);
    myDriver.updateFast(FastPic_b, FastPic_4, frameSize);
    myDriver.updateFast(FastPic_w, FastPic_b, frameSize);
    hV_HAL_exit();
}
void loop()
{
    hV_HAL_delayMilliseconds(1000);
}