Recording Power Supply

Version 6

Jed Marti KI7NNP

February 23, 2026

Abstract
Operating manual for a triple voltage power supply and recorder.


1 Introduction

The power supply provides three independent voltages from 12 - 25 volt input sources. Each section has a current and temperature monitor connected to an I2C bus.

I²C

  • Voltage A: From a buck regulator drops the input voltage to from 3 to 5.5 volts up to 3 amps. Normally set to 5.1 volts to power Raspberry Pi’s. Powers on-board sensors that are limited to 5.5 volts.
  • Voltage B: From a buck/boost regulator provides output from 3 to 30 volts at up to 3 amps. Normally set to 12 volts to power monitors and AREDN transceivers.
  • Voltage C: From a buck/boost regulator provides output from 3 to 30 volts at up to 3 amps. Normally set to 19 or 24 volts.

To lower cost, not all components need to be populated. The supply can function without the recording monitor.

Figure 1 shows a small ammunition box with a 30 Ah LiFePO₄ battery and recording monitor.


4 KI7NNP

The recording monitor in Figure 3 is powered by an ATMEGA1284 with 128k flash and 16k RAM. A 128 x 64 OLED, time and date clock, 128k serial EEPROM, and push buttons support its operation. It is normally powered by the supply board but can be operated independently (mostly for debugging).


2 The Power Board

The 4-layer power supply board is divided into 3 areas: A, B, and C as shown in Figure 4 Each section has its own mini-fuse and a 20-turn potentiometer for voltage.

2.1 General

Battery input is the two screw terminal on the left. Positive on the top, ground on the bottom. The supply is not protected from reverse wiring. The magic smoke will come out! The 6 pin header at the top right corner goes to the recorder monitor supplying power, battery voltage, and I2C from the sensors. A 4 pin header on the lower right corner is for the auxiliary battery temperature sensor.

2.2 A: 5 volt section

The 5 volt regulator in section A must be set before the board is fully populated as its voltage drives the 6 I2C sensors. It can be adjusted down but should never output more than 5.5 volts or these sensors will be fried. The 20 turn potentiometer just above the magenta letter A sets the voltage.

The board may be assembled without the sensors in which case the output voltage may be run up to somewhat less than the battery output.

This section must be populated for the sensors to work but is not necessary. Removing or blowing its fuse will still allow the 12 and 19 volt sections to operate but the recorder will not operate.

2.3 B: 12 volt section

The 12 volt section is a buck/boost regulator with adjustable output. A typical value is slightly more than 12 volts to account for voltage drops at higher amperages. The output is adjustable with the 20 turn blue box potentiometer just above the magenta letter B. It has a fuse on its input typically for the maximum output current expected.

The board may be assembled without this section or if its output is not needed, the fuse can be pulled to save idle current draw.

2.5 Connection to Recorder/Monitor

The 6 pin header in the upper right corner has 5 active pins. The ground connection is toward the inside of the power board. The blue wire is a direct, non-fused connection to the battery for the monitor to read its current output voltage using an ADC.


2.6 Connection to Auxiliary I²C sensors

The 4 pin header in zone C provides power and 400 kHz I2C for one or more auxiliary sensors. Typically this is for a temperature sensor attached to the battery to help warn of over-temperature.


3 Recorder/Monitor

The recorder is based on the ATMEL Atmega 1284 MCU with 128k flash, 16k RAM, and 4k EEPROM. I/O includes two push buttons, a bright red LED, 115.2k baud serial port, a 128x64 OLED, 128k serial EEPROM and a battery backup date/time clock.


3.1 Startup

To start recording on power up without recourse to the serial interface, push one or both of the buttons before powering on holding them until the power up screen appears. Then release, recording starts automatically overwriting any previously stored values.

Prev Next Recording
up up Do not start recording.
up down Start recording current on all 3 channels.
down up Start recording current and voltage on all 3 channels.
down down Start recording all values: current, voltage, temperature.

10 KI7NNP

3.2 Screens

During power on, various activities are scrolled across the screen when they are completed or not. Afterward, a selected screen is updated every so often. Pressing and releasing the Next button moves to the next screen and Previous to the previous one.

  1. Start page: Version, release, owner.
  2. Power page: Shows current, voltage, temperature numerically.
  3. Temperature page: Shows the current temperature values.
  4. Error page: If errors are encountered, a message will appear here.
  5. Current A: Shows a graph of A current draw, updated in real time.
  6. Current B: Shows a graph of B current draw, updated in real time.
  7. Current C: Shows a graph of C current draw, updated in real time.
  8. Temp. A: Shows a graph of A regulator’s temperature in real time.
  9. Temp. B: Shows a graph of B regulator’s temperature in real time.
  10. Temp. C: Shows a graph of C regulator’s temperature in real time.
  11. Temp. Aux: Shows a graph of the auxiliary temperature in real time.
  12. Battery: Shows a graph of battery voltage in real time.

Table 2: OLED screen types.

3.3 Serial Port Interface

The serial port interface offers fine grain control and communication with more capable devices. The default configuration is 115.2k baud, 8 bits no parity. A 3.5mm stereo plug provides ground, transmit and receive at TTL levels.


Command Arguments Description
amps Show voltages and current draws.
batcalib Calibrate battery reading.
csv Dump recorded data in CSV format.
cterm file-name Dump saved data to a term monitor.
date [date] Get the current date and time or set it.
eeprom [name value] Dump EEPROM contents or set a value.
low volts Set the battery low voltage trigger.
off volts Set the battery voltage to trigger power down.
owner call-sign Set the owner call sign.
over volts Set the battery over-voltage warning.
regs Dump register values from INA219's.
rate [integer] Set the sample rate per second.
reset Reset EEPROM values to default.
samples [integer] Set the number of samples to average.
serve Dump the current status as HTML to kserver.
set ABC reg value Set an INA219 register value.
svg ... Generate SVG graph for kserver.
start [amps, volts, temps, all] Start recording.
stop Stop recording.

Table 3: Serial Port Commands.


3.3.2 amps command: Show the three raw readings from each current monitor: the shunt voltage, output voltage, and current draw.
3.3.3 Battery Calibration: This command needs to be done once.
3.3.4 CSV output: Dump the contents of the recorded data onto the serial port in CSV format.
3.3.5 cterm output: Dump the stored data into a CSV file using the cterm protocol.
3.3.6 Date: The time/date clock’s backup battery will discharge over the week.


3.3.7 EEPROM contents: System parameters are saved across power off periods in the Atmega’s EEPROM.
3.3.8 Low Voltage Trigger: The battery voltage is monitored at the sample rate.
3.3.10 Owner: Your call sign goes here.
3.3.11 Over Voltage Trigger: Set the voltage that shouldn’t happen.
3.3.12 INA219 Registers: Dump the contents of all six INA219 registers.

3.3.13 Set Sample Rate: Set the number of samples taken per second.
3.3.14 Reset EEPROM values to defaults: Reset the EEPROM values to their defaults.
3.3.15 Number of Samples to Average: Sets the number of samples to collect and average before writing to the serial EEPROM.


Command option Prev button Next button Records
none Record everything.
amps Record time and three current values.
volts Record time, currents, and voltages.
temps X X Record currents and temperatures. Can’t be selected at startup.
all Record everything.

Table 4: Recording types