Dit verhaal heb ik op XDA developers geplaats.
A hardware problem:
A possible cause of a hardware problem could be the CM3602 not being properly mounted (either not correctly reflowed or positioned). In my experience as an electrical engineer, in most cases a malfunction appears immediately or not a at all. In rare cases it takes a while for the malfunction to appear (especially in cases of ESD damage). Since a lot of DHD owners complain about the problem appearing after a couple of hours/days of use, I highly doubt that the above scenario is the cause of the failure.
Another cause could be a serious design flaw in the electrical circuit, where the sensor voltage is to high for example. However, this is HIGHLY unlikely because these schematics are reviewed countless times before production starts.
A last but not least reason for a hardware failure in the sensor, is that a bad batch of sensors is used. The CM3602 is a very compact, highly complicated piece of CMOS technology. It is not unlikely that a complete batch is bad, however, semiconductor producers often test their products from the assembly line.
Conclusion: a hardware failure is possible, but unlikely.
A software problem:
Since we are XDA developers, we all know software can have seemingly unpredictable bugs. No matter how much testing is done, there is a very very high change you did not eliminate all bugs.
One reason why the device could fail to get a proper reading from the sensor, is due to bad calibration. Or, in the case of the DHD, bad dynamic calibrating. Dynamic calibration is often used to eliminate the need to calibrate every device in the factory. So, instead, you let the software calibrate the sensor all the time, by taking the average of X samples, and using that value as a reference.
A bug in this calibration code, or a faulty designed calibration algorithm can be the cause of software reading wrong values from a sensor.
It depends on how the software updates its sensor value (either by polling or interrupts), but in either case, a bug could cause the software not to update the sensor at all.
Even if the sensor calibration is correct, and the CPU reads the value from the sensor correctly, a bad pointer somewhere can still screw up the measurement results.
etc. etc. etc.
Conclusion: I highlighted a few possible software problems, as a XDA developer you know there are many more reasons the DHD software could be the cause of the behaviour. This is why, in my opinion, there is a bigger chance of this being a software bug, rather then a hardware bug.
Engelstalig technisch gebrabbel, ik weet het, maar we zijn imeers tweakers