Search This Blog

Sunday, May 12, 2019

Dealing with dishwasher failure

Albeit 10 years of flawless operation can be considered quite good for a home appliance, still when it finally fails, there is the brief criticizing thought of "why didn't it last longer? Bloody programmed obsolescence in modern industry!" ..and so on and so forth.

Well, the truth be said, 10 years of operation without a single glitch is either a product of sheer luck (i.e. one golden batch in the production line), or the brand really went serious with quality and the strategy at the time didn't include the need for recovering the same consumer soon in the product life cycle.

I can say this from the Whirlpool dishwasher model ADP 6837/1 that I have been using since 2009. During 10 years it never complained, while we threw dirty dishes at it on a daily basis.

Today it finally decided to refuse to finish a washing session, exhibiting an "F1" error in its display. Looking up on-line, quickly found that it means there is a problem in its NTC thermistor device.

As those in the field probably know, an NTC (short for Negative Thermal Coefficient) is a small (passive) component that suffers a predictable change in electric resistance, as the temperature changes. Being of the negative type, it means that as the temperature raises, its resistance value drops.

Given that the error points to such a specific device, I though it would be reasonably simple to find the sensor and confirm the fault.

The first challenge was exactly where to find the sensor: given that I could find very few servicing information for this washer in the web (the closest I could find was for another model, the ADP 6600, which in spite of many similarities, I came to find that it had a totally different sensor..), I was limited to opening up the machine, explore and go by the elimination method.

First, removed practically every panel that prevented me from looking at its inner workings:

The first step, removing the top lid and the weight:

Then, one side panel off as well:

This allowed to have visibility over the motor/pump/heating assembly:

Still, I wanted more, and removed the bottom panel:

This provided access to most of the bottom components of the machine. It is notable the water softener device, the sump, the wiring and the pumps and valves:

In the ADP 6600 service manual, the NTC showed up as a discrete device. I started the search assuming that I would also have to find a discrete NTC in this machine. But I simply could not find anything looking like what I was expecting: a device with a 2-pin connector somewhere in the bottom of the water sump. The closest match was something with 6 pins which I initially ruled out as being the NTC:

So I decided to continue with the teardown, and went on with opening the front door of the washer, which contained the control panel. Here I found two modules. The left side one, which appeared to house the main controller:

and the right side module, which apparently was just the user interface part:

From the first module it was easy to tell that the NTC had a 3-pin connector, which apparently was grouped with another 3-pin device:

This made me look back to the 6-pin device that was at the bottom of the water sump.

As I removed it, I was able to quickly find that it was not only the NTC, but also a turbidity sensor, both in the same package.The later was a relatively novel sensor in 2009 dishwashers, which allowed the detection of the amount of foam in the water. With this information the washer is able to better manage when to add new water to the loop, therefore leading to water consumption savings. Bitron detains a patent over this type of turbidity sensor, and it was the OEM chosen by Whirlpool for this particular washer.

With the sensor removed from the sump, tried to determine if it was actually failing. by doing a simple test: first, measured the temperature at which the sensor was initially:

and measured the resistance across the NTC:

Then took a cup of water heated at about 50ºC, inserted the sensor, and measured again:

As expected for a working sensor, the resistance dropped considerably:

Performed one last test with the water at about 70 ºC, and the resistance further dropped to around 8 kOhm.

Comparing to the table in the ADP 6600 service manual (in spite of not being the same model), the results were very close to the table shown there:


20 °C - 58.1 kOhm
25 °C - 47.1 kOhm
30 °C - 38.2 kOhm
40 °C - 25.4 kOhm
50 °C - 17.2 kOhm
60 °C - 11.8 kOhm
70 °C - 8.3 kOhm
80 °C - 6 kOhm
85 °C - 4 kOhm

This seemed solid indication that the NTC was actually ok.

As such it led me to consider two scenarios: either the F1 error actually derived from another faulty device, or it was an intermittent failure motivated by poor electric contact or similar problem somewhere.

Decided to put everything back together, close it all up, and power it on for a test.

Initially the error still showed, but as I read in the documentation this was normal, as this type of error would be stored. To clear it, had to press the start button for 1.5 seconds. The error disappeared, and as of this writing a full washing cycle was completed without problems. So far success and zero parts replaced, only a little massage to the inner workings.

This may well have been the golden batch of the Whirlpool dishwashers...

Wednesday, April 17, 2019

Once again bumping into questionable product safety standards

About 6 months ago, I replaced the manual plastic pump I used to have for dispensing water from 5+ litre jugs, with what would in principle be a more sophisticated and convenient approach: looked for an electric water dispenser, and without much searching, found several options. Most, if not all were unfortunately designed to fit into the 19 litre office water bottles. Without any alternative, ordered one of these, considering that I would have to come up with some custom adaptation if I wanted to use it with the 5 litre bottles. Ended up ordering the one below, for its minimally elegant design and compact dimensions:


I knew the device was battery operated and had to be recharged once in a while through its micro-USB connector located at the top side of the device.

After the device arrived, I came up with an adaptor, reusing the threaded part from the original manual pump fitted together with another plastic adaptation ring.

In the first few months into the use of the pump, I was surprised with the battery, which provided nearly 2 months of use between charges initially. Later I started noticing a steep decay in the charge, as the battery full indication appeared soon after connecting to the charger.

Once the battery degradation became full blown, I operated the pump with the USB charger always connected, in order to be able to operate the pump, but I did so with some discomfort, as I started suspecting something could be messed up inside, given the fact that water appeared to leak from where it shouldn't (i.e. the bottom side of the body of the pump).

Also I remotely suspected that the battery could be Li-Ion type, which as most of us know it the basic ingredient for causing pyrotechnic mayhem, when brought outside of its mechanical, electrical and thermal envelopes.

As such I decided to disassemble the pump and see what was going on inside. As I opened it, the first thing to note was that it had a lot of water and iron rust inside:

The second thing was the confirmation of my suspicion: it was powered by a good old 18650 Lithium polymer cell (yes the same cell format that was used in several Tesla EV's, for example most Model X and Model S).

Measured the cell voltage and was at a 0.41 Volts. Either it was irreversibly discharged (to a dangerourly unstable level) or  battery protection kicked in (in case this particular battery had the protection feature).

However, after a few days, I measured the  battery voltage again, and found it to be around 4.16 Volts, which is normal full battery voltage for this type of chemistry:

This suggests that the battery does indeed have the protection device built into it, and after some time it must have reset itself.

From the rest of the teardown, I could find significant (albeit not critical) damage to the PCB board of this device. The damage was clearly caused by the permanence of water in the part while electrically connected. Rusting in some pins and degradation of some of the solder mask was evident:

The R11 resistor and C2 ceramic capacitor had completely corroded legs. This could eventually explain the charging malfunction.

This device features an Holtek HT66F004 MCU. It appeared physically intact fortunately:

The next step would be to essencially do the same as I did previously with other cheap chinese products: refurbish and perform the necessary changes to make the device minimally safe to operate.
The first change was to discard the battery. In my case it was not important to have the device battery operated, as I had a power outlet near the bottle's usual location.

Next, I had to make sure the pump would not leak any water, and that even if that would happen, the electronics would be minimally safe against water ingress. Even though after  a teardown and reassembly of the water pump, and testing it afterwards, I could not detect any leaks, still I decided to apply sillicon sealant around it, to prevent future leaks. Also the tubing coming in and out of the pump, had some sealant applied as well:

The PCB also received a treatment consisting of a conformal coating of sorts, by covering it with an epoxy resin:

The R11 resistor, the C2 capacitor, and one of the 100 uF electrolytic capacitors had to be replaced due to the corrosion of the respective legs. In order to operate the device directly from the power supply and override to battery charger circuitry, a bodge wire between the USB +5 Volts input and the battery pin was added:

In order to simplify the UX (User Experience) and make the device more reliable to operate, replaced the two on-board press buttons with a single panel type press button:

Finished by improving the bottle adaptor and its coupling with the water dispenser:

So far the device is working properly and many cups of water filled before and during this blog post:

Wednesday, January 30, 2019

Car DVR replacement and related shenanigans - part 2

Moving along with more details, like I mentioned in the previous post, the rear camera was reused from the previous installation. This CCD based camera happens to be superior to the basic CMOS camera bundled with the kit. Both in terms of the quality of the sensor itself and its low light sensitivity, but also regarding the lens, featuring a wider viewing angle (important given its role as a backup camera).

The only change however was a substantial improvement in the mounting design, by having added an U-shaped plate in the rear of the camera, with a 4-screw mount instead of the original 2 screws attached to the sides of the camera. This provides a more solid attachment to the L-shaped aluminium parts that in turn stick to the door through an adhesive:

The existing wiring was used. I also learned that the pinout of the miniature 4 pin connector is the same in both the new and old car DVR units. The cabling goes in through the rear door and through the roof:

in order to reach the compartment near the rearview mirror, where the connectors and cabling meet:

To function properly, similarly to a car stereo, the mirror requires two power rails:

  • ACC - the accessories power source. This rail is only powered while the car key is turned on;
  • B+ - permanent power from the batery. This pin serves to keep the mirror in standby mode, and to prevent the sudden power switching (when the car key is removed from the ignition) from causing data loss or microSD card corruption.
I could easily obtain power in these conditions by selecting the appropriate unpopulated slots in the 

fuse box underneath the steering wheel:

For the B+ power, I selected one of the slots (F39) between the two square high amperage fuses. For the ACC I used another empty slot, which would serve for the heated seats fuses (which my car is not equipped with). Given that the heated seats are only active if the key is turned on, this would be a good point to tap the ACC rail.

Before these terminals that connect to the fuse box, each cable has a 3 Amp fuse, in order to protect each of the rails.

The sketch below depicts the connections and the circuit that is present between the DVR input connector (an 8 pin miniature round connector) and the rectangular 8 terminal connector. The reversing light signal filter is represented, and the camera voltage switching relay as well:

As explained in the previous post, the later serves the purpose of switching the 12 Volts required for the rear camera, through the 5 Volts signal that the DVR is capable of providing (which were enough for the original camera, but not for this one).

The mirror is reasonable discrete, with its conventional design. In operation it is a very useful gadget to have in the car. For example in slow traffic it helps define the expectations for the duration of the journey with the help of Waze:

In general it is a feature rich package, where features such as forward vehicle movement detection are quite useful during the slow traffic, to avoid impacting traffic with the distractions, and lane departure detection, which provides an extra degree of safety, when driver fatigue is a concern.

With the GPS antenna mounted in the vehicle (inside the dashboard), the device is quick to obtain a fix, and the number of locked satellites hardly ever drops below 8. The device is also capable of picking up the chinese satellite constellation, but normally there are few of these satellites in line of sight ( 2 at most, from what I could observe).

Another feature that the mirror was advertised as having, is a hardware police radar detector. In the ecommerce sites where the mirror is for sale, the existence of an app (only in chinese) is advertised. Given that this app was not preinstalled in the device, I asked the seller if he could provide a link to the app. Soon they replied with a link to an apk file with the name "YuanDogRadar 2.6.11". I installed it and it corresponded to the app the presented in the product screenshots:

There is virtually no more information that I could find about this app, other than this screen. It is unclear if there is indeed a hardware detector, and if so, which bands it can detect.

It is worth noting that in the settings screen there is a serial port setting (/dev/ttyMT1). It is unclear however if this is for the hardware detector (if it exists at all), or if it is for the GPS serial port (most apps don'r require the user to provide this info though).

In my testing I have only left the app running, during a test drive. There is a chinese female voice that talks frequently (which I understand 0 % of), and occasionally the application beeps while I am driving the car. It never beeped while passing by the known fixed radar spots. In the center, a dial displays the GPS speed.

Sunday, January 27, 2019

Car DVR replacement and related shenanigans


With the vulgarisation of miniature cameras and computing devices of all sorts, technologies that fundamentally serve the mobile industry become cheap enough and available to the point of being useful for other purposes. That is the case of DVR devices for automotive use.


Some time ago, I bought very cheaply (about 30 Euros) a basic DVR in the form of a rearview mirror. It worked well, serving two main purposes: 1 - continuous recording (of both rear and front cameras) during driving; 2 - provide rear view camera image while backing up the vehicle.

However the device failed partially, when in one occasion I was connecting the reversing camera jack to the device. Because of a mod I did previously (in order to support a replacement 12 Volt powered reversing camera) I let 12 Volts be present at this connector, probably being sufficient to put excessive voltage at the video input during insertion of the jack. The analog input for the rear camera ceased to work ever since.

New device

This was the opportunity to replace this device with a new one. While looking for alternative devices, I found one (among very similar products) that caught my attention: it was a complete replacement of the car original mirror, instead of strapping on top of the later, as it was the case for the previous unit.

While not being a fresh new hardware architecture (it is a 2017 design, featuring a Mediatek MT6735 quadcore chip and running Android 5.1), it still has a number of features which made it an interesting proposition for the price (which is obviously higher the original unit I had). I ordered it from Aliexpress, even though it can be ordered from some other chinese ecommerce sites:

Like other DVRs, it also continuously records to a MicroSD card (it is readily recognized by my Kingston 128 GB (type 10) card formatted in ExFAT), and it displays the reversing camera when the gear is engaged. A second MicroSD slot is available for using with the GPS tracking or other I/O operations that could upset or be delayed by the constant access to the main MicroSD caused by the continuous video capture.

It also has a host of other features, and given that it is a regular Android device, most regular apps such as Waze, Sygic, Torque, etc can be installed.

For example it has some ADAS (Advanced Driver Assistance) features such as warnings for:
  • collision avoidance - it warns if the car is too close to the forward vehicle, from a certain speed;
  • lane departure - it warns if the car leaves the current lane;
  • forward vehicle movement - tells if the vehicle in front started moving,when stopped in a lane of traffic.
While it is not a Mobileye, still in most of the times I could test, it correctly detects these situations. It is a pretty impressive package, considering that is solely based on vision, using generic hardware. It is worth noting that these types of features are often not originally available in many current vehicles.

An app for the smarphone, called CarAssist, is also part of the package:

It provides an interface for managing the DVR recordings, stream the via wifi (the device can be put in hotspot mode), and download/share on social networks.

Using the device own 4G connection, it is possible to monitor the front and rear cameras (with a reasonable quality stream) in realtime, from the app.

These recordings can also be stored locally on the smartphone. At the same time the app displays the location of the car, and the tracking is recorded.


The installation can be a challenge for the less experienced user. Depending on the vehicle, the difficulty may also vary. Regarding the rear camera and the reverse light connection and cabling I did not have to do further work, as I would be using the existing camera and wiring that I had previously installed.

To install the rear camera (perhaps the biggest challenge), the user must find an appropriate spot (I personally choose to install it inside the car, close to the top part of the rear window.

After that the user has to plan how to do the cabling. In my case I have decided to pass it through the roof, between the steel body and the interior lining of the roof. In order to be able to pass the cable, I first pushed a long plastic strip across the roof, and once it reached the far end of the roof, I taped the cable to the strip. After being securely taped, I pulled the strip, and the cable followed. Repeated this process in every path requiring cable to be passed.

While the new DVR had a slightly better original camera:

still it was no match to the FPV camera that I had already installed in the car since the previous DVR.

This camera features better low light sensitivity, and a wider field of view compared to the basic camera provided with the kit. It is a Eachine C800T, typically used in FPV drones. It can also be easily purchased in chinese ecommerce for 10-15 Euros:

Unlike the original camera, which would be powered by the 5 Volts coming from the DVR, for this camera it would not be enough, being in the low end of its voltage range (5 - 15 Volts DC). For stable video, 12 Volts would be ideal for this camera.

Given that the this new DVR also provides 5 Volts for the rear camera, and I would want to retain the DVR ability to control the power to the rear camera (like for example switching it off for power saving), a different solution would be required.

A basic solution would consist of running the camera from the car ACC rail, which provides 12 Volts only while the key is on. This however is not ideal, because during remote operation of the DVR via 4G cellular connection (e.g. during use of the CarAssist app), it would not be possible to power the camera on.

This reduced to potentially just one option: to control the camera through a relay powered by the 5 Volt pin of the DVR. This would allow 12 Volts to be switched based on the state set by the DVR. The 12 Volts would be provided by the battery B+ source (always available) just as one of the DVR power rails.

In order to properly organize the connections and include the relay and a filter for the reverse light signal (more on that later), I built a simple PBC board, containing those two items:

On one end would be the DVR mirror round 8 pin connector, and on the other end, the 8 terminal connector that would mate with the corresponding connector on the car side:

The power (ACC, B+) along with camera signal and reverse light signal would be routed via the different cables towards this connector.

In order to have access to the fuse box, the cables would have to be routed through the inside of the left front window pillar:

Zip ties would allow these cables to be bundled with the existing wire loom. The side opening of the dashboard would allow for access to the fuse box from behind, also allowing the cables from be further tied to the existing structures:

GPS antenna

Given that this device is also enabled in terms of localization, a GPS radio is (almost) necessarily present. In this case, the sensitivity of the receiver is quite impressive, sometimes enabling a lock to be acquired, even withouth the GPS antenna connected.

I wanted to maximize the ability to properly receive the GPS signals, while at the same time keeping the installation clean and discrete, by keeping the antenna concealed.

First, a small optimization in the antenna housing was performed: given that GPS antennas are no more than patch antennas (a square  conductive plate - the active element, on top of a ground plane) featuring a low noise amplifier colocated with the antenna body, the ground plane should in general be as large as possible.

As such I tried to increase the ground plane surface by attaching a copper plate to the bottom of the unit. This would at the same time, depending on where the antenna would be placed, allow the ground plane to be increased by just placing it in contact with another metal structure.

I first opened the antenna casing, which was ultrasonically welded inside:

Drilled an orifice in the center of the plastic base:

Cut a copper plate to match the dimensions of the base:

And soldered the antenna amplifier can to the copper plate:

In order to be easier to attach the antenna to another structure, drilled several orifices in the casing in order to allow zip ties to pass through:

Regarding the location where to attach the antenna, I tried to find a spot inside the dashboard which would not be covered by metal and where the presence of the antenna would not mechanically impact any function on the dashboard.

Without going through greater lengths dismantling the dashboard to find the ideal spot, found a place which would be sufficiently good: under the ventilation fins on the left side of the dashboard:

It was of easy access, and the only obstacle between the antenna and the sky would be plastic and glass, as such with a negligible relevance at the wavelengths the GPS system operates.

Next I will be posting some details on the rear camera installation, and on the overall operation of this new DVR.

Stay tuned!