OLED display with GT911 touch controller (gesture mode) how to use it - Page 1
Forum section: electronics / general

author: up8051
author_rank: Frequent Contributor
timestamp: January 03, 2021, 11:01:50 pm
content: I have such Winstar OLED display (mono128x64, LCD controller SSD1309, touch controller GT911):https://www.unisystem.pl/pl/fileuploader/download/download/?d=0&file=custom%2Fupload%2Ffile%2Faa65d2679d76dfce271e3351cd8bd295%2FWEO012864GLPP3D00000.pdfDisplay is connected to ATMEGA4809 by SPI and I2CI can disply any data and use GT911 controller for recognize simple touch and relase.GT911 controller has the ability to recognize gestures but I can't use it.After sending command 08-switch to gesture mode (write to register 0x8046 and 0x8040) the panel does not react to any touch.Data sheet for GT911 is very unclear about configure register related to gesture.I tried to analyze Linux/Android driver but witout succes.Has anyone used GT911 controller and knows how to use gesture mode?

author: darkspr1te
author_rank: Frequent Contributor
timestamp: January 12, 2021, 08:32:22 am
content: While i've not used this controller myself , I have seen a lot of it's code in the kernel,Have a look at this file for some examples of gesture setuphttps://github.com/shreshthtuli/Goodix-Gt9xx-driver/blob/master/gt9xx_android_driver_v2.8.0.2_20171214(1)/gt9xx_android_driver_v2.8.0.2_20171214/gt9xx_v2.8.0.2/gt9xx.cand then there is also this file which has some pre-set configs you can fire at the i2c and it will setup the device.https://github.com/DiveInEmbedded/GT911-Touch-driver/blob/main/Core/Src/GT911.cgood luckdarkspr1te

author: vasilius
author_rank: Newbie
timestamp: July 06, 2025, 03:29:25 pm
content: Did you solve this problem?

author: vasilius
author_rank: Newbie
timestamp: July 06, 2025, 03:37:22 pm
content: I send 8 to register 0x8046 and 0x8040. After this the touch is stopping react to touches or gestures. On INT line short impulses 42ns with perion 40msec.

author: darkspr1te
author_rank: Frequent Contributor
timestamp: July 08, 2025, 12:47:48 pm
content: Quoteyou will note from the above sample code that the two bytes of data sent the first is sent with first byte shifted right by 8 bits(>> 8 ) ,did you do that ?

author: vasilius
author_rank: Newbie
timestamp: July 08, 2025, 03:26:05 pm
content: hm adress is 0x8046so first byte will be 0x80 - this is 0x8046 >> 8second (uint8_t) 0x8046 = 0x46and third is 0x8this is standard i2c arrayi am send it correctly - bcs logging with hardware logger and reading this value correctlyIn the normal mode touch working perfectly. So no problem with i2c transport!

author: up8051
author_rank: Frequent Contributor
timestamp: July 08, 2025, 05:09:20 pm
content: Quote from: vasilius on July 06, 2025, 03:29:25 pmThe manufacturer of my display replied that the firmware version in this display does not support gestures.The project has not been completed

author: vasilius
author_rank: Newbie
timestamp: July 08, 2025, 05:28:32 pm
content: OMG... even that possible...

author: darkspr1te
author_rank: Frequent Contributor
timestamp: July 08, 2025, 08:12:06 pm
content: sorry, i need to clarify some stuff,first have you got the TS into normal mode, woke up and providing INT,when in sleep is the required power to the ts still there?what are the pull up down setting for that gpio while in sleep ?darkspr1te

author: darkspr1te
author_rank: Frequent Contributor
timestamp: July 08, 2025, 08:34:19 pm
content: i have a really old gt911(al gt611) from a tractor from china, for tap/strip wake up send this firstQuote

author: vasilius
author_rank: Newbie
timestamp: July 09, 2025, 09:01:37 pm
content: my gt911Code:00008047 = 5000008048 = 0000008049 = 040000804A = 580000804B = 020000804C = 050000804D = 0D0000804E = 000000804F = 0100008050 = 0A00008051 = 2800008052 = 0F00008053 = 5000008054 = 3200008055 = 0300008056 = 0500008057 = 0000008058 = 0000008059 = 000000805A = 000000805B = 000000805C = 000000805D = 080000805E = 170000805F = 1900008060 = 1C00008061 = 1400008062 = 8700008063 = 2900008064 = 0A00008065 = 4E00008066 = 5000008067 = EB00008068 = 0400008069 = 000000806A = 000000806B = 000000806C = 000000806D = 020000806E = 110000806F = 0000008070 = 0100008071 = 0000008072 = 0000008073 = 0000008074 = 0000008075 = 0000008076 = 0000008077 = 0000008078 = 0000008079 = 000000807A = 460000807B = 640000807C = 940000807D = C50000807E = 020000807F = 0700008080 = 0000008081 = 0000008082 = 0400008083 = 9E00008084 = 4800008085 = 0000008086 = 8D00008087 = 4D00008088 = 0000008089 = 7F0000808A = 530000808B = 000000808C = 730000808D = 590000808E = 000000808F = 6700008090 = 6000008091 = 0000008092 = 6700008093 = 0000008094 = 0000008095 = 0000008096 = 0000008097 = 0000008098 = 0000008099 = 000000809A = 000000809B = 000000809C = 000000809D = 000000809E = 000000809F = 00000080A0 = 00000080A1 = 00000080A2 = 00000080A3 = 00000080A4 = 00000080A5 = 00000080A6 = 00000080A7 = 00000080A8 = 00000080A9 = 00000080AA = 00000080AB = 00000080AC = 00000080AD = 00000080AE = 00000080AF = 00000080B0 = 00000080B1 = 00000080B2 = 00000080B3 = 00000080B4 = 00000080B5 = 00000080B6 = 00000080B7 = 02000080B8 = 04000080B9 = 06000080BA = 08000080BB = 0A000080BC = 0C000080BD = 0E000080BE = 10000080BF = 12000080C0 = 14000080C1 = FF000080C2 = FF000080C3 = FF000080C4 = FF000080C5 = 00000080C6 = 00000080C7 = 00000080C8 = 00000080C9 = 00000080CA = 00000080CB = 00000080CC = 00000080CD = 00000080CE = 00000080CF = 00000080D0 = 00000080D1 = 00000080D2 = 00000080D3 = 00000080D4 = 00000080D5 = 00000080D6 = 02000080D7 = 04000080D8 = 06000080D9 = 08000080DA = 0A000080DB = 0C000080DC = 1D000080DD = 1E000080DE = 1F000080DF = 20000080E0 = 21000080E1 = 22000080E2 = 24000080E3 = 26000080E4 = 28000080E5 = FF000080E6 = FF000080E7 = FF000080E8 = FF000080E9 = FF000080EA = FF000080EB = FF000080EC = FF000080ED = FF000080EE = FF000080EF = 00000080F0 = 00000080F1 = 00000080F2 = 00000080F3 = 00000080F4 = 00000080F5 = 00000080F6 = 00000080F7 = 00000080F8 = 00000080F9 = 00000080FA = 00000080FB = 00000080FC = 00000080FD = 00000080FE = 00