[Mellow Labs] wanted to grab a multimeter that could do Bluetooth. Those are cheap and plentiful, but the Bluetooth software was, unsurprisingly, somewhat lacking. A teardown shows a stock Bluetooth module. A quick search found a GitHub with software. But then he had a fiendish idea: could you replace the Bluetooth module with an ESP32 and use WiFi instead of Bluetooth?
This was as good an excuse as any to buy a cheap logic analyzer. Armed with some logic captures, it was easy to figure out how to fake the meter into thinking a Bluetooth client was connected.
Oddly enough, the data is “encrypted” with XOR, and an AI website was able to identify the raw data versus the encrypted data and deduce the key. The rest, as they say, was software. Well, except for one hardware problem: The ESP32 needed more power, but that was a fairly simple fix.
The entire thing fit the case beautifully. Now the meter streams a web page instead of requiring Bluetooth. Great job!
If your meter isn’t handheld, you can still play a similar trick. Just don’t forget that when it comes to meters, you often get what you pay for. Not that you can’t do a similar hack on an expensive meter, either.

Well worth the watch. Crazy that the manufacturer encrypts the internal data in transit on the PCB to the Bluetooth module. It’s your own measurement data FCOL.
Definitely a hack! And another great story by Al W. :-)
Just finished the video … well done hack and exploratory work with new tools (to him) to accomplish what he was looking to do 👍
This is a cool hack, but it’s also a good time to remember that just because you CAN put something on the internet doesn’t mean you SHOULD.
Has he put it on the inernet or just his local LAN though?
“Oddly enough, the data is “encrypted” with XOR, and an AI website was able to identify the raw data versus the encrypted data and deduce the key.”
I wonder whether the AI just picked up the XOR key from the website that the video also used as a reference.. they keys in https://github.com/FireMarshmellow/DMM_Web_interface/blob/main/python/ble_dmm_min.py and https://github.com/ludwich66/Bluetooth-DMM/wiki/Bluetooth-DMM-10-Byte-Data-Protocol appear identical.
No mention about the battery life after the mod :)
It’s a useful idea, I’ve got an old 4.5 digit LED bench meter which pushes the display segment data out via a serial port, might be an interesting experiment to update it
Oh heck, he’s not put any electrical isolation on the USB connector, it will be live at whatever voltage he’s measuring
That was the moment I closed the video…
The battery compartment is a huge hole with a nice set of covers. Why not replace it with a LiPo battery, usb charger and a Low-Standby-Supply Current regulator? Should all fit in and has a nice cover.
Nice! But this logic analyser needs firing up PulseView, what if you could view its output from a web app instead? ;p
That idea has come across my mind.
The link “on an expensive meter” in the article doesn’t seem to point to the intended resource but to the HAD admin frontend instead.
Cool project.
I still think using esp32 to bridge the wifi and BT is more practical (smaller battery drain on device, no hardware mods needed). Integrating this to Home Assistant would be really cool for creating ad hoc automations. Something like:
If voltage in this battery falls below that level turn off this wifi socket, turn this wifi bulb to red color and send me notification.
Remote monitoring small wind turbine and solar panel output valuable application?