EightB1ts / uni-sync

A synchronization tool for Lian Li Uni Controllers
MIT License
45 stars 9 forks source link

Is there support for TL series fans and controller? #11

Open bonkas opened 5 months ago

bonkas commented 5 months ago

Is there support for TL series fans and controller?

I have these in my system and can provide any troubleshooting required to make this work.

bcarvalho2500 commented 5 months ago

@bonkas Are you on Linux? I have a fork of this repo where I can add your product id and fan specs to see if that works.

bonkas commented 5 months ago

@bcarvalho2500 Yes I dual boot this system with Windows and PopOS.

This is what is reported from Windows:

image

bcarvalho2500 commented 5 months ago

@bonkas Huh that has a VID I was not expecting. Can you try running lsusb -v | grep -i 0cf2 on PopOS and see if that returns anything? If that doesn't return anything can you try lsusb -v | grep -i lianli

bonkas commented 5 months ago

@bcarvalho2500 I certainly can, Just at work atm but can do in ~6 hours time :P.

I will edit this message once I have more information.

EDIT:

Okay the first and second command did not return anything.

Dumping a complete list I found this device which you may be interested in (I also attached the complete dump of lsusb -v) USBDeviceDump.txt :

Bus 001 Device 005: ID 0416:7372 Winbond Electronics Corp. TL_Series_ControllerV0.58 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0416 Winbond Electronics Corp. idProduct 0x7372 bcdDevice 1.01 iManufacturer 0 iProduct 2 TL_Series_ControllerV0.58 iSerial 1 Nuvoton bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x004b bNumInterfaces 3 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 1 Keyboard iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 63 Report Descriptors: UNAVAILABLE Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 32 Report Descriptors: UNAVAILABLE Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.10 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0003 Self Powered Remote Wakeup Enabled

bcarvalho2500 commented 5 months ago

@bonkas Alright I think I may have something that will work. Just for my piece of mind there are somethings in the original code that I don't exactly understand so I copied the lines for the 'SLI' fans which are relatively new also. How the whole program works is that it just edits the files on start so if it doesn't work and uninstall and reboot should do the trick.

If you wanna go ahead and try it out you can clone it with this: git clone -b feature/add_support_for_tl_fans --single-branch https://github.com/bcarvalho2500/uni-sync.git

Please let me know how it works!

bonkas commented 5 months ago

hmm I am still having no luck, I am thinking it is a "me" problem though.

I have been uninstalling, installing, rebooting over and over a number of times now but I am not getting the config file to populate except for ONCE it populated (I will paste contents below) I noticed the RGB dissapeared from the fans so something must have communicated with the fans so I tried to increase the fan speed to 100% and restart the service but nothing happened. I havent been able to repeat the config file being created since.

I have tried installing as my regular user and using sudo to no avail, the config file is either not created or is created as an empty json in the folder containing the application. The path given in the github doesnt seem to exist either, well I can see it but cannot do anything with it... not sure what is going on here.

Is this something you can offer some assistance with?

This is the config I managed to generate ONE time only.

{ "configs": [ { "device_id": "VID:1046/PID:29554/SN:Nuvoton", "sync_rgb": false, "channels": [ { "mode": "Manual", "speed": 100 }, { "mode": "Manual", "speed": 100 }, { "mode": "Manual", "speed": 100 }, { "mode": "Manual", "speed": 100 } ] } ] }

bonkas commented 5 months ago

Welp! Rebooting into windows gives me device not recognised and the L-Connect software can no longer see the controller.

The fans are stuck at full speed now with no active RGB activity either, I now have an added 8-10s boot time at BIOS with a flashing cursor... uh-oh.

EDIT:

After a full power down of the system and reboot it now seems to be booting normally and I have RGB activity, uninstalled and reinstalled device drivers and now the error is gone and the l-connect software can see the controller again.. whew.

Tried again and as soon as the app service starts the controller goes wonky again, I guess something is not right here.

bcarvalho2500 commented 5 months ago

@bonkas So the empty json is created when you install but when the application first runs, that's when the json is filled with default values and once the json is filled out, it's never created again. So if I read what you said correctly, that should be normal behavior.

I'll need to take a look more into how to write to HID devices to try and see why yours didn't work. Your fans vendor id was different from all the others so maybe something changed there? I'll try to learn how to get report data but may need you to provide it since you have a working L-connect with those fans.

Sorry I couldn't get it to work sooner.

bonkas commented 5 months ago

Yup, happy to help further but am a bit out of my depth here.

I have tried to include as much information as possible about what I noticed to try narrow down the issue but it seems the controller gets communicated with and then freaks out, only a hard reset of the device and then subsequent drive removal/reinstall in windows resolves this.