Voltcraft IR 900-30S Pyrometer teardown and diagnosis attempt - Page 1
Forum section: electronics / general

author: olewales
author_rank: Regular Contributor
timestamp: September 19, 2014, 08:44:44 pm
content: Hello,I boughtthisdevice for about $15 from company that handles products from customer returns from western Europe (mostly Germany, I think). It was advertised as "IR measurements are inaccurate". I thought that in worse case scenario with its nice narrow optics would still be an useful tool to quickly scan for temperature points that stand out even if absolute measurements were way out. In the best case it could be perfectly fine because customer who returned it wasn't familiar with concepts like emissivity. (I bought lots of perfectly working stuff from this company advertised as not working properly).I received it today and indeed "measurements are innacurate". In fact the IR sensor seemed to not react whatsoever to whatever it was pointed at. Changing the the emissivity value does change the readout BUT it seems to be working the other way round. At E=1 display shows temperature of about 3degC, at E=0.5 its -32degC, at E=0.1 it goes lower than -60deg (offscale). I am pretty sure that is not the way it should work (with lower body emissivity higher positive correction should be applied).Of course I immediately proceeded to teardown to see if there is any obvious fault. In the process of doing so I took some pictures I'd like to share with youHere is how the boards are arranged internally (already took it out of the case and detached optics from IR sensor)The whole thing consists of 4 boards. The sensor board (leftmost top), processor board (left), lcd/keypad board (right) and the board with K-type probe connector (bottom). Interestingly the bottom board seems to be also populated with some other sort of connector but it is neither connected to anything, not accessible in any way from the outside. Probably some form of production cost optimization by sharing parts with other products but still a bit strange.Here is the different view of middle boards (populated side)Model markings on the right board suggest that it may a relative toDT-8856 infrared thermometerbut I guess that only display board is reused since this one lacks USB/wireless connectivity option.Some closeups of IC's on the main board.HCF4053 - Triple 2-Channel Analog Multiplexer/DemultiplexerChipower CE7660- Charge Pump DC-DC Voltage ConverterNXP PCF8574T - Remote 8-bit I/O expander for I²C?bus with interrupt.Microchip 24LC08B - 8K I2C Serial EEPROMTI LSD4FE8232 - Obviously some sort of microcontroller. Couldn't find any datasheet but searching for this part number suggests that this is MSP430.On the display board there is only one IC: PCF8576CT - unsurprisingly its Universal LCD driver for low multiplex ratesOther side of the boards:Not much to see here.On the main board there is a measurement button, buzzer, some configuration switches accessible from battery compartment and markings for JTAG and BSL connectors.On the display board there are some marked jumpers. Maybe for triggering calibration or used during factory testing.Last but not least: sensor boardMarking on the IC in the corner are unreadable at this angle but its AD8571 - Zero-Drift, Single-Supply, Rail-to-Rail Input/Output Operational AmplifierBroken insulation on one of the sensor leads is a result of me checking its continuity.The sensor itself:I have problem finding any information on this one. I'll be glad if someone could shine some light on it.Optics assembly feels very nice. Its body is cast from some alloy and it has proper infrared lens (germanium?) inside. Not a simple plastic fresnel found in cheaper units.Interestingly after powering up the device without the optics assembly it started to react to some form of radiation. It alternates between previous state and overload when compact fluorescent light bulb enters the sensor field of view. Obviously lens must act also as a filter for everything except specific part of infrared spectrum.I am pretty sure at this point that this device is beyond economical repair. Even if its something as simple as faulty opamp I doubt I could replace smd part by myself. Still, I'd like to investigate further on what could go wrong here. I am open for suggestions.

author: Rasz
author_rank: Super Contributor
timestamp: September 20, 2014, 02:36:18 pm
content: 1/ measure voltages2/ tap in front/behind that opamp on the thermopile board, wave something hot and look for the changesbtw it looks like melexis thermopilehttp://www.melexis.com/Infrared-Thermometer-Sensors/Infrared-Thermometer-Sensors/MLX90614-615.aspxedit: nope, wrong anglemore like GE oneshttp://www.ge-mcs.com/en/temperature/infrared-ir-sensors.htmlor thishttp://www.micropik.com/PDF/tps234.pdf

author: olewales
author_rank: Regular Contributor
timestamp: September 21, 2014, 07:16:11 am
content: Thank you for your suggestions on possible thermopile candidates. Its definitely not the first one as the one described in the datasheet is digital and device markings do not match at all. Hard to tell about the second and third link because those manufacturers do not seem to write anything about case markings they use.I foundthis onewhich almost matches but not quiteQuoteVoltage measurements in reference to GND:Marked pins on the bottom of the sensor boardV+: 2.996 (opamp positive rail)V-: -2.891 (opamp negative rail)RT: about 123mV. This does not seem to react to the objects in front of the sensor but it seems to drift when I put my finger directly at the sensor package. This must be output from internal thermistor.IR: about -8mV at when sensor is looking at an object at ambient temperature. (its a bit unstable) Got it to about 0.35V positive when placed a piece of hot metal in front of the sensor (over 100degC measured with another pyrometer). This seems to be sensor output after amplification. Pyrometer specification states that it can measure temperatures up to 900degC so assuming linear voltage/temperature characteristic and upper limit at 3V this seems to be reasonable.Marked pins on the sensor:RT: trace going straight to RT pin on the bottom of the PCB. No point in measuring.IR: My UNI-T shows 0.01mV at ambient. 2.7mV when hot object appeared in sensor field of view. Hard to tell without a datasheet but I guess it's the kind of voltage you can expect from those devices.I can try to measure values directly at opamp package leads but it's going to be tricky using only two hands.I guess the next would be to check if analog signal changes between leaving the sensor board and entering the uC's ADC. Locating a specific pin without the datasheet may be a bit tricky though. I'll also try to locate the voltage powering the microcontroller.

author: Rasz
author_rank: Super Contributor
timestamp: September 21, 2014, 03:42:09 pm
content: looks ok so fartest 4053 now, maybe its not switching correctly between sources (micro probably has only one adc input)btw have you tried connecting thermocouple to that socket on the bottom? also where is it connected? to 4053?

author: olewales
author_rank: Regular Contributor
timestamp: September 22, 2014, 01:46:46 am
content: I am also convinced that the micro has only one ADC. It may have integrated multiplexer as some MSP430 do but presence of the HCF4053 indicates that this one doesn't or the designers decided not to use it for some reason. I tried the thermocouple and yes, it does work and seems to give correct measurements.I am not sure how analog signals are routed because they go through network of passives (visible in the photos between main micro and chipower IC) which make simple check using continuity tester impossible and dense component placement makes optical trace following somewhat difficult.As for HCF4053 I have problem reliably probing it searching for signal that is not very big and distinctive in the first place. Honestly, I am not even sure that I identified position of pin 1 correctly. There are no visible markers on the IC.I have an idea which I will probably try tomorrow. I'll desolder senor board completely and replace it with potentiometer in voltage divider configuration between V+, IR and V-. This should make further testing a bit easier.I've also checked voltage regulators and they seem ok. There actually two of them for each rail (3V and 5V). I suppose they might be separate for digital and analog sections.

author: Rasz
author_rank: Super Contributor
timestamp: September 22, 2014, 11:31:15 pm
content: looks like first 9 pins of 4053 are grounded on your picso only channel A is usable

author: olewales
author_rank: Regular Contributor
timestamp: September 23, 2014, 05:42:15 am
content: You are right!, I actually never noticed that. This means that I was numbering pins incorrectly and side with pins 1-8 must be grounded because control pins are on the other side.I replaced sensor board with a pot and device behaves exactly the same (measurements go into overload in a few different places on the pot scale, its only possible to get temperatures of -50 to about +30 on the scale, then it sits on +955 on the upper third of the potentiometer movement range). I am now convinced that the termophile itself is ok. I wonder if this can be calibration data issue. But unless there is a full table mapping all possible ADC inputs to measured temperature in that EEPROM I don't think it should behave that randomly.Knowing the correct pin numbering I identified pins of HCF4053 12,13 as inputs and pin 14 as output. But then I discovered that this analog mux is not simply feeding measured IR signal and thermistor reading separately into ADC but rather doing some sort of range switching. On the closeup photo a trace can be seen that connects thermistor pin from sensor board straight into first input of the MUX. But this signal is also on the other side of the board routed into that analog network. And in fact this is the signal that is supposed to be on the output most of the time (which I discovered by probing "A" control pin). Only when I simulate (via pot) input signal at quite high level control signal A becomes high (selecting second input) with short low pulses once a second or so (maybe the program is checking if it should "range down" again).Now, about checking that HCF4053.I must admit that I never worked with such device and I am a bit puzzled about how it exactly works. I cannot measure channel resistance in circuit but when the input is selected it seems to sit on the same level as the output.

author: olewales
author_rank: Regular Contributor
timestamp: September 23, 2014, 03:52:47 pm
content: Ok, I realized that my description of device behavior might have been a bit chaotic so I've done some measurements and plotted them against each other.IR is the (simulated) input from IR sensor.RT is thermistor input. Here connected to constant 100.5kohm resistorMUX in1, MUX in2, MUX out are pins 12,13 an 14 respectively.Readout is the temperature on display at emissivity set to E=0.95. When value is not present the display shows "---".

author: Rasz
author_rank: Super Contributor
timestamp: September 28, 2014, 06:29:56 pm
content: im out of ideas (other than replace 4053/ all caps around)maybe trace mux output to adc input, cut trace/lift component in the way and connect your potentiometer there - this way you will see if micro is able to display sane gradual values instead of weird small range you are getting now

author: kxenos
author_rank: Frequent Contributor
timestamp: September 29, 2014, 05:00:53 am
content: Haven't read the thread but this data seems like there's an opamp with open feedback loop or a problem with ADC's VrefEdit:Try reheating solder joints in case of cold junction

author: olewales
author_rank: Regular Contributor
timestamp: September 30, 2014, 04:16:51 am
content: Ok, here is what I found out since my last post:Previously I stated that thermocouple works fine, but I had not yet replaced sensor board with pot at that time. Testing it against full -3V to +3V IR voltage input range I noticed that thermocouple gives reasonable measurements only when voltage from IR sensor is in range of -0.8 to +0.5V. When voltage is under that thermocople reading drifts steadily but quite dramatically. When IR voltage it over +0.5V then mux starts switching signal periodically and thermocouple reading (visible simultaneously with infrared measurement) jumps all over the place (also jumps to the true reading ocasionally). While under-voltage condition may be out of intended operation range I doubt it should behave this way when input from IR sensor is higher than +0.5V. Thermocouple circuitry may be coupling signal into IR part, or the other way around.I touched-up most of the components on the board with soldering iron, didn't seem to do anything.I probed some pins on main MCU trying to identify analog signal and here's what I found out:-Lots of +3V and GNDs (obviously)-Steady voltage of 1.2V (Does it seem like plausible analog Vref? Its located quite close to analog inputs) EDIT: Actually, I am guessing that it might be battery voltage fed through divider.-Direct input of IR signal (full range. seems odd to feed potentially negative input to uC)-analog MUX output signal-some small voltage related to thermocouple (~0.6V when unconnected).As a last resort I tapped into I2C bus to see if uC is reading any meaningful data from on-board EEPROM. Before that I identified that it must be used for storing cal data only. Shorting write-protect pin with VCC does not change the device operation at all (previously set emissivity value must be stored on eeprom in MSP430 itself).Surprisingly, external EEPROM data seems to be only read during initial powerup (on connecting the battery). It may be also read on wakeup from sleep, but I didn't notice that. It is not touched in any way during operation. I am attaching Saleae Logic (1.1.15) session file recorded during powerup. Address 0xA0 is the EEPROM, 0x70 is probably I2C expander (lots of activity during operation), no idea what 0x40 is. For some reason Logic I2C decoder does not seem to decode responses from the device but looking at SDA it does seem like it reading something. Some bytes look like "0" but it's not all blank.I was even planning to dump EEPROM by holding uC reset pin down and taping into I2C bus with buspirate but because this transmission dump seems to include all data that is ever read from it, I won't bother.

author: Rasz
author_rank: Super Contributor
timestamp: October 01, 2014, 02:00:43 am
content: thermocouple calculation probably uses thermopile integrated rtd for cold junction compensation - when you mess with thermopile readings you make mcu think there is some crazy temperature outside of its designed spec