Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for the strimer cables please? #23

Open
F5544 opened this issue Feb 20, 2025 · 8 comments
Open

Add support for the strimer cables please? #23

F5544 opened this issue Feb 20, 2025 · 8 comments

Comments

@F5544
Copy link

F5544 commented Feb 20, 2025

Loving your software. really better than the l-connect.

can you add support for the lianli strimer cables?

@F5544
Copy link
Author

F5544 commented Feb 21, 2025

Device USB\VID_0CF2&PID_A200&MI_00\9&302e814f&0&0000 was configured.

Driver Name: winusb.inf
Driver Package ID: winusb.inf_amd64_e3d2ed0c43a36b9a
Class GUID: {88bae032-5a81-49f0-bc3d-a4ff138216d6}
Driver Date: 06/21/2006
Driver Version: 10.0.26100.1150
Driver Provider: Microsoft
Driver Section: WINUSB.NT
Driver Rank: 0xFF2000
Matching Device ID: USB\MS_COMP_WINUSB
Outranked Drivers:
Device Updated: false
Parent Device: USB\VID_0CF2&PID_A200\6243168001

@F5544
Copy link
Author

F5544 commented Feb 21, 2025

I got it till these lines:

const VENDOR_IDS: [u16; 1] = [ 0x0cf2 ];
const PRODUCT_IDS: [u16; 8] = [ 0x7750, 0xa100, 0xa101, 0xa102, 0xa103, 0xa104, 0xa105, 0xa200 ];

        // Send Command to Sync to RGB Header
        let sync_byte: u8 = if sync_rgb { 1 } else { 0 };
        let _ = match &hiddevice.product_id() {
            0xa100|0x7750 => hid.write(&[224, 16, 48, sync_byte, 0, 0, 0]), // SL
            0xa101 => hid.write(&[224, 16, 65, sync_byte, 0, 0, 0]), // AL
            0xa102 => hid.write(&[224, 16, 97, sync_byte, 0, 0, 0]), // SLI
       ---> 0xa200 => hid.write(&[224, 0, 0, sync_byte, 0, 0, 0]), //STRIMER
            0xa103|0xa105 => hid.write(&[224, 16, 97, sync_byte, 0, 0, 0]), // SLv2
            0xa104 => hid.write(&[224, 16, 97, sync_byte, 0, 0, 0]), // ALv2
            _ => hid.write(&[224, 16, 48, sync_byte, 0, 0, 0]), // SL
        };

        // Avoid Race Condition
        thread::sleep(time::Duration::from_millis(200));


        for x in 0..channels.len() {
            
            // Disable Sync to fan header
            let mut channel_byte = 0x10 << x;

            if channels[x].mode == "PWM" {
                channel_byte = channel_byte | 0x1 << x;
            }

            let _ = match &hiddevice.product_id() {
                0xa100|0x7750 => hid.write(&[224, 16, 49, channel_byte]), // SL
                0xa101 => hid.write(&[224, 16, 66, channel_byte]), // AL
                0xa102 => hid.write(&[224, 16, 98, channel_byte]), // SLI
--->           0xa200 => hid.write(&[224, 0, 0, channel_byte]), //STRIMER**
                0xa103|0xa105 => hid.write(&[224, 16, 98, channel_byte]), // SLv2
                0xa104 => hid.write(&[224, 16, 98, channel_byte]), // ALv2
                _ => hid.write(&[224, 16, 49, channel_byte]), // SL
            };

but the bold lines i dont get.
how can i find the right bytes to let it assign in icue?

@F5544
Copy link
Author

F5544 commented Feb 21, 2025

@expipiplus1 @EightB1ts @bcarvalho2500

can you help me fix the latest code to make it work?

@bcarvalho2500
Copy link

@F5544 This is actually where I get lost too. Not sure how @EightB1ts got those values to write. I've tried looking up tech docs on the fans to see if I could figure it out, but couldn't find anything. I'm assuming they somehow saw how L-Connect was writing data, but not sure how.

@F5544
Copy link
Author

F5544 commented Feb 22, 2025

@bcarvalho2500 ahh yeah. Thank you for your respons. I got some documentation of openrgb on github. But i dont know which values.
https://github.com/CalcProgrammer1/OpenRGB/tree/master/Controllers/LianLiController/LianLiStrimerLConnectController

@EightB1ts
Copy link
Owner

I have some time to improve these repos in the next few weeks. It makes it difficult not having the controllers on hand to see what is being sent over the wire over Wireshark. I also do not use these fans anymore, so testing is impossible on my end.

@bcarvalho2500 I took L-Connect, which is a ElectronJS app, dumped the JS payload containing the controller values, and went digging for it in the minified code.

@F5544
Copy link
Author

F5544 commented Feb 24, 2025

If I can help you for the js payload. I am willing to help. Can you give me a program how to make a dump for you?

@F5544
Copy link
Author

F5544 commented Feb 24, 2025

Btw thank you very much for this. I really appreciate your work. If it works i will buy you a coffee for sure. This will me be my main utility.
And for the customers i build pc for

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants