-
Plug your ears, this will hurt
05/30/2018 at 03:25 • 0 commentsAs promised, here's the frequency analysis of the original ZeroCool firmware running on the Rev B board. As I have been toiling away at finding a new work family, the board has not yet been flashed with the latest firmware. Developed using the breadboarded circuit as outlined in previous project logs, the latest version of the ZeroCool firmware uses a subsonic frequency that avoids any perceptible noise.
For now, I will leave you with this ear-tormenting graph. Let this be a lesson to avoid audible frequency ranges when pushing a PWM through anything that might act as a transducer, such as a mini cooling fan.
-
Rev B assembly & bring-up
05/24/2018 at 17:36 • 0 commentsAlthough the error-corrected version of my project was delivered by OSH Park a couple months ago, life intervened and delayed progress.
Following the typical order of operation for assembling a small board such as the ZeroCool, I first soldered the smallest devices to the PCB. This includes the passives, the FET, and then the opto. After I salvaging the MCU from the test Rev A board, the micro and the solderless terminals were affixed using hot air.
With an early version of the Rev A firmware still resident on the micro controller, I connected the temperature sensor and fan to the board via their respective terminals. 5V was then applied to the board. Expected behavior was observed; adjusting the bias trimpot resulted in a fan speed change.
Next steps: reprogram the MCU with a more recent firmware that corrects an audible fan whine by moving the PWM frequency outside the audible range.
-
Bring-up: Testing programmer, toolchain, and firmware
02/11/2018 at 21:10 • 0 commentsWhen I set out to build this project, I knew I wanted to keep the design as simple as possible, while achieving
more with the expansion board than just running a fan. Using inexpensive materials already on hand kept costs low. Early on in testing the feasibility of this project, I used an ATtiny85 using the attiny core from David A. Mellis. However, with my assembled board now using the tiny85's smaller cousin, the tiny13, my code needed to change. While I could continue to use the Arduino functions provided by MCUdude's microcore, I wanted more granularity of control over the analog input and PWM output than Arduino can provide. With an external editor, I keep the Arduino IDE open solely for its time-saving programming facilities, resorting to the command line when necessary.
Locating some code from a blogger from Leeds, UK, I was able to modify his PWM LED program to sample my thermistor bridge and output a fan speed appropriate to the temperature level. While I had already tested
the feasibility using of controlling fan speed with Arduino's analogWrite functions, I modified adnbr's code to read PB4/ADC2, match the reading to a frequency corresponding to a particular fan speed, and output this value on PB0/OC0A, which switches an opto-isolator and a MOSFET to control a cooling fan. Having assembled a perfboard with a tiny85 for long-term testing with another SBC, I know this design works reasonably well.
After assembling the board, I discovered an error made during the schematic and board layout stage of my
workflow. Specifically, I had swapped around the drain and source pins. D'oh! No wonder the fan was getting full VCC no matter what adjustments I made to the resistive bridge using the trimpot. While the MCU samples the bridge and outputs the correct equivalent pulsed voltage to the 4N25, the first revision of my board design has effectively bypassed the FDN340P, supplying the fan with full voltage at all times. Before making the appropriate changes to my schematic and board layout, I breadboarded the entire circuit again, this time using the ATtiny13 micro controller, and the FDN340P p-channel MOSFET. This allowed me to further test my code with nearly the same components as my board uses.
With the required change to the MOSFET pinout, I took the opportunity to also modify the mounting holes and round off the corners a bit. Given that my programmer is a recent addition to my arsenal, I also modified the 6-pin ICSP header's orientation so that the clip can better achieve a better fit.
-
If the shoe fits...
01/16/2018 at 20:09 • 0 comments -
Completion of PCB assembly is imminent
01/15/2018 at 01:57 • 0 commentsAlmost done with the board assembly, one more terminal (J5) to go. My Chip Quik solder paste from Aug 2014 is still viable, though some of its properties seem diminished. Takes a lot of work to get the contacts connected to the ground plane up to temperature, although that may have less to do with old solder paste and more my design.
-
Boards arrived
01/11/2018 at 17:10 • 0 commentsReceived boards back from OSH Park this week. Checked for mechanical mating to ensure measurements line up with the host board. Everything checks out okay, though the top mounting holes are not quite big enough for M3 screws. Thankfully nylon screws are just forgiving enough to be pushed through with a bit of force.
To-do: assembly & bring-up.