Avatar for Zak

Zak

Member since Aug 2017 • Last active Mar 2019
  • 1 conversations
  • 3 comments

Most recent activity

    • 8 comments
    • 429 views
  • in ESP32
    Avatar for Zak

    @allObjects, now it's all set up. I thought that maybe there are some special bot modules to test code on them :)

    ergo design goes from very bad to worse

    the best phrase describing this disrespect of the customer :)

    @Gordon, thank you! I'm familiar to git so i think i'll be capable to do a fork and a merge request. Sorry for being that slow — i hope everything would be done by this weekend.
    Am i not supposed to do the minified version?

  • in ESP32
    Avatar for Zak

    @allObjects,

    I was so excited with the final success i forgot about everything i studied about writing and submitting changes community rules) When i have time to do it the most proper way i will surely make a merge request.

    And could you please provide some reference on those bot modules? I'm afraid i've never came across any.

    Thank you!

  • in ESP32
    Avatar for Zak

    For those people who might be struggling connecting an MH-ET LIVE 1.54" e-paper display (aka GDEP015OC1) i'd like to share some information on how to use it with ESP32 Dev Kit board. Hope it will help someone and save them time that i lost)

    I started out with an lifesaving library for e-paper by @MichaelPralow, thank you very much for your work. Module usage described here.
    It was rather easy to figure out the right way to connect the module to the board:

    DISPLAY    |    ESP32
    —————————————————————
    VCC        |    3.3V
    GND        |    GND
    SDI        |    D23
    SCLK       |    D18
    CS         |    D5
    D/C        |    D22
    Reset      |    D21
    Busy       |    D15
    

    Make sure the Interface switch on the back side of the module is set to «L».

    After that i started digging info about LUT data, Addresses of X and Y start and end, and that was a pain. Maybe i missed something, but i spent hours trying to implement data i found in a specification doc for GDEP015OC1.

    To cut the story short finally i stumbled upon a Cpp library (link), and here are the magicalal numbers:

    var spi = new SPI();
    spi.setup({ sck:D18, mosi:D23 });
    display = require('SSD1606.min').connect({
          display: {
            bpp : 1,
            displaySizeX      : 200,
            displaySizeY      : 200,
            lutRegisterData   : new Uint8Array([0x10, 0x18, 0x18, 0x08, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x14, 0x44, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), // PARTIAL update lutRegisterData, covered further
            maxScreenBytes    : 5000, // this
            ramXStartAddress  : 0x00, // this
            ramXEndAddress    : 0x18, // this
            ramYStartAddress  : 0xC7, // this
            ramYEndAddress    : 0x00 // and this
          },
          spi        : spi,
          cs1Pin     : D5,
          dcPin      : D22,
          resetPin   : D21,
          busyPin    : D15,
          powerPin   : D4 
    });
    

    That is. This code worked for me after 5 long evenings i spent switching tens of browser tabs gathering the info instead of working on my project)
    Here's what i've got now:

    Now a few words about partial update: the GDEP015OC1 is able to partially update data on the screen. The above value of lutRegisterData property enables this ability. There's also another array of values that makes it reload the whole screen, here it is:

    0x50, 0xAA, 0x55, 0xAA, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    

    lutRegisterData is used once in an init method of the module and also i don't need to update screen fully, so i'll just leave it here in case someone needs it.

    And one more: i saw definition of a preset for GDE021A1 model in module's code and wanted to ask if it is possible to update the SSD1606 module's code with the preset for GDEP015OC1 to make it more flexible? If so, what am i required to do for that? Thank you.

Actions