Most recent activity
-
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!
-
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 aninit
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.
@allObjects, now it's all set up. I thought that maybe there are some special bot modules to test code on them :)
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?