Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 08 12:53
    @kprinssu banned @sqlsec
  • Feb 01 20:01
    @kprinssu banned @kdmitrienko
  • Nov 18 2020 13:40
    @kprinssu banned @PredatorAlpha777
  • Nov 15 2020 16:16
    @kprinssu banned @nikhil19rathore99
Avery Black
@1Revenger1
don't need cpplint or cldoc for that
shiecldk
@shiecldk
Yes the build is successful now. Thanks for opening the door for me to this project
shiecldk
@shiecldk
I checked with the debug. It looks like VoodooI2CHID only detects one finger/one point how so ever I touch the secondary screen (with stylus function) with multiple fingers. Is this a bug in the VoodooI2CTouchscreenHIDEventDriver.cpp or/and VoodooI2CMultitouchInterface.cpp?
@zhen-zen I saw your commit in https://github.com/VoodooI2C/VoodooI2CHID/pull/36#issuecomment-643612068
Do you have any idea how to debug or fix this issue? Thank you.
shiecldk
@shiecldk
Also, I put some IOLOG to check which lines were loaded; it looks like VoodooI2CTouchscreenHIDEventDriver.cpp was able to detect whether the touch is triggered by finger or the stylus pen. However, it's always been recognized as one point contact no matter how many fingers I used to touch that screen.
shiecldk
@shiecldk
Actually it looks like VoodooI2CMultitouchInterface.cpp was not used even for the main touchscreen, which the multitouch gesture works. Does that mean it's actually the VoodooI2C.kext instead of the satellite driver VoodooI2CHID.kext handling multitouch service?
PS. Sorry for sending so many messages at the same time for this debug.
Avery Black
@1Revenger1
Have you looked in IORegistryViewer?
it should show which services are attached to the device which should help narrow down what's attaching and isn't attaching
it'll also show all the properties
shiecldk
@shiecldk
Yes good idea:
Screen Shot 2021-08-07 at 4.47.08 PM 1.png
I2C2:TPL0 is the stylus touchscreen
But I don't see the lines in VoodooI2CMultitouchInterface.cpp got executed based on IOLOG I put in that cpp file. I checking if it's actually the native engine handling the multi touch functions. (I was check the four finger swipe gesture on the main and secondary touch screens. i.e. I2C2:TPL0 and I2C3:TPL1)
shiecldk
@shiecldk
Also tested the previous VoodooI2C versions and found none of them work for the secondary stylus touchscreen. I was guessing it was @zhen-zen's patch in the latest version (2.6.5) to make the single point work on this screen. I wonder if it's related to my DSDT/SSDT. Found a post from tonymac, which demos the similar issue and was able to fix it in the latest VoodooI2C version with multitouch on his stylus touchscreen. His laptop is HP and has a bit different DSDT for TPL device from mine.
shiecldk
@shiecldk
Here is my DSDT, OC EFI, and other debug files if anyone could take a look.
https://drive.google.com/file/d/1fB-K3Dw2CISDaLb6qZmpKOe4xM14fe5_/view?usp=sharing
zhen-zen
@zhen-zen
You mentioned the wrong person lol. The comment you found is from @Goshin
shiecldk
@shiecldk
Yes you're right lol
Also, I wonder are the touchscreen and stylus handled differently in VoodooI2c? What would happen to touchscreens with stylus generally? Is it possible this could be a DSDT/SSDT thing on the GPIO? I currently do not have any SSDT path on I2C and GPIO but my trackpad, the main touchscreen and stylus on the secondary screen work. Wonder if that means I do/don't need GPIO SSDT patch for stylus touchscreen?
shiecldk
@shiecldk
One thing I found interesting is the line in here:
https://github.com/VoodooI2C/VoodooI2C/blob/master/Multitouch%20Support/Native/VoodooI2CNativeEngine.cpp#L34
If I make it "event.transducers->getObject(i)" instead of "event.transducers->getObject(i+stylus_check)", the secondary touchscreen (with stylus function) would be completely usable.
Is it possible to disable stylus completely in VoodooI2C and test with the touchscreen function only?
shiecldk
@shiecldk
Sorry for the typo - If I make it "event.transducers->getObject(i)" instead of "event.transducers->getObject(i+stylus_check)", the secondary touchscreen (with stylus function) would be completely unusable.
shiecldk
@shiecldk
I found another interesting thing. The stylus and touchscreen can actuslly both work perfectly (with palm rest) in the main screen. I am not sure why for the secondary screen, only the stylus and single touch would work. Could this be just a VoodooI2c configuration thing?
Kishor Prins
@kprinssu

@astro-lee-k I am sorry but I do not exactly the time dig through the code, the stylus code should work across one touchscreen

You seem to have exotic hardware with multiple touchscreens and that bit of the codebase is very untested and unknown to work

shiecldk
@shiecldk
Got it thanks!
I found another info about an useful info on the touchscreens support in Ubuntu (it's the previous gen laptop but have the exact same touchscreens even touchpad, which the driver works well for me in Ubuntu)
https://github.com/s-light/ASUS-ZenBook-Pro-Duo-UX581GV/blob/master/research_touchpen.md
shiecldk
@shiecldk
@kprinssu I also saw an issue about two touchscreens support. Would it be possible to fix that issue? I assume we can just set the mouse cursor to the location in another screen when user touch another screen. Wouldn't this be an easy problem to solve?
Ghost
@ghost~5f5c8fcdd73408ce4feeb33b
Um hey guys im not sure if this is the right place to ask... but if there're devs willing to continue to develop https://github.com/blankmac/AlpsT4USB project to support ALPS U1 i2c trackpads. i will be very willing to test anytime. thanks a lot!
shiecldk
@shiecldk
Also, I tried removing the main touchscreen from the motherboard and left only the secondary touchscreen. The secondary touchscreen behaves the same, which implies it has nothing to do with the multi screen code in VoodooI2C? There may be just something that is broken for the multi-touch function in that screen.
shiecldk
@shiecldk
Is the development of this project stop? Would donation help speed up the resolution on the issues?
I would love to donate if it can help speed up resolving these two issues.
Kishor Prins
@kprinssu

@lulu-gh USB devices are supported in VoodooI2C as long as they support he PTP protocol. That project has long since been deprecated and will not be supported. Please do not ask us to support it.

@shiecldk We don't take donations, we work on a volunteer/on-our-free time basis and do not take donations (nor are there any plans to do so). As previously mentioned dual screens is not tested as the hardware very exotic. It's very hard to test/debug something when you don't have the actual hardware on hand. Another problem is macOS does not natively support touchscreens and we are emulating a virtual finger for the stylus.

Ghost
@ghost~5f5c8fcdd73408ce4feeb33b
Hi @kprinssu , thanks for replying! Just wanna mention that AlpsT4USB seems like to have (1) Full ported T4 USB support, and (2) a partial implement of the ALPS U1 I2C support. The ALPS U1 touchpad contains two parts, the touchpad supports PTP and is thus supported by I2CHID, but the trackstick (DualPoint) uses vendor-specific protocol that isn't either PS2 nor PTP. So thus it might need to have a satellite to work. Good to know the current status though, many thanks again!
Avery Black
@1Revenger1
@ben9923 I'm still working on linting and stuff, but I responded to a couple of the comments already.
Do we want to just leave the header as is? It appears fine in VIM so it might be best to leave it, especially since we aren't the original authors
Admittedly not quite sure how to deal with the header
Also, I noticed that MultitouchEventDriver seperates start and handleStart, even though start just directly calls handleStart in IOHIDEventDriver.cpp
I don't think if we put code in handleStart or start matters too much, seems weird to have it in both places though
that also means that it doesn't really matter if we deconstruct in stop or handleStop
Avery Black
@1Revenger1
waaaaait.....I just realized that the HID notifications aren't even registered, and that the results from them are never used
...I think I'm just gonna axe that too
shiecldk
@shiecldk
@kprinssu @1Revenger1 I actually found the VoodooI2CMultitouchEventDriver.cpp is a bit buggy in these lines:
https://github.com/VoodooI2C/VoodooI2CHID/blob/master/VoodooI2CHID/VoodooI2CMultitouchHIDEventDriver.cpp#L685-L698
If I disable/comment out these lines, the touchscreen would function with single touch with my finger (still don't have multitouch). If I don't comment these lines out, the touchscreen would be like stylus. (with cursor and click function only through finger and stylus)
But either way, it only detects one contact point, I'm not sure what's the bug to cause that.
shiecldk
@shiecldk
Is there a place where the VoodooI2C
  1. assign the I2C device to be stylus or touchscreen?
  2. enable/disable multi contact point check?
shiecldk
@shiecldk

I also found if I delete the IOKitPersonalities for these items in VoodooI2CHID.kext's plist:
VoodooI2CHIDDevice Multitouch HID Event Driver
VoodooI2CHIDDevice Stylus HID Event Driver
VoodooI2CHIDDevice Touchscreen HID Event Driver

The TPL0 (secondary screen) would be unusable, but TPL1 (main screen) still works as trackpad. Some device detection/assign is playing a part in the TPL0, even after I remove TPL1 from the motherboard, which doesn't make sense as the only differences are the connector type (DP in TPL0 vs eDP in TPL1), resolution (3840 x 1100 vs 3840 x 2160), and HID (ELAN9008 vs ELAN9009). Tried renaming ELAN9008 to ELAN9009, which still have the same effect.

Screen Shot 2021-08-08 at 7.23.34 PM.png
shiecldk
@shiecldk
Could someone answer my questions or at least give me some advice? I really want to solve this issue myself if nobody can fix the bug but it's very hard figure out how the whole project is written myself.
Is @alexandred still involved in this project?
Avery Black
@1Revenger1
I've honestly got no clue, lol
My main thing is VoodooRMI, and even then, it was zhen-zen who did all the i2c stuff lol
shiecldk
@shiecldk
@zhen-zen I actually saw you were mentioned in here regarding the ASUS screenpad. (My secondary screen is basically a bigger screenpad; it's screenpad 2.0)
https://www.tonymacx86.com/threads/voodooi2c-help-and-support.243378/post-2181060
https://www.tonymacx86.com/threads/catalina-on-asus-zenbook-pro-ux580ge.292699/post-2255759
I am wondering if it's possible to fix it?
If it requires too much work to modify the existing VoodooI2CHID, maybe we can create a new satellite kext for it?