chestm007 / linux_thermaltake_riing

Python driver and daemon to control thermaltake Riing fans and pumps
GNU General Public License v2.0
59 stars 25 forks source link

minor changes to make the riing trio 20 fans change colors. #40

Open abelew opened 4 years ago

abelew commented 4 years ago

I made a few changes to the devices so that I could have fun colors for my riing trio 20 fan. I wrote up a mostly coherent explanation at the end of the config.yml.

mihaellenic commented 4 years ago

I have 3 Riing Trio 12 fans with a TT sync controller, and your changes do indeed make fans change colors, but the colors return to the default rainbow after a few seconds. Did you also experience this? Are you using the TT sync controller?

abelew commented 4 years ago

Hello, I have had some difficulties in getting the controller to save settings. As a workaround, I have been only using the functions which periodically send a new state command to the fans.

The controller I am using is:

https://github.com/MoshiMoshi0/ttrgbplusapi/blob/master/controllers/riing-trio.md

Or at least those are the rules I have been attempting to follow. I haven't been playing with it for a while, in my last iteration I was writing a pygtk interface so I could send lots of command bytes and see what happened.

diffficult commented 2 years ago

@abelew did you manage to make this work with Riing Trio Fans and if so, how did you go about it?

abelew commented 2 years ago

I kind of forgot about this after I got the simple colors according to sensors working (which I think is what I committed). I am rereading the code now to try and recall what all I did and what was and was not working. I also just took a moment to look at the documentation for the controller, it appears to have changed from:

"(30 colors, 3 zones, 12+12+6) list is split in 2 chunks (19+11)
For Riing Duo fans the COLORS (18 colors, 2 zones, 12+6) list is split in 2 chunks (18+0)
CHUNK_ID indicates the chunk number starting from 1"

to:

"list is split into chunks with 19 COLOR
min chunks: 2 and max chunks 4
CHUNK_ID starts from 0x01"

This makes some sense to me and I think implies that the reason it never worked correctly was that I was sending insufficient information to the controller; and that instead of sending 19 followed by 11 color bytes, one should instead send 19 bytes for each of the chunk IDs 0x01 to 0x04 -- which I never tried.

I will try that out once I get home from work and send up a commit if anything happens.

Sectorbob commented 2 years ago

@abelew Have you figured anything out? I checkout out your commit. I am in the process of attempting to get my TT Pacific W7 and PR32-D5 working, but the controller is functioning oddly. The behavior seems the same as the Riing Trio in that is sends 2 chunks. The devices are 12 LED, and it looks like the second chunk is completely meaningless. Below is a Byte Dump captured from the TT software. I have the PR32-D5 pump in port 1 which this is the dump from.

All RED 0x18
0000   1b 00 50 30 44 75 81 9a ff ff 00 00 00 00 09 00
0010   00 02 00 0a 00 02 01 40 00 00 00 32 52 01 18 03
0020   01 00 00 ff 00 00 ff 00 00 ff 00 00 ff 00 00 ff
0030   00 00 ff 00 00 ff 00 00 ff 00 00 ff 00 00 ff 00
0040   00 ff 00 00 ff 00 7f 00 ff ff 00 ff ff 00 7f ff
0050   00 00 ff 7f 00 ff ff 00 7f ff 00

0000   1b 00 50 30 44 75 81 9a ff ff 00 00 00 00 09 00
0010   00 02 00 0a 00 02 01 40 00 00 00 32 52 01 18 03
0020   02 00 00 ff 00 00 ff 7f 00 ff ff 00 7f ff 00 00
0030   ff 7f 00 ff ff 00 ff ff 00 7f ff 00 00 ff 7f 00
0040   ff ff 00 7f ff 00 00 ff 00 00 ff 7f 00 ff ff 00
0050   7f ff 00 00 ff 00 00 00 00 00 00
Sectorbob commented 2 years ago

I don't know if the Riing trio controllers function this way, but I am seeing that my controller PID: 0x219D functions similarly to the Riing Quad controllers and repeatedly resends the packets every 50ms or so

chestm007 commented 1 year ago

I'm happy to test this on my end and merge if someone can confirm it in fact does the intended :)