Skip to content
Martin F edited this page Apr 15, 2024 · 19 revisions

Epdiy wiki

At the moment the only existing documentation is on epdiy.readthedocs.io Please have a nice read over there. I will research on how to make a sync, if possible, between readthedocs and this github Wiki.

  • If possible the sync should only overwrite pages with the same name
  • Letting us generate special pages with more in deep technical info or test for Boards, Displays, etc.

epdiy V7 settings

Branch: master Color experimentation: s3_color_implementation

How to build the Firmware

Make sure to let idf know you will use the S3 target MCU. IDF required version: 5. Other lower versions will simply not work. In Linux I add this after setting the IDF_PATH in .profile

alias prep_idf="source $IDF_PATH/export.sh"

Then you can simply type prep_idf in the console so it calls automatically export.sh and then you can simply type idf.py to access the IDF toolchain.

idf.py set-target esp32s3

Check the menuconfig settings just to make sure they are correct. Usually in the examples just setting the target to esp32s3 should take the right defaults:

idf.py menuconfig

While there, make sure you enable PSRAM (Octal for this board)

Component config --> ESP PSRAM  --> Enable SPI-connected RAM --> Config --> QUAD/OCT

Set RAM clock speed (80MHz clock speed)

NOTE: You can go to 120 Mhz RAM clock speed ticking the "Experimental settings" but that didn't prove for me to make much of a difference

Additionally:

System Settings --> CPU frequency (240 MHz)

System Settings --> Cache Config --> Data cache line size (64 Bytes)

This Data cache line size is essential to cope with the parallel speeds proposed for different displays when using the new version 7 board. Leaving that in 32 bytes will force you to downgrade bus_speed in displays.c

Dynamic display setting

EpdiyHighlevelState hl;
void app_main() {
  // Optionally check external RAM info:
  heap_caps_print_heap_info(MALLOC_CAP_SPIRAM);
  // Initialize the board. Settings: epdiy/boards  Display settings: displays.c  
  epd_init(&epd_board_v7, &ED060XC3, EPD_LUT_64K);
  // Set VCOM for boards that allow to set this in software (in mV).
  // This will print an error if unsupported. In this case,
  // set VCOM using the hardware potentiometer and delete this line.
  epd_set_vcom(1560);
  hl = epd_hl_init(WAVEFORM);
}

Documentation references

Improving Overall Speed in Espressif MCUs

WiKi written by Martin Fasani & collaborators. Please send your suggestions / technical corrections to martin[AT]cale.es