MM Defender 2013 07 07
After fixing my Defender last year (the thermistor screw head broke, the thermistor was partially inserted and frozen to the case and looked ok, so it took some analysis and trial and error to figure out that it wasn't ok and out of right place, then put it back in with a new bolt), I started it this year and ran the first tank perfectly, and caught a few early mosquitoes. The propane ran out, then there was several rainy days, and I let it sit there. After some drying, I replaced the tank, and it wouldn't start. After a lot of disassembly and testing, it still won't start.
The unit starts the fan and slow blinks for about 2:55. Then the igniter turns on and glows red for 5 seconds, then the LED blinks fast, and the fan eventually shuts down. The gas valve solenoid is never actuated, and the fan never slows down. It just tries the igniter for only five seconds, then it blinks an error.
The fan is working. The thermistor is working. I used a meter and scope to probe the unit. All power supply voltages are normal. The unit is room temperature and has dried for several days. It can't be the solenoid, valve, regulator, or tank because these parts are never actuated.
The PCB didn't look too complicated, so I searched for a schematic for the PCB, in vain. I reversed engineered the PCB and made a schematic, which I can post (how?) if anyone is interested. The PCB is not that complicated, and seems to be only two layers. The micro-controller (uC) seems to be a Microchip PIC, but I cannot determine what the part is. The marking is "American Biophysics Defender" plus "AHEX" then "M(icrochip logo) 032531A". It looks like this chip was custom programmed by Microchip prior to shipment to the assembly house. The PCB does not have separate connectors or test points for programming the chip.
Looking at the schematic and PCB, the third wire from the fan is not connected, and I can't find any fan feedback to the uC. Ditto the igniter. Also, I can't find how the uC reduces the fan speed, other than by pulse width modulation of the supply voltage to the fan. The only feedback going to the uC is from the thermistor, which forms part of a clever circuit that applies a periodic voltage pulse to the thermistor to begin charging a capacitor, and measures the voltage a period of time after the pulse starts. There is one charging resistor, and 3 resistors of widely different values that could charge or discharge the cap depending on the state of 3 uC pins. Counting the pin that connects to the cap, that's 5 pins for the thermistor! One of them must be a comparator or a/d converter input.
So, if there is only 1 dynamic input to the uC (other than the switch and differentiated +5v power good input), what test could be failing to prevent the actuation of the gas valve solenoid and the fan speed reduction?
With what I think I know now, the thermistor seems to be the only source of a test the unit is failing, causing the fault shutdown. But how could the thermistor respond to the igniter heat within 5 seconds to cause the test to pass? The thermistor sensor rod is 1.5" away from the igniter, and the rod is pretty massive, so how could it heat up so quickly (in 2-3 seconds) so as to indicate the igniter was working? And of course the thermistor circuit has to distinguish between the temperature rise caused by the igniter and the higher flame heat.
I am stuck, and am hoping this post will elicit a response. In the meantime I plan to: 1) put a heat gun on the thermistor to see if the uC will actuate the valve solenoid. 2) crack the case and clean everything. 3) Investigate 4 seemingly unconnected pins on the uC. 4) Install appropriate test points and hook up a logic analyzer and document the startup sequence. 4) Purchase a second unit while fiddling with this one. 5) Get a PIC programmer and see if I can reprogram the chip for better diagnostics (however, the chip is probably write protected, so I won't be able to save the original code, so I will be on my own if I do this). 6) Buy another PIC controller (but which?), replace the original, program it for better diagnostics, and use the new controller.
I think that this particular PIC controller, whatever it is, is too low end. Otherwise it could flash specific error codes that a tech or user could use to determine a specific fault. Why can't the unit diagnose itself?
I have read of other users disabling and hard wiring the gas valve solenoid to keep the unit working, and it is either working for them now, or perhaps their unit has been destroyed by a gas explosion following a power interruption. But I am nearing that point, so please help!
Specifically, I am asking:
1) What could cause a fatal error 5 seconds after the igniter actuation? 2) What could happen because of exposure to a few rainy days while out of propane to cause this condition? 3) Does anyone have a Defender PCB schematic they could upload or send privately? (I can upload mine if anyone is interested.) 4) What is the PIC micro-controller part number? 5) Is there any interest in upgrading the PCB to include error codes and better diagnostics? 6) Could this site be used to start a hardware/software project topic for the above, or should another web site be used? 7) Connector J4 is not used or populated (connector not inserted). Is it for another model? What is the purpose. One pin has +5v and the other goes uC pin 2, with a 10k to ground. 8) Regarding buying a second unit, should it be a Mosquito Magnet Defender, or is there something better now?
Please feel free to reply and comment on anything in my post on this list. I have given up email (spam), and this should be a public discussion, so please post it here.
7/13/2013 4:55 PM
Well, it lasted for one tank of propane. The intermittent has struck again. I measured everything, and got results that are quite different from the last time. Too bad I didn’t have a scope camera when I published the timing on the schematic and circuit explanation, because the results are completely different.
In this failure mode: The short pulse lasts for 2.5 ms but charges C4 to 3.5v, not 2.5 volts. This voltage matches the Vih of T0CKI, which is typical 3.3v at 5v Vdd and 25 degrees C. With the thermistor disconnected, the long pulse is 23 ms, but it charges C4 to only 2.0 volts, flattening out. Connecting the thermistor charges C4 to 2.8 volts, and is apparently insufficient to shorten the long pulse, which remains 23 ms. The thermistor measures 194 kOhms. Removing power and thermistor and all assemblies, I measured the static resistance to ground on C4 at about 100-110 kOhms, fluctuating.
I have to consider that my previous measurements of 2.6 volts are inaccurate, perhaps because of an intermittently defective scope probe, or some other sloppiness on my part. Consider that the T0CKI input is supposed to trigger at nominal Vdd x 0.85 minimum or 4.2 volts with Vdd = 5v, and typical of 3.5 volts. This is much higher than 2.6 volts. If RB7 were used as an input, it would switch at only 1.4 volts typical at 25C, much lower. So 2.6 volts just doesn’t make sense. Also, the previous measurement was remarkable and memorable because the voltage levels for both the long and short pulses were the same, or nearly so, regardless of whether the thermistor was inserted or not.
The 100 kOhm resistance to ground is apparently dragging the circuit down, preventing the C4 voltage from driving the input high enough to trigger the input, resulting in a “bad thermistor” fault. I examined the pcb and cleaned it again with isopropyl alcohol to eliminate any trace contamination. But the R to ground remained. Measuring the four other pins RB4-7 showed the resistance increased by the corresponding series resistors. This leaves the T0CKI input itself. This pin is ESD protected by a diode and FET, then it feeds a series resistor into a Schmitt trigger.
If T0CKI is dragging the thermistor circuit down, the pin is either damaged, or not programmed correctly. I tested the power on rise time, and it was about 10 ms, which is under 18 ms that is used by the power on reset delay circuit. I was disturbed, however, by a burst of high frequency as the voltage went through 3-4 volts or so. Could this be the RC clock or some other oscillation, and could this somehow fool the uC? Reading the data sheet, there doesn’t seem to be any options that would affect the input resistance. The only options are to reverse the input polarity, and insert a pre-scaler. There is no option to make the pin an output, it is always an input. So, it the Schmitt trigger is somehow misbehaving, or the input ESD circuit broken down a bit to create an equivalent 100 k resistance to ground, there are no uC registers that would change this. So, if the input is working at all (as it seems to be with the short pulse), then it seems that a hardware solution (addition of a buffer amplifier) will be required. But, remember, this problem cleared itself a month ago, only to return. If the input had gone haywire during the trap operation, it would have shut down (low temperature), but it didn’t, it just finished the tank, stopped, then another rain storm (don’t know about lightening), and now unhappy days.
The next step is to unsolder the T0CKI pin and see if the 100 kOhm resistance goes away. If it does, I will try adding an amplifier. If not, it has to be somewhere else. This is also a good time to insert a 10k or so resistor in the Vdd/~mclr.
Well that was fun. I lifted 2 pins T0CKI and RB7, and there was no change. Then I lifted C4, and that was the culprit. Not the cap, but some residue under the cap that was conductive as long as the humidity was not very low. It seemed that the cap was very low to the pcb, with almost no clearance, and there was some original solder flux residue under the cap that could absorb water and become conductive. I can’t quite explain how that PCB was manufactured. If it were using solder paste with
For the sake of completeness, I lugged the propane tank indoors and downloaded a timer program. Here is the starting sequence
Timing and Thermistor Circuit Pulse Widths
-30 secs | plug in AC power | |
0 | switch on | 13.5 ms -- room temperature |
2:57 | low speed solenoid on | |
3:10 | first change | 13ms |
4:02 | 8 ms | |
4:40 | 5.5 ms | |
5:00 | 2.4 ms | |
7:00 | 0.8 ms | |
7:50 | Turn gas off | |
9:56 | 1.0 ms | |
11:06 | 2.4 ms == to short pulse | |
12:00 | 4.0 ms | |
12:45 | flashing Led | 6.0 ms |
13:26 | 8.0 ms | |
14:06 | 10 ms | |
14:55 | 12 ms |