3.0 KiB
ESP-IDF-InkPlate Library Version 0.9.3
(March 2, 2021)
A porting effort to the ESP-IDF framework for the e-Radionica InkPlate software that can be find here.
--> Work in progress. It is usable, but testing remains to be completed. <--
Look in the examples
folder for ready-made applications. This library is conform to the PlatformIO IDE extension. All examples can be compiled using PlatformIO.
Information about the modifications is located in file CHANGES.md
ESP-IDF configuration specifics for InkPlate devices
An InkPlate application requires some functionalities to be properly set up within the ESP-IDF. The following elements have been done for this project and can be used as a reference for other projects:
-
PSRAM memory management: The PSRAM is an extension to the ESP32 memory that offers 4MB+4MB of additional RAM. The first 4MB is readily available to integrate into the dynamic memory allocation of the ESP-IDF SDK. To do so, some parameters located in the
sdkconfig
file must be set accordingly. This must be done using the menuconfig application that is part of the ESP-IDF. The following command will launch the application (the current folder must be the main folder of EPub-InkPlate):$ idf.py menuconfig
The application will show a list of configuration aspects. To configure PSRAM:
- Select
Component Config
>ESP32-Specific
>Support for external, SPI-Connected RAM
- Select
SPI RAM config
>Initialize SPI RAM during startup
- Select
Run memory test on SPI RAM Initialization
- Select
Enable workaround for bug in SPI RAM cache for Rev 1 ESP32s
- Select
SPI RAM access method
>Make RAM allocatable using malloc() as well
Leave the other options as they are.
- Select
-
ESP32 processor speed: The processor must be run at 240MHz. The following line in
platformio.ini
request this speed:board_build.f_cpu = 240000000L
You can also select the speed in the sdkconfig file:
- Select
Component config
>ESP32-Specific
>CPU frequency
>240 Mhz
- Select
-
FAT Filesystem Support: If the application requires the usage of the micro SD card. This card must be formatted on a computer (Linux or Windows) with a FAT 32 partition. The InkPlate6Ctrl class requires this in its current configuration. The following parameters must be adjusted in
sdkconfig
:- Select
Component config
>FAT Filesystem support
>Max Long filename length
>255
- Select
Number of simultaneously open files protected by lock function
>5
- Select
Prefer external RAM when allocating FATFS buffer
- Select
-
Flash memory partitioning (optional): the file
partitions.csv
contains the table of partitions definition for the 4MB flash memory, required to support the largest applications size in an OTA context. The partitions OTA_0 and OTA_1 have been set to be 1.3MB in size. In theplatformio.ini
file, the lineboard_build.partitions=...
is directing the use of these partitions configuration.