turgu1 / ESP-IDF-InkPlate

A porting effort to the ESP-IDF framework for the e-Radionica InkPlate software.
15 stars 9 forks source link

[Bug] 1bit mode not working properly #15

Open tajnymag opened 1 year ago

tajnymag commented 1 year ago

When Inkplate is set to 1bit mode, no output is displayed during display refresh. This started happening since branch v0.9.8.

I was able to reproduce it with esp-idf v4.4 and Native_IDF/Hello_World example. On branch v0.9.7 the example works correctly. On branch v0.9.8 and idf-v5.0-support (using esp-idf v5.0) Inkplate flashes black and then presents an empty screen. No text is displayed and apart the warning about waveform not being loaded, there are no errors in the monitor.

I haven't noticed this issue before, because I've been so far using only 3bit color mode. Suprised noone has reported it yet.

turgu1 commented 1 year ago

The EPub-Inkplate still uses version 0.9.6 (No time available to update and test with v0.9.8 yet).

The problem must certainly be related to the added NVS waveform support...

tajnymag commented 1 year ago

How does waveform with id=20 differ from other waveforms? Why is it such a specific edge case?

tajnymag commented 1 year ago

@turgu1?

tajnymag commented 1 year ago

Minimal testable example:

1 Bit Mode - doesn't work (panel stays clear)

#include "inkplate.hpp"

Inkplate inkplate(DisplayMode::INKPLATE_1BIT);

extern "C" void app_main() {
    inkplate.begin();
    inkplate.clearDisplay();
    inkplate.fillCircle(100, 100, 50, BLACK);
    inkplate.display();
}

3 Bit Mode - works (a small black circle appears in the top left corner)

#include "inkplate.hpp"

Inkplate inkplate(DisplayMode::INKPLATE_3BIT);

extern "C" void app_main() {
    inkplate.begin();
    inkplate.clearDisplay();
    inkplate.fillCircle(100, 100, 50, BLACK);
    inkplate.display();
}