USB-C to PWM Fan Controller for CM4 and HackerGadgets AIO V1 Extension Board

Hi Everyone,

I am currently using my uconsole with a CM4 paired with HackerGadgets AIO V1 extension board. I would like to add a heatsink and fan as the uconsole gets very warm to the touch under load or while charging. I purchased this 52Pi heatsink with fan module that has 4 wires for V,G,PWM, and TACH. I would like to control the fans speed with PWM and understand that there are essentially no exposed/available PWM pins via the GPIO or on the AIO V1 extension board.

Since the AIO V1 extension board has an internal USB-C port, I thought about adding a fan controller that would be both powered and controlled via USB. I didn’t find any existing solutions specifically for this use case but came across this USB-C fan controller for 5V fans. My plan is to build a similar pcb based on either a STM32 or RP2040. To my understanding, I would need to write the firmware to convert data packets to PWM output. Does this sound like a viable solution? I am well in over my head but would like to use this opportunity to learn pcb design and writing the firmware. Please let me know if this sounds like a viable solution, a waste of time, or if there are better existing solutions.

I would use one of the unused gpio pins on the ext board connector to add a fan, that’s how the devterms fan worked too

Does the V1 ext board have gpio pins exposed? I don’t see any pins exposed apart from the 5V,G,D+,D- for USB https://web.archive.org/web/20250215094746im_/https://hackergadgets.com/cdn/shop/files/single-top.png?v=1738824274&width=1646

我猜想,他说的是通过uc主板上的gpio用于pwm控制,AIO V1用于5v供电。

实际上,我尝试过uc主板上的供电,可以让5v 3.3v风扇运作,但是由于我对gpio非常不熟悉,没能尝试找出一个pwm控制的接口。

好在我使用的cm5,在HackerGadgets处购买了新的转接板,支持cm5 fan,但是我只是测试了一下风扇,并没有最终安装,因为我不想放弃原装背壳,并且现在温度通过被动散热能控制在50摄氏度左右,还算能接受。另外我也是AIO V1

They’re exposed on the “PCIe” connector, so you need to solder some wires to the board, same way people used to add an internal sdr before we had the aio board