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
Support for Aquastream Ultimate #50
Comments
From your output: Looks like it was released in ~2015/2016, so it should use the regular HID report communication (old Aquacomputer stuff, like the aquastream xt, communicates through a legacy way). I've looked it up on Youtube, the interface on the OLED looks extremely similar to the one on the D5 Next, so they probably share a similar base. Unfortunately without you looking up the HID reports that the pump sends and pairing that with sensor data from aquasuite/hwinfo64 (so the reported values match up in the reports), I can't do anything reliably from my side. If you want to delve in I can send you a hints/tutorial doc for sniffing USB traffic. |
I have never done anything like that, but certainly willing to give it a try. |
Here it is. For you, the filter should be If it's similar to the D5 Next, it should send a status HID report every second and values in the report will be in big endian. It's best to open the report (once captured) in a hex editor for easier searching. If you need assistance, write here and I'll try my best to help. |
Okay so here goes: The tutorial is slightly confusing as they are using the Linux host to capture the packets, which in my case did not really work (or I was doing it wrong). I installed wireshark on my Linux host, and ran mobprobe usbmon to get the usb devices to show up in wireshark. Selected all of them, but when filtering nothing showed up (with the VM running). I assume that is because the device is passed through to the windows VM and thus not available on the host. As a next step I installed Wireshark inside the Win10 VM and was able to filter the packets and save them. What would be the next steps? You mentioned pairing the sensor data, or is it sufficient if I send you the captures? Cheers! |
If a device is passed in to a VM, it won't be visible on the host. You can send the reports here, of course, but to do anything we need the readings from hwinfo64/aquasuite at the time of the report. What I mean by this is that the report contains the readings of the sensors (temp is 25C, fan speed is 800RPM etc.), but to find where those values are located in the report, we need to know their values - aquasuite already knows how to parse the report, and the data it outputs is what we need to reverse engineer their positions in the hex dump (pairing the sensor data). Long story short 😄 - the next step is to send the reports you captured and a screenshot of aquasuite/hwinfo64 readings so I can try and look them up. |
Ok so we are looking for a fairly short capture with a screenshot of the data from the time of capture. On it! |
That's right. Here's how it looks on the D5 Next. |
Here is to hoping I did it correctly :-) |
Thanks. Here goes nothing...
Can you please confirm the info above (serial number, firmware)? How many virtual sensors does it have? |
Serial number and Firmware version are correct. My flow sensor (old high flow, non USB - https://images-na.ssl-images-amazon.com/images/I/41RqLWF2+NL._AC_.jpg) is connected to the aquero as well. |
Thanks. In that case I won't touch the supposed virtual sensors, and will implement the rest. I will write here when I implement that in a separate branch for you to test. |
That is amazing! You are a wizard! 😃 Do you think there is a way to read the flow sensor that is connected to the aquero as well? |
That should be located in the Aquaero sensor report. But from your image the Aquaero reported flow is 0.0 l/h? What's the flow value that the aquaero relays? |
I tried a capture of the aquero (with f001 filter) and took another screenshot. |
Thanks, I found it in the sensor report ( |
Wonderful! Thank you so much! |
Here's the aquaero test branch, for the flow sensor. |
Sorry about my beginner questions... how do I clone a different branch? In the meantime, I just copied the changed file: aquaero-hid-3-9 |
First, run
Then, you can use
In this case, something like this, depending on how you want to name your local branch:
|
And here is the new branch for Aquastream Ultimate. Please test and report if anything is missing or is incorrectly reported. |
Seems to work like a charm. I compared the data from "watch sensors" with whats on the Aqueros' display and other than different update timings between my display and the terminal, the values seem spot on. Maybe "RPM" could be removed from the output and values converted to liters/h? |
Great, thank you! Others have had the same idea before, but "RPM" is kind of the catch all type in hwmon (internally, it's regarded as fan output), and it's the only of the bunch (temp, RPM, voltage, current, humidity, etc.) that I can put general values in (such as flow and pressure) since it doesn't carry a too exact meaning, like temp would for example. And it's also accepted that way into the kernel. Also, "RPM" is shown by the For liters/h, aside from the above, we run into an another problem: first, sysfs only exposes whole numbers, and second, generally no floating point operations are possible in the kernel, except if you are on x86 and put your code between |
Very cool, thank you. Added it to my conky 😃 |
Thank you for the sensor reports so far. |
Certainly. I should be able to do that on the weekend. Possibly a little earlier if I find the time. |
Great! Can you please also test connecting your flow sensor to the Flow 2 position on the Aquaero? I'd like to confirm its position in the report and implement it as well. |
Sure. |
This just reminded me.... do the virtual sensors work as well? There is Virtual Sensor 1-8 in linux, which likely corresponds to "Software Sensor" in Aquasuite (not sure what they do, need to look it up). Then there are 4 "Virtual temperature sensors" in Aquasuite which can be used for all kinds of calculations. I set one up to calculate the difference between Ambient and Case temperature (4.7° in the capture I uploaded). These are not currently displayed in my terminal sensor output. Can these be pulled in as well? And if they can, I assume you would like me to create the max amount of sensors so can get some data from them? Edit: I also just noticed "Alarm Level" in the HWinfo output. I reckon this could be interesting as well? Some clever people might use that to trigger all kinds of stuff in case things go wrong. |
I believe I checked out the aquaer-two-flow-sensors branch correctly, but the flow sensor does not show up in "sensors" when it's connected to sensor 2. |
My mistake, sorry. Didn't mark it as visible. Pushed a fix just now. |
Success! :D aquaero-hid-3-8 |
Merged, thanks. |
Support for four calculated virtual temp sensors for the Aquaero is in #56. Please test, it seems to work fine on my Aquaero 6 LT. |
Looks good to me! aquaero-hid-3-8 |
Thanks! Merged. |
I might be doing something wrong, but the Aquastream Ultimate branch is not showing my pump. |
Sorry for that, I rebased it earlier using SmartGit and looks like it decided to remove the where the pump is marked as supported (I don't remember being prompted to do so). Force pushed it just now, please try again. |
The pump is showing up now. I'll try to get to testing it in the evening. |
Here is the output I am getting with fan, flow and temp sensor connected: aquastreamultimate-hid-3-12 Fan seems to be running at 100%. |
OK, so flow speed 2 and 3 are dummy values, removed those. Also fan sensors should now be fixed. Pump frequency I'm not sure about, what does aquasuite say (in the data quick view)? |
Frequency seems to be moving around 79.4 to79.7Hz. |
I'm looking at this from the manual: RPM seems to be output only: Here's what I find later: That mentions the external flow sensor and the virtual one, which must be purchased and if it's anything like the on the D5 Next (it says it's calibrated to DP Ultra), it's mot likely not worth looking into because it seems very inaccurate. I see hwinfo64 exposing the flow 3, but the value is the same. Looks like they weren't sure either. |
I can't seem to find pump frequency in the sensor report other than what I thought it is, seeing that it's not in hwinfo64 maybe aquasuite is calculating it... |
Well I guess the frequency is not the most vital bit of information anyhow. The virtual flow sensor costs 15€, the advanced controller pack for the pump is 10€ and adds:
Not sure how useful they are. At least I don't see any application for myself. |
I can't stop you, but from all accounts that I've read the virtual flow sensor is... not great. Personally I'd say that it's just a gimmick and would not recommend buying that if it's only to try to help this driver. Can you please test the PR again? Some minor issues were fixed/optimized and I've removed the pump frequency reporting. If all goes well, I'd merge it. |
The current version of the aquastream-ultimate-support branch causes a hard lockup on my system. Can't switch to a tty, mouse and keyboard are frozen and system needs to be turned off via powerbutton. |
I'll look into it. |
Thanks @leoratte. @Alexander-LIT, my apologies for that, should now be fixed. |
Much better :-) aquastreamultimate-hid-3-13 |
Great, thank you! I'll just rename "Pump +12V" to "Pump voltage" and merge. |
This is now merged. If any issues arise, please report. |
…Ultimate Extend aquacomputer_d5next driver to expose various hardware sensors of the Aquacomputer Aquastream Ultimate watercooling pump, which communicates through a proprietary USB HID protocol. Coolant temp and external temp sensor readings are available, along with speed, power, voltage and current of both the pump and optionally connected fan. It also exposes pressure and flow speed readings. Additionally, serial number and firmware version are exposed through debugfs. Tested by a user on Github [1]. [1] aleksamagicka/aquacomputer_d5next-hwmon#50 Signed-off-by: Aleksa Savic <savicaleksa83@gmail.com>
…Ultimate Extend aquacomputer_d5next driver to expose various hardware sensors of the Aquacomputer Aquastream Ultimate watercooling pump, which communicates through a proprietary USB HID protocol. Coolant temp and external temp sensor readings are available, along with speed, power, voltage and current of both the pump and optionally connected fan. It also exposes pressure and flow speed readings. Additionally, serial number and firmware version are exposed through debugfs. Tested by a user on Github [1]. [1] #50 Signed-off-by: Aleksa Savic <savicaleksa83@gmail.com>
…Ultimate Extend aquacomputer_d5next driver to expose various hardware sensors of the Aquacomputer Aquastream Ultimate watercooling pump, which communicates through a proprietary USB HID protocol. Coolant temp and external temp sensor readings are available, along with speed, power, voltage and current of both the pump and optionally connected fan. It also exposes pressure and flow speed readings. Additionally, serial number and firmware version are exposed through debugfs. Tested by a user on Github [1]. [1] aleksamagicka/aquacomputer_d5next-hwmon#50 Signed-off-by: Aleksa Savic <savicaleksa83@gmail.com> Link: https://lore.kernel.org/r/20230203120324.579808-1-savicaleksa83@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
…Ultimate Extend aquacomputer_d5next driver to expose various hardware sensors of the Aquacomputer Aquastream Ultimate watercooling pump, which communicates through a proprietary USB HID protocol. Coolant temp and external temp sensor readings are available, along with speed, power, voltage and current of both the pump and optionally connected fan. It also exposes pressure and flow speed readings. Additionally, serial number and firmware version are exposed through debugfs. Tested by a user on Github [1]. [1] aleksamagicka/aquacomputer_d5next-hwmon#50 Signed-off-by: Aleksa Savic <savicaleksa83@gmail.com> Link: https://lore.kernel.org/r/20230203120324.579808-1-savicaleksa83@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
I have both an Aquero 6XT as well as an Aquastream Ultimate connected via USB.
The data from the Aquero is listed when i run 'sensors' and works great, however the Pump is not showing up. I figured since Aquastream XT is supported, perhaps the Ultimate would work as well.
If there is any more information that I can supply to help solve this issue please let me know.
make dev
make clean
make[1]: Entering directory '/home/alex/aquacomputer_d5next-hwmon'
make -C /lib/modules/6.0.8-1-MANJARO/build M=$PWD clean
make[2]: Entering directory '/usr/lib/modules/6.0.8-1-MANJARO/build'
CLEAN /home/alex/aquacomputer_d5next-hwmon/Module.symvers
make[2]: Leaving directory '/usr/lib/modules/6.0.8-1-MANJARO/build'
make[1]: Leaving directory '/home/alex/aquacomputer_d5next-hwmon'
make
make[1]: Entering directory '/home/alex/aquacomputer_d5next-hwmon'
make -C /lib/modules/6.0.8-1-MANJARO/build M=$PWD modules
make[2]: Entering directory '/usr/lib/modules/6.0.8-1-MANJARO/build'
CC [M] /home/alex/aquacomputer_d5next-hwmon/aquacomputer_d5next.o
MODPOST /home/alex/aquacomputer_d5next-hwmon/Module.symvers
CC [M] /home/alex/aquacomputer_d5next-hwmon/aquacomputer_d5next.mod.o
LD [M] /home/alex/aquacomputer_d5next-hwmon/aquacomputer_d5next.ko
BTF [M] /home/alex/aquacomputer_d5next-hwmon/aquacomputer_d5next.ko
make[2]: Leaving directory '/usr/lib/modules/6.0.8-1-MANJARO/build'
make[1]: Leaving directory '/home/alex/aquacomputer_d5next-hwmon'
sudo rmmod aquacomputer_d5next || true
[sudo] password for alex:
sudo insmod aquacomputer_d5next.ko
lsusb
Bus 012 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 011 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 010 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 002: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 005: ID 0c70:f00b MCT Elektronikladen aquastream ULTIMATE
Bus 005 Device 004: ID 0c70:f001 MCT Elektronikladen aquaero
Bus 005 Device 003: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
Bus 005 Device 002: ID 046d:c539 Logitech, Inc. Cordless Mouse Receiver
Bus 005 Device 006: ID 0b05:18f3 ASUSTek Computer, Inc. AURA LED Controller
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 30be:1014 Schiit Audio Schiit Modi 3+
Bus 003 Device 003: ID 0603:0002 Novatek Microelectronics Corp. Sino Wealth keyboard/mouse 2.4 GHz receiver
Bus 003 Device 002: ID 3297:4976 ZSA Technology Labs Inc ErgoDox EZ Glow
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
The text was updated successfully, but these errors were encountered: