
Isolated Multi Rail Power Supply Monitor Arduino Shield Board
capotosto/PS_Monitor
Isolated Multi-Rail Power Supply Monitor Capstone

Isolated Multi-Rail Power Supply Monitor Capstone
Isolated Multi Rail Power Supply Monitor Sensor Board is an open-source printed circuit board by capotosto, from the capotosto/PS_Monitor repository on GitHub. It is a 6-layer board of 108 × 101.6 mm with 142 parts on 124 nets, routed with 761 tracks and 249 vias.
It is built around the ACPL-064L-500E, LTC2945IUD#TRPBF and TCA9803DGKR, with the NTA7002NT1G, GMC21X7S226M10NT and LVK20R050FER among its other parts. Its parts include 46 resistors, 45 capacitors, 22 ICs, 8 connectors and 6 transistors. It belongs with the power and sensors and measurement boards of this library.
Repository: PS_Monitor
Author: Mike Capotosto
The Multi-Rail Isolated Power Supply Monitoring System measures the voltage and current of up to six floating power-supply rails while preserving galvanic isolation between measurement channels. Each rail is monitored by an LTC2945 power monitor connected through an isolated I²C interface to an Arduino GIGA R1 WiFi. The Arduino firmware performs data acquisition, engineering-unit conversion, alarm evaluation, persistent configuration storage, local display control, HTTP service, and Ethernet communication with an EPICS Input/Output Controller. Measurement and status information is presented locally on the GIGA Display Shield, through a browser-based dashboard, and remotely through a Phoebus Control System Studio operator interface.
The monitored rails are:
+5VA+5VB+5V-5V+15V-15VOVL, UVL (over/under voltage limit), OCL, and UCL (over/under current limit)┌──────────────────────────────────────────────┐
│ Floating Power-Supply Rails │
│ +5VA, +5VB, +5V, -5V, +15V, and -15V │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ LTC2945 Voltage and Current Monitors │
│ One monitor per power-supply rail │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ Isolated I²C Interfaces │
│ Maintains isolation between floating rails │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ Arduino GIGA R1 WiFi Firmware │
│ │
│ • Sensor acquisition │
│ • Engineering-unit conversion │
│ • Negative-rail sign correction │| Subsystem | Function |
|---|---|
| Sensor hardware | Measures rail voltage, shunt voltage, current, and power |
| I²C isolation | Preserves galvanic isolation between floating rails |
| Arduino firmware | Acquires data, evaluates alarms, stores settings, and manages communications |
| Local display | Shows rail measurements, limits, alarms, and communication status |
| HTTP dashboard | Provides browser-based monitoring and configuration |
| PSC interface | Transfers measurement and status data to the EPICS IOC |
| EPICS IOC | Converts device data into EPICS Process Variables |
| Phoebus OPI | Provides the centralized operator interface |
PS_Monitor/
├── README.md
├── hardware/
│ ├── kicad/
│ ├── bom/
│ ├── gerbers/
│ ├── mechanical/
│ └── datasheets/
├── firmware/
│ ├── platformio.ini
│ ├── include/
│ ├── lib/
│ ├── src/
│ └── test/
├── epics-ioc/
│ ├── configure/
│ ├── db/
│ ├── dbd/
│ ├── iocBoot/
│ ├── psuMonitorApp/
│ └── opi/
└── documentation//hardware
KiCad schematic and PCB files, manufacturing outputs, bill of materials, mechanical drawings, and related.
/firmware
PlatformIO project for the Arduino GIGA R1 WiFi. This directory contains the application source code, configuration headers, local libraries, and build configuration.
/epics-ioc
EPICS IOC source tree containing database files, record definitions, startup scripts, PSCDriver configuration, device communication settings, and Phoebus Control System Studio displays.
/documentation
Assorted Documentation
Each LTC2945 measures:
Because each monitored supply may float at a different potential, every sensor channel communicates through its own isolated I²C interface. Negative rails are monitored within their isolated domains, and the firmware applies the appropriate sign to the reported engineering values.
The firmware is built with PlatformIO using the Arduino Mbed OS framework.
| Module | Responsibility |
|---|---|
AppState | Global channel data, settings, alarms, and system state |
SensorManager | Sensor initialization, acquisition, and channel updates |
LTC2945 | Low-level LTC2945 register access and unit conversion |
DisplayUI | GIGA Display Shield rendering and status updates |
EthernetServices | Ethernet initialization and network service handling |
HttpDashboard | Browser-based monitoring and configuration |
PscProtocol | PSC protocol communication with the EPICS IOC |
PersistentStorage | QSPI storage of alarm limits and network settings |
main | System initialization and application scheduling |
Hardware-specific settings are stored in configuration headers, including:
The firmware stores configuration data in the Arduino GIGA internal QSPI flash using LittleFS.
Saved settings include:
The firmware hosts a local web interface for:
The Arduino exposes a PSC protocol service over Ethernet. The EPICS IOC connects to the device using PSCDriver and maps transmitted parameters into EPICS records.
From the repository root:
cd epics-ioc
makecd iocBoot/iocpsuMonitor
./st.cmdAn equivalent direct launch command may also be used:
../../bin/linux-x86_64/psuMonitor st.cmdP=TEST:
R=GIGA
DEVICE=GIGA_PSC
HOST=192.168.1.177
PORT=8765The final values are defined in the IOC startup script.
The IOC is intended to provide Process Variables for:
| Status | Meaning |
|---|---|
OK | Measurement is within configured limits |
OVL | Over-voltage limit |
UVL | Under-voltage limit |
OCL | Over-current limit |
UCL | Under-current limit |
I2C Error | Sensor communication failure |
Disconnected | IOC communication failure |
The Phoebus OPI provides a centralized display for all monitored rails.
Planned or implemented interface elements include:
| Qty | Value | Footprint | References |
|---|---|---|---|
| 23 | 100n | Capacitor_SMD:C_0402_1005Metric | C2, C11, C12, C14, C15, C17, C22, C24, C25, C27, C29, C30, C32, C34, C35, C37 +7 |
| 18 | 2k | Resistor_SMD:R_0402_1005Metric | R12, R13, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46 +2 |
| 12 | 1u | Capacitor_SMD:C_0603_1608Metric | C1, C3, C21, C23, C26, C28, C31, C33, C36, C38, C41, C43 |
| 12 | ACPL-064L | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2, U3, U9, U10, U12, U13, U15, U16, U18, U19, U21, U22 |
| 10 | 0R | Resistor_SMD:R_1206_3216Metric | R2, R3, R4, R5, R9, R10, R14, R15, R16, R17 |
| 8 | 4k7 | Resistor_SMD:R_0402_1005Metric | R23, R24, R27, R28, R29, R30, R31, R32 |
| 6 | BS170F | Package_TO_SOT_SMD:SOT-416 | Q1, Q2, Q3, Q4, Q5, Q6 |
| 6 | LTC2945IUD-1 | Package_DFN_QFN:QFN-12-1EP_3x3mm_P0.5mm_EP1.65x1.65mm_ThermalVias | U1, U8, U11, U14, U17, U20 |
| 6 | TestPoint_Alt | TestPoint:TestPoint_Keystone_5015_Micro_Mini | TP4, TP5, TP6, TP7, TP8, TP9 |
| 5 | 22u | Capacitor_SMD:C_0805_2012Metric | C10, C13, C16, C19, C20 |
| 4 | 50mR | Resistor_SMD:R_Shunt_Ohmite_LVK20 | R8, R11, R19, R20 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_DIN965_Pad | H1, H2, H3, H4 |
| 3 | TestPoint_Alt | TestPoint:TestPoint_Keystone_5000-5004_Miniature | TP1, TP2, TP3 |
| 2 | 10u | Capacitor_SMD:C_0805_2012Metric | C7, C8 |
| 2 | 39289108 | Connector_Molex:Molex_Mini-Fit_Jr_5566-10A2_2x05_P4.20mm_Vertical | J106, J107 |
| 2 | 39mR | Resistor_SMD:R_Shunt_Ohmite_LVK20 | R7, R18 |
| 2 | TCA9803 | Package_SO:VSSOP-8_3x3mm_P0.65mm | U5, U6 |
| 1 | +/-15V | Connector_Molex:Molex_Mini-Fit_Jr_5566-04A2_2x02_P4.20mm_Vertical | J104 |
| 1 | +/-5V | Connector_Molex:Molex_Mini-Fit_Jr_5566-04A2_2x02_P4.20mm_Vertical | J105 |
| 1 | +6VA | Connector_Molex:Molex_Mini-Fit_Jr_5566-04A2_2x02_P4.20mm_Vertical | J101 |
| 1 | +6VB | Connector_Molex:Molex_Mini-Fit_Jr_5566-04A2_2x02_P4.20mm_Vertical | J102 |
| 1 | 0039289088 | Connector_Molex:Molex_Mini-Fit_Jr_5566-08A2_2x04_P4.20mm_Vertical | J103 |
| 1 | 0R | Resistor_SMD:R_0402_1005Metric | R21 |
| 1 | 10n | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | 15k2 | Resistor_SMD:R_0402_1005Metric | R25 |
| 1 | 22n | Capacitor_SMD:C_0402_1005Metric | C6 |
| 1 | 2u2 | Wuerth:74438356022 | L1 |
| 1 | 470n | Capacitor_SMD:C_0402_1005Metric | C9 |
| 1 | 4k87 | Resistor_SMD:R_0402_1005Metric | R26 |
| 1 | Conn_01x04 | Connector_Molex:Molex_Mini-Fit_Jr_5566-04A2_2x02_P4.20mm_Vertical | J108 |
| 1 | P82715DR | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U7 |
| 1 | TPS62912 | Package_DFN_QFN:Texas_RPU0010A_VQFN-HR-10_2x2mm_P0.5mm | U4 |
| 1 | ~ | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R22 |
| 1 | ~ | Capacitor_SMD:C_0603_1608Metric | C18 |

capotosto/PS_Monitor
Isolated Multi-Rail Power Supply Monitor Capstone



mickdassive/usbc_car_module
This project is a USB 3.1x1 hub designed with KiCad 8.0 and developed with PlatformIO. It features two USB-C ports (one downstream and one upstream) capable of delivering up to 100W power, along with four regular…




dale-lim29/Hardware_IMU_Array_Sensor
The PCB is designed with a 6-layer stackup:

JohnNeville/SunSprout
An esp32-c5 powered board that adds dual source battery charging, fuel management, and differential i2c bus. This was largely developed to be a complement with my other soil sensor project.
It measures 108 × 101.6 mm and has 6 copper layers, 1.6 mm thick.
142 parts, built around the ACPL-064L-500E, LTC2945IUD#TRPBF, TCA9803DGKR and NTA7002NT1G. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the capotosto/PS_Monitor repository on GitHub, at the commit this page was made from: the board is hardware/Isolated Multi-Rail Power Supply Monitor Sensor Board/Isolated Multi-Rail Power Supply Monitor Sensor Board.kicad_pcb and its schematic hardware/Isolated Multi-Rail Power Supply Monitor Arduino Shield Board/Isolated Multi-Rail Power Supply Monitor Arduino Shield Board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask capotosto before reusing the design.