Pervasive Displays Library Suite  5.0.7
Library for Pervasive Displays - Basic edition
hV_Configuration.h File Reference

Configuration of the options for Pervasive Displays Library Suite. More...

#include "Arduino.h"
Include dependency graph for hV_Configuration.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  pins_t
 Board configuration structure. More...
 

Macros

#define hV_CONFIGURATION_RELEASE   507
 Release.
 
#define MAX_FONT_SIZE   4
 4- Maximum number of fonts More...
 
1- List of supported Pervasive Displays screens
#define eScreen_EPD_EXT3_t   uint32_t
 
#define eScreen_EPD_EXT3_154   (uint32_t)0x1500
 
#define eScreen_EPD_EXT3_213   (uint32_t)0x2100
 reference xE2213CSxxx
 
#define eScreen_EPD_EXT3_266   (uint32_t)0x2600
 reference xE2266CSxxx
 
#define eScreen_EPD_EXT3_271   (uint32_t)0x2700
 reference xE2271CSxxx
 
#define eScreen_EPD_EXT3_271_Partial   (uint32_t)0x012709
 reference xE2271PS09x
 
#define eScreen_EPD_EXT3_287   (uint32_t)0x2800
 reference xE2287CSxxx
 
#define eScreen_EPD_EXT3_290   (uint32_t)0x2900
 reference xE2290CSxxx
 
#define eScreen_EPD_EXT3_370   (uint32_t)0x3700
 reference xE2370CSxxx
 
#define eScreen_EPD_EXT3_417   (uint32_t)0x4100
 reference xE2417CSxxx
 
#define eScreen_EPD_EXT3_437   (uint32_t)0x4300
 reference xE2437CSxxx
 
#define eScreen_EPD_EXT3_565   (uint32_t)0x5600
 reference xE2565CSxxx
 
#define eScreen_EPD_EXT3_581   (uint32_t)0x580B
 reference xE2581CS0Bx, same as eScreen_EPD_EXT3_581_0B
 
#define eScreen_EPD_EXT3_741   (uint32_t)0x740B
 reference xE2741CS0Bx, same as eScreen_EPD_EXT3_741_0B
 
#define eScreen_EPD_EXT3_969   (uint32_t)0x960B
 reference xE2969CS0Bx, same as eScreen_EPD_EXT3_969_0B
 
#define eScreen_EPD_EXT3_B98   (uint32_t)0xB90B
 reference xE2B98CS0Bx, same as eScreen_EPD_EXT3_B98_0B
 
#define eScreen_EPD_EXT3_581_0B   (uint32_t)0x580B
 reference xE2581CS0Bx More...
 
#define eScreen_EPD_EXT3_741_0B   (uint32_t)0x740B
 reference xE2741CS0Bx
 
#define eScreen_EPD_EXT3_581_08   (uint32_t)0x5808
 reference xE2581CS08x, previous type
 
#define eScreen_EPD_EXT3_741_08   (uint32_t)0x7408
 reference xE2741CS08x, previous type
 
#define eScreen_EPD_EXT3_969_0B   (uint32_t)0x960B
 reference xE2969CS0Bx More...
 
#define eScreen_EPD_EXT3_B98_0B   (uint32_t)0xB90B
 reference xE2B98CS0Bx
 
#define eScreen_EPD_EXT3_969_08   (uint32_t)0x9608
 reference xE2969CS08x, previous type
 
#define eScreen_EPD_EXT3_B98_08   (uint32_t)0xB908
 reference xE2B98CS08x, previous type
 
#define eScreen_EPD_EXT3_154_0C   (uint32_t)0x150C
 reference xE2154CS0Cx More...
 
#define eScreen_EPD_EXT3_213_09   (uint32_t)0x2109
 reference xE2213xS09x
 
#define eScreen_EPD_EXT3_213_0C   (uint32_t)0x210C
 reference xE2213CS0Cx
 
#define eScreen_EPD_EXT3_266_09   (uint32_t)0x2609
 reference xE2266xS09x
 
#define eScreen_EPD_EXT3_266_0C   (uint32_t)0x260C
 reference xE2266CS0Cx
 
#define eScreen_EPD_EXT3_271_09   (uint32_t)0x2709
 reference xE2271CS09x
 
#define eScreen_EPD_EXT3_287_09   (uint32_t)0x2809
 reference xE2287CS09x
 
#define eScreen_EPD_EXT3_370_0C   (uint32_t)0x370C
 reference xE2370CS0Cx
 
#define eScreen_EPD_EXT3_417_05   (uint32_t)0x4105
 reference xE2417CS05x
 
#define eScreen_EPD_EXT3_417_0D   (uint32_t)0x410D
 reference xE2417CS0Dx
 
#define eScreen_EPD_EXT3_437_0C   (uint32_t)0x430C
 reference xE2437CS0Cx
 
#define eScreen_EPD_EXT3_437_08   (uint32_t)0x4308
 reference xE2437CS08x, previous type More...
 
Frame Frame-buffer sizes

Frame-buffer size = width * height / 8 * depth, uint32_t

Note
Only one frame buffer is required.
Depth = 2 for black-white-red screens and monochrome screens
#define frameSize_EPD_EXT3_154   (uint32_t)(5776)
 
#define frameSize_EPD_EXT3_213   (uint32_t)(5512)
 
#define frameSize_EPD_EXT3_266   (uint32_t)(11248)
 
#define frameSize_EPD_EXT3_271   (uint32_t)(11616)
 
#define frameSize_EPD_EXT3_287   (uint32_t)(9472)
 
#define frameSize_EPD_EXT3_370   (uint32_t)(24960)
 
#define frameSize_EPD_EXT3_417   (uint32_t)(30000)
 
#define frameSize_EPD_EXT3_437   (uint32_t)(21120)
 
#define frameSize_EPD_EXT3_565   (uint32_t)(33600)
 
#define frameSize_EPD_EXT3_581   (uint32_t)(46080)
 
#define frameSize_EPD_EXT3_741   (uint32_t)(96000)
 
#define frameSize_EPD_EXT3_969   (uint32_t)(161280)
 
#define frameSize_EPD_EXT3_B98   (uint32_t)(184320)
 
3- Set font mode

RedBear Duo configuration, tested

From header files or from external flash

  • Basic edition: Terminal font
  • Advanced edition: DejaVu font as header
  • Commercial edition: DejaVu font as either header or external SPI Flash
    Note
    USE_FONT_HEADER requires addFont()
    Font Manager requires USE_FONT_HEADER
    Warning
    8- and 16-bit MCUs may limit the size of the fonts. Use 32-bit MCUs for optimal performance.
#define USE_FONT_TERMINAL   1
 Use default Terminal fonts.
 
#define FONT_MODE   USE_FONT_TERMINAL
 Selected option.
 
5- Set SRAM memory

From internal MCU or external SPI

  • Basic edition: MCU internal SRAM
  • Commercial edition: MCU internal SRAM
  • Advanced edition: MCU internal or SPI external SRAM
#define USE_INTERNAL_MCU   1
 Use MCU internal.
 
#define SRAM_MODE   USE_INTERNAL_MCU
 Selected option.
 
6- Use virtual object

From hV_Screen_Virtual.h for extended compability

Note
Declare additional variables if USE_hV_SCREEN_SELF
Virtual object requires ~1 kB bytes.
  • Basic edition: self option
  • Advanced edition: virtual options
  • Commercial edition: self and virtual options
Recommended: USE_hV_SCREEN_VIRTUAL
Warning
Issues with virtual function on arm-none-eabi-g++ 4.9.3: use USE_hV_SCREEN_SELF instead.
#define USE_hV_SCREEN_SELF   2
 Do not use virtual object.
 
#define USE_hV_SCREEN   USE_hV_SCREEN_SELF
 Selected option.
 
7- Set touch mode

Only two screens are ready for touch

  • Basic edition: no touch
  • Advanced edition: iTC 2.71 BW and iTC 4.2 BW
  • Commercial edition: iTC 2.71 BW and iTC 4.2 BW
    Note
    Touch uses I2C and polling over interrupt
#define USE_TOUCH_NONE   0
 Do not use touch.
 
#define TOUCH_MODE   USE_TOUCH_NONE
 Selected option.
 
#define USE_HAPTICS_NONE   0
 8- Set haptic feedback mode More...
 
#define HAPTICS_MODE   USE_HAPTICS_NONE
 Selected option.
 
#define USE_EXPANDER_NONE   0
 9- Set GPIO expander mode More...
 
#define EXPANDER_MODE   USE_EXPANDER_NONE
 Selected option.
 
#define USE_STRING_OBJECT   1
 10- Set string mode More...
 
#define STRING_MODE   USE_STRING_OBJECT
 10- Set string mode More...
 
#define USE_SD_NONE   0
 11- Set SD card More...
 
#define SD_CARD_MODE   USE_SD_NONE
 Selected option.
 

2- List of pre-configured boards

#define NOT_CONNECTED   (uint8_t)0xff
 Not connected pin.
 
const pins_t boardLaunchPad
 MSP430 and MSP432 LaunchPad configuration, tested. More...
 
const pins_t boardCC1352
 CC1352 configuration, tested. More...
 
const pins_t boardLaunchPadGCU
 MSP5430FR5994 as GCU configuration, tested. More...
 
const pins_t boardRaspberryPiB
 Raspberry Pi B configuration, tested. More...
 
const pins_t boardRaspberryPiPico
 Raspberry Pi Pico configuration, tested. More...
 
const pins_t boardFeatherM0
 Feather M0 configuration, tested. More...
 
const pins_t boardArduinoZero
 Arduino Zero configuration, tested. More...
 
const pins_t boardNucleo64 = boardArduinoZero
 ST Nucleo 64, tested.
 

Detailed Description

Configuration of the options for Pervasive Displays Library Suite.

Project Pervasive Displays Library Suite
Based on highView technology

1- List of supported Pervasive Displays screens 2- List of pre-configured boards 3- Font mode, internal MCU for basic edition 4- Maximum number of fonts 5- SRAM memory, internal MCU for basic edition 6- Use self for basic edition 7- Touch mode, not implemented 8- Haptic feedback mode, not implemented

  1. Set GPIO expander mode, not implemented
  2. String object for basic edition
  3. Set SD-card mode, not implemented
Author
Rei Vilo
Date
02 Aug 2021
Version
507

The highView Library Suite is shared under the Creative Commons licence Attribution-NonCommercial-ShareAlike 4.0 Unported (CC BY-NC-SA 4.0).

  • Basic edition: for hobbyists and for personal usage
    Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Unported (CC BY-NC-SA 4.0)
See also
https://creativecommons.org/licenses/by-nc-sa/4.0/


Consider the advanced or commercial editions for professionals or organisations and for commercial usage

  • Advanced edition: for professionals or organisations, no commercial usage
    All rights reserved
  • Commercial edition: for professionals or organisations, commercial usage
    All rights reserved

Macro Definition Documentation

◆ eScreen_EPD_EXT3_154

#define eScreen_EPD_EXT3_154   (uint32_t)0x1500
  • Monochrome screens and default colour screens reference xE2154CSxxx

◆ eScreen_EPD_EXT3_154_0C

#define eScreen_EPD_EXT3_154_0C   (uint32_t)0x150C

reference xE2154CS0Cx

  • Specific fast update for monochrome screens

◆ eScreen_EPD_EXT3_437_08

#define eScreen_EPD_EXT3_437_08   (uint32_t)0x4308

reference xE2437CS08x, previous type

  • Specific monochrome screens, previous type with fast update only

◆ eScreen_EPD_EXT3_581_0B

#define eScreen_EPD_EXT3_581_0B   (uint32_t)0x580B

reference xE2581CS0Bx

  • Specific medium screens

◆ eScreen_EPD_EXT3_969_0B

#define eScreen_EPD_EXT3_969_0B   (uint32_t)0x960B

reference xE2969CS0Bx

  • Specific large screens

◆ eScreen_EPD_EXT3_t

#define eScreen_EPD_EXT3_t   uint32_t

screen type

◆ MAX_FONT_SIZE

#define MAX_FONT_SIZE   4

4- Maximum number of fonts

With MCU Flash, based on available memory, check performed at compilation

  • USE_FONT_TERMINAL: 1..4
  • USE_FONT_HEADER: 1..64

With SPI Flash, based on the fonts previously uploaded

  • USE_FONT_FLASH: eg. 64

◆ STRING_MODE

#define STRING_MODE   USE_STRING_OBJECT

10- Set string mode

  • Basic edition: String object
  • Advanced edition: char array
  • Commercial edition: String object or char array

◆ USE_EXPANDER_NONE

#define USE_EXPANDER_NONE   0

9- Set GPIO expander mode

  • Basic edition: no expander
  • Advanced edition: PCF8574 or PCA9536
  • Commercial edition: PCF8574 or PCA9536No I2C expander

◆ USE_HAPTICS_NONE

#define USE_HAPTICS_NONE   0

8- Set haptic feedback mode

  • Basic edition: no haptic feedback
  • Advanced edition: ERM or LRA
  • Commercial edition: ERM or LRANo motor

◆ USE_SD_NONE

#define USE_SD_NONE   0

11- Set SD card

  • Basic edition: no SD card
  • Advanced edition: no SD card
  • Commercial edition: No SD card

◆ USE_STRING_OBJECT

#define USE_STRING_OBJECT   1

10- Set string mode

  • Basic edition: String object
  • Advanced edition: char array
  • Commercial edition: String object or char array

Variable Documentation

◆ boardArduinoZero

const pins_t boardArduinoZero
Initial value:
=
{
.panelBusy = 4,
.panelDC = 5,
.panelReset = 6,
.flashCS = 7,
.panelCS = 8,
.panelCSS = 9,
.flashCSS = 10,
.touchReset = NOT_CONNECTED,
.touchInt = NOT_CONNECTED,
.cardCS = NOT_CONNECTED,
.cardDetect = NOT_CONNECTED,
}
#define NOT_CONNECTED
Not connected pin.
Definition: hV_Configuration.h:135

Arduino Zero configuration, tested.

◆ boardCC1352

const pins_t boardCC1352
Initial value:
=
{
.panelBusy = 5,
.panelDC = 6,
.panelReset = 19,
.flashCS = 24,
.panelCS = 26,
.panelCSS = 37,
.flashCSS = 27,
.touchReset = NOT_CONNECTED,
.touchInt = NOT_CONNECTED,
.cardCS = NOT_CONNECTED,
.cardDetect = NOT_CONNECTED,
}
#define NOT_CONNECTED
Not connected pin.
Definition: hV_Configuration.h:135

CC1352 configuration, tested.

◆ boardFeatherM0

const pins_t boardFeatherM0
Initial value:
=
{
.panelBusy = 13,
.panelDC = 12,
.panelReset = 11,
.flashCS = 10,
.panelCS = 9,
.panelCSS = NOT_CONNECTED,
.flashCSS = NOT_CONNECTED,
.touchReset = NOT_CONNECTED,
.touchInt = NOT_CONNECTED,
.cardCS = NOT_CONNECTED,
.cardDetect = NOT_CONNECTED,
}
#define NOT_CONNECTED
Not connected pin.
Definition: hV_Configuration.h:135

Feather M0 configuration, tested.

◆ boardLaunchPad

const pins_t boardLaunchPad
Initial value:
=
{
.panelBusy = 11,
.panelDC = 12,
.panelReset = 13,
.flashCS = 18,
.panelCS = 19,
.panelCSS = 39,
.flashCSS = 38,
.touchReset = NOT_CONNECTED,
.touchInt = NOT_CONNECTED,
.cardCS = NOT_CONNECTED,
.cardDetect = NOT_CONNECTED,
}
#define NOT_CONNECTED
Not connected pin.
Definition: hV_Configuration.h:135

MSP430 and MSP432 LaunchPad configuration, tested.

◆ boardLaunchPadGCU

const pins_t boardLaunchPadGCU
Initial value:
=
{
.panelBusy = 28,
.panelDC = 19,
.panelReset = 30,
.flashCS = 18,
.panelCS = 19,
.panelCSS = 39,
.flashCSS = 38,
.touchReset = NOT_CONNECTED,
.touchInt = NOT_CONNECTED,
.cardCS = NOT_CONNECTED,
.cardDetect = NOT_CONNECTED,
}
#define NOT_CONNECTED
Not connected pin.
Definition: hV_Configuration.h:135

MSP5430FR5994 as GCU configuration, tested.

◆ boardRaspberryPiB

const pins_t boardRaspberryPiB
Initial value:
=
{
.panelBusy = 7,
.panelDC = 8,
.panelReset = 25,
.flashCS = 22,
.panelCS = 27,
.panelCSS = 23,
.flashCSS = 24,
.touchReset = NOT_CONNECTED,
.touchInt = NOT_CONNECTED,
.cardCS = NOT_CONNECTED,
.cardDetect = NOT_CONNECTED,
}
#define NOT_CONNECTED
Not connected pin.
Definition: hV_Configuration.h:135

Raspberry Pi B configuration, tested.

◆ boardRaspberryPiPico

const pins_t boardRaspberryPiPico
Initial value:
=
{
.panelBusy = 13,
.panelDC = 12,
.panelReset = 11,
.flashCS = 10,
.panelCS = 5,
.panelCSS = 14,
.flashCSS = 15,
.touchReset = NOT_CONNECTED,
.touchInt = NOT_CONNECTED,
.cardCS = NOT_CONNECTED,
.cardDetect = NOT_CONNECTED,
}
#define NOT_CONNECTED
Not connected pin.
Definition: hV_Configuration.h:135

Raspberry Pi Pico configuration, tested.