• Stars
    star
    163
  • Rank 229,811 (Top 5 %)
  • Language
  • License
    CERN Open Hardwar...
  • Created about 2 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A small DC UPS, designed to keep small appliances like consumer network equipment running during power outages

DC uninterruptible power supply

This repository contains the design files for a DC uninterruptible power supply well suited to run network appliances like small switches, home routes and WLAN access points.

I would not recommend ordering RevB yet as there are still some issues with the current design. See Rev B issues below.

Render of the device

Features

  • 3 DC outputs
  • Selectable output voltage (9V/12V/12.5V/15V)
  • USB-C power output (5V only, 3A)
  • Builtin, easy to replace batteries (2x Li-Ion 18650)
  • Builtin Prometheus-exporter with comprehensive metrics
  • Open Source firmware (ESP32-based, esp-idf framework)
  • Easy software updates via back USB port

Construction

The mechanical construction of the DC UPS is based on 4 assemblies:

  • Hammond Manufacturing 1455L1601 aluminum case
  • Main PCB
  • Aluminum core PCB front panel
  • Aluminum core PCB rear panel

The three PCBs have been optimized for manufacturing through JLCPCB.
The main PCB is also designed to be suitable for assembly through JLCPCB.

The relevant fabrication files are located in fab.

For final assembly it is recommended to countersink the screw holes in front and rear panel. This will allow the screws included with the case to sit flush.

Main PCB assembly

When using the JLCPCB assembly service only a very limited number of components needs to be assembled by hand:

  • Battery holder B1
  • OLED display U17

Thermals

For better thermal management I would highly recommend to install a thick, generously sized thermal pad below U4 and L2 contacting the bottom case if using the UPS DC outputs beyond 40W output power.

Firmware

The DC UPS is running Open Source firmware. Firmware source can be found on GitHub here: https://github.com/TobleMiner/dc-ups-firmware

Why?

For a long time I was running the core of my home network (a cable modem, router and switch) off a normal line-interactive AC UPS.
This was never ideal for a number of reasons. First of all the UPS was using sealed lead acid batterys. The UPS did not seem to treat those too kindly and ended up degrading them beyond the point of useful capacity within 2 - 5 years, depending on quality of the battery.
Also I noticed that the UPS was always getting somewhat warm, suggesting high idle power consumption. In this particular setup the core network components only use about 12W. The AC UPS alone already used 10W while idle. Quite the waste of power.
Another worrying factor was overall system reliability. With the AC UPS there were three seperate wall warts in use, each powering a single device. Powering all network compoenents with DC directly this is down to just one wall wart at the power input of the UPS itself.
Additionally I was never quite happy with the monitoring options offered by the AC UPS. While it was equipped with a USB port for monitoring the available metrics were minimal. The DC UPS offers an Ethernet port and hosts a Prometheus exporter offering all kinds of metrics relating to power input and output, temperatures, battery health and battery management internals.
Finally the DC UPS is a lot smaller than available AC UPS options. The following picture shows a comparison between the AC UPS I have been using before and the DC UPS:

Size comparison between AC UPS and DC UPS. DC UPS is way smaller

Rev B issues

Rev B is still more of a prototype than I'd like. This is the list of currently know issues:

  • DCDC U4 startup is too slow on power failure, remove Q13
  • R47 and R48 are too high resistance for effective testing

More Repositories

1

HPE-FlexibleLOM-adapter

Adapter for using HPE FlexibleLOM cards in full height PCIe slots
226
star
2

ESP32-Devkit-Type-C

Breadboard friendly, USB Type C enabled, ESP32 Devkit compatible, JLCPCB assembly ready ESP32 devboard
79
star
3

shoreline

A very fast (200+ Gbit/s) pixelflut server written in C with full IPv6 support
C
63
star
4

oled-nametag

A ESP32-based OLED nametag
OpenSCAD
51
star
5

sturmflut

A FAST (80+ Gbit/s) pixelflut client with full IPv6 and animation support
C
43
star
6

lmic-esp-idf

A good port of the LMIC LoRaWAN library to esp-idf
C
40
star
7

esp_i2s_parallel

A simple parallel i2s driver for the esp32
C
38
star
8

dc-ups-firmware

C
30
star
9

M.2-NVMe-SSD-to-miniPCIe-adapter

A simple M.2 NVMe to miniPCIe adapter
21
star
10

Palm-IIIc-CCFL-led-retrofit

LED backlight replacement for the Palm IIIc
18
star
11

PBP-NGFF-A-E-adapter

A/E Key NGFF adapter for the Pinebook Pro. Designed as drop-in replacement for the NVMe adapter.
15
star
12

mk_esp32fat

A simple tool for building FAT filesystem images for the ESP32 fatfs with wear levelling support
C
14
star
13

blinkekatze

Blinkekatze, a replacement PCB to turn cat themed night-lights into interactive light displays
14
star
14

wintron7.0

Some documentation on what I did to get Linux running on the TrekStor SurfTab wintron 7.0
12
star
15

blinkekatze-firmware

Firmware for Blinkekatze, a replacement PCB to turn cat themed night-lights into interactive light displays
C
10
star
16

eMMC-microSD

Board to use common eMMC flash as microSD cards
9
star
17

PCIe-breakout

PCIe to .1 inch header breakout
9
star
18

dialog-cr16c-uart-boot

Tools and utilities for booting Dialog SC14441 and similar MCUs via UART
C
9
star
19

ttn-klax

TTN Decoder for KLAX LoRaWAN electricity meter sensors
JavaScript
8
star
20

eMMC-SD-Card

eMMC in a SD Card formfactor
8
star
21

InfiRay-C200-macro-lens

OpenSCAD
8
star
22

kernelstuff

Some drivers I wrote
C
7
star
23

OpenHomelabSwitch

6
star
24

vfd-breadboard-adapter

5
star
25

linux2boot

A kexec-based POSIX shell boot manager
Shell
5
star
26

oled-nametag-firmware

C
5
star
27

RGB-led-nametag

A small 48x16 pixel wearable LED canvas
OpenSCAD
5
star
28

KVMGT

Some notes on KVMGT with libvirt and qemu on Intel Skylake
4
star
29

LiIon-buck-boost-3V3

Simple full voltage range single cell LiIon to 3.3 V buck-boost converter
4
star
30

cc-crypto

Encrypted and authenticated communication for ComputerCraft
Lua
4
star
31

c-object-log

Simple, but efficient log-structured linked-list style storage in C
C
3
star
32

tps63070-module

A small step-up/-down module based on the TI tps63070, footprint-compatible to MP1584EN
3
star
33

VFDboy-advance

3
star
34

docsis-segment-utilization

A bash tool to measure utilization of docsis cable segments
Shell
3
star
35

bioptics-bx4x4-acquisition-board

Custom acquisition board for Bioptics BX4x4 digital X-Ray sensors (8x RadEye1) as found in Faxitron MX-20 variant DC44 [WIP]
3
star
36

ttn-tracker-heltec

A simple ttn tracker based on the Heltec WiFi LoRa 32
C
3
star
37

rigol-DP832-USB-C-adapter

A USB-C power adapter for the Rigol DP832
3
star
38

NRF24L01_CONN

Lib for connection based data transmission via NRF24L01+. WIP
C
3
star
39

WUART

UART over NRF24L01 for ATmega 88 compatible microcontrollers
C
3
star
40

tiny-matrix

A tiny, charlieplexed 8x8 STM32 LED Matrix
Makefile
3
star
41

freifunk-infrastructure-ansible

Ansible for the infrastructure of Freifunk Kiel
Jinja
3
star
42

InfiRay-C200-serial-port-cover

Replacement port cover for InfiRay C200 (aka Vevor SC240 or TopDon TC004) to add a serial port for console access
OpenSCAD
3
star
43

STM32-RedPill

The RedPill, for when you realize the BluePill just doesn't cut it
2
star
44

vncmux

A simple vnc multiplexer
C
2
star
45

nekomimi-ctl

Control software for catears. See https://github.com/TobleMiner/catear-pcb
C
2
star
46

esp_dma

A generalized dma component for esp-idf
C
2
star
47

vfd-nametag

A ESP32 based electronic nametag with a Vacuum Fluorescent Display
C
2
star
48

mini-pcie-breakout

A small mini PCIe breakout board
2
star
49

noritake_mn12864k_controller

STM32F7-based controller for the Noritake MN12864K VFD
2
star
50

fahrschulcard

Self learning online driver license question solving bot for https://fahrschulcard.de
Python
2
star
51

ansible-as208340

Ansible for my AS. Set up to be fairly generic, should work for a wide range of BGP-based systems
Jinja
1
star
52

kicad-ifa

Some IFAs designed for KiCad
1
star
53

gpsd2influxdb

A simple daemon for importing GPS data into an influxdb
Shell
1
star
54

gluon-tsys

C
1
star
55

buildroot-cmm2

DOOM for the CMM2
Makefile
1
star
56

PCIe-x2-M.2-Key-A_E-adapter

A PCIe to M.2 A/E Key adapter with two PCIe lanes
1
star
57

u-boot

C
1
star
58

framework-zephyr

v2.5.0-rc2 of zephyr with pio meta files
C
1
star
59

FanCtl

C
1
star
60

USB-C-data-splitter

Splits a USB-C socket into two USB-C ports by data and power domain
1
star
61

u-boot-cmm2

u-boot for the Colour Maximite 2 clone by @Manawyrm
C
1
star
62

catear-pcb

1
star
63

esp-idf-freetype-component

A wrapper around freetype for the esp-idf build ecosystem
CMake
1
star
64

minifloat-c

Some minifloat C implementations
C
1
star
65

ffki-scripts

Shell
1
star
66

NRF-RPi-Shield

Simple and small NRF shield for the Raspberry Pi
Game Maker Language
1
star
67

gpd-pocket-fan

Standalone repo for GPD Pocket fan kernel module
C
1
star
68

IFA-test-board

A simple test board for 33mm IFA designs
1
star
69

esp-idf-pixelflut-component

A pixelflut server implemented as an esp-idf component
C
1
star
70

usb-pd-poe-extractor

PoC for a USB PD PoE extractor
1
star
71

ts3anticrash

Lua plugin for TS3 to prevent the TS3 client from crashing due to abuse of [img] tags
Lua
1
star
72

linux-pnx8950

@Manawyrm gifted me a shitty PNX8950 based MIPS board for Valentine's day. This is a kernel for it. Also this kernel is broken DO NOT USE
C
1
star
73

oc-crypto

Encrypted and authenticated communication for OpenComputers
Lua
1
star
74

munin-vnstat

A small munin vnstat plugin designed to work on OpenWrt devices with ash and a minimal vnstat installation.
Shell
1
star
75

JSUtils

Some small js utilities
JavaScript
1
star
76

overlayfs-initcpio

Booting from an overlayfs as system root
Shell
1
star
77

hv-cascade-pcb-10kv

PCB layout for high voltage cascade modules
1
star
78

freifunk

Freifunk related stuff
OpenSCAD
1
star
79

u-boot-ralink

Deprecated! RBM33g now boots directly using RouterBOOT.
C
1
star
80

smol-mppt

A tiny, LTC4162 based MPPT multi-chemistry* charger
1
star
81

NRF24-ble-thermometer

C
1
star
82

kvparser

A simple key-value style format parser written in C
C
1
star
83

esp32-soft-mcp2120

Software implementation of the mcp2120 serial IrDA transceiver for ESP32
C
1
star
84

ublox-M8030-KT-breakout

Breakout for the bare UBX-M8030-KT chip. Supports pin compatible chips from M6, M7 and M8 generations. JLCSMT assembly supported
1
star
85

Palm-IIIc-usb-c-sync

A USB-C sync adapter for the Palm IIIc
1
star
86

T41-USB-C-PSU

OpenSCAD
1
star
87

NanoPi-R4S-SPI-flash-module

A small SPI NOR flash module for the NanoPi R4S
1
star
88

T430-mini-PCIe-to-M.2

1
star