Microphone-Based State and Fault Detection for Fluid Pumps

Detecting Fluid Pump Status and Faults from Acoustic Sensors

Seasoned factory maintenance technicians understand that there is a lot to be learned about a machine’s state and health by simply listening to it operate. Bad bearings, pump cavitation, machine tool chatter, pipeline leaks, and many other faults can often be readily detected with a trained ear. Ideally, a technician would always be within earshot of operating equipment ready to act at a moment’s notice, but this is rarely possible or practical.

With the advent of low-cost MEMS microphones, capable microcontrollers, edge AI, and connectivity for remote sensors, it’s now feasible to automate the ‘trained ear’ utilizing a trained ML model in place of a human to continuously monitor for machine states of interest and faults that require intervention. By analyzing the acoustic data locally on a microcontroller at the equipment source we also can eliminate network congestion, lag in detection and response, and data security concerns for streaming raw data to the cloud or a compute server for processing.

In this demo, we’ll show how a fluid pump can be monitored for operational state and faults using the SensiML IoT edge ML model running locally on an IoT edge node. The video below shows the completed model running on a Silicon Labs EFR32 microcontroller dev board providing pump state and fault detection using only the integrated microphone on the dev board and a SensiML Knowledge Pack (ML model) executing on the device itself.

SensiML Acoustic Pump Demo

The Setup: A Simple Fluid Pump Demonstrator

To experiment with our acoustic pump demo, we’ll first need to construct it. To simplify things, we’ll use readily available parts to illustrate the use case with the understanding that the same concepts could also be applied to more involved industrial pumps and those of different designs such as:

  • Centrifugal pumps
  • Diaphragm pumps
  • Gear pumps
  • Piston pumps
  • Lobe pumps
  • Vane pumps
  • Progressive cavity pumps

We elected to use a pair of 12VDC centrifugal pumps (i.e. a boat bilge pump) for low-cost and easy setup. Our demo will consist of two open fluid containers with submerged bilge pumps plumbed and wired to pump water back and forth between the two containers.

With this setup, we can easily attach a microcontroller with a microphone directly to the container to get both ambient and structurally conducted pump noise for labeling and analysis. We’ll seek to detect the following states:

  • Pump Off
  • Pump On, Full Flow Normal Operation
  • Pump On, No Water
  • Pump On, Obstructed Flow
  • Pump On, Low Flow

While we might have elected to use motor current/voltage, vibration, fluid flow, pressure at one or more locations in the pump or piping, we instead elect to use only audio signals as captured by the microphone. This showcases how it can be possible to detect various states of interest with non-invasive sensors that can readily be retrofitted nearby without impacting operations or needing to factor in downtime for other sensor types.

Building our Pump Demo

Those interested in replicating this demo can use the info below to create something much like what we did for our demo. The parts list is as follows:

Item Component Qty Source Notes
1 Silicon Labs XG24 Dev Kit 1 Silicon Labs Provides compact PCB with AI accelerated MCU and microphone along with other sensors, USB and BLE connectivity
2 12VDC Centrifugal Pump (boat bilge pump) 2 Amazon Electrically submersible pump
3 Rocker Switch SPDT (ON)-Off-(ON) 1 Amazon Controls pumping in one direction or other by either energizing one pump or the other
4 Electrical Project Box 1 Amazon To mount pump rocker switch
5 Inline Fuse Holder with 5A Fuse 1 Amazon Short circuit protection for pumps and switch assembly
6 18 AWG 2 Conductor Wire 1 spool Amazon Hook up wiring from power supply to switch and switch to pumps
7 12VDC Power Supply, 5A Rated Output Current 1 Amazon Sufficient capacity to drive a single pump at a time
8 12VDC Power Jack Adapter 1 Amazon Connects 12VDC Power Supply to raw wire ends from switch enclosure
9 Molex 2 Pin Mini-Fit Jr. Power Connectors 1 kit Amazon Allows for teardown of equipment with disconnects for pump wiring to each water container
10 Pump Hose (Flexible Bilge Hose 1-1/8” x 6ft) 1 Amazon Transparent hose to observe water flow
11 18 qt. Clear Polycarbonate Storage Container 2 Amazon Clear container to observe water levels
12 1/2" Thick Polycarbonate Sheet 1 Amazon Used to fabricate mount plates for attaching pumps and Silicon Labs XG24 Dev Kit to the water containers
13 Plastic Adhesive 1 Amazon Used to affix polycarbonate mount plates to to water containers
14 M2 Screws and Standoffs 1 kit Amazon For mounting XG24 Dev Kit to mounting block on water container

Assembly Instructions:

  1. Start by cutting the 1/2" thick polycarbonate sheet (Item #12) into four square blocks, each approximately 3" x 3". You will use these blocks to physically attach the pumps and XG24 Dev kit PCBs to the thin-walled water containers.

  2. Using the pump strainer attachment (blue section on the bottom of the pump) as a template, pre-drill mounting holes in two of the polycarbonate blocks to affix screws that will mount the pumps. We’ll mount the pumps later but must pre-drill the holes before gluing the blocks to the fluid containers.

  3. Do the same with the other two blocks but use the XG24 Dev Kit mounting holes as the template for the M2 standoffs. To accept the M3 standoffs, use a #52, 1/16", or 1.6mm drill bit and then tap the holes using an M2x0.4 tap. Getting by without tapping the holes and driving the metal standoffs directly into the softer plastic pilot holes may be possible.

  4. Using the plastic adhesive (item #13), affix the two pump mounting blocks, one to the bottom of each water container. Be sure to orient the block to allow adequate room for the pump outlet hose to route up and out of the container. Also affix the mounting blocks for the XG24 Dev Kit to the outside of the water container. Placement should be low on the container and near the pump to maximize the pickup of conducted pump and fluid flow sounds.

  5. Attach the pump strainers (blue clip on section of the pump) to their mounting blocks using sheet metal or wood screws being careful not to penetrate the container wall. Orient the strainer so that pump outlet and hose are not obstructed by the container wall. Once both strainers are mounted, the pump bodies simply snap into the strainers.

  6. Mount the rocker switch (item #3) to the electrical project box (item #4) by drilling a 20mm hole in the box lid. A step drill bit works best for this. Also drill a hole in the back side of the box to accommodate the 12VDC Power Jack Adapter (item #8) and a hole large enough to pass two segments of the two conductor 18 AWG wire (one for each pump). Mount the switch and power jack adapter in these holes.

  7. Using the fuse holder and a 5A fuse (item #5), connect the positive terminal of the power jack adapter to the center terminal of the rocker switch creating a fused link between the power supply input and the pump switch.

  8. Next we will wire the pump to longer leads using the two-conductor wiring (item #6). Two or three feet of wire to each pump should be sufficient to route to the project box and rocker switch assembly. If the wire leads integral to the pump are sufficiently long to allow for the Molex plug connection (item #9) to be made outside of the container, go ahead and attach two pin terminals directly to each pump wire and insert those pins in the Molex connector housing. If the wire leads are too short, solder or crimp using butt connectors a segment of the two conductor #18 AWG wire to the positive and negative leads of each pump. Be sure to adequately seal the connections using shrink tubing or electrical tape to avoid any potential shorts should the wired splice get wet. Create another segment of two-conductor wire, attach the mating pin terminals, and insert into the mating plug connector housing. When complete, you should have a long enough wire leading to each pump to feed into the project box with Molex plugs in-line to allow for easy disconnection.

  9. Wire the remaining loose ends of the pump to the project box switch and power jack adapter. The negative leads from each pump should go directly to the negative screw terminal on the power jack adapter. The two positive leads should be wired to the two open terminals remaining on the rocker switch with each positive lead going to its own terminal on the switch.

  10. Attach one segment of pump hose (item #10) to one of the pump outlets and then do the same with the other segment of hose and the other pump. Position the two water containers side by side and direct the outlets of each hose into the opposing container (see the picture at the top of this article). Secure the two hoses together with zip ties or waterproof tape.

  11. Attach the XG24 Dev kit to one of the mounting blocks on the outside of the containers. You can experiment by moving the XG24 dev kit between the two containers while collecting audio.

  12. Fill each container with 8 quarts of water. We added a few drop of blue food coloring to make the water easier to film for our video.

  13. Connect the power supply (item #2) to the power jack adapter, plug in the power supply to the wall, and press the switch in either direction to test the pumps are working. By pressing the rocker switch in one direction or the other, you should be able to alternately fill one container or the other.

This completes the build process for our pump demo setup. In the video below shows the completed pump demo setup functioning. Compare your build to that below to confirm proper operation.

Pump Demo Model Building

Now that we have the physical setup built and tested, you can begin to collect data for a predictive model that detects the following states:

  • Pump Off
  • Full Flow
  • Low Flow
  • No Flow
  • Obstructed Flow

You may choose to collect your own dataset from scratch, or download and use SensiML’s pre-captured dataset. For access to the SensiML dataset and model, drop us a line at info@sensiml.com and we can supply you with access to the sample application on your account.