Fixing A Product Design Flaw In A Misting System

[Xerxes3rd] works at a place where they raise reptiles in terrariums. Such enclosures require controlled lighting, temperature and humidity. Humidity is maintained using “misting” devices. These are usually water containers with a pump whose outlet ends in a series of very fine spray nozzles which create the mist. A timer controls the pump’s on and off cycles.

[Xerxes3rd] purchased an Exo Terra Monsoon RS400 misting system – a low-cost misting device and soon discovered that it had a serious design flaw. The built-in timer malfunctions, and it mists a hundred times more than it should! A lot of folks who buy a product and discover it has an inherent design flaw will return it back for a refund. Instead,  [Xerxes3rd] decided to break in and fix it instead –  “warranty void if tampered” be damned.

To start with, he needed to figure out what the problem was. He went about it in clinical fashion, eventually creating a slick document (PDF) outlining his observations and diagnosis. The timer controller board has a PIC micro, some buttons, potentiometers, LED’s and an IR receiver. The misting cycles are set using the two potentiometers – Off time and On time for the pump. His analysis and resolution makes for interesting reading.

What he found was that the PIC micro was reading inconsistent values from the potentiometers. More specifically, the software isn’t doing any smoothing on the analog values it reads from the potentiometers. Since the PIC that controls the system wasn’t easily re-programmable, he opted to replace it with an Arduino Nano. At the same time, he got rid of the potentiometers that were used to set the misting frequency and duration, and added a 16×2 LCD. Time setting is now done using the three on board buttons. He removed the PIC micro and replaced it with two female header sockets, onto which he plugged a small board containing an Arduino Nano and a few components. He also cut the original PCB in half, removing the potentiometers and crystal oscillator in order to make room for the 16×2 character LCD.

The lizards are now probably thanking him for their perfectly timed doses of moisture. Having done this, he could probably add in more features such as a temperature-humidity sensor, a water level sensor or maybe even throw in an ESP8266 module and have the Lizards tweet when they need to be hydrated. Because that’s another thing hackers love – feature creep.

17 thoughts on “Fixing A Product Design Flaw In A Misting System

  1. A picaxe would have easily been adapted to that chip pinout if he just wanted to fix it.

    But the major upgrades to it are a major upgrade. Some times it’s worth it to buy a defective product for the hard to make bits… the misting pump and tank for example.

    1. Manufacturers are constantly ” costing things down”. I have seen this my entire career as an Electronics Service Tech. The smallest change by a knowledgeable customer would be something they would not be wiling to do.

      1. And for this purpose this is very important since AVR shows it’s real strength in such demanding task as switching pumps on, counting seconds and then switching them off :)

  2. As George Takei would say, “Oh my.”

    Great write-up, and he certainly fixed it, but… When I encounter a noisy pot – and it’s certainly a common occurrence – my first thought isn’t to redesign the product. It’s to try some DeoxIT, or similar substitute. Doesn’t work 100% of the time, but often enough that it’s worth a shot. And if it works, there’s a good chance it will work a long time. The pots in the amplified speakers in front of me started failing after a year, they got a shot of cleaner almost ten years ago, and are still noise-free.

  3. Thanks for the great article, Anool! I’m actually a software engineer, and the project was for home use (the reptile stores usually use larger misting systems). As RandyKC commented, it is a bit of a crime to replace a PIC with a Nano, but I learned hardware on the Arduino platform and it’s currently what I’m most comfortable with. We do have some ICD2’s and ICD3’s at work somewhere, but it would have taken me a little while to learn PIC C. Plus, Arduino’s library support for various hardware devices (like a 16×2 LCD with a serial backpack) is pretty great, which allowed me to rapidly prototype out the replacement.

    I did leave enough pins available to add in an RFM69 if I wanted to (and almost did), but as you say, feature creep! =)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.