Avoided going for another revision of manufacturing by mitigating the hardware issue with firmware logic.

  • Post author:
  • Post category:Blog

Recently designed a board for industrial automation. The scope includes Hardware and Firmware development. The application is “We suppose to control the speed of the 4 no’s fans with PWM and monitor the Fan failure from the Tacho pin. The actual application is different and vast. The stated application is to understand the problem.

Hardware design is done. Firmware testing is also done for the main functions of development kits. Everything is perfect. Prototyping is started. PCB fabrication done, Components sourced, Assembly done. Started the initial testing.

The hardware testing went well. We felt great since the board have no issues. During the functional testing, the complete board and functional. But only fan failure cant able recognize the board from the tacho pin output. Started debugging the issue. Initially, when we got details from the client, the client said that the tacho pin output voltage varies depending on the speed of the fan. We also trusted same as there is no datasheet of the fan available. But during testing, we came to know that the tacho pin output is a square wave. The frequency will change based on the speed of the fan.

Since we got inputs the tacho pin output is analog, The pin is connected to MCU analog pin. Now we need to detect the pulse to determine whether the fan is working. When the fan not working, the output of the tacho pin goes to the ground. The connected pins from the MCU side don’t have the capability to read the pulse raise. We almost thought that it wouldn’t be possible to make this feature work with this version of the board, so we suggested to the client that we might need to redesign it before going to production.

However, in the meantime, our team came up with a simple solution using the software part. We managed to solve the problem with a clever trick. We just kept checking the signal from this special pin three times in a row and then did an “OR” operation with the results. If the result is ‘TRUE,’ it meant the fan was working. If the result is ‘FALSE,’ it meant the fan was not working. The impossible problem is cleared with simple logic. The board has directly taken for the production.


PC: Mr.Srinivasa, Firmware developer, RioSH Technologies