Pleased to release an energy monitor system. I’ve been working on this project for a couple of years but have been interrupted by Covid, extra children, and component shortages. The image below is just a development board, and I wanted to post this to see if there was any interest from anyone in a small beta run of a refined version. It’s designed to be compatible with emonCMS and the emonTx series in general. There is space for a 2nd order filter on each input, but I settled for a first order filter in the end.
Firstly, a big thank you to @Robert.Wall for his time in discussing the energy monitoring algorithms and tradeoffs. Before describing, here is a link to the GitHub repo (GPLv3 licensed). There are full rendered schematics, and project files (KiCad) and descriptions to build the firmware.
Rob has been doing heroic work with the AVR parts for the emonTxV4 but the AVR parts (in general) are outdated, expensive, and have few peripheral features. My aim with this was to make a higher performance, scalable, and future proof design based around a more modern microcontroller family. The two main limitations of the AVR micros are the 8bit architecture (which makes any calculation over 16bits extremely slow), and lack of DMA. The lack of DMA means that all ADC acquisitions must be handled in real time, so as the number of channels and/or sample rate goes up, the interrupt density increases so more and more time is spent just entering/exiting the interrupt handler with no real work done.
The main advantages (as I see them ) are:
- Modern 32bit ARM processor (easily portable to other microcontroller series)
- 12bit differential ADC with precision reference
- ADC acquisition period is decoupled from processing time. This fixes the acquistion frequency, so an anti-aliasing filter can be put in.
- Buffered and shared virtual ground
- Fully configurable at run time through interactive serial connection.
- The microcontroller series (Microchip ATSAMD) has well defined price/capability points with simple porting.
- USB bootloader and serial available (not in this development version)
- Many more, and more capable, peripherals available for extended uses.
The firmware is not written using Arduino, but as the ATSAMD series is used in many Adafruit/Sparkfun/etc products, that facility is available. I hope the firmware is reasonably easy to understand, and of course I’m very happy to answer any questions/suggestions.
Some things are not yet implemented, I wanted to gauge general interest before developing things I wouldn’t necessarily use myself. These are:
- Some emonCM results (RMS current, PF, apparent power)
- OneWire temperature monitoring
- RFM69 driver
Hope this is of interest, and look forward to hearing any feedback