View Issue Details

IDProjectCategoryView StatusLast Update
0002338SpeedFanHardware supportpublic2015-12-22 18:59
ReporterShambler0 Assigned Toalfredo  
PrioritynormalSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
PlatformCustom - see descriptionOSWindowsOS VersionAny
Product Version4.50 
Summary0002338: Add support for custom DIY devices
DescriptionI 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 ReproduceRationale:

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 InformationProposed 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!
 -- Shambler0
TagsDIY, fan
Motherboard ModelN/A (See description)
Video Card Model

Activities

jaset

2015-11-26 10:54

reporter   ~0007925

I too would find this quite useful as I'm currently building my own PWM fan controller as my motherboard is quite limited and groups multiple headers into a single PWM profile.

papabaabaa

2015-12-05 07:21

reporter   ~0007930

Nice idea!

Issue History

Date Modified Username Field Change
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