Using a fan controller IC w/ Arduino

While I know there are capable fan controllers for PCs (e.g. NZXT Grid+, Aquareo, others), I've pondered building my own so I can have more control over the feature-set (e.g. also being able to control LED strips) and form-factor and also have an easier means to control them over Serial. I've had pretty good success using serial over USB for other projects.

I've seen various posts here about using just the Arduino to do fan-speed controlling, although this seems to involve a lot of caveats. I noticed that Maxium makes quite a few options for this, albeit ones that require surface mount soldering the MAX31790 uses TQFN and the MAX6650/6651 uses uMAX or QSOP. I've done TQFP before but TQFN would new interesting. According to Youtube, it looks doable by hand though (or perhaps a reflow oven might be better/). Otherwise the 31790 seems to be a near perfect match for my requirements.

That said, I was curious as to if anyone has tackled something like a USB/serial multi-fan controller before? I noticed there is a library for the 6651 already, although since all these use I2C I think it shouldn't be too terribly difficult to use them without.

I'm asking in part just to see if folks ran into any compatibility with fans. The NZXT Grid+ V2 works well enough for some fans, but it's fickle with others. It does only support voltage controlled fans (as opposed to PWM) so that may be part of the problem. I also haven't cracked it open to see what sort of fan controller it's using yet. The above would be a heck of a lot of work to run into the same problem, though.

As an update, looks like Maxim makes an evaluation kit to make it easier to play around with:

https://datasheets.maximintegrated.com/en/ds/MAX31790EVKIT.pdf

Looks to only support PWM fans (the IC itself can drive fans via voltage but requires some extra parts to do so).