tag:blogger.com,1999:blog-401164737462963207.post2287140971625761519..comments2024-03-28T00:14:10.834-07:00Comments on Ben Krasnow: Fast partial refresh on 4.2" E-paper display from Waveshare / Good DisplayBen Krasnowhttp://www.blogger.com/profile/04234629396863486242noreply@blogger.comBlogger62125tag:blogger.com,1999:blog-401164737462963207.post-8576307266879322532024-01-06T19:11:36.235-08:002024-01-06T19:11:36.235-08:00For those who come looking, here is an archive lin...For those who come looking, here is an archive link for the e-paper theory.<br /><br />https://web.archive.org/web/20171118172235/http://www.multicomponent.se:80/sub_group_files/13dae3f428be3929dc13fed1f79c5e40.pdfScience Kylehttps://www.blogger.com/profile/16353012034111682173noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-67381659782601939692023-09-18T15:03:17.877-07:002023-09-18T15:03:17.877-07:00I'm using an esp32 s3.I'm using an esp32 s3. anonhttps://www.blogger.com/profile/14870961312313748579noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-25595215933502743512023-09-18T14:58:37.146-07:002023-09-18T14:58:37.146-07:00I'm trying to use this on a 1.54 inch RBW e in...I'm trying to use this on a 1.54 inch RBW e ink but can't seem to get it to work. Anyone have any advice? anonhttps://www.blogger.com/profile/14870961312313748579noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-29170061780525403032022-03-04T07:45:04.594-08:002022-03-04T07:45:04.594-08:00In the epdif.cpp you use (in function SPI) 'di...In the epdif.cpp you use (in function SPI) 'digitalWriteFast(CS_PIN, LOW);' and 'digitalWriteFast(CS_PIN, HIGH);'<br />Didn't make that much difference with a standard digitalWrite.<br /><br />Other than that: thanks for the upgrade of the epd4in2 !Gijshttps://www.blogger.com/profile/15371825704610112735noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-24353368960986138482021-11-11T06:02:05.709-08:002021-11-11T06:02:05.709-08:00I've written my own eink library to my 4.2&quo...I've written my own eink library to my 4.2" waveshare display and it works great but using the slow luts from their sample code just wasn't cutting it for what I want to do but I added your quick luts to my code and they work perfectly. At any time I can call either lut initialization to either do a full refresh or a quick update. Makes GUIs much snappier, but allows nice clean updates when necessary. Thank you for sharing your example code and all you do for the science/research communities.sjm4306https://www.blogger.com/profile/03706778154317460033noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-43568483824735461382021-09-24T19:55:17.519-07:002021-09-24T19:55:17.519-07:00Hi greffeb... Sorry for the late reply (gmail &quo...Hi greffeb... Sorry for the late reply (gmail "social networks" tab... something something).<br /><br />My LUTs or rather the way I tinker with them are/is available in an "issue" message of the U8glib's github.<br /><br />Here's a link to it : https://github.com/olikraus/u8g2/issues/1393#issuecomment-853008069JLAhttps://www.blogger.com/profile/16647707678336633858noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-89253006834981137242021-06-23T02:28:53.122-07:002021-06-23T02:28:53.122-07:00Thank you so much for sharing, i could use your cu...Thank you so much for sharing, i could use your custom LUT on a Waveshare 7in5 display [the controller is the ultra chip UC8179]. <br /><br />The Waveshare provided demo code and library does not support LUT. <br />I had to create some new functions to write LUT to the controller at the right address and enable the use of LUT instead of ROM.<br /><br />It works perfectly. It has some ghosting but i's normal since the screen does not flicker. I nedded to remove the ugly flicker between each frame refresh for a demo prototype. greffebhttps://www.blogger.com/profile/04621347378103633443noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-4349858928259303992021-01-26T19:11:57.200-08:002021-01-26T19:11:57.200-08:00Okay, so, as promised, here are the results of my ...Okay, so, as promised, here are the results of my research (WIP)<br /><br />First : forget about the UC8151D datasheet provided by Good-Display, as it's incomplete (the 861KB one I could only found on the web is anyway).<br />One should use the GDEH029Z13 datasheet instead, as most of the opCode are described there.<br /><br />Good-Displays 2.9" tri-color EPD (the GDEH029Z13 I'm "murdering" in this case) uses the UC8151D, mind the rev. D , which has some peculiar LUTs :<br /><br />Each one of LUTC(vcom), LUTB, LUTW and LUTR are 60 bytes (6 bytes x10 phases), <br /> ¤ 10 groups usable in color mode (PSR[4]:KW/R bit off). <br /> ¤ 6 groups only used in B&W mode (PSR[4]:KW/R bit on).<br /> ¤ Every one of them takes a different name (offsets unchanged) depending on the color mode, for the sole purpose of understanting their roles. LUTR is LUTB2W, LUTW is LUTW2B and LUTB is LUTB2B.<br /><br />The LUTWW is a bit peculiar : <br /> ¤ 6 groups only<br /> % It is never used in color mode, only in B&W when KW/R=1 !<br /><br />Now more about the LUTOPT opcode : I mentioned LUTC is 60 bytes...as it doesn't offer the last 2 ST_XON/ST_CHV flags registers at its end, like on the UC8151c. Those two register are here set as parameters of the LUTOPT command, plus some cryptic "dummy" and "extra" group state flags, that could (imho) silence some groups in the LUTs for timing purposes. <br /><br />To be continued. <br />JLAhttps://www.blogger.com/profile/16647707678336633858noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-90222262452570736052021-01-21T19:29:15.201-08:002021-01-21T19:29:15.201-08:00PS : Somehow, I can't tell if the structure of...PS : Somehow, I can't tell if the structure of those LUT are differente on BW and BWR/Y models and there's only 4 'color permutation' LUTs, or if there are some undocumented opcode, as I said... grrr. JLAhttps://www.blogger.com/profile/16647707678336633858noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-55600615859253847602021-01-21T18:57:07.001-08:002021-01-21T18:57:07.001-08:00Strangely enough (or not) those display's cont...Strangely enough (or not) those display's controller ICs, EK79652 or EK79651AB have similar opCodes (both function and offset matching) to those found in the UC8151 powering 2.9" ePaper BWR/Y displays. Did you make any progress on the matter ? I'd bet there are some undocumented opcodes in the [0x25 to 0x2F] range.JLAhttps://www.blogger.com/profile/16647707678336633858noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-46443160583055675052021-01-21T18:41:52.170-08:002021-01-21T18:41:52.170-08:00erratum : "Quick question: has anyone ever te...erratum : "Quick question: has anyone ever tested..."<br />( something about not proofreading when typing in another language... sorry )JLAhttps://www.blogger.com/profile/16647707678336633858noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-51871806047155127072021-01-21T18:38:50.328-08:002021-01-21T18:38:50.328-08:00Excellent article and video indeed (as expected of...Excellent article and video indeed (as expected of Mr Ben) ! <br />(I jump on the occasion to express my solicitude regarding the recent burglary of your lab).<br /><br />This very video sprung my need for tinkering again !<br /><br />On the topic of EPDs, I'm on the verge of investigating the possible existence of undocumented opCodes for loading register LUTs, more precisely in the range [0x25..0x2F], since I wager there must be 9 LUTs in total, controlling RED/YELLOW repeatable (W2W,B2B,R2R) permutations (W2B, B2R...) on trichromic displays.<br /><br />So far, I've put my hand on two datasheets of two UC8151x revisions, namely UC8151C and UC8151D, both complementing each other (same opcodes and register flags, some opcodes missing or only present on one document only).<br /><br />If anyone has some idea on this very matter, please do ping me. ;-)<br /><br />Quick question: does anyone ever tested an OTP dump of these displays ( opCode 0xA2, "Read OTP") ? I cannot do so for now, since the 2.9" modules I own only offer a MOSI pin, no MISO.<br /><br />I'll be starting testing this theory on monday (hopefully not polarizing my test displays in the process while shooting in the dark, since my these modules do not have any MISO pin... hurgh. )<br />JLAhttps://www.blogger.com/profile/16647707678336633858noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-1442937142795985592020-05-10T13:25:48.062-07:002020-05-10T13:25:48.062-07:00Hello Ben,
Great video. I'm in the process o...Hello Ben,<br /> Great video. I'm in the process of porting your driver to the Meadow board (C# .NET iOT device). Once I get it working would you or anyone else on here be interested in it? Ideally I'd like to get it included into the Meadow.Foundation library, possibly togglable, so that it ships with a future update and devs can have the choice of they want the quick updates or not. <br /><br />Keep up the great work!!TheDomLouishttps://www.blogger.com/profile/04814008095118487640noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-20695247278015434692019-10-12T05:23:30.478-07:002019-10-12T05:23:30.478-07:00Many thanks for this excellent video!!! Many thanks for this excellent video!!! Anonymoushttps://www.blogger.com/profile/08925608885674349063noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-31639538161028156532019-08-27T04:41:10.121-07:002019-08-27T04:41:10.121-07:00Hello Ben Krasnow,
I also have a problem with the...Hello Ben Krasnow,<br /><br />I also have a problem with the partial update on epaper.<br />Your proposed LUT tables for fast refresh work well with my tested Waveshare epaper 4.2", but no longer work with Good Display epaper 4.2" that I have just bought (partial update is very blurred). Maybe, the manufacturer has changed something in its latest version.<br />I have tried the fast refresh LUT tables in Good Display sample code. The partial update is clearer and better but there are always the shadows of the previous images.<br />So, I need to understand the meaning of the parameters in order to choose the desired configuration. Could you explain each parameter that you have selected for the first line of each LUT table.<br /><br />Thank you in advance.Anonymoushttps://www.blogger.com/profile/11727615054257287571noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-62276031638534281222019-07-17T00:20:01.191-07:002019-07-17T00:20:01.191-07:00Hello Ben,
I have technical problem on a partial ...Hello Ben,<br /><br />I have technical problem on a partial update on epaper (display become grey and partial update like blurred even at the first update).<br />I already discuss with JM Zingg who make the GxEPD2 library.<br />We think it is a change in ink sand it would be very nice to get your support. You could contact me with e.fiancette at gmail.com<br />I will send ou some pictures. Regardsmanuhttps://www.blogger.com/profile/04208523015967005996noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-71919917469950469102019-06-30T12:19:41.256-07:002019-06-30T12:19:41.256-07:00Great video, article and explanation!!!
excellent ...Great video, article and explanation!!!<br />excellent work.<br />Does this work only with the 4.2 in display.<br />Did anyone try it with 7.5"?<br />I downloaded the epd7in5.cpp but it looks complete differentChristophhttps://www.blogger.com/profile/17245009186872936969noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-72910306903130959782019-01-30T04:47:28.096-08:002019-01-30T04:47:28.096-08:00HI Ben,
Great article. I am really new to this pro...HI Ben,<br />Great article. I am really new to this programming up Arduino and other items. I am developing a logging system and we have the waveshare 4.2 and 2.7 black and white e paper displays. I have downloaded the software. I have the teensey 3.2 and I am unsure how you load up the hex files as I keep getting errors. Is the a quick guide to making this work. Also does the hex file save to the screen and make it update like that when using a different controller. <br /><br />Thanks <br /><br />StuartAnonymoushttps://www.blogger.com/profile/12112333015749730029noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-76036952565536189912019-01-22T15:49:03.898-08:002019-01-22T15:49:03.898-08:00OK, All sorted. Not a Waveshare problem.
But due t...OK, All sorted. Not a Waveshare problem.<br />But due to length of loop to refresh display, the TTYUSB0 buffer was filling up and when I came to read it I was reading GPS messages fromn the oldest part of the buffer, this made my readings up to 3 minutes old!! So I didn't recognise them as current speed. Now sorted by clearing buffer at beginning of loop and the n reading GPS data that is just entering. (Cannot do this with GPSD as a normal buffer clear does not clear GPSD data)<br /><br />cheers<br /><br />Petermr5khttps://www.blogger.com/profile/08176819310614135450noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-44049330746609313042019-01-15T09:58:38.526-08:002019-01-15T09:58:38.526-08:00Hi Ben, I downloaded the code for epaper 4.2 and a...Hi Ben, I downloaded the code for epaper 4.2 and arduino. If I want to translate the program there are many errors. I use Arduino 1.8.7 and the STM32 board. Can you help me? Thank you in advance. JiriJirihttps://www.blogger.com/profile/17545778841047678537noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-55263037627451851252019-01-10T09:28:01.543-08:002019-01-10T09:28:01.543-08:00Sean & Mike
Am still having problems with GPS,...Sean & Mike<br />Am still having problems with GPS, both GPSD and just reading serial NMEA strings via a USB GPS. Am beginning to think that maybe the Waveshare "firmware" is somehow afffecting the TTY USB0 pi interface. ( The GPS via USB works fine on an android)<br />Currently abandoning this route and will try a bluetooth GPS with waveshare on a pi zero w, using bluetooth interface.<br /><br />Please let me know if you still have any interest in my project, if not I will stop posting here.<br /><br /><br />cheers<br /><br />Petermr5khttps://www.blogger.com/profile/08176819310614135450noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-15328619601375213802019-01-08T07:01:15.620-08:002019-01-08T07:01:15.620-08:00Regarding sharnig the files: you could upload the ...Regarding sharnig the files: you could upload the zip with files to your google drive (the one, that Google makes available to you with gmail.com account) and publish here the view-only access link to this zip. <br />You can also remove the file and/or the link later on should you wish so.Piotrhttps://www.blogger.com/profile/17411850364240163638noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-55533114849041018422019-01-08T06:51:23.679-08:002019-01-08T06:51:23.679-08:00+1 :)
I am currently playing with 2.7" black...+1 :)<br /><br />I am currently playing with 2.7" black-red-white e-display attached to Raspberry Pi Zero W and using Python. I am looking for a way to enable partial display for my hobby project and would also be happy to look into your approach. I was planning to port Ben's Arduino/CPP code to Raspberry/Python, but run into basic problems: I don't know the LUT structure and unmodified LUTs from my 2.7" display driver are different from Ben's unmodified LUTs. Any hint?Piotrhttps://www.blogger.com/profile/17411850364240163638noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-66084172658417275112019-01-07T07:48:51.060-08:002019-01-07T07:48:51.060-08:00Sean & Mike
OK, I have now established that th...Sean & Mike<br />OK, I have now established that the GPS speed issue is not me but an anomoly in GPSD. All is OK if I start the pi manually then run my GPS Speedo, however if I autostart my GPS speedo program at boot GPSD does not fully startup and causes all sorts of errors.<br />Looking through variuos threads I hope to have an "autostart" solution soon.<br /><br />cheers<br /><br />Petermr5khttps://www.blogger.com/profile/08176819310614135450noreply@blogger.comtag:blogger.com,1999:blog-401164737462963207.post-39143724169498065362018-12-30T15:04:06.582-08:002018-12-30T15:04:06.582-08:00Sean & Mike,
The GPS-Speedo5 program seems to...Sean & Mike,<br /><br />The GPS-Speedo5 program seems to be a bit messed up.<br />While the Waveshare part is fine, my attempt to read speed from the GPSD part fails. I tested statically and got low random speeds that I assumed were just the GPS uncertainty. however having now tested it on the move I get nonsensical results. Wil look again at ther code and/or my GPS module to see wherre I have screwed up !!!<br /><br />cheers<br /><br />Petermr5khttps://www.blogger.com/profile/08176819310614135450noreply@blogger.com