Customer:
I’m having two problems with my Inkplate. The first is that some of the touchpads report being active all the time, even when running the example touchpad code. I tried cleaning the touch pads but it had no effect. Sometimes turning the Inkplate off for a while and then turning it on later will work, but then after a matter of time the touchpads start sending phantom touches. This happens whether the Inkplate is in the official case or bare with nothing near it.
The other issue is with the display. I tried the suggestion to change the waveform and it did appear to help for a bit, but now the problem is much worse without any code changes. Whenever my Inkplate goes to sleep or if time passes, I get vertical white lines through whatever is on the display. I even tried reverting the vcom voltage but that had no effect. Is there any way to resolve this?
Attachment omitted in migration: Screen Shot 2022-01-03 at 1.42.03 PM.png
Originally submitted via the contact form on soldered.com on 3 January 2022. Migrated to the forum for community visibility.
Soldered Support:
I will test the touchpads to find what can be the problem. Sometimes with an enclosure touchpads can give wrong reads, but that is not too often and it is hard to use touchpads through plastic cases.
Does the second issue happen only after you change VCOM and use light mode? Also, are you trying to not use sleep and then check what happens? We will look at the code and test it again to find what can be the problem. If we find something I will tell you.
Customer:
For the touchpads, even when running Inkplate_Touchpads in the 3D printed case, no case, or anything else, display.readTouchpad() will return true ALL the time in every iteration of the loop, even if the Inkplate is rebooted or not touched at all. I connected a probe to the signal of the TTP22E-BA6 touch pad controllers and they are sending a high touch signal all the time. Repowering them sometimes stops the false touches for a while, but they always come back.
For the display problems, I tried reverting back to the default voltage and waveform but still have the issue. It occurs both before and after sleeping, but happens most often right as the ESP enters sleep mode. The screen glitches before the ESP wakes up, then I press the wake button, it downloads and displays a new image, and then once it goes back to sleep the screen glitches again. Have you ever seen this before?
Soldered Support:
Can you try to use an older version of the Inkplate library (before v5.5.0 when we added an update for lighter mode) to find if this problem is with the software or with your panel? For touchpads, we will look at the library to find if something that we updated breaks touchpads. After we test touchpads I will write to you.
Customer:
I think I discovered part of the reason for the panel fading. In my code, after updating the image on the panel, I read the temp sensor and send the value over MQTT. If I remove the temperature read after updating the panel then the fade issues go away. I’m not entirely sure of the reason for this behavior, but without reading the temperature the panel works perfectly. If I read the temperature sometimes it has the fade issue sometimes. If I read the temperature 5 times in a loop it will cause the fading issue almost every time. This leads me to suspect it might be a race condition somewhere, as reading the temperature more often drastically increases the chances of this happening.
I also noticed occasionally the i2c Wire library will print i2c debug messages about SDA and SCL being in a bad state. This also usually happens around when I read the temp, but sometimes other times as well. It’s like the i2c line gets into an unstable state sometimes that might be causing these and other possible issues. Does the Inkplate library ever create its own threads/tasks that might read/write to i2c? In my code I use FreeRTOS to have multiple tasks, but every call into the display API is protected by a mutex. I’ll be open sourcing my code soon, which contains a minimal OS I made for the Inkplate that supports many features including minimal partial updates for 3 bit grayscale. If you are interested let me know and I’ll share a link when it’s uploaded.
Soldered Support:
Are you using an external sensor for temperature or reading it from the Inkplate built-in sensor using the Inkplate library? We will look at the function for reading temperature because if you use it you must turn on the e-paper power supply and that can cause problems with the picture on the e-paper.
That sounds good. If you can please send a link to your code. We are interested to see your code, maybe there is something that makes problems with pictures. If we find something that is unusual in the code we will let you know and you can make improvements.