JM Power Meter (JMPM)

The JM Power Meter (JMPM) is a high resolution non-invasive energy monitoring device with support for sensing the current on up to 5 circuits and voltage. Based on the designs by OpenEnergyMonitor, this offers 12 bit analog to digital converters as well as a user selectable measurement range of either 120A or 35A per channel with better than 1 watt resolution at the 35A range. The hardware and software are all Open Source.


I have two general use cases for this in my home.


  1. Monitor energy production from both solar panel arrays
  2. Report costs based on current energy rates for various loads.


Hot Tub

  1. Monitor energy usage and costs
  2. Monitor heath of internal components
    • Heating element
    • 3 water Pumps
  3. Monitor Hot Tub temperature
  4. Control the Hot Tub on/off state



Based on the ESP32 controller by Espressif, this features:

  • 5 channels for Clamp On Current sensors
  • Jumper configurable measurement range. No soldering required, just insert a jumper cap!
    • 35 Amp Default
    • 120 Amp Extended Range
  • Support for a near unlimited number of DS18B20 temperature sensors.
    • You’re only limited by the quality of the cable you use.
  • Onboard high accuracy temperature monitor.
  • ESP32 Microcontroller
  • (Optional) Relay output
    • Can switch loads of up to 2A DC

Eagle Board and Schematic for JMPM:

Build instructions for JMPM v001


The firmware is developed with the Arduino toolchain and is available in GitHub.

JMPM v1.0 Firmware

Embedded API

All functions are exposed as a JSON REST API. A minimal web interface simplifies device utility.

Application Server

Work in progress


  • 2020 05 17 – First revision of firmware is complete.
  • 2020 05 08 – The first 15 prototype devices has been sent to be manufactured by JLC PCB
  • 2020 05 07 – Design completed.
  • 2020 05 06 – Design process started.

Related posts