From 70eb521c860c0d0379370900fc69264d90a56884 Mon Sep 17 00:00:00 2001 From: Molly Zaugg Date: Sun, 25 Jan 2026 12:16:28 -0500 Subject: [PATCH] Created Rev. 1.0 --- .gitignore | 6 + README.md | 13 + Rev. 1.0/MonitoringPSU/Board/Board_Back.pdf | Bin 0 -> 80687 bytes .../MonitoringPSU/Board/Board_Back_Silk.pdf | Bin 0 -> 43051 bytes Rev. 1.0/MonitoringPSU/Board/Board_Front.pdf | Bin 0 -> 132658 bytes .../MonitoringPSU/Board/Board_Front_Silk.pdf | Bin 0 -> 94496 bytes .../Board/MonitoringPSU-B_Cu.pdf | Bin 0 -> 102769 bytes .../Board/MonitoringPSU-B_Mask.pdf | Bin 0 -> 56689 bytes .../Board/MonitoringPSU-B_Paste.pdf | Bin 0 -> 45261 bytes .../Board/MonitoringPSU-B_Silkscreen.pdf | Bin 0 -> 45398 bytes .../Board/MonitoringPSU-Edge_Cuts.pdf | Bin 0 -> 45394 bytes .../Board/MonitoringPSU-F_Cu.pdf | Bin 0 -> 103324 bytes .../Board/MonitoringPSU-F_Mask.pdf | Bin 0 -> 56488 bytes .../Board/MonitoringPSU-F_Paste.pdf | Bin 0 -> 45342 bytes .../Board/MonitoringPSU-F_Silkscreen.pdf | Bin 0 -> 113230 bytes .../Board/MonitoringPSU-NPTH-drl_map.pdf | Bin 0 -> 3495 bytes .../Board/MonitoringPSU-PTH-drl_map.pdf | Bin 0 -> 23213 bytes .../MonitoringPSU/MonitoringPSU.kicad_pcb | 40755 ++++++++++++++++ .../MonitoringPSU/MonitoringPSU.kicad_prl | 131 + .../MonitoringPSU/MonitoringPSU.kicad_pro | 663 + .../MonitoringPSU/MonitoringPSU.kicad_sch | 10173 ++++ .../Outputs/MonitoringPSU-B_Cu.gbr | 7560 +++ .../Outputs/MonitoringPSU-B_Mask.gbr | 438 + .../Outputs/MonitoringPSU-B_Paste.gbr | 15 + .../Outputs/MonitoringPSU-B_Silkscreen.gbr | 15 + .../Outputs/MonitoringPSU-Edge_Cuts.gbr | 23 + .../Outputs/MonitoringPSU-F_Cu.gbr | 7277 +++ .../Outputs/MonitoringPSU-F_Mask.gbr | 438 + .../Outputs/MonitoringPSU-F_Paste.gbr | 15 + .../Outputs/MonitoringPSU-F_Silkscreen.gbr | 13128 +++++ .../Outputs/MonitoringPSU-NPTH-drl_map.gbr | 162 + .../Outputs/MonitoringPSU-NPTH.drl | 12 + .../Outputs/MonitoringPSU-PTH-drl_map.gbr | 4613 ++ .../Outputs/MonitoringPSU-PTH.drl | 232 + .../Outputs/MonitoringPSU-job.gbrjob | 127 + .../PSU-002_MonitoringPSU_Rev1.0.zip | Bin 0 -> 169581 bytes .../MonitoringPSU/Schematic/MonitoringPSU.csv | 23 + .../MonitoringPSU/Schematic/MonitoringPSU.pdf | Bin 0 -> 179641 bytes Rev. 1.0/MonitoringPSU/fp-info-cache | 1 + 39 files changed, 85820 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 Rev. 1.0/MonitoringPSU/Board/Board_Back.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/Board_Back_Silk.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/Board_Front.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/Board_Front_Silk.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-B_Cu.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-B_Mask.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-B_Paste.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-B_Silkscreen.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-Edge_Cuts.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-F_Cu.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-F_Mask.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-F_Paste.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-F_Silkscreen.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-NPTH-drl_map.pdf create mode 100644 Rev. 1.0/MonitoringPSU/Board/MonitoringPSU-PTH-drl_map.pdf create mode 100644 Rev. 1.0/MonitoringPSU/MonitoringPSU.kicad_pcb create mode 100644 Rev. 1.0/MonitoringPSU/MonitoringPSU.kicad_prl create mode 100644 Rev. 1.0/MonitoringPSU/MonitoringPSU.kicad_pro create mode 100644 Rev. 1.0/MonitoringPSU/MonitoringPSU.kicad_sch create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-B_Cu.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-B_Mask.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-B_Paste.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-B_Silkscreen.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-Edge_Cuts.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-F_Cu.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-F_Mask.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-F_Paste.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-F_Silkscreen.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-NPTH-drl_map.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-NPTH.drl create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-PTH-drl_map.gbr create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-PTH.drl create mode 100644 Rev. 1.0/MonitoringPSU/Outputs/MonitoringPSU-job.gbrjob create mode 100644 Rev. 1.0/MonitoringPSU/PSU-002_MonitoringPSU_Rev1.0.zip create mode 100644 Rev. 1.0/MonitoringPSU/Schematic/MonitoringPSU.csv create mode 100644 Rev. 1.0/MonitoringPSU/Schematic/MonitoringPSU.pdf create mode 100644 Rev. 1.0/MonitoringPSU/fp-info-cache diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c8f406d --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*-backups/ +backups/ +*-backups*/ +*-backups* +*-backup*/ +*-backup* diff --git a/README.md b/README.md new file mode 100644 index 0000000..3b4a6a5 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Monitoring PSU + +This is much the same as the Small PSU, but includes voltage and current monitoring via panel mount volt/amp meters. No current limit or voltage adjustment though, those will be added in a future PSU. + +It also has a wider variety of outputs so that it is useful not just for ZOE projects but general electronics use too. Part of the reason why I started this is to help troubleshoot issues with the first SamllPSU I built and to understand how to best design a PSU. + +Fixed +/- 12V outputs and a +5V output. All outputs are current limited to 1A. + +## Revision History +**Rev 1.0** - January 2026 +- Created the design, layed out the board, generated the output files, did all the things for a very basic PSU design. +- PDF of the schematic, and List of Materials +- Should have ample smoothing, but this will have to be tested once I bulid it. diff --git a/Rev. 1.0/MonitoringPSU/Board/Board_Back.pdf b/Rev. 1.0/MonitoringPSU/Board/Board_Back.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7e43668b093b99c02cf52c8d40b9a8b84d7b40ba GIT binary patch literal 80687 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