This fan cover plugs into the GPIO pins on the Raspberry Pi and controls a 5V fan based on the Pi's core temperature. There are two possible ways to hook this up. One is to directly attach the fan to the GND and 5V pins. This will make the fan run continually (not ideal) but it is very simple.
The other option is to control the fan speed with a small motor driver circuit as shown in the images. I am in no way an expert in these things but this circuit was working for me and I had these components on hand. If you make this, I would love to see the driver circuit you used.
I used a small prototyping circuit board and cut it down to 40x15mm. The board had a 2x3 header soldered to it that went into the pins boxed in the schematic. A 2x2 header would have also worked. Note that if your header is a different height, the board's mounting posts may need to be adjusted so the header reaches the GPIO pins.
There is a small python script that controls the fan speed through GPIO pin 3. It is a very simple script that linearly increases the speed from a 75% duty cycle at 55C to 100% duty cycle at 85C. The fan will turn back off once the Pi's temperature drops below 50C. You can either manually start it or set it up to automatically begin when booting up.
To do this in Ubuntu Bionic,
1) Place the fan_ctrl.py file into /bin
2) Add a new cron job by entering 'sudo crontab -e'
3) Add this to the bottom of the file that opens: ' @reboot python /bin/fan_ctrl.py &'
There are vented and unvented versions of the model for 40mm and 30mm fans. There is no operational difference between the vented and unvented versions so it all comes down to cosmetics. The 30mm model was made to work with the 'PiFan' (https://www.adafruit.com/product/3368?gclid=EAIaIQobChMIoM3Zn52C4gIVz__jBx3adwLCEAQYASABEgIZtfD_BwE) but is currently untested. Let me know if you use that file and it works for you.