Home     Contact     Projects     Experiments     Circuits     Theory     BLOG     PIC Tutorials     Time for Science     RSS     Terms of services     Privacy policy  
 Home      Projects     Experiments     Circuits     Theory     BLOG     PIC Tutorials     Time for Science   

26 January 2010
Author: Giorgos Lazaridis
PC System Health Monitor

Worklog - Constructing the modules (January 30 2010)
The Fan controller Modules

I will start with the construction of the fan controller modules. There are mainly 2 reasons for this: first of all, i want to have all 6 modules fully working for test with the master, but not on a breadboard, it is not the correct way, too complicated. The other reason is that these modules are much more interesting than the DS1621 modules... After all, for the DS1621 i will solder them on pre-drilled prototype boards.

One challenge during the drawing of the modules was the size. It had to be as small as possible. Each module will be fixed on each fan, and thus it has to be small enough to fin in the center or the side of the fan. I used the eagle once more for drawing the schematic and the PCB.

After many layout changes of the components on the PCB, i finally managed to fit them all in a 24x26mm PCB. I xeroxed an array of 3x2 PCB layouts on a transparent film. Then, using my LED UV artwork photo-transfer box, i transfered the PCBs on a positive photosensitive board. Then, i used Fe3CL and within 3 minutes i had the PCBs ready. With my pen-style drill i made the holes on the pads. I have to admit that using this Foot Pedal the job was much easier and faster. Using my dremel cutter, i cut the PCBs to size.

I made an array of 2x3 PCBs on the board. I used Fe3Cl to etch the board. I cut to size the PCBs with the dremel. The final size was smaller than 24x26mm.

Note that this controller is described in details in a previous PCB Heaven circuit and it worth reading:

PIC 3-Wire PWM Fan RPM Controller

I could make it smaller by avoiding using the 5-pins connector interface, but i did not want to have the communication wire directly soldered on the PCB. After quite some time, i soldered all the parts on all 6 PCBs. I always like when i see same things lined up, especially when these same things are made by me:

See also the following image. The PCB is glued in the center of the 120mm fan:

The DS1621 Temperature Sensor Modules

I tried to make the sensors as compact as possible. Actually, i did not make any special PCM. Instead, i used a small piece o pre-drilled prototype board. I usually never solder the IC directly onto the PCB, so i soldered an 8 pin IC base first. Then, i connected the 4 wires (positive, negative, clock and data) directly on the pins. With the same wires, i made also the hardware addressing for each module, thus i now have the module Nr. b'10010000' and module Nr. b'10010001'.

I used normal telephone wire for wiring these modules. I could avoid using the IC base and the prototype board to make it even smaller. But imagine what will happen if i had to change the DS1621 due to chip failure... Here are photos of the temperature sensor modules

P.S. If you want to learn how to interface these modules, i have make earlier a complete dual thermometer circuit using DS1621 chips. You find the details following this link.

The two temperature sensor modules ready to be hooked up to the bus A close look on the DS1621 temperature modules

The Local Bus

So, the 8 modules are ready! Its time to hook them up on the bus. The bus actually will be a running wire with it's one side connected on the master PCB. The wire will run all around the PC box, and all modules will be connected in parallel. The bus will provide the 5V that the modules need to operate, as well as another line with 12 volts that can be use for powering loads, such as the fans.

Originally i had design the bus as a running wire with each one module separately connected in parallel to it. But after some thinking, i decided to connect the modules in "depots", from where all the bus-modules of the specific depot will depart. So, we have 3 depots. The first one is the middle depot. This one carries two fan modules for the two circulating fans in the middle of the PC box. The next one is the outlet depot. This one carries two fan modules and one DS1621 module. The two fans are at the air outlet of the box and the DS1621 will measure the air temperature at this point. The last depot is the inlet depot. This one has another 2 fan modules and the last DS1621 module. The fans of this depot are for inserting fresh air in the box, and the DS1621 will measure the air temperature that is going into the box.

Here are the photos of the 3 depots:

The middle "depot" The outlet "depot" The inlet "depot"

Here is a photo of the complete bus:

The Analog Temperature Sensors (NTC Sensors)

I thought that this would be the easiest job to do. Surprisingly, this was the hardest. The wiring, the soldering, the heat-shrinks and generally all the labor took me a LOT. First of all, i made a wire with 10 poles for 10 sensors. I curently have the first 8 sensors soldered on this wire. I call this wire "Grape-palm", because one side looks like a grape (with much imagination) and the other side looks like a palm leaf.

An overall image of the harness The Palm-side The Grape-side The 12-pin connector of the harness

The North and South lanes inside the box

The palm-leaf has 4 sensors for the first 4 HDDs. The Grape-side has another 4 sensors. The first one will be attached to the heat-sink of the CPU, the next one to the heat-sink of the GPU, and the other two will indicate the temperature to the north and south lane. these two lanes are the two imaginary lanes that the air flows inside my PC box. Each lane has an 120mm fan (the middle fans) that will force the air flow through the lane. The North lane has the GPu and the South lane has the CPU and the memory DIMMs.

I have kept two wires free from this harness for the other 2 HDDs. Yet these wires are not connected. Also, two more sensors (a total of 12 sensors) are attached to the same 12-pin connector. The first sensor is for the output of the pwer supply. The other one is... i do not know yet. I have not decide :).

Excuse me for the mess in the box. The wires looks like spaghetti, but the box is still under construction

Attaching the sensors to the HDDs
One of the difficulties that i came in front when making the analog sensors, was the way to mount the sensors on the HDDs. The NTC sensors have NO flat surface, they cannot be mechanically stressed, they need good contact to get good measurements... Nothing that could help me. A few steps before insanity, i came across a 6mm2 wire connector, that was actually the solution. I took out the plastic cover with a razor. Using a pair of pliers and my small ========, i straightened the round metal that grips the wire. Then, again with those tools, i shaped the metal so that it can cover the sensor WITHOUT touching it. The metal is surrounding the sensor like a cage, but without putting any mechanical stress.
I used wire ring connectors without the plastic cover First i straighten the metal... ...and then a formed a cage. The cage had to cover the sensor without applying any mechanical stress on it

I put some heat-transfer paste there that the sensor will touch. Then i took a small piece of heat insulator from copper heating pipes and covered the sensor. This material has double role: It will insulate the upper side of the sensor from the ambient air, and it will act as a spring, holding the sensor down in contact with the HDD. All this sandwich is kept in place with the cage that i made before!

I used heat transfer paste for better contact I put the sensor on the paste Using the cage and a piece of insulating material, the sensor is kept in place All 4 HDD have each one ona sensor!

Testing the sensors

A "panoramic" view of the PC in operation with the sensors under test

Before going to the next step (that would be the fans), i had first to test all the sensors. The LCD layout is a little bit messy, but i had to have all the informations displayed all the time. The first 4 temperatures on the top left corner are the 4 HDDs. The two bottom right temperatures comes from the DS1621 accurate temperature sensors. To check the measurements from the HDDs, i had to cross-check them with the DS1621s. So, just for this test, the DS1621s are mounted on two HDDs, one on the first and one on the last HDD in series. Here are the results 5 minutes after powering on the PC:

To help you distinguish which temperature is which, i have colored circles. Here is the legend:

  • RED: HDD-1. Two red circles exists, one from the NTC sensor (up left) and one from the DS1621 (bottom right)
  • GREEN: HDD-4. Two green circles exists, one from the NTC sensor (up left) and one from the DS1621 (bottom right)
  • YELLOW: HDD-2 and HDD-3
  • WHITE: South lane temperature
  • PURPLE: North lane temperature
  • ORANGE: Power supply output

The '000' numbers on the right comes from two fan speed sensors, but right now i have non in operation. The other two temperatures that have no circle, comes from the CPU (right value) and the GPU (left value).

At a first glance, i was astonished by the HDD temperature readings compared to the DS1621 accurate temperature sensors. I was expecting a greater difference. I had to wait more time for the temperature to rise. I went for dinner (twice), watched some TV garbage, had a bath, and 2 hours later:

An -almost- perfect match between the DS1621 and the NTC sensors. I believe, i am ready to go to the next step!



  Email (shall not be published)


Notify me of new posts via email

Write your comments below:
BEFORE you post a comment:You are welcome to comment for corrections and suggestions on this page. But if you have questions please use the forum instead to post it. Thank you.


  • At 14 February 2010, 17:23:23 user Kammenos wrote:   [reply @ Kammenos]
    • I should have mention it in the article. I may add it later on. I add the cap because i could not drive with PWM this fan and get rpm feedback at low rpms. I have face the stall problem myself using other fans. But this fan has not any particular problem by reducing the voltage. After all, i will never drive them below 800rpms. And this circuit can go even lower w/o stalling the fan.
      Actually, the problem with PWM was that (maybe you have face it also) from lower to higher rpms, the duty cycle was changed only a couple of steps %. I tried from very low frequencies up to very high frequencies, still the regulation was terrible. That's the reason for this cap.

  • At 14 February 2010, 16:41:19 user Tom Hargrave wrote:   [reply @ Tom Hargrave]
    • I have not even had time to build your initial circuit - I\'m too busy supporting our original speed controller and designing a new temperature controller right now but will get to this soon. And when I do I\'ll send you the results.

      I see that you have added a 470uF cap across your FET, converting your PWM back to a noisy switching power supply. Can you explain why you added the cap?

      We tried a cap across our switching tansistor but found that the motor tended to stall at lower RPMs. But we did come up with a design using a smaller cap & second resistor in the power transisitor drive circuit that stretches the transistor on ramp and reduces the on-pulse kick from a loud growl to very soft pulses. This change would not work with your circuit because you are running at a much higher frequency than we are.

  • At 14 February 2010, 12:35:41 user Kammenos wrote:   [reply @ Kammenos]
    • Tom, i posted the new circuit. Will you test it with your fans? I look forward to hear the results.

  • At 13 February 2010, 14:37:54 user Tom Hargrave wrote:   [reply @ Tom Hargrave]
    • I realized after my last post that my logic behind sampling only when the fan is on flawed. With your higher frequency design, your RPM pulse train is slower than your drive frequency. To make this design work for you, you would need to convert the incoming RPM pulse into a shutter or gate then count the number of PWM pulses riding in on the pulse. And since the PWM frequency is a constant, you can translate the PWM pulse count into RPM.

  • At 13 February 2010, 7:40:56 user Kammenos wrote:   [reply @ Kammenos]
    • Yes, i changes the 4049 with an 741 that i have in stock. The reason for the 741, is that i have a lot of them to foll around. I will post the circuit or course.
      As for the second post, i suppose that this would work as well. This will dramatically reduce of course the signal reading interval(i read about once a second) because then it would be very hard to keep the rpm low.
      Will you try this? If you do, please post the results.

  • At 13 February 2010, 2:57:29 user Tom Hargrave wrote:   [reply @ Tom Hargrave]
    • I was sitting here looking at my O'Scope and eating my Dominos Pizza when the real solution just came to me!

      Instead of trying to condition the short pulses that occur when the fan is off, you should restrict your speed measurements to only when the fan is on. I'm assuming you can trigger a internal loop on the rising edge of the PWM on pulse? Then you can count incoming tach pulses across a fixed time window and calculate the fan's RPM from the pulse count. You may end up slowing your frequency back down in order to provide a wide enough window to measure your fan speed at all settings. You can even use a tach output pull-up resistor that's tied to your controller's 5V rail, possibly eliminating any need for signal conditioning.

  • At 13 February 2010, 1:33:32 user Tom Hargrave wrote:   [reply @ Tom Hargrave]
    • You don't state in the text but I assume you replace the circuit you built around the 4049N with your LM741 based trigger circuit? At least the components on your board supports this.

      It's been a long time since I designed anything around a LM741 OP Amp and the design is getting old. Maybe you can design the entire analog side around one LM324 OP Amp or if you want to stay with two 8 pin packages, something more efficient like a TLE2021?

    reddit this Reddit this

     HOT in heaven!

    NEW in heaven!

    New Theory: AC electric motor working principle

     Contact     Forum     Projects     Experiments     Circuits     Theory     BLOG     PIC Tutorials     Time for Science     RSS   

    Site design: Giorgos Lazaridis
    © Copyright 2008
    Please read the Terms of services and the Privacy policy