Building a Smart Fan Controller with an STM32 — Project Kickoff

I’m starting this blog to document the PC and embedded systems projects I build from scratch — including the design, code, hardware, and lessons learned along the way. My first entry features a project that combines embedded development, custom PCB design, and smart control: a temperature-controlled fan powered by an STM32 microcontroller.

🔧 Project Overview

The goal of this project is to build a standalone fan controller that adjusts fan speed based on real-time temperature readings. It will feature:

  • A custom-designed PCB and potentially a 3D-printed enclosure
  • PWM control of a DC fan via P-channel MOSFETs
  • Fan speed control with a custom designed rotary encoder switch
  • Temperature sensing with the HDC1080 over I²C
  • Status feedback through an I²C-controlled OLED display
  • Automatic Fan speed control based on temperature readings
  • UART serial port I/O
  • USB power and serial I/O via a USB type C receptacle

This project will also become part of my product and content roadmap for Build in Charge, where I plan to offer DIY kits and tutorials in the future.

✅ What’s Working So Far

I’ve completed the initial hardware assembly and verified the following:

  • The custom PCB powers up successfully from the input source
  • The SWD interface is working, and the STM32 can be programmed
  • Onboard LEDs light up when driven by GPIO
  • The STM32 microcontroller is generating a PWM signal
  • The PWM signal correctly controls P-channel MOSFETs, adjusting fan speed dynamically

🔄 What I’m Working on Now

I’m currently integrating the HDC1080 temperature and humidity sensor via I²C. This will provide the data needed to make the fan speed responsive to environmental conditions. Once that’s solid, I’ll move on to the I²C LED interface, which will be used for visual feedback on fan state, temperature readings and battery life.

💡 Why This Project Matters

This fan controller isn’t just a one-off — it’s a proof-of-concept for future Build in Charge kits. The idea is to take embedded concepts like PWM, I²C, and sensor feedback and wrap them into something tangible, useful, and well-documented for makers and learners.

If you’re into embedded development, smart devices, or hands-on electronics, stay tuned — I’ll be sharing the next phase soon, including schematics, firmware walkthroughs, and possibly a demo video.

👉 Want to see photos or dive into the code? Let me know in the comments or connect with me on X as I roll out the build!

Leave a Reply

Your email address will not be published. Required fields are marked *