Contribute
Register

VoodooI2C Help and Support

Status
Not open for further replies.
Hello bro... One year after; I'm getting the same problem... I've tried everything for a week now.
I've got a UX450FD with screen pad and it's absolutely horrible to make it works.
I've removed all the Touchscreen stuff in info.plist and tried to SSDT-GPI0 patch but nothing works.
I don't understand how could we GPIO pin in opencore too... So sorry to bother you.
Could you try to help me please ? Cheers
 
Last edited:
Hello,
My laptop is Lenovo yoga s730-13iml.
CPU: i7-10510u
I've already tried GPIO pinning and etc.
GenI2C results are attached.

But, my touchpad is still not working.

Problem reporting file with no patched files is attached.

Thanks a lot in advance :)
 

Attachments

  • 1.png
    1.png
    51.4 KB · Views: 117
  • 2.png
    2.png
    50.1 KB · Views: 125
  • debug_4612.zip
    13.8 MB · Views: 60
Last edited:
This thread is intended for users of VoodooI2C to get support for using the kext on their system.

What is VoodooI2C?

VoodooI2C is a project consisting of macOS kernel extensions that add support for I2C bus devices. The project is split into two main components: the core extension and various other satellite extensions.

The Core
The core is the VoodooI2C.kext kernel extension. This kext is intended to be installed by anyone whose computer requires some form of I2C support. It consists of I2C controller drivers and is responsible for publishing device nubs to the IOService plane.

The Satellites
The satellites are a collection of various kernel extensions that implement support for a specific type of I2C device. An example of a satellite kext is VoodooI2CHID.kext which adds support for I2C-HID devices. Usually a user will install one satellite kext per class of I2C device.

What can I use VoodooI2C for?

The most common devices that are compatible with VoodooI2C are I2C-HID devices such as Precision Trackpads and Touchscreens. If you have an I2C trackpad or touchscreen, chances are it will work with this driver. It is also possible to use VoodooI2C to get multitouch on USB devices but this is experimental.

How do I install VoodooI2C?

All installation instructions can be found here: https://voodooi2c.github.io/#Installation/Installation

Help! It doesn't work

Follow carefully the instructions here: https://voodooi2c.github.io/#Troubleshooting/Troubleshooting

Where is the source code?

The main Github repository can be found here: https://github.com/alexandred/VoodooI2C

Upload all requested files in an archive to this thread. Note that if you are on 10.12+ then the system log has been moved. Instructions for how to obtain it can be found on the following page: https://voodooi2c.github.io/#Common Errors/Common Errors
I have a touch digitiser ripped out an old Asus S400CA (3rd gen intel). I have connected the touch control board to a USB cable and the device performs perfect in Windows. It is recognised in MacOS and works when the Voodoo2C and Voodoo2CHID kext is installed.

Is it possible to refine the functionality and behaviour of the touch screen? For example, can I run my finger across the screen without everything being highlighted? What does the Voodoo2CAtmelMXT kext do?

I also plan on connecting the LCD from the screen and use the whole unit as an external touchscreen monitor. This would require locking the touch functionality down to a single display. What would be involved in doing this? I believe these things can be done with the Touch-Base program, but I'd like to avoid paying the money. Has anyone else got a solution?

Currently using Clover 5162, but this summer I’m going to start over again using open core. My build is below - cheers.
Gigabyte z270p-d3
i7 6700
MSI Radeon RX 580
MacOs 10.15.7
Touch control board is an Atmel maXTouch Product ID: 0x8807 Vendor ID: 0x03eb (Atmel Corporation)
 
@pastrychef I have the same dell laptop as you, but even after following all the steps (patching ssdt, adding voodooi2c, checking IORegs, etc), I am still not able to make my trackpad work.
Oddly enough I can't even find any voodooi2c log on my system, even thought voodooi2c_services and voodooi2c_gpio are loaded (confirmed with kextstat).

Can you please post your EFI folder, so I can try it?
Thank you in advance!
 
@pastrychef I have the same dell laptop as you, but even after following all the steps (patching ssdt, adding voodooi2c, checking IORegs, etc), I am still not able to make my trackpad work.
Oddly enough I can't even find any voodooi2c log on my system, even thought voodooi2c_services and voodooi2c_gpio are loaded (confirmed with kextstat).

Can you please post your EFI folder, so I can try it?
Thank you in advance!

Please see my Vostro 3480 guide. Link is below, in my signature.
 
Hello all. I am completely defeated. I have a Lenovo Flex 14-iwl (very similar to S340/S540).

I would REALLY appreciate it if ANYONE, @ben9923, or @jaymonkey could take a look at my hot patch code for my touchpad for me. It works, but only in polling mode, and I am trying to remedy that. I've spent HOURS and can sift through code and figure out things out usually, but am not a programmer.

From what I can tell, my issue seems quite similar to the one @ben9923 fixed for @jaymonkey a few posts back, but I can't pin point the exact changes needed as my original DSDT code seems a bit different.

From what I learned from the Voodooi2c logs, ioreg, etc, I should be using pin 0x50, but it cannot register that pin, similar to @jaymonkey 's issue. I have attached my laptop's DSDT, my TPAD hot patch SSDT code, and the Voodooi2c log for good measure.

FYI The log info for TPXX & MSFT0001 pertains to my touchpad. You can disregard ECSH & WCOM51C7. Those are HID Sensors & my touchscreen, respectively. I am currently using SSDT-XOSI.aml while trying to fix this, but would like to remove and disable it, as it seems to have broken my brightness Function keys I mapped successfully.

VERY grateful for anyone willing to help, I am beyond frustrated. Thank you so much.

UPDATE: I actually got it working and fixed it! Just a few minor edits, but more importantly, since I had tried everything possible code-wise, I decided to dedicate time to sifting through the entire advanced BIOS menu. I eventually found a setting "Force Unlock On All GPIO Pads" and it was disabled. I did some research and thought this had a very high chance of being the fix and changed it to enabled. The pin that shows up in IOreg and Windows didn't work so I just used one of the values I had generated when following the Pinning Guide, and VOILA! Interrupt Mode!

I have not seen one person mention this setting anywhere and I see tons of people with Lenovo laptops similar to mine that are stuck in Polling mode. I hope people see this and it helps them. I may not get back the hours upon hours I spent trying to fix it, but hey I am grateful I did. A big thank you to Alex for his hard work on Voodooi2c and the rest of the community for theirs.
 

Attachments

  • DSDT.aml
    251.8 KB · Views: 52
  • SSDT-TPAD.aml
    939 bytes · Views: 76
  • Voodoo Log.txt
    8.1 KB · Views: 88
Last edited:
@ben9923

I've been experimenting with booting my laptop with OpenCore (0.6.6) rather than Clover (r5107).

Everything is working except for VoodooI2C my HP laptop has a TouchScreen and Active Stylus that work fine when booting the laptop with Clover (r5107) but so far I have been unsuccessful in getting VoodooI2C to work when booting with OpenCore ... full specs for my Laptop are in my sig.

I am using the same patched DSDT with OpenCore that I use with Clover, the only change that was relevant to VoodooI2C was to the return in the _CRS method of the TPL0 device :-

Code:
Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                 Return (ConcatenateResTemplate (SBFB, SBFG))
            }

With this change VoodooI2C has always worked when booted with Clover, there was no need to change anything with the GPIO.

I can tell that VoodooI2C and its satellites are loading as searching for "voodooi2c" in IORegistryExplorer shows that the kext's have loaded and attached to the I2C device :-

Here is a IOREG when booted with Clover (VoodooI2C working) - Catalina 10.15.7
View attachment 508955
And here is a IOREG when booted with OpenCore (VoodooI2C not working) - Big Sur 11.2.1
View attachment 508956
As you can see they are the same.

I've ensured that the VoodooI2C kexts are loaded in the correct order in the OpenCore config.plist
View attachment 508957
As you can see I am loading the standalone version of VoodooInput before VoodooI2C and have disabled the bundled VoodooInput in both VoodooI2C and VoodooPS2Controller, but I have also tried with the bundled version enabled but that also did not help, all kexts are the latest version.

I have tried adding SSDT-GPIO to my injected ACPI SSDT's when booting with OpenCore (I don't use it when booting with Clover) but this does not help if its injected or not.

I'm kind of at a loss to understand why its not working as its worked so well in the past when booted with Clover ?
Would appreciate any thoughts you might have on how to further debug the issue.

Appreciate all the work you and Alex do with VoodooI2C for the community.

Cheers
Jay
Hi, did you get your multitouch gesture work on your touch screen? I have a ASUS ZenBook Pro Duo 15 with the second screen being TouchScreen and Active Stylus. However, it can only work with the stylus or a single touch point with finger.
I saw your post in here and wonder how did you solve it?
 
Hi, did you get your multitouch gesture work on your touch screen? I have a ASUS ZenBook Pro Duo 15 with the second screen being TouchScreen and Active Stylus. However, it can only work with the stylus or a single touch point with finger.
I saw your post in here and wonder how did you solve it?

@shicechi,

Yes multitouch is working fine with the touchscreen on my 2017 HP Spectre X360 (specs in sig).

The native DSDT on my laptop is already very compatible with VoodooIC2, no GPIO pin patching required and nothing extra to enable Multitouch. The only thing I needed to do to get VoodooIC2 working was to create a SSDT to modify the TPL0 devices _INI method and name.

Once VoodooI2C loaded everything just worked.

Cheers
Jay
 
@shicechi,

Yes multitouch is working fine with the touchscreen on my 2017 HP Spectre X360 (specs in sig).

The native DSDT on my laptop is already very compatible with VoodooIC2, no GPIO pin patching required and nothing extra to enable Multitouch. The only thing I needed to do to get VoodooIC2 working was to create a SSDT to modify the TPL0 devices _INI method and name.

Once VoodooI2C loaded everything just worked.

Cheers
Jay
That's great, congrats! Is it possible for you to share your DSDT and the SSDT? I'm hoping to compare what's difference to cause the issue.
 
Status
Not open for further replies.
Back
Top