Windows Bios Settings
Computer Organization Final Project

Working on cable management with Samar Qureshi ^_^. Click on the picture for a video demo!
Project Details
At a high-level, this project monitors emulated “CPU temperature”, then maps the current temperature to a PWM command that drives a cooling fan, along with other neat Windows Bios features.

Final systems architecture.
Hardware and Software Algorithms
Before connecting all the hardware to the dev board, Samar made sure everything worked on an Arduino MCU beforehand. We then began by prototyping the PWM algorithm using a software timer, then a hardware timer, then a hardware timer using interrupts on the rising and falling edge of the signal for CPU efficiency. Once the PWM algorithm was stable, the next task was to get the temperature sensor calibrated to room temperature, and updating in real-time on the dev board’s ADC, and displaying this value on the 7-segment display. We wanted to go for a Windows 95 aesthetic, which thanks to the old VGA monitors, turned out pretty realistic. The VGA updates the current CPU temperature, fan speed, and CPU load in real time. The user is able to control the interface using a PS2 keyboard to switch between settings, and if they choose to exit, the program goes into BSOD (Blue Screen of Death) mode playing the classic windows terminating sound :( .
To learn more
Check out the repo or the presentation deck below.