Used environment¶
The highView Library Suite is developed in C++ and relies on objects.
Editions¶
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 .
As an alternative to the Arduino IDE, consider the Visual Studio Code IDE with the Arduino extension .
Critical
The Arduino extension for Visual Studio Code is deprecated since 01 October 2024. Microsoft recommends using the Arduino IDE.
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 .
-
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 .
As an alternative to the Arduino IDE, consider the Visual Studio Code IDE with the Arduino extension .
Critical
The Arduino extension for Visual Studio Code is deprecated since 01 October 2024. Microsoft recommends using the Arduino IDE.
Other platforms and boards may be available on request.
Commercial edition SDK-agnostic¶
However, 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.
Externals tools¶
External tools have been tested on Linux Debian 12
.
Releases of the tools¶
Tool | Release |
---|---|
Arduino IDE | 2.3.3 or legacy 1.8.19 |
Arduino CLI | 1.0.4 |
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 23H2 |
Version management¶
Each library has a release number to be checked at pre-processing.
Each library has its own release number.
#define hV_FONT_TERMINAL_RELEASE 503
The release number is checked at pre-processing.
#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:
#error Required hV_FONT_TERMINAL_RELEASE 504
highView library suite¶
The Pervasive Displays Library Suite relies on the highView library suite technologies.
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.