Hello,
i can confirm that touch is now working with firmware 1.9.2 in battery mode. Thanks @all for the help.
Hello,
i can confirm that touch is now working with firmware 1.9.2 in battery mode. Thanks @all for the help.
Hello,
i can confirm that touch is now working with firmware 1.9.2 in battery mode. Thanks @all for the help.
Hello,
on my M5Touch the touch screen is only working when powered on with USB power connected when i am using the UIFlow firmware. With other programs like Factory Test the touch is also working on battery power.
Problem is discussed in this thread: M5Paper / Touch only working on USB power
Thanks to the findings of @kinako and @felmue it seems that the I2C address of the GT911 touch controller is 0x5D or 0x14 depending if INT signal is high or low during initialisation. INT ist connected to GPIO36 wich is input only.
I can confirm that GT911 is using 0x14 when powered on via battery and 0x5D when powered on with USB connected.
The M5EPD library checks for both addresses:
Wire.beginTransmission(0x14);
if (Wire.endTransmission())
{
Wire.beginTransmission(0x5D);
if (Wire.endTransmission())
{
log_e("Touch screen IIC connection error");
return ESP_FAIL;
}
_iic_addr = 0x5D;
}
It seems that the M5 UIFlow firmware is only initialising the 0x5D address.
Hello @joefly,
regarding the your touch problem i think it is the same issue that we found here. About the blank screen on powerup: Do you have a "set screen show" block at the end of your Setup block? The screen is only shown/updated with "Set screen show" also after powerup.
wow, your findings sound promising. I can confirm with i2c.scan() on my device that i2c addresses on battery are integers [20, 68, 80, 81] and on USB [68, 80, 81, 93] so the (int)20 switches to (int)93 what is exactly the mentioned HEX addresses 0x14 and 0x5D.
I used following UIFlow Python code and watched output on COM Monitor:
from m5stack import *
from m5ui import *
from uiflow import *
from machine import Pin, I2C
while True:
i2c = I2C(scl=Pin(22), sda=Pin(21), freq=400000)
print(i2c.scan())
wait_ms(500)
Any idea what is the best way to create a bug report about this?
Hello,
battery voltage is ~4.7V when on battery. No matter what i do, it is impossible for me to get touch working when on battery und using UIFlow.
I tried to use Arduino IDE and compiled the Touch example from GitHub m5stack/M5EPD.
Nothing is displayed on display (another problem?)
But if i start the M5Paper on battery and connect USB afterwards to PC i can see the serial.printf in COM monitor. Touch is detected correctly.
If i try the same with UIFlow (put "print get touch coordinates" in the loop), "status" in COM monitor is always false and coordinates are 0,0.
Any other ideas?
Thanks
Sven
Hello @felmue,
thanks for your reply. Yes, i charged the device for about 12h via USB power adapter. As i mentioned other programs like Calculator or Factory Test work without any problem.
Also MQTT is transmitted in the loop and the screen refreshes constantly if I put a "Set screen show" in the loop.
I will try to put a batterty voltage label on screen when i am home to check the battery.
When i start/reset the device with USB power attached, then remove the USB, the program works until i power down the M5Paper with the button on the back. After Powerup with center-button no touch is recognized anymore.
Thanks
Sven
Hello,
i am trying to create a home automation with M5Paper and M5Flow. I flashed the UIFlow 1.9.0 to the device, but somehow the touch is only working when on USB-power.
To reproduce the problem i wrote a very easy flow:
I burned the program via "Download" to the M5Paper.
Behaviour an USB-power:
-Reset the device via button on the back
-UIFlow boot logo appears
-Program is working as intended (circle set to touch coordinates on touch with screen refresh afterwards)
Behaviour on battery-power:
-Power down device via button on the back
-Power on device via 2sec center button push
-UIFlow boot logo appears
-No circle is shown on touch
I tried to check if system is running by adding some MQTT in the loop and a label with "get touch coordinates" that is refreshed with every loop iteration. Loop is definitely working but touch status is always false.
I don't think it is a hardware problem because other programs like "Calculator" or "Factory Test" from M5Burner work also on battery power.
Any idea what i am doing wrong?