(February 7th, 2023)
A branch named idf-v5.0-support has been created some time ago to permit changes related to ESP-IDF V5.0. Please note that you can try to use it if required. Testing is ongoing to merge it with the upcoming new version.
(June 21st, 2022)
Added support for idf.py
development, as provided by tajnymag.
(April 27th, 2022)
Version 0.9.6:
mcp_ext.is_present()
method can be used to check its availability. Log information messages are produced indicating if MCPs are detected as present or not.Version 0.9.5:
INKPLATE_6PLUS
must be defined to compile for this device. For the TouchScreen class, TouchPositions has been defined as an array of 2 entries to minimize the potential of bad methods parameters.(March 4, 2021)
Version 0.9.4: Added PressKeys
class in support of the Buttons Extended Case as described here. To be used, at compile time, EXTENDED_CASE must be #defined. The TouchKeys
class will then not be included.
(March 2, 2021)
Version 0.9.3: Change required by ESP-IDF Version 4.2 for the SD Card support. Thanks to Yuki Mizuno for the supplied patch.
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
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:
Component Config
> ESP32-Specific
> Support for external, SPI-Connected RAM
SPI RAM config
> Initialize SPI RAM during startup
Run memory test on SPI RAM Initialization
Enable workaround for bug in SPI RAM cache for Rev 1 ESP32s
SPI RAM access method
> Make RAM allocatable using malloc() as well
Leave the other options as they are.
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:
Component config
> ESP32-Specific
> CPU frequency
> 240 Mhz
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
:
Component config
> FAT Filesystem support
> Max Long filename length
> 255
Number of simultaneously open files protected by lock function
> 5
Prefer external RAM when allocating FATFS buffer
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 the platformio.ini
file, the line board_build.partitions=...
is directing the use of these partitions configuration.