Why bother to build such a device, when you could use a cheap multimeter or a bench power supply to do the same job?
In my opinion there are a few advantages/benefits:
- Small and compact size of the module (5x5cm not including the LCD). Standard 5.5/2.1 center negative power jacks make it perfect to plug it between the PSU and your circuit, build it into your power supply, use it as a current monitor in your pedalboard, etc.
- Highly tweakable architecture. By changing the value of the current sensing resistor and the INA219 interal calibration constants you can build many variations of the circuit, maintaning the relitavely good measurement precision (12bit AD converter built into the INA219).
- Overcurrent ALARM FUNCTION - this feature may be extremely useful when debugging circuits, as the current consumption is often a much faster indicator of any possible malfunction. Ialarm (current threshold) value is set with a pot. When the alarm condition occurs (drawn current exceedes the threshold value) the module will kindly inform about that fact by blinking the current value and giving an acoustic signal. Please remember though, this is not a current limit function! It will only inform you that the current drawn by the circuit is more than you expected.
- Data logging feature. The module sends the measurement results via UART in 1 second intervals. The readout is available in two formats.
- Educational value. Besides being a useful bench tool, building the Power Monitor can be a good excercise in using the PIC24 microcontrollers, communitaion protocols (SPI, I2C), interfacing LCD displays and more. All the design files and the source code are released under Open Source Hardware license.
Technical specification (stock version):
- Operating Voltage: 5 - 26V DC
- Voltage measurement resolution: 10mV
- Current sense range: 0 - 1A
- Curent measurement resolution: 50µA
- Power measurement resolution: 1mW
- Alarm current range: 0 - 1A (pot set to max = alarm OFF)
- Low dropout input polarity protection
- Reverse power jack protection (DCin and DCout swapped)
- 128x64 I2C 0.96" OLED display (SSD1306 controller chip)
- 84x48 SPI LCD (PCD8544/Nokia5110)
- Data readout via UART (9600baud, 8b, 1 stop bit, no parity)
- INA219 recalibration option via UART
- I2C, SPI, UART and Microchip ICSP headers
Many other features can be controlled using serial port commands:
|lcd||data output format, copy of the LCD display|
|raw||data output format, raw numbers separated by semicolons|
|stop||stops updating the data via UART|
|start||start/resume the data update in 1 second intervals|
|rstcnt||resets the measurement counter to 0|
|getcnt||returns the actual masurement counter value|
|calrst||resets the INA219 calibration constant to theoretic calculated stock value (8192)|
|recal||INA219 secodary recalibration mode used to increase the precision. Requires a separate at least 4.5 digit mA/A meter as a reference|
|getcal||return the actual INA219 calibration constant value|
|y||yep! I confirm|
In recalibration mode:
|xxxx.xx||waitts for the reference current value (xxxx.xx[mA] format)|
|exit||cancel the calibration and return to NORMAL mode|
|Module built into a power supply.|
|In case the DC in and DC out jacks are swapped (power applied to the DC out) the module will inform about that fact on all fronts.|
|Partially populated PCB (bottom layer, all SMT parts).|
All design files including:
- PCB layout (50x50mm dual layer)
- PCB Gerber files
- Bill of materials
- UART serial command list
- INA219 recalibration procedure via UART
are avaialble on the Power Monitor GITHUB REPOSITORY.