BRT Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

Welcome to the Bridgetek Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ Bridgetek Support

Please refer to our website for detailed information on all our products - Bridgetek - Bridging Technology

Pages: [1] 2

Author Topic: Multi tag problem  (Read 44005 times)

JuSil

  • Newbie
  • *
  • Posts: 10
    • View Profile
Multi tag problem
« on: November 26, 2021, 03:38:34 PM »

Hello
I have problem with multi tag functionality. The Display is Riverdi Eve4 RVT70HSBNWC00-B
I changed my working one touch ( tag ) system to multi touch. But I can't get it work.

Any touch makes an interrupt and code starts to write tag registers (REG_TOUCH_TAG, REG_TOUCH_TAG1....) to array.

So, when I touch my first finger to Button1 (tag1)  array is [1,0,0,0,0]
Second finger Button2 (tag2)  array is [1,2,0,0,0]

Then I take first finger off Button1(tag1)  array is [1,0,0,0,0] , why is this? My only finger touches button2

Seems that when I take off any finger from the display, the last array value goes to 0 
 




Logged

JuSil

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Multi tag problem
« Reply #1 on: December 20, 2021, 11:53:09 AM »

Hello,
Can someone make a test program and just put

CLEAR(1, 1, 1)
CMD_KEYS(10, 10, 500, 90, 29, 0, "12345")

5 keys to the screen.
and check what happens in  REG_CTOUCH_TOUCH_TAG registers.
Polling code below ( simpler version of my code)

    uint32_t address = REG_CTOUCH_TOUCH_TAG;
    uint8_t tag[5] = 0;

    for(uint8_t i = 0 ; i < 5;i++)
    {
        Tag = EVE_MemRead8(address);
        address += 8;
    }     
    printf("Tag %x %x %x %x %x\r\n",Tag[0],Tag[1],Tag[2],Tag[3],Tag[4]);


What happens in my solution is:

when I press “1”
output is (hex): Tag 31 0 0 0 0

Then second finger to “3”
Tag 31 33 0 0 0

Third finger to “5”
Tag 31 33 35 0 0

Now I take second finger “3” (or any finger off), output is:
Tag 31 33 0 0 0

Thanks in advance



 
Logged

Rudolph

  • Sr. Member
  • ****
  • Posts: 424
    • View Profile
Re: Multi tag problem
« Reply #2 on: December 21, 2021, 05:52:45 PM »

I just tried this with output on the screen and I am getting the same issue.
I additionally printed the REG_TOUCH_XY values.

This is the result with a RVT70HSBNWC00-B using a BT817 and an ILI2132A:

Putting three fingers on:
Tag 1: 0x31 XY: 0x00cf1067
Tag 2: 0x33 XY: 0x018c015f
Tag 3: 0x35 XY: 0x0250016a
Tag 4: 0x00 XY: 0x80008000
Tag 5: 0x00 XY: 0x80008000

Lifting the first finger:
Tag 1: 0x31 XY: 0x00cf1067
Tag 2: 0x33 XY: 0x018c015f
Tag 3: 0x00 XY: 0x80008000
Tag 4: 0x00 XY: 0x80008000
Tag 5: 0x00 XY: 0x80008000

Putting back the first finger:
Tag 1: 0x00 XY: 0x0c20171
Tag 2: 0x33 XY: 0x018c015f
Tag 3: 0x35 XY: 0x0250016a
Tag 4: 0x00 XY: 0x80008000
Tag 5: 0x00 XY: 0x80008000

Lifting the second finger:
Tag 1: 0x00 XY: 0x00c20171
Tag 2: 0x33 XY: 0x018c015f
Tag 3: 0x00 XY: 0x80008000
Tag 4: 0x00 XY: 0x80008000
Tag 5: 0x00 XY: 0x80008000

Putting back the second finger:
Tag 1: 0x00 XY: 0x00c20171
Tag 2: 0x33 XY: 0x0191015a
Tag 3: 0x35 XY: 0x0250016a
Tag 4: 0x00 XY: 0x80008000
Tag 5: 0x00 XY: 0x80008000

This is the result with an EVE3-50G with BT815 and GT911:

Putting three fingers on:
Tag 1: 0x31 XY: 0x00ae016a
Tag 2: 0x33 XY: 0x01800148
Tag 3: 0x35 XY: 0x02540179
Tag 4: 0x00 XY: 0x80008000
Tag 5: 0x00 XY: 0x80008000

Lifting the first finger:
Tag 1: 0x00 XY: 0x80008000
Tag 2: 0x33 XY: 0x01800148
Tag 3: 0x35 XY: 0x02540179
Tag 4: 0x00 XY: 0x80008000
Tag 5: 0x00 XY: 0x80008000

Putting back the first finger, lifting the second:
Tag 1: 0x00 XY: 0x0d101620
Tag 2: 0x00 XY: 0x80008000
Tag 3: 0x35 XY: 0x02540179
Tag 4: 0x00 XY: 0x80008000
Tag 5: 0x00 XY: 0x80008000

Unfortunately I have no BT817 module with a different touch-controller, at least none I can test with on the spot.
« Last Edit: December 21, 2021, 07:06:40 PM by Rudolph »
Logged

BRT Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 780
    • View Profile
Re: Multi tag problem
« Reply #3 on: December 22, 2021, 11:40:46 AM »

Hi,

We will also try your experiment on our module (ME817EV with Focaltech-based screen) and will let you know the result,

Best Regards, BRT Community
Logged

BRT Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 780
    • View Profile
Re: Multi tag problem
« Reply #4 on: January 05, 2022, 06:20:37 PM »

Hi,

We tried with an ME817EV with RiTFT-70H-CAP (I believe it has FT5426) and the touches/tags remained in the correct positions so long as the touch was held (e.g. on the second and third fingers when repeating your test).

It is difficult to be sure what is happening in your trial with other CTP but it may be, for example, that a pen-up is reported for some or all other points and so EVE is seeing a momentary release of all fingers and so even the ones which are held on the screen are seen to change.

I'll see if we have any others but is it possible for you to capture the respective waveform on the I2C and interrupt lines and we can see what may be happening?

Best Regards, BRT Community



Logged

Rudolph

  • Sr. Member
  • ****
  • Posts: 424
    • View Profile
Re: Multi tag problem
« Reply #5 on: January 05, 2022, 06:53:41 PM »

I'll try to tap into the I2C lines but there is no schematic for these modules.
And the white solder mask is no help either. :-)

Edit: the I2C tap is in place and I am inclined to say, do not try this at home.
But here I am at home and just did that. :-)

The first thing I noticed is that there is no I2C traffic whatsoever on power-up.
Ok, this is in compatibility mode and I need to flash my multi-touch test software again.
But I still expected there would be some traffic, at the bare minimum reading some register.

And nothing in multi-touch mode either, the I2C lines just go from low to high and stay there, odd.

When I put a single finger somewhere on the display I get longer readouts in multi-touch mode.
These repeat about every 8ms as long as I keep the finger on the display.

I am not sure what the I2C clock is supposed to be at as it varies a bit but it looks like around 520kHz.
Yes, I am sure, I repeated the measurement a couple of times now and went from 4 MS/s to 16 MS/s to 50MS/s to 100MS/s on my logic analyzer.
So I am using 5 MS/s to reduce the amount of data.

Oh, there is terminal output in the Salae Logic2 software as well, just tapping a bit on the display with one finger:

Code: [Select]
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x01 0xAB 0x01 0xD2 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0xAB 0x01 0xD2 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0xAB 0x01 0xD2 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0xAB 0x01 0xD2 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x00 0x41
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x01 0xB2 0x01 0xC3 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0xB2 0x01 0xC3 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0xB2 0x01 0xC3 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x00 0x41
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x01 0xA8 0x01 0xCC 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0xA8 0x01 0xCC 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0xA8 0x01 0xCC 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0xA8 0x01 0xCC 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x00 0x41
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x01 0x98 0x01 0xC3 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0x98 0x01 0xC3 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x01 0x81 0x98 0x01 0xC3 0xFF 0xFF 0xC1
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x00 0x41

This is resting three fingers on the display and capturing for 100ms:
Code: [Select]
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x74 0x01 0x62 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x73 0x01 0x63 0xFF 0xFF 0x81 0x33 0x11 0x5A 0xFF 0xFF 0x82 0x02 0x21 0x62 0xFF 0xFF 0xC0

Three fingers on the display before start of capture, 500ms, removing and putting back the first finger:
Code: [Select]
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6B 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x6A 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFD 0x21 0x58 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0x40 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x02 0xC0 0x78 0x01 0x69 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x00 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0
write to 0x38 ack data: 0x02
read to 0x38 ack data: 0x03 0x80 0x88 0x01 0x58 0xFF 0xFF 0x81 0x35 0x11 0x4F 0xFF 0xFF 0x81 0xFC 0x21 0x57 0xFF 0xFF 0xC0


Digging a little deeper I found that the ILI2132 that Riverdi is using on the RVT70H normally listens on 0x41 on the I2C and not 0x38, so maybe Riverdi modified the firmware or bought these with an adapted firmware.

Please contact Riverdi regarding this issue, so far I had no luck contacting anyone there who actually knew what I was asking.
And if you contact Riverdi you could also tell them that the BT817/BT818 do not have a "2x Pixel Mode".
"Also implemented to EVE4 graphics controller for the first time is ‘2x pixel mode’. In this mode, picture is being refreshed simultaneously on two independent halves of the display which shortens the process by half and makes rapid changes of the image displayed super smooth."
I told them at last half a year ago and this is still on their product pages.
« Last Edit: February 10, 2022, 04:56:17 PM by Rudolph »
Logged

Rudolph

  • Sr. Member
  • ****
  • Posts: 424
    • View Profile
Re: Multi tag problem
« Reply #6 on: January 17, 2022, 06:11:46 PM »

Soo, what about this issue?
Logged

BRT Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 780
    • View Profile
Re: Multi tag problem
« Reply #7 on: January 20, 2022, 02:17:06 PM »

Hi,

Just to update, we were able to get the same 7" panel and have been doing some testing as we can see the same happen, Riverdi are looking into it,

Thanks to you both for reporting the problem and for all your help in investigating and gathering the data,

Best Regards, BRT Community

Logged

Rudolph

  • Sr. Member
  • ****
  • Posts: 424
    • View Profile
Re: Multi tag problem
« Reply #8 on: January 21, 2022, 08:54:37 PM »

Nice.


I connected the ILI2132A on my RVT70H to USB now.
It kind of works but I guess I would need a specialized driver for it.

I found traces of a software from Ilitek on the internet called "IliTuningTool" but had no luck getting a version
that actually works with the ILI2132A (or I am using it wrong).
Well, that software is from december 2018.

The web presence http://www.ilitek.com appears to be totally defunct, only the front page works here.
I really can not find much about Ilitek at all.

In theory it would be possible to update the firmware of the ILI2132A via USB.
Well, if we had a software to do this and a new firmware...
Logged

mtesmer

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Multi tag problem
« Reply #9 on: February 09, 2022, 05:01:50 PM »

Hello,

First my apologies if I'm drifting from the topic but my problem might be similar.

I've started to play with similar ILITEK ILI2130 cap controller used on Winstar 5" TFT display and linked with BT817. Using AN336 and programmer manual, I get as far as initialising module and read data. Rudolph, You was correct. ILITEK used slightly different I2C address - 1000 001b - which I altered via REG_TOUCH_CONFIG. I stick to compatibility mode (as I do not need multi touch at this stage) and let it go. I'm seeing INT going low, SCL and SDA coming through when touch is made. I can also confirm that once screen is touched, data from controller is bursting in 9ms intervals and once touch is released controller stop outputting data. My problem is that touch value read by BT817 is always constant (REG_CTOUCH_TOUCH0_XY = 0x07010448) no matter which part of screen I'm touching. I tried to calibrate but after pressing on glowing dot, it stop flashing and I'm stuck in EVE_busy() reading 0xFEC instead of 0xFFC (as my read, write pointers do not come equal).

My init is basic:
Code: [Select]
EVE_MEM_WR16(REG_TOUCH_CONFIG, 0x0410);             /* set ILI2130 ctouch address */
EVE_MEM_WR8(REG_CTOUCH_EXTENDED, EVE_CTMODE_COMP);  /* set ctouch compatibility mode */
        EVE_MEM_WR8(REG_CTOUCH_MODE, EVE_CTMODE_ON);        /* enable cap touch */

I did not load any configuration code to RAM as I'm not yet familiar with that technique.

My question is if you both succeed in compatibility mode or the only option is to use Host mode and send touch data via MCU on that particular controller? Any way to connect and use direct on BT817?

As curiosity I switched to extended mode and data behaviour changed. The controller is sending a lot more data but only once per touch.

PS. I attached a nice comparison from Winstar highlighting key differences between FT5426 and ILI2130. Hope you will be able to read from attachments bellow (maximum total size limitation :().

Best Regards,
Logged

Rudolph

  • Sr. Member
  • ****
  • Posts: 424
    • View Profile
Re: Multi tag problem
« Reply #10 on: February 10, 2022, 04:52:02 PM »

My question is if you both succeed in compatibility mode or the only option is to use Host mode and send touch data via MCU on that particular controller?

We really did not have to do anything.
We are using Riverdi modules and as I wrote, I believe that Riverdi is using custom Firmware for the ILI2132A.
At the very least they configured the I2C address, probably the data is beeing send different as well.

Quote
Any way to connect and use direct on BT817?

There might be thru cusom CTP software for the BT817 as compiled thru EVE Asset Builder.
But I have not even tried this.

Quote
PS. I attached a nice comparison from Winstar highlighting key differences between FT5426 and ILI2130. Hope you will be able to read from attachments bellow (maximum total size limitation :().

Thank you, this is interesting but for other reasons.
The first point is the tighter limit of the lower supply voltage.
The second point is the extended delay necesarry, now I wonder what the BT817 actually uses.







« Last Edit: February 10, 2022, 04:56:03 PM by Rudolph »
Logged

mtesmer

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Multi tag problem
« Reply #11 on: February 15, 2022, 10:15:24 AM »

Yes, It looks like that ILI2132 version intended to be a FT compatible.

I did a very quick mock-up and connect MCU direct to a touch controller. As per comparison provided earlier my ILITEK CT is outputting whole 64 byte data payload, no matter if you press one touch or more. They "padding" data to the left so first touch data, followed by second, etc. The remain of no used data is zero and there is some validity data at the end. I attached some images from analyser for a reference. This most likely causing you a problem on multi as TC is processing data from a stream rather than from associated register. For example five touches will give you [1,2,3,4,5,0,...] but three [1,2,3,0,0,0,...], etc.
« Last Edit: February 15, 2022, 10:17:56 AM by mtesmer »
Logged

JuSil

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Multi tag problem
« Reply #12 on: March 03, 2022, 09:37:44 AM »

Hello,
Riverdi have a new touchscreen controller firmware.
And it seems to work fine.
Only little disappoint in my code point of view was that.
When press two buttons array is ex. [1,2,0,0,0]
then take of finger 1 off comes [0,2,0,0,0]
my code works better and faster if result is [2,0,0,0,0], but its ok now.
Thanks.
Logged

Rudolph

  • Sr. Member
  • ****
  • Posts: 424
    • View Profile
Re: Multi tag problem
« Reply #13 on: March 03, 2022, 04:05:32 PM »

Riverdi have a new touchscreen controller firmware.

OK, nice, where do I get a copy of this to patch my displays?

Quote
When press two buttons array is ex. [1,2,0,0,0]
then take of finger 1 off comes [0,2,0,0,0]

This is consistent with how it worked in earlier versions of the modules.
Logged

Tomasz Soldat

  • Newbie
  • *
  • Posts: 4
  • Display solutions experts
    • View Profile
Re: Multi tag problem
« Reply #14 on: March 08, 2022, 03:25:34 PM »

Hi! On behalf of Riverdi I would like to let you know that we were working on this issue recently and managed to achieve good results. Our engineers are testing now. For our customers we can provide updates.

Rudolph, JuSil - we will get in touch with you via email.
Logged
Pages: [1] 2