pysco68 / waveshare-hid Goto Github PK
View Code? Open in Web Editor NEWAn open source firmware for the Waveshare 7 inch capacitive touch display
License: GNU General Public License v3.0
An open source firmware for the Waveshare 7 inch capacitive touch display
License: GNU General Public License v3.0
From and IoT Core Team member: Do I have correct understanding that your firmware does not send HID report for finger up event, only for finger down case ?
As I understand HID touch specification, each change of state must send a report.
I.e. the logic is as below
// byte[1] = state
If finger was up and now is down then
bState=FINGER_DOWN; // 1
Else if finger was down and is down then
bState=FINGER_DOWN_MOVED; // 3
Else
bState=FINGER_UP; // 0
Do you agree ?
Hi thank for your program, I have buy a 5 inch Resistive touchscreen at waveshare
But the 5 inch also have the same problem as the 7inch captive LCD
http://www.waveshare.com/product/modules/oleds-lcds/raspberry-pi-lcd/5inch-hdmi-lcd-b.htm
I think the 5 inch HDMI LCD (B) have the Similar principles with 7 inch captive LCD
But the 5 inch use stm32 connecting with xtp2046 Not like captive LCD using I2C
Can you give a program about 5 inch HDMI LCD (B) for win10??
Hey,
I tried to get this running on my display, but I'm seeing a little problem...
My display seems to be identical to yours but has an original STM32 controller instead of the GD32 controller, I replaced everything that seemed to be controller-specific and I got the code to run, but it seems to hang at the following piece of code:
/* Waiting for address is transferred. */
while (!(I2C_SR1(I2C2) & I2C_SR1_ADDR));
If I disable the gt811 code completely I'm seeing a usb device, so it seems to be running fine except for I2C communication.
After attaching a logic analyzer I can see that it transfers the first I2C packet but stops afterwards, SDA and SCL never seem to change state again, clearing flags and removing the while loop doesn't seem to work either, at the next transmit it just hangs.
I don't have much hope, but do you by any chance have an idea of what may be going wrong? I tried searching for this problem online but I didn't really find much useful information...
Waveshare LCD(C)- which has a 1024x600 LCD- works fine with current firmware. All touch events were registered in proper places.
Tested:
-RPi 2: Raspbian, OpenElec
-PC: Windows 10 x64, WIndows 7 x86, Debian Stretch
Touchscreen hardware seems not suited for using higher resolution. After modifying resolution from 800x480 to 1024x600 (for both touch IC initialization and USB descriptor):
-hardware starts and is properly enumerated on the host side
-Y-axis: physical touch on the bottom of the touchscreen is registered by all systems as a touch on the top of the screen, most visible when sliding the touch down
-X-axis- seems to work fine but I didn't test it as much as Y-axis
Once more thank you for your work
NOTE: Issue submitted by @mastertychy on issue no. 1 / moved here as separate topic
Hello,
I'm glad that someone makes its working with Windows10!
Unfortunatelly i'm not as smart to get rid with compiling whole firmware... i'm just beginner with stm32.
I'm using eclipse on windows and have StLink for programming/debugging.
Can you make and publish /send me already compiled file please (.elf file)?
In the time i'll try to make it compiles in linux cause it's too messy for beginner to edit compiler scripts ;)
Windows10IoT ver.14393.576; Rasberry Pi3; 7inch HDMI LCD (C) 1024x600.
On the screen placed 6 buttons. If you press and hold the center button for example, it leads to a chaotic flickering of all the buttons.
Sometimes the triggering events are “Tapped” buttons which are located nearby.
The effect is amplified if you increase the area of contact, such as tapping with two fingers.
Hi,
Great work in reverse-engineering the driver!
To allow retrofitting the screen behind a 2mm-thick plastic protection, would it be possible to modify the threshold or gain of the capacitive sensing so that touch sensing works?
In gt811.c there may be hints in the GT811 configuration setup:
// [53] The screen key threshold
0x50,
// [54] Screen loose threshold
0x30,
Has anybody ever tried changing these values?
Best regards,
Christian
Does your program work at WIN7/WIN8 ?
hello, I am trying your firmare BUT how can I get arm-none-eabi-gcc (15:4.9.3+svn231177-1) ?
Do I need to change anything to build for STM32 instead of GD32?
If im touch to screen on power on time, i get descriptor failure in OS and i need to reconnect display to USB (or reset controller )onesmore.
Im simulate this trouble on gdb session, connect display to standalone power source and start gdb
GNU gdb (7.10-1ubuntu3+9) 7.10
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-linux-gnu --target=arm-none-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from main.elf...done.
(gdb) target extended-remote /dev/ttyACM0
Remote debugging using /dev/ttyACM0
(gdb) monitor swdp_scan
Target voltage: unknown
Available Targets:
No. Att Driver
1 STM32F1 medium density
(gdb) att 1
Attaching to program: /home/madmax/stm32/waveshare-hid/src/main.elf, Remote target
0x08001bbe in st_usbfs_poll (dev=0x20000180 <st_usbfs_dev>) at ../common/st_usbfs_core.c:258
258 if (istr & USB_ISTR_WKUP) {
(gdb) load
Loading section .text, size 0x1dc8 lma 0x8000000
Loading section .data, size 0x80 lma 0x8001dc8
Start address 0x80015a4, load size 7752
Transfer rate: 7 KB/sec, 861 bytes/write.
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/madmax/stm32/waveshare-hid/src/main.elf
Program received signal SIGSEGV, Segmentation fault.
0x08001562 in st_usbfs_copy_to_pm (vPM=, buf=, len=5, len@entry=11) at ../st_usbfs_v1.c:61
61 for (len = (len + 1) >> 1; len; len--) {
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/madmax/stm32/waveshare-hid/src/main.elf
In this time im touch to screen one time and wuola.... Segmentation fault.
Program received signal SIGSEGV, Segmentation fault.
0x08001562 in st_usbfs_copy_to_pm (vPM=, buf=, len=5, len@entry=11) at ../st_usbfs_v1.c:61
61 for (len = (len + 1) >> 1; len; len--) {
(gdb)
In active USB coonection case touch screen work nice.
hi
in this step
target extended-remote /dev/ttyACM1
error is: the device disconnected
can you help me to solve that ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.