Gravity sound level meter returns bogus decibel level after months of continual use

userHead MichaelOlson 2026-09-29 05:24:57 47 Views1 Replies

Hi folks,

 

I built a wall-mounted LED display for the sound level in a local restaurant. It's a fairly simple build – DFRobot Gravity SLM talking to an Arduino controller, which reads the decibel level periodically from the SLM and displays it.

 

This worked great for a few months after I built it, but then the Gravity began to return bogus, very low, decibel levels (like, 1.0 to 5.0 decibels in an ordinarily-noisy restaurant). The right decibel level, which the Gravity previously returned and which a separate reference meter displays, varies from 60 dB to 90 dB.

 

I thought I just had a bad Gravity SLM so bought a replacement, and wired it into the device in place of the old one. Worked great for another few months! Now, the problem has recurred.

 

This problem is transient – the SLM returns bogus dB readings for a while, then starts returning correct ones again. But, over time, the period of bogus readings gets longer, and the likelihood of getting correct readings decreases.

 

I've measured the voltage level from the Gravity using the analog input pins on the Arduino, and also using a digital multimeter. They are consistently wrong. The Gravity is running at 3.3V and I've verified the power is steady and clean.

 

Is this a known problem with the Gravity SLM? Has anyone had a similar experience? Any ideas on how to fix this? The DFRobot board is really nice, and I'd love it just to work in my application.

2026-09-29 09:01:56

Two very telling facts in your story: it "just started" after months, and a brand-new unit failed again a few months later in the same spot. That points to the environment, not a one-off bad unit.

Most likely: the mic's pickup hole / acoustic port is slowly getting coated with cooking grease and dust in the restaurant. Over weeks it builds up, sensitivity drops, and you read 1-5 dB; it can even look "transient" if a draft or wipe briefly clears the port. A fresh module shows correct values until it picks up the same layer again - which matches both of your failure cycles.

Things to try:

Clean the sound port (soft brush + a tiny bit of isopropyl alcohol on a swab; never poke the mic element).Add a windscreen/cotton over the port and, better, put the sensor in a spot with cleaner air / away from the kitchen exhaust and grease.Double-check the analog window for your 3.3 V rail: the module's analog output is 0.6-2.6 V swung against 5 V. At 3.3 V supply the mapping shifts - confirm your Arduino's ADC reference matches so a healthy 60 dB doesn't land in the "1-5 dB" region.Since you measured it with a multimeter too and got wrong values, that's a stable/level dropout - consistent with a damped mic rather than a software bug.
userHeadPic Jason.Miao