Nothing To Do With Special Needs – Screw You, Whirlpool

In 2007 or so, we replaced our old washer and dryer with modern, efficient units from Whirlpool (Duet Sport is the model name). The dryer failed early in its life, likely crib death, and had also had a mysterious failure in the user interface control board. The washer developed a leak a few months ago, which a repair service was only able to mitigate, not fix. Not a month later, the replacement UI control board failed in pretty much the same manner as the old one. Oddly enough, the washer and dryer we had before were close to 30 years old and apart from being inefficient and slow, the only breakdown I ever had was a broken belt on the dryer.

controlboard

I was able to purchase a replacement, but there was a three red flags:

  1. This part was not particularly easy to find in stock
  2. Every place that had it in stock offered a small cash offer for the broken one
  3. The replacement part was exactly the same revision as the original

This to me says that Whirlpool is not likely to keep supporting this part (or at least aren’t manufacturing it), they want the broken ones to fix and put out in the field again and they have had no interest in revving the failing part. None of these are good signs for when the part fails again in another 3.5 years. I found the schematics online and from all appearances (I say this because the schematics are really a block diagram documenting the connections not the boards), the main controller is a relatively puny microprocessor (as it should be) and the UI board is likely slaved to it through a SPI interface. I say ‘likely’ because the labels in the schematics for the various lines appear to match the typical naming conventions for SPI. Unfortunately, this means that there is a communications protocol which would be necessary to implement this properly. I left a note via Whirlpool’s web feedback that I was requesting formal documentation of the communications protocol. To their credit, they called me. I honestly did not expect this.

The woman I spoke to offered to get me a link to their service manual, which I already had for the schematics. I asked again if I could get the communications protocol that they use was told no. I asked what will I do the next time this fails and the part is no longer available? I was told that I would contact a Whirlpool service tech who would diagnose and repair it. I was curt and asked how the service tech would get a part that clearly already at end of life? The real answer is that I need to put aside $10-20 a week for the next 3.5 years to replace the units.

The failure of this part and the red flags above are some of the more compelling arguments for Open Source in design. Being in commercial software, I understand the need for proprietary code and design in order to maintain a competitive lead. The Open Source movement is at the far end of the spectrum, wanting to have all software be available. I think there is a more reasonable middle ground and it is to address exactly this problem: what do you do when your product has entered it’s end-of-life phase? This would be an ideal time to release all this information.

If I were designing this dryer, I would likely make the protocol be something like this

Hey, are you alive? (yup, nope) – this is power on self-test

Hey, what button(s) are currently down? (here’s a list) – this is a horrible protocol, but it’s simple. It might also be ‘Hey, have any buttons been pressed recently?’

Hey, would you display this on the digit display? (yup, nope)

Hey, would you light up/turn off these lights? (yup, nope)

Hey, would you go into sleep mode (yup, nope)

The nature of this is that the main controller sends requests (Hey…) and then the UI responds. This is the nature of SPI which is a synchronous protocol. The master sends a message and the slave responds.

Here is what I would need to reverse engineer this: a logic analyzer ($50-$300) and time. Lots of time, especially if the communications protocol is not straightforward.

To build replacement hardware would be around $100 to use off-the-shelf components (likely an Arduino) and time. Lots of time.

Unfortunately, as the parent of a child with special needs, time is one thing I do not have a lot and when I do have time, I usually don’t have the energy.

Leave a Reply

Your email address will not be published. Required fields are marked *