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

How did you reverse engineer this? #1

Open
ghost opened this issue Oct 15, 2015 · 7 comments
Open

How did you reverse engineer this? #1

ghost opened this issue Oct 15, 2015 · 7 comments

Comments

@ghost
Copy link

ghost commented Oct 15, 2015

Fan speed would be the most important part since the damn thing doesnt actually turn the fan on when it heats up like they claim, so i want to say im obliged to help out but where you got the commands from unless you used a bus pirate or dissasembly of the windows driver.. Anything you can say about it ?

@ka87
Copy link
Owner

ka87 commented Oct 15, 2015

The windows driver part is only a serial-usb driver. I figured out chip from the Windows driver name. Then I used usb sniffer program to figure out the communication. Fan speed and fan mode is done by a contributor, so I will do it soon. Probably during next week.

@ghost
Copy link
Author

ghost commented Oct 28, 2015

I started to write a cpsufanctl but I've been caught up with work and won't have the right accommodations for awhile. There wasn't much to it, but I thought maybe would be a good approach :)

It'll be interesting to see if you can turn up a fanctl before I have a chance because I'm pretty sure I was just stabbing in the dark (my guess was to try to write a value to the same location that the speed is read from?) I did find float_to_byte though I couldn't figure out how to use it (int exp?)

I really don't understand how you could grok this unless you can relate the design to something else. Regardless it's impressive code with or without fanctl :)

cmake should make it easier to port to osx and/or freebsd though I think you have to do some stuff with #ifndef but cmake makes it easier http://stackoverflow.com/questions/7900661/how-to-read-a-cmake-variable-in-c-source-code

@ghost
Copy link
Author

ghost commented Oct 28, 2015

might make more sense to send a pull request to https://github.com/groeck/lm-sensors/ also: https://github.com/audiohacked/OpenCorsairLink

https://wiki.archlinux.org/index.php/Fan_speed_control (lm_sensors provides a fancontrol)

@okias
Copy link

okias commented Jan 13, 2018

for lm-sensors, there has been this issue: lm-sensors/lm-sensors#5

@ka87
Copy link
Owner

ka87 commented Jan 14, 2018

Sorry, I really haven't got time for this right now, but if you have time to pull this code to lm-sensors, feel free to do it. If not, i'll try to do in the future.
p.s.: I merged fan speed control just now, thank you for contributing.
I'm really happy, that some of you using this utility.

@maxbleatvt
Copy link

@ka87 What kind of encoding scheme is this? I'd like to learn more about what encode_table[] and decode_table[] mean.

@Tuxdude
Copy link

Tuxdude commented Sep 15, 2020

Got this PSU (AX1200i) for my new build for a sweet deal of $300 compared to the regular selling price of $400-$450 for this unit. I am also interested in understanding how you came up with the encode and decode table data? Any information you could share on the reverse-engineering from the USB packet sniffer?

I plan to do something along those lines mostly, but would be still good to understand how you were able to do it :)

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

4 participants