PWM FAN control for the AXIOM Beta
Open, Needs TriagePublic


Implement PWM FAN control to regulate the AXIOM Beta FAN speed.
This task comes in different flavors, ranging from Easy to Medium.


  • Implement an I2C based PWM controller (Easy)
  • Integrate temperature sensors into control loop (Medium)


  • I2C Know-How

Language Skills:

  • HDL (VHDL or Verilog)

Difficulty: Easy to Medium

Mentors: Bertl

Notes: If you do not have access to the required hardware platforms/dev kits, we will provide them (or remote access) to you for the duration of the project.

Related Objects

Bertl created this task.Feb 9 2017, 4:26 PM
Bertl updated the task description. (Show Details)
Bertl raised the priority of this task from to Needs Triage.
Bertl moved this task to FPGA / HDL on the Google Summer of Code 2022 board.
Bertl added a subscriber: Bertl.
Bertl updated the task description. (Show Details)Feb 9 2017, 5:22 PM
Elbehery added a subscriber: Elbehery.EditedMar 10 2017, 2:01 AM

Hey @Bertl, two days ago i asked if i can post a simple prototype for the I2C slave and you said its okay.

Please let me know your feedback.

I do still have many questions regarding the big picture of the project, but based on your feedback i will then post them on the IRC.


Elbehery added a comment.EditedMar 13 2017, 11:14 PM

Hey @Bertl, just implemented the top module including the PWM interface, and so far the module seems to work based on the test bench results. Let me know your feedback,

niculescu_vlad added a subscriber: niculescu_vlad.EditedMar 14 2017, 2:19 PM

I will start sending my solutions here:
Elbehery did a great job and implemented the I2C module. I wrote a simplified but functional iteration of PWM generator and now, I want to start working at the PID controller.

Some points related to the 2nd part of this task [The software controlling the fan]

  • The software will use the T757 interface to collect sensor(s) readings
  • There are different modes of operations that are determined based on the collected readings, and are reported to another software
  • The software should be able to determine the state of operation based on the collected readings, and will act differently in different states. For example; In state A the software should keep the fan silent as possible while preventing the system from overheating, while in state B the fan is allowed to run at higher speeds to cool the system down as good as possible