View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002338||SpeedFan||Hardware support||public||2014-12-07 15:45||2015-12-22 18:59|
|Platform||Custom - see description||OS||Windows||OS Version||Any|
|Summary||0002338: Add support for custom DIY devices|
|Description||I am working on a prototype of an external PWM/sensor device. It is planned to be cheap (probably ~$5), use readily available components and is simple to build with minimal soldering skills.|
I am planning to release its sources and assembly instructions for free once its design is complete and reliability is proven.
I would like SpeedFan to be able to control and monitor mentioned device.
I do not have any established driver API or protocol ready yet, instead I would like to agree on API that's simple to implement on SpeedFan side.
I would love to hear ANY of your thoughts on this project!
|Steps To Reproduce||Rationale:|
You probably know how bad it is when you want to add a silent fan to some PC, but do not have a PWM-able header left on the motherboard? The usual solution is to connect all additional fans to one motherboard header in parallel, but that is not always acceptable.
There are commercial solutions to that problem, but they are rather expensive, and none seem to be able to read on-chip temperature sensors of a videocard or CPU.
I propose a simple Do-It-Yourself solution to the problem that can be driven by PC software
|Additional Information||Proposed API details follow - read if you're interested:|
I propose an API that could make it easy for anyone to write a SpeedFan-compatible custom driver/plugin for their PWM device.
My idea is that SpeedFan would delay-load all plugin DLLs from a dir upon its startup. Those DLLs would provide a couple of exported functions that SpeedFan would call to read sensor data and set PWMs.
I.E. something like this:
DLLEXPORT UINT8 GetRPMCount();
DLLEXPORT UINT8 GetTempCount();
DLLEXPORT UINT8 GetPWMCount();
DLLEXPORT UINT16 GetRPM(UINT8 RpmNumber); // Returns how fast a fan No. RpmNumber rotates (in RPM)
DLLEXPORT INT16 GetTemp(UINT8 TempNumber); // Returns temperature in 1/100 degrees Celsium
DLLEXPORT HRESULT SetPWM(UINT8 PwmNumber, UINT16 DutyCycle); // Set PWM duty cycle, min=0=0%, max=65535=100%
I am happy to write delphi code for plugin support, if needed.
I would like to hear your feedback, and would gladly accept any corrections and suggestions.
If you are interested in capablilities or design of current device prototype, I'd love to share that info too.
Thank you for reading this!
|Motherboard Model||N/A (See description)|
|Video Card Model|
|2014-12-07 15:45||Shambler0||New Issue|
|2014-12-07 15:45||Shambler0||Status||new => assigned|
|2014-12-07 15:45||Shambler0||Assigned To||=> alfredo|
|2014-12-07 15:53||Shambler0||Tag Attached: fan|
|2014-12-07 15:53||Shambler0||Tag Attached: DIY|
|2015-11-26 10:54||jaset||Note Added: 0007925|
|2015-12-05 07:21||papabaabaa||Note Added: 0007930|