diff --git a/README.md b/README.md index 695316b6c..2fd4b2cbd 100644 --- a/README.md +++ b/README.md @@ -45,11 +45,17 @@ Doppler radar, with an optional TI IWR6843 angle radar. | Raspberry Pi 5 | Runs everything | $130 | | 7" Touchscreen | Shows shot data | $46 | | SparkFun SEN-14262 | Impact sound trigger for shot capture | $18 | -| Power supply + accessories | | $27 | -| **Subtotal, no angle radar** | | **~$400** | -| TI IWR6843LEVM + cable | Launch angle, experimental club path | $156 | -| **Total with angle radar** | | **~$556** | -| K-LD7 (×2) + FTDI adapters | Launch angle + club path (**deprecated**) | $140 | +| Power supply + accessories | 27 W supply with a captive, non-detachable cable, active cooler, microSD, cables | $39 | +| Printed enclosure | ~750 g PETG, plus heat-set inserts and screws | $52 | +| **Base build, in its case** | Ball speed, club speed, smash factor, spin, carry | **~$534** | +| TI IWR6843LEVM | Launch angle, launch direction, experimental club path | $150 | +| **With the angle radar** | | **~$684** | + +Optional on top: battery power from a Geekworm UPS HAT (**+$90**, and it +replaces the 27 W supply — see [Powering OpenFlight](docs/get-started/power.md)), +a tilt sensor ($15), and a global-shutter camera ($30). Everything together is +roughly **$819**. Full staged breakdown in the +[parts list](docs/get-started/parts.md#cost-summary). Without an angle radar you still get ball speed, club speed, smash factor, experimental spin, and estimated carry. The angle radar adds measured launch @@ -321,6 +327,7 @@ uv run pytest tests/ -v Build it locally with `make docs` (serves at `localhost:8000`). - **[Parts List](docs/get-started/parts.md)** — What to buy +- **[Powering OpenFlight](docs/get-started/power.md)** — Pick a power route, and wire the DC input without reversing the rail - **[Sound Trigger Wiring](docs/build/sound-trigger.md)** — How to wire the sound trigger - **[Raspberry Pi Setup](docs/setup/raspberry-pi.md)** — Full setup guide - **[Electron Kiosk Shell](docs/electron-kiosk-shell.md)** — Why the kiosk runs in Electron and how self-updating could work later diff --git a/docs/get-started/build-order.md b/docs/get-started/build-order.md index f0094749b..03b89edc5 100644 --- a/docs/get-started/build-order.md +++ b/docs/get-started/build-order.md @@ -78,6 +78,27 @@ The largest step, and itself ordered: [wiring](../iwr6843/wiring.md) → **Verify:** [the first capture](../iwr6843/verify.md#verify-the-first-capture) returns a sane launch angle. +## 6. Put it in the case + +**→ [openflight-enclosure](https://github.com/open-flight/openflight-enclosure)** + +Itself ordered: +[choose a variant](https://github.com/open-flight/openflight-enclosure/blob/main/docs/choosing-a-variant.md) +→ [required hardware](https://github.com/open-flight/openflight-enclosure/blob/main/docs/hardware.md) +→ [print](https://github.com/open-flight/openflight-enclosure/blob/main/docs/printing.md) +→ [assemble](https://github.com/open-flight/openflight-enclosure/blob/main/docs/assembly.md). + +Not an extra. Nothing measures repeatably until the boards are held in a +fixed, repeatable arrangement, and the same printed set covers both builds: +the radar front carries mounts for the OPS243 and the IWR6843, so an OPS-only +build prints the same parts and leaves the IWR mounts empty. + +> The older [IARC case](../build/enclosure.md) page describes the housing this +> replaced. It is kept for existing builds; do not print it for a new one. + +**Verify:** the unit sits square behind the ball, and nothing shifts when you +pick it up and set it down again. + ## Optional extras Any order, once the above works. @@ -86,7 +107,6 @@ Any order, once the above works. | --- | --- | --- | | Inclinometer | [LIS3DH](../build/inclinometer.md) | Compensates enclosure tilt so the IWR6843 angle stays honest if the unit is bumped | | Battery | [Geekworm X1202/X1206](../build/battery.md) | Portable operation with real telemetry and low-battery warnings | -| Enclosure | [IARC v3 case](../build/enclosure.md) | Printed housing for the whole assembly | | Simulators | [Connectors](../using/simulator/index.md) | Stream shots to GSPro, OpenGolfSim, PAR-TEE, E6 | | Cloud sync | [Cloud sync](../using/cloud-sync.md) | Push filtered sessions to FlightWeb | | Log shipping | [Observability](../using/observability.md) | Query sessions in Grafana Cloud | diff --git a/docs/get-started/index.md b/docs/get-started/index.md index effba2c68..fbc509beb 100644 --- a/docs/get-started/index.md +++ b/docs/get-started/index.md @@ -4,7 +4,7 @@ icon: lucide/flag # Get Started -Four pages, in order. If you are deciding whether to build one, start with the +Five pages, in order. If you are deciding whether to build one, start with the overview; if you have already decided, go straight to the parts list.
@@ -19,6 +19,11 @@ overview; if you have already decided, go straight to the parts list. Everything to buy, with links and a cost summary. Some items have long lead times — order first. +- :material-power-plug-outline: **[Power](power.md)** + + How to feed the unit: the official supply, a UPS HAT, or USB-C PD. Read the + polarity warning before wiring a DC jack. + - :material-format-list-numbered: **[Build order](build-order.md)** The sequence and its prerequisites. Doing these out of order means redoing diff --git a/docs/get-started/parts.md b/docs/get-started/parts.md index 505fc2085..2c16aaa28 100644 --- a/docs/get-started/parts.md +++ b/docs/get-started/parts.md @@ -2,7 +2,7 @@ Hardware components for building the OpenFlight golf launch monitor. -> **Ordering shortcut:** A shared **[OpenFlight Mouser project](https://www.mouser.com/en/Tools/Project/Share?AccessID=4c97a00bbc)** is available for the parts Mouser stocks — open it, save it to your own Mouser account, and add the whole list to your cart in one step instead of searching for each item. Check it against the tables below before you order: anything Mouser does not carry has a direct vendor link here. +> **Ordering shortcut:** A shared **[OpenFlight Mouser project](https://www.mouser.com/en/Tools/Project/Share?AccessID=4c97a00bbc)** is available for the parts Mouser stocks. Check it against the tables below before you order: anything Mouser does not carry has a direct vendor link here. > **Next step after gathering parts:** See the [Raspberry Pi Setup Guide](../setup/raspberry-pi.md) for assembly and software installation. @@ -13,7 +13,7 @@ Hardware components for building the OpenFlight golf launch monitor. | **OPS243 Radar** | Doppler radar for ball/club speed detection | [OmniPreSense](https://omnipresense.com/product/ops243-doppler-radar-sensor/) | $249 | | **Raspberry Pi 5** | Main compute unit (4GB+ recommended) | [Adafruit](https://www.adafruit.com/product/5812) | $130 | | **7" Touchscreen Display** | HMTECH 7" 1024x600 IPS display | [Amazon](https://www.amazon.com/dp/B0D3QB7X4Z) | $46 | -| **Raspberry Pi Display Cable, Standard–Mini, 200 mm (SC1131)** | Only with the Touch Display 2 below: the 22-way (Pi 5 "mini") to 15-way (display "standard") DSI ribbon. Buy the 200 mm length; 300 and 500 mm also fit but leave a loop to stow. The ribbon in the Display 2 box is about 100 mm and does not reach the Pi in the v3 case, see the note below and [Cable lengths](#cable-lengths-enclosure-v3) | [Raspberry Pi](https://www.raspberrypi.com/products/display-cable/) / [Mouser](https://www.mouser.com/ProductDetail/Raspberry-Pi/SC1131?qs=HoCaDK9Nz5eSyEpyddOkmQ%3D%3D) / [Amazon](https://www.amazon.com/dp/B0GX33S2C6) (Raspberry Pi's own listing; pick 200 mm) | ~$2 | +| **Raspberry Pi Display Cable, Standard–Mini, 200 mm (SC1131)** | Only with the Touch Display 2 below: the 22-way (Pi 5 "mini") to 15-way (display "standard") DSI ribbon. Buy **200 mm** — the ~100 mm ribbon in the Display 2 box does not reach the Pi in the v3 case ([Cable lengths](#cable-lengths-enclosure-v3)). 300 and 500 mm fit but leave a loop to stow | [Raspberry Pi](https://www.raspberrypi.com/products/display-cable/) / [Mouser](https://www.mouser.com/ProductDetail/Raspberry-Pi/SC1131?qs=HoCaDK9Nz5eSyEpyddOkmQ%3D%3D) / [Amazon](https://www.amazon.com/dp/B0GX33S2C6) (Raspberry Pi's own listing; pick 200 mm) | ~$2 | > **NOTE on OPS243-A-W (WiFi version):** The standard **OPS243-A** (USB only) is strongly recommended. The WiFi module on the OPS243-A-W drives the internal UART receive line, preventing direct connection to the Raspberry Pi GPIO UART (Layout A). However, if you already have the WiFi version, it can still be used over USB with a powered USB hub (Layout B) when paired with the IWR6843 angle radar. @@ -29,7 +29,7 @@ The sound trigger detects club impact to precisely time radar captures. Essentia |------|-------------|------|--------| | **SparkFun SEN-14262** | Sound Detector with envelope/gate outputs | [SparkFun](https://www.sparkfun.com/products/14262) | $12 | | **Through-hole resistor** | For R17 pad on SEN-14262 to reduce sensitivity (see note) | Any electronics supplier | $1 | -| **Jumper wires (female/female, 300 mm)** | 8 wires out of one pack: `GATE` → `HOST_INT`, `VCC` → 3.3V and `GND` → `GND` from the sound detector, the OPS243 → Pi ground run, the OPS243 `TxD`/`RxD`/5V wires of Layout A, and the `GATE` → Pi BCM17 wire the angle radar needs. Female on both ends — the Pi GPIO header, the OPS243 J3 header, and headers soldered to the SEN-14262 are all male pins. 300 mm, not 150, because the sound detector sits on the camera strip at the front of the v3 case while the Pi is on the rear wall and the OPS243 on the radar front, and the strip has to come off with the detector still wired for service: a 150 mm wire reaches with the case closed but not opened (see [Cable lengths](#cable-lengths-enclosure-v3)). SparkFun PRT-09389: 10 wires, 12 in / 305 mm, $4.95 at SparkFun list; Mouser's listing (474-PRT-09389) is unverified. The 150 mm PRT-12796 pack in the shared Mouser project covers only the OPS243 ↔ Pi runs | [Mouser](https://www.mouser.com/c/?q=PRT-09389) / [SparkFun](https://www.sparkfun.com/jumper-wires-premium-12-f-f-pack-of-10.html) | $5 | +| **Jumper wires (female/female, 300 mm)** | 8 wires out of one pack: the detector's `GATE` → `HOST_INT`, `VCC` and `GND`; the OPS243 → Pi ground run; the OPS243 `TxD`/`RxD`/5V of Layout A; and `GATE` → Pi BCM17 for the angle radar. Female both ends — every header they meet is male pins. Buy **300 mm**, not 150, so the camera strip lifts off with the detector still wired ([Cable lengths](#cable-lengths-enclosure-v3)). SparkFun PRT-09389, 10 wires, $4.95; Mouser's 474-PRT-09389 is unverified, and the 150 mm PRT-12796 pack covers only the OPS243 ↔ Pi runs | [Mouser](https://www.mouser.com/c/?q=PRT-09389) / [SparkFun](https://www.sparkfun.com/jumper-wires-premium-12-f-f-pack-of-10.html) | $5 | > **R17 resistor:** The SEN-14262 is rated for 5V but runs at 3.3V in this setup, which can cause the GATE output to stick high. Soldering a resistor into the R17 through-hole position (in parallel with the onboard 100kΩ R3) reduces preamp gain and fixes this. Start with 47kΩ; use a lower value (e.g. 33kΩ) if the sensor is still too sensitive for your environment. @@ -51,14 +51,26 @@ See [sound-trigger-wiring.md](../build/sound-trigger.md) for detailed instructio ### Internal Trigger Instead (PR #221) +> **Why this is worth wanting, beyond the parts it saves.** A microphone cannot +> tell your strike from someone else's, and it cannot tell either from a door, +> a ball hopper or the next bay over — that is the nature of listening for a +> bang. It is why the SEN-14262 needs its `R17` gain trimmed to your room in +> the first place, and why a noisy range is the environment it handles worst. +> The internal trigger fires on the radar's own speed reading instead, so it +> responds to something moving in front of the sensor rather than to sound in +> the building. In theory that makes it both less error-prone and usable in +> loud places the sound trigger cannot cope with. Treat that as the expectation +> rather than a measured result: the mode is still unmerged, and nobody has +> published a false-trigger comparison between the two. + [PR #221](https://github.com/open-flight/openflight/pull/221) lets the OPS243-A start the rolling-buffer capture from its own speed trigger, so the sound detector, its resistor and its wiring are not needed. The firmware that adds that trigger is OPS243-A 1.3.2, and any OPS243-A can be brought to it. What that costs you depends on what your radar arrived with, so check before buying anything: plug the radar into USB, open a serial terminal, send `?V`, and read the version it prints back. - **It reports 1.3.2 or later.** Nothing to buy. OmniPreSense [told the project on 2026-09-10](https://github.com/open-flight/openflight/pull/221#issuecomment-5619646576) that 1.3.2 went onto the sensors shipping from that build on (1.3.1 had gone to some earlier customers with a late bug), so a new order should arrive like this. Once the PR lands, skip the Sound Trigger table above. -- **It reports 1.3.1 or older.** You flash it yourself, which is where the debugger cost comes in. OmniPreSense's [AN-013 code-update note](https://omnipresense.com/wp-content/uploads/2019/06/AN-013-D_OPS241-Code-Update.pdf) is the procedure: a SEGGER J-Link on the radar's keyed `J2` JTAG header (a 10-pin 1.27 mm Cortex debug header, not the `J3` UART header OpenFlight wires to), Infineon's free XMCFlasher in Serial Wire Debug mode with the XMC4500-1024 target selected, and the 1.3.2 hex file, which is not a public download: email customerservice@omnipresense.com for it, and they will also confirm which J-Link model to get. Send `?P` first and pick the XMC4700 in XMCFlasher instead if the board reports that part ([note on the PR](https://github.com/open-flight/openflight/pull/221#issuecomment-5463503457)). Do not press Erase in XMCFlasher: it clears the factory settings some sensors carry and anything you saved to persistent memory. On Windows run the J-Link driver installer as administrator and tick the legacy J-Link USB driver, or XMCFlasher will not find the probe ([upgrade report](https://github.com/open-flight/openflight/pull/221#issuecomment-5756563718)). +- **It reports 1.3.1 or older.** You flash it yourself, which is where the debugger cost comes in. OmniPreSense's [AN-013 code-update note](https://omnipresense.com/wp-content/uploads/2019/06/AN-013-D_OPS241-Code-Update.pdf) is the procedure: a SEGGER J-Link on the radar's keyed `J2` JTAG header (a 10-pin 1.27 mm Cortex debug header, not the `J3` UART header OpenFlight wires to), Infineon's free XMCFlasher in Serial Wire Debug mode with the XMC4500-1024 target selected, and the 1.3.2 hex file, which is not a public download — OmniPreSense hand it out on request. **Two ways to ask, both confirmed by Sandy at OmniPreSense**, who [said on the project Discord](https://github.com/open-flight/openflight/pull/221#issuecomment-5619646576) *"If you have a Segger programmer, and would like to update the code on your OPS243, please send me a message here or via email on our website"*: message them on **Discord**, or use the **contact page on [omnipresense.com](https://omnipresense.com/contact/)**. The customerservice@omnipresense.com address reaches them too. They will also confirm which J-Link model to get. Send `?P` first and pick the XMC4700 in XMCFlasher instead if the board reports that part ([note on the PR](https://github.com/open-flight/openflight/pull/221#issuecomment-5463503457)). Do not press Erase in XMCFlasher: it clears the factory settings some sensors carry and anything you saved to persistent memory. On Windows run the J-Link driver installer as administrator and tick the legacy J-Link USB driver, or XMCFlasher will not find the probe ([upgrade report](https://github.com/open-flight/openflight/pull/221#issuecomment-5756563718)). | Part | Description | Link | ~Price | |------|-------------|------|--------| -| **SEGGER J-Link EDU Mini (Adafruit 3571)** | Only if you go the internal-trigger route and your OPS243-A reports firmware older than 1.3.2. This is the low-cost programmer AN-013 points at; the 9-pin 0.05" (1.27 mm) Cortex target cable that fits `J2` and a USB-C cable are in the box, so nothing else is needed. Licensed for non-commercial use only. In the shared Mouser project | [Mouser](https://www.mouser.se/en/ProductDetail/Adafruit/3571?qs=YCa%2FAAYMW03SrXLinBpZFw%3D%3D) / [Amazon](https://www.amazon.com/dp/B0758XRMTF) / [Adafruit](https://www.adafruit.com/product/3571) | $76 | +| **SEGGER J-Link EDU Mini (Adafruit 3571)** | Only if you go the internal-trigger route and your OPS243-A reports firmware older than 1.3.2. This is the low-cost programmer AN-013 points at; the 9-pin 0.05" (1.27 mm) Cortex target cable that fits `J2` is in the box | [Mouser](https://www.mouser.se/en/ProductDetail/Adafruit/3571?qs=YCa%2FAAYMW03SrXLinBpZFw%3D%3D) / [Amazon](https://www.amazon.com/dp/B0758XRMTF) / [Adafruit](https://www.adafruit.com/product/3571) | $76 | That is about four times the sound trigger's $18, and it is a one-off tool rather than a part of the monitor, so it is a trade you make for the wiring and the R17 soldering the internal trigger removes, not for the price. @@ -70,8 +82,8 @@ angle, and supplies the pre-impact frames club path is derived from. | Part | Description | Link | ~Price | |------|-------------|------|--------| | **TI IWR6843LEVM** | 60 GHz mmWave evaluation board, 4 RX × 3 TX | [TI](https://www.ti.com/tool/IWR6843LEVM) | $150 | -| **Micro-USB cable (data-capable), 250-300 mm** | Connects the LEVM's CP2105 serial bridge to the Pi — the LEVM's USB port is micro-USB. Charge-only cables will not enumerate. Length: the LEVM's micro-USB (`J5`) sits at the top edge of the board on the radar front and the Pi's USB-A ports at the top of the rear wall, so 150 mm is the shortest that still leaves room for the two plug bodies and the bends; 250-500 mm is comfortable, and the shared Mouser project carries a 50 cm StarTech cable (see [Cable lengths](#cable-lengths-enclosure-v3)) | Any | $5 | -| **Jumper wire** | 1 wire: detector `GATE` → Pi BCM17 / physical pin 11, alongside the existing `GATE` → OPS `HOST_INT`. Female/female again — comes out of the same 300 mm SparkFun PRT-09389 pack as the sound-trigger wires above; 150 mm reaches with the case closed but not with the camera strip lifted off, which is why the pack is 300 mm | [Mouser](https://www.mouser.com/c/?q=PRT-09389) | $1 | +| **Micro-USB cable (data-capable), 250-300 mm** | Connects the LEVM's CP2105 serial bridge to the Pi; the LEVM's port is micro-USB, and charge-only cables will not enumerate. 150 mm is the floor and 250-500 mm comfortable ([Cable lengths](#cable-lengths-enclosure-v3)); the shared Mouser project carries a 50 cm StarTech cable. This is the same single cable as the micro-USB row in Accessories, not a second one: with both radars fitted it serves the LEVM, because Layout A puts the OPS243 on the GPIO UART | Any | in Accessories | +| **Jumper wire** | 1 wire: detector `GATE` → Pi BCM17 / physical pin 11, alongside the existing `GATE` → OPS `HOST_INT`. Female/female, out of the same 300 mm SparkFun PRT-09389 pack as the sound-trigger wires above, so it is not a separate purchase | [Mouser](https://www.mouser.com/c/?q=PRT-09389) | in that pack | The board needs **custom firmware** — it does not work out of the box. The stock TI demo does not expose the raw radar cube OpenFlight needs. A validated @@ -113,7 +125,7 @@ tilt when the rig is placed on uneven ground. |------|-------------|------|--------| | **Adafruit LIS3DH breakout** | Triple-axis accelerometer with STEMMA QT connectors | [Adafruit product 2809](https://www.adafruit.com/product/2809) | $5 | | **JST-SH cable kit (Qwiic-to-Dupont)** | Qwiic/STEMMA QT to female Dupont jumpers, used in the validated build. The LIS3DH plugs into its STEMMA QT socket and the Dupont ends push straight onto the Pi GPIO header, so no soldering is needed — the alternative is soldering a header onto the breakout and wiring that by hand | [Amazon](https://www.amazon.com/Connector-Compatible-Development-Sensors-Drivers/dp/B0GJPRX4YT) | ~$10 | -| **Qwiic-to-Dupont cable (single)** | Mouser-stocked equivalent of the kit above: one JST-SH 4-pin to female Dupont sockets cable, 150 mm (SparkFun CAB-17261, Mouser 474-CAB-17261, the line in the shared Mouser project; Adafruit 4397 is the same cable from Adafruit direct). Enough on its own for the LIS3DH → Pi header run, and it keeps the whole inclinometer orderable from Mouser. 150 mm is the only length either maker offers in this JST-SH-to-female-socket configuration; the shorter 50-100 mm Qwiic cables are Qwiic-to-Qwiic and have no Dupont end. Reaches the floor bay nearest the Pi with about 15 mm to spare as routed; plug it into the LIS3DH socket nearer the Pi (see [Cable lengths](#cable-lengths-enclosure-v3)) | [Mouser](https://www.mouser.com/ProductDetail/SparkFun-Electronics/CAB-17261?qs=DRkmTr78QAQLJE%2FDhtP97Q%3D%3D) / [Amazon](https://www.amazon.com/dp/B0992PHLBC) / [Adafruit 4397](https://www.adafruit.com/product/4397) | ~$2 | +| **Qwiic-to-Dupont cable (single)** | Mouser-stocked equivalent of the kit above: one JST-SH 4-pin to female Dupont cable, 150 mm (SparkFun CAB-17261 / Mouser 474-CAB-17261, in the shared Mouser project; Adafruit 4397 is the same cable direct). Enough on its own for the LIS3DH → Pi header run, and it keeps the inclinometer orderable from Mouser. 150 mm is the only length made in this configuration — the shorter Qwiic cables have no Dupont end. Plug it into the LIS3DH socket nearer the Pi ([Cable lengths](#cable-lengths-enclosure-v3)) | [Mouser](https://www.mouser.com/ProductDetail/SparkFun-Electronics/CAB-17261?qs=DRkmTr78QAQLJE%2FDhtP97Q%3D%3D) / [Amazon](https://www.amazon.com/dp/B0992PHLBC) / [Adafruit 4397](https://www.adafruit.com/product/4397) | ~$2 | See the **[LIS3DH Inclinometer Setup Guide](../build/inclinometer.md)** for wiring, mounting, calibration, startup flags, and troubleshooting. @@ -148,34 +160,32 @@ One unit is mounted vertically (launch angle), one horizontally (club path / aim -## Power & Accessories +## Accessories + +> **Everything about power is in [Powering OpenFlight](power.md)**, including +> the barrel-jack polarity rules and the lithium-cell safety. Choosing how to +> feed the unit — the official 27 W supply, a Geekworm UPS HAT, a wide-input +> DC-to-USB-C module, a USB-C PD charger or power bank, or PoE — decides +> several parts at once, and one of those routes can destroy the whole build if +> it is wired backwards. The rows below are the accessories every build needs +> whichever route you pick. | Part | Description | Link | ~Price | |------|-------------|------|--------| -| **27W USB-C Power Supply** | Official Pi 5 power supply (5.1V 5A). **It must be this supply, or one that negotiates 5V at 5A over USB PD.** The Pi 5 only releases its full downstream USB power budget when the supply reports 5A, and the two radars need that budget; a standard USB-C PD charger tops out at 3A at 5V, the Pi then caps the USB ports, and the radars brown out or fail to enumerate. Plug it straight into the Pi: do not route it through a USB-C extension or panel-mount pass-through in the case, because the extra contact resistance causes voltage sag and can make the 5V 5A negotiation fail, and a panel-mount USB-C pass-through rated for 5A is hard to find in the first place. Not needed if you power the Pi from the UPS HAT (see below) | [Adafruit](https://www.adafruit.com/product/5814) | $14 | | **Raspberry Pi Active Cooler** | Clip-on heatsink + fan for the Pi 5 (SC1148). Recommended: the kiosk runs the UI, radar capture, and FFT processing continuously, and a passively cooled Pi 5 throttles under sustained load | [Mouser](https://www.mouser.com/ProductDetail/Raspberry-Pi/SC1148?qs=HoCaDK9Nz5fqo0izK2taew%3D%3D) | $8 | | **Jumper wires (female/male, 75 mm)** | Header-pin extensions: the female end goes onto a Pi GPIO pin and the male end re-presents that pin for a second connector. Used here to keep the 5V rail reachable for the OPS243 when the Touch Display 2 is also wired to the header, instead of one connector covering the whole rail. 75 mm is the shortest female/male length Mouser stocks (Adafruit 1953, Mouser 485-1953, 20-wire ribbon). $1.95 at Adafruit list; Mouser's price for 485-1953 is unverified | [Mouser](https://www.mouser.com/ProductDetail/Adafruit/1953?qs=GURawfaeGuBbX2LiaCDbnA%3D%3D) | $2 | | MicroSD Card (32GB+) | For Pi OS and software | Any Class 10 | $10 | -| USB-A to Micro-USB Cable | For OPS243 radar connection | Any | $5 | - -> **Cheaper and simpler with the UPS HAT:** if you fit the Geekworm X1202/X1206 from the Optional table, skip the 27W USB-C supply. Any barrel-jack supply that gives the UPS enough power feeds it (Geekworm asks for 3A or more anywhere in its 6-18V range; at 12V that also charges the cells at full rate while the Pi runs flat out, at lower voltages it does not; see the adapter row in the Optional table), and the UPS delivers 5.1V 5A to the Pi over its pogo pins; the Geekworm setup script sets `PSU_MAX_CURRENT=5000` so the Pi treats it as a 5A supply and keeps the full USB budget. For a device that lives in a case, the DC barrel jack is the better input either way: there is no USB PD negotiation to fail and no USB-C extension to sag, and a 12V adapter you already own will do. +| USB-A to Micro-USB Cable | One data-capable cable, for whichever radar sits on USB. With the **OPS243 on its own** it plugs into the OPS243. With **both radars** Layout A moves the OPS243 onto the Pi's GPIO UART header, because the Pi cannot supply both from its USB budget, so this cable goes to the IWR6843LEVM instead — the LEVM does not include one. It is the same single cable either way, not one per radar; the length to buy is in the angle-radar table above | Any | $5 | -> **UPS safety, read before the first charge:** **Never charge the 18650 cells below 0 °C (32 °F).** Lithium-ion cells charged below freezing plate lithium onto the anode, which permanently damages them and can make them unsafe; bring a cold rig indoors or let it warm up before connecting power. **Never connect the UPS's USB-C input and its barrel jack at the same time.** If you do power the UPS from the USB-C supply, plug it into the **UPS board's** USB-C socket, never into the Pi's own USB-C port while the Pi sits on the UPS. Details in the [Geekworm operator guide](../build/battery.md). - -> **Power input on the v3 case:** the [openflight-enclosure v3](https://github.com/open-flight/openflight-enclosure) shell has no USB-C opening. A USB-C supply can only be run into the case through one of the rear cutouts, so it stays captive to the case: there is no detachable USB-C option. For a supply you can unplug at the case, go the DC route: a panel-mount 5.5 × 2.1 mm DC jack in the shell's Ø12.5 mm rear DC hole, wired to the UPS without soldering. Buy a panel jack that comes with leads (the DC-route rows at the end of the Optional table), then either **(a)** join its leads to a 2-pin JST XH lead with two Wago 221 lever connectors and plug that into the X1202/X1206's `XH2.54-2P` DC input header, or **(b)** screw them into a 5.5 × 2.1 mm barrel plug that ends in a screw-terminal block (Adafruit 369, on Mouser; no Wagos needed) and plug that into the UPS's own barrel jack, which takes the same 6-18 V; any standard plug fits it (5.5 mm outer sleeve, 2.1 mm pin, 9.5-14 mm long, centre positive). Either way feed it **12 V**: the XH input is rated for about 3 A, so 12-18 V at 3 A is what carries the full Pi load plus charging, and the same 12 V adapters in the Optional table apply. Check polarity against the `+` mark at the header; the jack's centre pin is positive, and so is the plug's. ## Optional +> The UPS HATs, the DC adapter, the panel jack and the power button are in +> **[Powering OpenFlight](power.md)**. + | Part | Description | Link | ~Price | |------|-------------|------|--------| -| **Geekworm X1202 UPS HAT** | Rechargeable Pi 5 power using four matching flat-top 18650 Li-ion cells. Cells are not included | [Geekworm](https://geekworm.com/products/x1202) / [Amazon](https://www.amazon.com/dp/B0CRZ4ZXQW) | ~$48 + cells | -| **Geekworm X1206 UPS HAT** | Larger rechargeable Pi 5 power option using four matching flat-top 21700 Li-ion cells (unprotected only, per Geekworm), advertised up to 20,000mAh total. The four 21700 holders are on the board, like the X1202's 18650 holders, so no separate holder is needed; cells are not included. Same XH2.54 power-button header as the X1202, so the button row below fits it too. Power it the same way as the X1202: 12V or higher on the DC input (the adapter row), or 5V 5A on USB-C | [Geekworm](https://geekworm.com/products/x1206) | $52 + cells | -| **X1202 power button: Adafruit 16 mm momentary button (1445) + XH quick-connect leads (1152)** | The X1202/X1206 expose their external power button on an XH2.54 2-pin header and need a momentary (spring-back) switch: the board reads press length the way the Pi 5 power button does, so a latching or toggle switch will not work. The 1445 is a 16 mm panel-mount momentary push button (normally open, two 0.11" tabs). The 1152 pack holds ten 20 cm wire pairs, each ending in a 2-pin JST XH plug for the header and two pre-crimped 0.11" quick-connects that push onto the button's tabs, so nothing is soldered or crimped; Adafruit's 1445 page names the 1152 pairs as its wiring. Needs a 16 mm panel hole. **The v3 case does not have one yet:** both rear holes in the openflight-enclosure v3 shell are Ø12.5 mm, sized for a 12 mm button, so the 1445 fits only once the CAD opens the button hole to Ø16.5 mm, or you switch to a 12 mm momentary button with quick-connect tabs. The 1152's 200 mm leads reach the X1202's `PSW` header from the middle rear hole with slack, and from the right-hand hole only pulled straight across the Pi stack (see [Cable lengths](#cable-lengths-enclosure-v3)). Adafruit showed the 1152 out of stock when checked and its Amazon listing (B00SK6M36U) as unavailable; Mouser's stock is unverified | [Mouser (1445)](https://www.mouser.com/ProductDetail/Adafruit/1445?qs=GURawfaeGuAOIArgy7Ph4w%3D%3D) / [Mouser (1152)](https://www.mouser.com/ProductDetail/Adafruit/1152?qs=GURawfaeGuAkPRIbdozo3A%3D%3D) / [Adafruit](https://www.adafruit.com/product/1445) | ~$6 | -| **DC adapter for the X1202 (5.5 × 2.1 mm barrel, center positive, 6-18V, 3A or more)** | Feeds the X1202 through its barrel jack instead of USB-C, which is the better input for a cased build: no USB PD negotiation to fail and no USB-C extension to sag. The X1202 accepts 6-18V DC on that jack and converts it to the 5.1V 5A the Pi 5 needs while also charging the cells. Geekworm's stated requirement is a current, not a wattage: "6-18Vdc, ≥3A", with charging at up to 3.2A into the cells; it publishes no watt figure. Where the power goes: the Pi 5 can draw up to 25.5W (5.1V × 5A) with both radars on its USB budget, and charging adds up to about 12W when the cells are low, plus converter losses. So the same 3A buys different things at different voltages: at 12V (36W) it runs the Pi at full load and charges at the same time, which is why Geekworm's own adapters are 12V; at 9V (27W) it runs the Pi but charging slows under load; at 6V (18W) it cannot carry a full Pi load and the cells drain while plugged in. **Check the amps against the voltage** rather than treating "6-18V" as "any adapter": a little over 25W is enough to run the Pi, not to run it and charge at full rate, and 12-18V at 3A or more covers both. Examples: MEAN WELL GST36 (12V 3A; GST36U12-P1J US plug, GST36E12-P1J EU plug, both at Mouser) or Geekworm's own PSU60 (12V 5A, also sold as an Amazon bundle with the X1202). Never connect the DC jack and the USB-C input at the same time | [Mouser (EU plug)](https://www.mouser.com/c/?q=GST36E12-P1J) / [Mouser (US plug)](https://www.mouser.com/c/?q=GST36U12-P1J) / [Amazon (PSU60)](https://www.amazon.com/dp/B0BDF89DCB) | ~$15 | | **InnoMaker OV9281 global-shutter camera** | High-speed monochrome camera for experimental vision work. Camera software is not enabled in the production kiosk path | [Amazon](https://www.amazon.com/dp/B09WTP5GZH?th=1) | ~$30 | -| **Panel DC jack with leads, 5.5 × 2.1 mm (DC route)** | The socket in the shell's rear DC hole. Mouser: Tensility 10-03609, an overmoulded panel jack on a 305 mm 18 AWG lead, rated 7.5 A, M11 × 1.0 thread with the nut and lock washer fitted from inside, for panels 1.5-4.5 mm thick. The shell's Ø12.5 mm hole is 1.3 mm over its thread and its Ø13.5 mm head has flats at 9.8 mm, so it clamps but shows a sliver of hole at the flats. Amazon: the pre-wired DC-099 style kits with a 12 mm thread fit the hole as drawn, such as the [6-set](https://www.amazon.com/dp/B0DP6MNQQB) the enclosure's reference model was made from (150 mm 20 AWG leads) or a [10-pack rated 5 A](https://www.amazon.com/dp/B08F26JJKM) with 150 mm 18 AWG leads; the [DaierTek set](https://www.amazon.com/dp/B0BD46CP5Y) adds pre-wired 5.5 × 2.1 mm plugs for the barrel-jack option. Tensility's other 2.1 mm lead, 10-02878, has a Ø10.8 mm thread but only a Ø12.5 mm flange, the same as the hole, so it is not the one to buy. Mouser's Tensility listing is unverified from here; Tensility sells direct at $6.74 | [Mouser (search)](https://www.mouser.com/c/?q=10-03609) / [Tensility](https://www.tensility.com/products/10-03609) / [Amazon (6-set)](https://www.amazon.com/dp/B0DP6MNQQB) | $7-10 | -| **Wago 221-412 lever connectors, ×2 (DC route, header option)** | Two-conductor lever splices for 24-12 AWG that join the jack leads to the XH lead without tools, one per conductor. Any two-way 221 does; the inline 221-2411 is the same clamp in a straight-through body. The barrel option below needs none | [Mouser (search)](https://www.mouser.com/c/?q=WAGO%20221-412) / [Amazon (bag of 10)](https://www.amazon.com/dp/B072PT3JNL) | $1 | -| **UPS end of the DC route: JST XH 2-pin lead (header option) or screw-terminal barrel plug (barrel option)** | Header option: the plug for the X1202/X1206's `XH2.54-2P` DC input. One pair from the Adafruit 1152 pack in the button row is exactly this (XH plug, 20 cm of 22 AWG, quick-connects cut off), so nothing extra is needed if you have that pack; otherwise Adafruit 4872 is a matching XH-compatible plug-and-socket pair with 20 cm leads, but its 26 AWG wire is thin for the 3 A the input can draw, so prefer the 1152 pair. Barrel option: Adafruit 369, a 5.5 × 2.1 mm plug on a two-way screw-terminal block marked + and −; the jack leads screw straight in, so no Wagos, and it goes into the UPS's own barrel jack. Mouser hosts its datasheet but the listing is unverified from here | [Mouser (4872)](https://www.mouser.com/ProductDetail/Adafruit/4872?qs=sGAEpiMZZMsvnOgGvSjZeHfx0dldyM%2FtbKuuneru8OfHveSm083OQA%3D%3D) / [Amazon (XH 2.54 pre-crimped kit; check it is 22 AWG or heavier)](https://www.amazon.com/dp/B08G17QHSD) / [Mouser (369, search)](https://www.mouser.com/c/?q=485-369) / [Adafruit 369](https://www.adafruit.com/product/369) | $1-2 | See [Camera and YOLO Experiments](../development/camera-yolo.md) before buying the camera; the standard setup does not install its optional software dependencies. @@ -186,7 +196,10 @@ camera; the standard setup does not install its optional software dependencies. The parts rows above already say which length to buy; this section is the measurement behind them, for anyone changing the enclosure or the wiring. -Ordinary builders can skip it. +Ordinary builders can skip it. The DC-jack and power-button runs are kept here +with the rest, but the parts themselves are in +[Powering OpenFlight](power.md); the rear hole dimensions they have to fit are +[documented in the enclosure repository](https://github.com/open-flight/openflight-enclosure/blob/main/docs/parts/shell.md#rear-io-openings).
Measured cable runs on the openflight-enclosure v3 case @@ -242,33 +255,95 @@ long. ## Enclosure Hardware (Inserts and Screws) -The heat-set inserts, screws and the one tool the case needs are listed with -the case, not here: see **[Required hardware](https://github.com/open-flight/openflight-enclosure#documentation)** +The heat-set inserts and screws are listed with the case, not here: see +**[Required hardware](https://github.com/open-flight/openflight-enclosure#documentation)** in the [openflight-enclosure](https://github.com/open-flight/openflight-enclosure) -repository, which gives the insert size and count per printed part, the -screw lengths, and the long-reach hex key the case screws need. The insert +repository, which gives the insert size and count per printed part and the +screw lengths. One thing to plan for while you are there: the case screws sit +deep in the shell, so whatever driver matches the heads you buy needs about +90 mm of reach. A stubby one will not get to them. The insert family and where to order it are being settled in [openflight-enclosure#4](https://github.com/open-flight/openflight-enclosure/issues/4); until that lands, buy what the enclosure page says for the parts you print. +**Two more parts if you fit a UPS HAT.** The shell has a round rear hole for a +**DC barrel jack** and another for a **power button**, and neither is filled by +anything on the enclosure page. They are not case hardware, so they are not in +the list above, and they are only needed on the UPS route. Both are in +[Powering OpenFlight](power.md#getting-power-to-it), along with the leads that +join the jack to the board. The holes they have to fit are +[documented in the enclosure repository](https://github.com/open-flight/openflight-enclosure/blob/main/docs/parts/shell.md#rear-io-openings). + ## Cost Summary -| Category | ~Price | -|----------|--------| -| Core (OPS243, Pi 5, Display) | $355 | -| Sound Trigger (SEN-14262 + resistor + wires) | $18 | -| Power & Accessories | $37 | -| **Subtotal, no angle radar** | **~$410** | -| Angle Radar (IWR6843LEVM + cable + wire) — **current** | $156 | -| **Total with angle radar** | **~$566** | -| Optional Enclosure Inclinometer (LIS3DH + Qwiic-to-Dupont cable) | $15 | -| Optional extras (X1202 UPS HAT, four 18650 cells, 16 mm power button + leads, OV9281 camera) | $108 | -| Enclosure filament (v3 case, ~750 g PETG, estimate) | $17 | -| Enclosure hardware (heat-set inserts, screws, hex key; listed in the enclosure repo) | $35 | -| **Complete build (total with angle radar + inclinometer + optional extras + filament + hardware)** | **~$741** | -| Optional extras with the X1206 instead (X1206 UPS HAT, four 21700 cells, 16 mm power button + leads, OV9281 camera) | $120 | -| **Complete build with the X1206 instead** | **~$753** | -| Angle Radar (2× K-LD7 + FTDI adapters) — **deprecated** | $140 | +Approximate, in USD. A few figures are unverified and the rows above say which. +Read it as stages rather than one number: each step below is a decision, and +the running total tells you what it costs to stop there. + +### 1. What every build needs + +| Group | What it covers | ~Price | +|---|---|---| +| Core | OPS243-A radar, Raspberry Pi 5, 7" display | $425 | +| Sound trigger | SEN-14262, the `R17` resistor, the 300 mm jumper pack | $18 | +| Accessories | Active cooler, female/male jumpers, microSD, micro-USB radar cable | $25 | +| Power | [Route 1](power.md#route-1-the-official-27-w-usb-c-supply), the official 27 W supply, whose cable is captive | $14 | +| Enclosure | ~750 g PETG, plus heat-set inserts and screws | $52 | +| **Base build** | a working unit: ball speed, club speed, smash factor, spin, estimated carry | **~$534** | + +The enclosure is in here rather than under Optional because you need one +whichever radars you fit. Nothing measures repeatably until the boards are +held in a fixed, repeatable arrangement, and the **same printed set covers +both builds**: the radar front carries mounts for the OPS243 and the +IWR6843LEVM, so an OPS-only build prints exactly the same parts and leaves the +IWR mounts empty. The $52 assumes you print it yourself; add a print +service if you do not own a printer. + +### 2. Add the angle radar + +| Add | What it buys | ~Price | Running | +|---|---|---|---| +| **TI IWR6843LEVM** | measured launch angle and direction, and club path | $150 | **~$684** | +| 2× K-LD7 + FTDI adapters | the same, but **deprecated** — not for new builds | $140 | — | + +The board is the whole cost here. Its micro-USB cable is counted in +Accessories and its one `GATE` → BCM17 jumper comes out of the sound-trigger +pack, so neither is charged twice. + +### 3. Optional + +Independent of each other; add the ones you want. + +| Add | What it buys | ~Price | +|---|---|---| +| Inclinometer | LIS3DH and its Qwiic-to-Dupont cable, so the rig can sit on uneven ground | $15 | +| Camera | InnoMaker OV9281, experimental vision work only | $30 | +| **Battery power, [X1202](power.md#route-2-the-geekworm-x1202-x1206-ups-hat)** | HAT $48, four 18650s $24, 12 V adapter $15, panel DC jack $8, the lead into the board $2-3, and a 12 mm button with leads $6 — $104 in all. It **replaces** the $14 supply in step 1, so the net add is | **+$90** | +| Battery power, [X1206](power.md#route-2-the-geekworm-x1202-x1206-ups-hat) instead | the same list with a $52 HAT and four 21700s at $32 | +$102 | +| J-Link EDU Mini | only if your OPS243 reports firmware older than 1.3.2 and you want the internal trigger | $76 | + +### Worked totals + +| Build | ~Price | +|---|---| +| **Base build — OPS243 only, in its case** | **~$534** | +| + angle radar | ~$684 | +| + inclinometer and camera | ~$729 | +| **Everything, battery powered (X1202)** | **~$819** | +| Everything, with the X1206 instead | ~$831 | + +> **The battery line includes its own wiring.** A UPS HAT cannot be powered in +> a closed case without a DC adapter, a panel jack and the leads that join +> them, so all of it is in that figure and itemised in +> [Powering OpenFlight](power.md#route-2-the-geekworm-x1202-x1206-ups-hat). +> +> **If you can live with a supply that does not detach**, the same HAT will run +> on the official 27 W supply from step 1 instead. Both boards take 5 V 5 A on +> their own USB-C socket, so the adapter, the panel jack and the leads come out +> of the list: **+$78** rather than +$90 on the X1202, and no barrel plug in the +> build to get backwards. Nothing unplugs at the case and the cells charge more +> slowly, so it is a trade rather than an upgrade — +> [both sides of it are here](power.md#route-2b-the-same-ups-on-a-captive-usb-c-supply).
How the filament estimate was made @@ -295,17 +370,18 @@ Enclosure Hardware above).
The enclosure hardware line is an allowance for the v3 set (short heat-set -inserts in three sizes, the M3 case screws and the board screws, and a -long-reach 2.5 mm hex key) at pack prices. It was $35 for the v2 set and is +inserts in three sizes, plus the case screws and the board screws) at pack +prices. It was $35 for the v2 set and is carried unchanged until the v3 set is priced against the insert decision in [openflight-enclosure#4](https://github.com/open-flight/openflight-enclosure/issues/4). -With the X1206 instead, the extras are $52 for the HAT (Geekworm list price) -+ four flat-top 21700 cells at ~$8 each ($32; a Samsung 50E or Molicel P42A -sells for $6-9) + the same $6 button pair + the $30 camera = $120, and the -complete build comes to ~$753. Nothing else changes: the X1206 V2.0 carries its -four 21700 holders on the board, uses the same power-button header, and takes -the same 12V adapter. +Cell prices are estimates: ~$6 each for an 18650 (a Samsung 35E, Molicel P28A +or LG MJ1 sells for about that) and ~$8 each for a 21700 (a Samsung 50E or +Molicel P42A sells for $6-9). With the X1206 the HAT is $52 at Geekworm list +and its four cells come to $32, so the battery line is $116 gross and ++$102 net, and the full build reaches ~$831. Nothing else +changes: the X1206 V2.0 carries its four 21700 holders on the board, uses the +same power-button header, and takes the same 12 V adapter. If the [PR #221](https://github.com/open-flight/openflight/pull/221) internal trigger lands, the Sound Trigger line ($18) becomes optional and drops out of @@ -319,6 +395,6 @@ factor, spin rate, and estimated carry. The angle radar adds measured launch angle (vertical and horizontal) and is what club path is derived from. If you are building new, buy the **IWR6843**, not the K-LD7s. It costs about the -same as the two K-LD7s plus their FTDI adapters ($156 vs $140) and replaces both +same as the two K-LD7s plus their FTDI adapters ($150 vs $140) and replaces both of them with one board. The K-LD7 path is **deprecated** and kept only so existing builds keep working. diff --git a/docs/get-started/power.md b/docs/get-started/power.md new file mode 100644 index 000000000..639e00ace --- /dev/null +++ b/docs/get-started/power.md @@ -0,0 +1,673 @@ +# Powering OpenFlight + +Everything about getting power into the unit: which route to pick, what to buy, +and how to wire it without destroying the boards. The [parts list](parts.md) +covers everything else. + +For living with the UPS once it is built — Pi OS configuration, the battery +gauge, troubleshooting — see the +[Geekworm X1202/X1206 operator guide](../build/battery.md). + +> [!CAUTION] +> **If your route involves a DC barrel plug, read +> [Barrel-jack polarity](#barrel-jack-polarity) before you wire or plug in +> anything.** A 5.5 × 2.1 mm barrel plug has no keying. A centre-negative +> supply mates perfectly with a centre-positive jack and reverses the rail +> into the Pi, the UPS and both radars at once. There is no fuse and no +> protection diode in the way. This is the single most expensive mistake +> available in this build, and the only routes that cannot make it are +> [Route 1](#route-1-the-official-27-w-usb-c-supply) and +> [Route 2b](#route-2b-the-same-ups-on-a-captive-usb-c-supply), which +> have no barrel plug in them at all. + +## What the Pi 5 actually needs + +**5.1 V at 5 A.** The current matters more than it looks. A Pi 5 only releases +its full downstream USB power budget when the supply tells it that 5 A is +available. A normal USB-C PD charger tops out at 3 A at 5 V, the Pi then caps +its USB ports, and the radars brown out or fail to enumerate. Every route below +exists to deliver a genuine 5 V 5 A to the Pi. + +The load is real: about 25.5 W (5.1 V × 5 A) with both radars on the USB budget +and the screen lit. + +## Choose a route + +| Route | Unplug at the case? | Batteries | Polarity risk | Buy | +|---|---|---|---|---| +| **1. [Official 27 W USB-C supply](#route-1-the-official-27-w-usb-c-supply)** | **No** — the cable is captive to the brick and threads in through a rear opening | No | **None** | One supply | +| **2. [Geekworm X1202 / X1206 UPS HAT](#route-2-the-geekworm-x1202-x1206-ups-hat)** | Yes, DC barrel | Yes | **Yes** | UPS, four cells, DC adapter, panel jack, leads, button | +| **2b. [The same UPS on a captive supply](#route-2b-the-same-ups-on-a-captive-usb-c-supply)** | **No** — nothing detaches; the brick's cable is fixed | Yes | **None** | UPS, four cells, button, and Route 1's supply | +| **3. [DC in, USB-C out, no batteries](#route-3-dc-in-usb-c-out-no-batteries)** | Yes, DC barrel | No | **Yes** | Geekworm `Pi5-5V5APD`, a ≥30 W supply, panel jack | + +Routes 2 and 3 end in a DC barrel plug, so they carry the polarity warning. +**Route 2b is the exception, and it is a trade rather than a free win**: it +runs the same UPS off Route 1's captive supply, so you get batteries with no +barrel plug anywhere in the build, but nothing detaches at the case. + +### Then: what plugs into the barrel jack + +Routes 2 and 3 put a DC socket in the back of the case. A wall adapter is the +obvious thing to plug into it and the one the parts tables assume, but it is +not the only one. **Neither of the two below is a way to power the unit on its +own** — each only changes what feeds that socket, with the UPS or the +converter behind it unchanged. + +| Feeding the DC input | What it is | Why you would | ~Price | +|---|---|---|---| +| **Wall adapter** — the default | A 12-18 V supply, centre positive | Simplest, and it is what [Sizing the adapter](#sizing-the-adapter) covers | ~$15 | +| **[A USB-C PD charger or power bank](#add-on-a-usb-c-pd-charger-or-power-bank)** | A VFLEX or a PD trigger converts one into a barrel plug | Run from the chargers and power banks you already own, including away from a wall | $8 | +| **[Power over Ethernet](#add-on-power-over-ethernet)** | An 802.3bt splitter turns the run into 12 V on a barrel plug | One cable carries network and power | ~$35 | + +--- + +## Route 1: the official 27 W USB-C supply + +The default, and the one to pick unless you specifically want something the +others give you. + +| Part | Description | Link | ~Price | +|------|-------------|------|--------| +| **27 W USB-C Power Supply** | Official Pi 5 supply, 5.1 V 5 A. **It must be this supply, or one that genuinely negotiates 5 V at 5 A over USB PD.** Plug it straight into the Pi: routing it through a USB-C extension or a panel-mount pass-through adds contact resistance, causes voltage sag, and can make the 5 V 5 A negotiation fail — and a panel-mount USB-C pass-through rated for 5 A is hard to find in the first place. Not needed if you power the Pi from a UPS HAT | [Adafruit](https://www.adafruit.com/product/5814) | $14 | + +### The cable is fixed, and it stays captive to the case + +The cable is part of the supply, not an accessory: Raspberry Pi's own +[27 W product brief](https://datasheets.raspberrypi.com/power-supply/27w-usb-c-power-supply-product-brief.pdf) +lists it as a specification — "Cable: 1.2 m 17AWG, white or black" — and the +mechanical drawings show it leaving the brick with no connector at that end. +Raspberry Pi uses the word **captive** for the 15 W supply, which is built the +same way. You cannot unplug the cable from the brick. + +That matters here because **there is no panel connector to unplug at either**, +and no way to add one: as the row above says, a panel-mount USB-C pass-through +carrying a genuine 5 A is not a practical part to buy, and putting one in the +run risks the 5 V 5 A negotiation even if you find it. So the cable itself +comes in through one of the +[openflight-enclosure v3](https://github.com/open-flight/openflight-enclosure) +shell's rear openings — it fits, and the next section is the measurement that +says so — and the supply stays permanently tethered to the unit. To carry the rig +somewhere you coil the brick and its 1.2 m of cable and take the whole thing. + +### Getting a USB-C plug through the wall + +**Both captive routes rest on this** — this one and +[Route 2b](#route-2b-the-same-ups-on-a-captive-usb-c-supply) below, which feeds +the same supply to a UPS instead of to the Pi. Neither has a USB-C panel +connector in the run, so in both the plug itself has to pass through one of the +[rear openings](https://github.com/open-flight/openflight-enclosure/blob/main/docs/parts/shell.md#rear-io-openings). + +The official supply's plug measures **12.0 mm across at its widest**, so it +goes through the Ø12.5 mm DC hole, and through the 16.0 × 14.0 mm Ethernet +cut-out with room to spare if you are not fitting the coupler. Another brick's +plug may be fatter, so measure that one before you rely on it. + +> [!NOTE] +> **Dry-fit before the boards go in.** Whichever board takes the plug, its +> USB-C socket faces the rear recess, and the enclosure repo documents the +> openings rather than the clearance above that board edge. On Route 2b that +> edge is the more crowded of the two, because the UPS's USB-C socket sits +> alongside its own DC jack. Once the case is closed, the plug is inside it. + +### Why that is still the right default + +Accept the tether and you get the shortest, safest build in this document: + +- **Nothing to wire.** No panel jack, no splices, no leads to cut. +- **No polarity to get wrong.** USB-C is keyed and the handshake is + negotiated. There is no way to reverse a rail with it. Every other route + puts an unkeyed barrel plug in your hand. +- **Nothing extra to buy** beyond the supply itself. +- **One failure mode fewer.** No battery chemistry, no charge controller, no + wide-input converter. + +If you do not already know why you want a UPS or a detachable lead, stop here. + +--- + +## Route 2: the Geekworm X1202 / X1206 UPS HAT + +Batteries plus mains, and a DC barrel input you can unplug at the case. This is +the route that needs the most parts and the most care. + +> [!IMPORTANT] +> **Buying a UPS HAT is not one purchase.** The board arrives with neither +> cells nor a way to get power into it. Budget for all of it up front: +> +> 1. the **HAT** itself; +> 2. **four matching cells** — not included, and they must be the right type +> (see the rows below); +> 3. a **DC power adapter** in the board's voltage window, with enough current; +> 4. a **panel-mount DC jack with flying leads** for the case's Ø12.5 mm rear +> hole, so the supply is detachable; +> 5. **the lead that joins that jack to the board.** The short version is a +> **screw-terminal barrel plug**: strip the panel jack's flying leads, screw +> them into the block, plug it into the board's own barrel jack. Nothing +> else. The alternative is a JST XH lead into the board's `XH2.54-2P` +> header, which needs two Wago 221 splices to join it to the panel jack; +> 6. a **12 mm momentary push button** and its leads, if you want the rear +> power button to work. +> +> Items 4 and 5 are the ones people forget. Without them the adapter has +> nowhere to plug in once the case is closed. + +### The boards + +| Part | Description | Link | ~Price | +|------|-------------|------|--------| +| **Geekworm X1202 UPS HAT** | Rechargeable Pi 5 power from four **unprotected, flat-top 18650** cells (Geekworm's wiki is explicit on both: max 18.5 mm diameter, 65.3 mm length, and *"Do not use 18650 battery with built-in protection circuit"*). Cells are not included. Input is **6-18 V DC at 3 A or more** on the 5.5 × 2.1 mm jack, **or** 5 V 5 A on its USB-C, which Geekworm lists as *"Compatible with Raspberry Pi USB-C Power Supply"* — and their spec table says in bold **"Never Use Both at the Same Time"**. Delivers up to 5.5 A, so it can fast-charge at 3 A while running the Pi | [Geekworm](https://geekworm.com/products/x1202) / [wiki](https://wiki.geekworm.com/X1202) / [Amazon](https://www.amazon.com/dp/B0CRZ4ZXQW) | ~$48 + cells | +| **Geekworm X1206 UPS HAT** | Larger option: four **unprotected 21700** cells, advertised to 20,000 mAh. Holders are on the board. Cells are not included. Output 5.1 V ±5 %, max 6 A. Same XH2.54 power-button header as the X1202. **Check the board revision before choosing a supply — see the warning below** | [Geekworm](https://geekworm.com/products/x1206) / [wiki](https://wiki.geekworm.com/X1206) | $52 + cells | + +> [!WARNING] +> **X1206 V1.1 and V2.0 take completely different power.** Geekworm's own wiki +> puts it bluntly: *"Check the version number on the board and use the correct +> power supply, or the board may burn out."* +> +> | Revision | Accepts | +> |---|---| +> | **V1.1** | **USB-C 5 V (≥5 A)**, which Geekworm *"strongly recommend"* over its DC input; that input takes only **5-6 V at ≥5 A** on the DC5521 or XH2.54. Wide voltage is **not** supported — do **not** put 12 V into it | +> | **V2.0** | 9-18 V DC (12 V 3 A recommended), **or** USB-C 5 V ≥5 A | +> +> Geekworm updated the X1206 to V2.0 on 7 April 2026, so a board bought since +> then should be V2.0 — but read the silkscreen rather than assuming. The +> 12 V DC route in this guide is **V2.0 only**. The X1202 has no such split: it +> takes 6-18 V across the board. + +### Route 2b: the same UPS on a captive USB-C supply + +**The barrel jack above stays the default for a UPS build.** A supply you can +unplug at the case is most of the reason to put a panel jack in the shell, and +everything in this route — the adapter, the jack, the wire sizing, the +polarity rules — is what to follow if you want that. + +This is the alternative **if you can live with a supply that does not detach**. +The official 27 W brick is captive at both ends of the problem: the cable will +not come off the brick, and once the plug is inside a closed shell it will not +come off the board either. Accept that and the whole DC run disappears. + +It works because every board above takes **5 V at 5 A on its own USB-C +socket**, and 5 V at 5 A is exactly what the +[Route 1](#route-1-the-official-27-w-usb-c-supply) supply exists to make. The +UPS still hands the Pi its 5.1 V 5 A from the cells; all that changes is how +power reaches the UPS. + +This is not a hack around the vendor. Geekworm list the X1202's USB-C input as +*"Compatible with Raspberry Pi USB-C Power Supply"*, and on the **X1206 V1.1** +they go further: *"We strongly recommend using the USB C 5 V (≥5 A) port for +power instead"* of its DC jack. On that revision this is the recommended input, +not a fallback. + +The cable goes into the **UPS**, never the Pi. Geekworm again: *"Supply power +through the X1202, not the Raspberry Pi's USB-C port. Choose either the X1202 +USB-C input or the DC input; never use both at the same time."* + +**What you give up.** Two things, and the first is the one to be sure about +before you order anything: + +- **Nothing detaches at the case.** The supply and the unit travel as one + piece, and getting the lead off the board means opening the shell. If you + move the rig between a bay and a garage, stow it in a bag, or want the option + of swapping supplies, build the barrel-jack route above instead — that is + exactly what it is for. +- **Charging is slower, and under a heavy load it stops.** 5 V × 5 A is 25 W + in, and the Pi alone can pull 25.5 W with both radars on its USB budget, so + at peak there is nothing left over to charge with — the pack will even give + up a little to cover the gap while you are plugged in. It makes that back + whenever the rig is idle or off. Geekworm's *"3 A fast charging while + powering the system"* is a property of the **DC** input, which runs at + 12-18 V and has the headroom for both jobs at once. If you play for hours on + mains and want a full pack at the end of it, use the DC route. + +**What you skip in exchange.** The DC adapter, the panel jack and the lead +into the board all drop out — about $25 of parts, and every step in this page +where a polarity can be got wrong. There is no barrel plug in this build, so +[Barrel-jack polarity](#barrel-jack-polarity) does not apply to it. You keep +Route 1's $14 supply rather than replacing it, so in money the saving is only +about $11; the three fewer parts and the missing failure mode are the real +return. You still want the **button** if you want the rear power button to +work — that is a separate header and a separate hole, unaffected. + +The plug reaches the board through the wall exactly as it does on Route 1 — +the measurement and the dry-fit warning are in +[Getting a USB-C plug through the wall](#getting-a-usb-c-plug-through-the-wall). + +### Getting power to it + +| Part | What it is | Link | ~Price | +|------|-----------|------|--------| +| **DC adapter, 5.5 × 2.1 mm barrel, centre positive** | The wall supply. **12-18 V at 3 A or more** covers everything; see [Sizing the adapter](#sizing-the-adapter). Examples: MEAN WELL GST36 (12 V 3 A) or Geekworm's own PSU60 (12 V 5 A) | [Mouser (EU plug)](https://www.mouser.com/c/?q=GST36E12-P1J) / [Mouser (US plug)](https://www.mouser.com/c/?q=GST36U12-P1J) / [Amazon (PSU60)](https://www.amazon.com/dp/B0BDF89DCB) | ~$15 | +| **Panel DC jack with leads, 5.5 × 2.1 mm** | The socket for the case's Ø12.5 mm rear hole, so the supply is detachable. Buy one **pre-wired with flying leads**, so the DC run itself needs no soldering. See [Which panel jack](#which-panel-jack) | [Mouser (Tensility 10-03609)](https://www.mouser.com/c/?q=10-03609) / [Tensility](https://www.tensility.com/products/10-03609) / [Amazon (6-set)](https://www.amazon.com/dp/B0DP6MNQQB) | $7-10 | +| **Wago 221-412 lever connectors, ×2** | **Only if you need to join two leads** — the header option, or a barrel plug that came pre-wired. Tool-free lever splices, one per conductor. A screw-terminal plug needs none, because the panel jack's leads go straight into it | [Mouser](https://www.mouser.com/c/?q=WAGO%20221-412) / [Amazon (bag of 10)](https://www.amazon.com/dp/B072PT3JNL) | $1 | +| **UPS end: barrel plug or XH lead** | **Simplest is a 5.5 × 2.1 mm screw-terminal plug** such as the Adafruit 369: the panel jack's leads screw straight into it and it goes into the board's own jack, so there are no Wagos and no XH lead in the build at all. Otherwise a JST XH 2-pin lead for the `XH2.54-2P` header, or a pre-wired plug on a lead heavy enough for 3 A. See [Two ways in](#two-ways-into-the-ups) | [Adafruit 369](https://www.adafruit.com/product/369) / [Mouser (4872)](https://www.mouser.com/ProductDetail/Adafruit/4872?qs=sGAEpiMZZMsvnOgGvSjZeHfx0dldyM%2FtbKuuneru8OfHveSm083OQA%3D%3D) | $1-2 | +| **Power button: 12 mm momentary + its lead** | A **12 mm** panel-mount **momentary** push button with 0.11" quick-connect tabs, plus one pair from an Adafruit 1152 pack. That pair is the entire connection: two 0.11" quick-connects pre-crimped on one end, a 2-pin JST on 2.5 mm / 0.1" spacing on the other, 200 mm of 22 AWG, ten pairs to a pack. Quick-connects onto the button, JST plug into the board's `PSW` header — **no Wagos**, nothing soldered or crimped | [Mouser (1152)](https://www.mouser.com/ProductDetail/Adafruit/1152?qs=GURawfaeGuAkPRIbdozo3A%3D%3D) | ~$6 | + +Cable runs for all of these are measured in +[Cable lengths](parts.md#cable-lengths-enclosure-v3). + +#### Sizing the adapter + +Geekworm's requirement is a **current**, not a wattage: 3 A or more. The same +3 A buys very different things at different voltages, so check the amps against +the volts rather than reading "6-18 V" as "any adapter". + +| Input | Total | What it does | +|---|---|---| +| **12 V 3 A** | 36 W | Runs the Pi at full load **and** charges at full rate. Geekworm's own adapters are 12 V | +| 9 V 3 A | 27 W | Runs the Pi, but charging slows under load | +| 6 V 3 A (X1202 only) | 18 W | Cannot carry a full Pi load; the cells drain while plugged in | + +The arithmetic behind it: the Pi 5 can draw 25.5 W with both radars on its USB +budget, and charging adds up to about 12 W when the cells are low, plus +converter losses. A little over 25 W runs the Pi; it does not also charge it. +**12-18 V at 3 A or more** covers both. + +#### Which panel jack + +The **Tensility 10-03609** is the Mouser line: an overmoulded jack on a 305 mm +18 AWG lead, rated 7.5 A, M11 × 1.0 thread with nut and lock washer, for panels +1.5-4.5 mm thick — the shell face is 3.0 mm, so it clamps. Its Ø11 thread sits +1.5 mm loose in the Ø12.5 mm hole and its Ø13.5 mm head has flats at 9.8 mm, +so a sliver of the hole shows at the flats. + +On Amazon, pre-wired **DC-099 style kits with a 12 mm thread** fit the hole as +drawn: a [6-set](https://www.amazon.com/dp/B0DP6MNQQB) with 150 mm 20 AWG +leads, a [10-pack rated 5 A](https://www.amazon.com/dp/B08F26JJKM) with 150 mm +18 AWG, or the [DaierTek set](https://www.amazon.com/dp/B0BD46CP5Y), which also +includes pre-wired plugs for the barrel option below. + +Not this one: Tensility's other 2.1 mm lead, **10-02878**, has a Ø10.8 mm +thread but only a Ø12.5 mm flange — the same as the hole, so it has nothing to +clamp against. + +#### Make sure the wire can carry the current + +Easy to overlook, because the DC run is the only part of this build that +carries real current. The UPS's DC input can pull **3 A or more**, and thin +signal wire in that run gets warm, drops voltage, and at worst softens its own +insulation inside a closed plastic box. + +- **Use 20 AWG or heavier** for both conductors of the DC run. The panel jacks + above already ship with 18-20 AWG leads, so buying the right jack solves most + of this. +- **22 AWG is the floor**, and only because the run is short — under 100 mm + from the rear hole to the UPS. The Adafruit 1152 lead pair is 22 AWG and is + acceptable on that basis. +- **Do not use 26 AWG.** That is why Adafruit 4872 is not the pick for the XH + lead even though its connector is right: the wire is sized for signals, not + for 3 A. +- **Check the jack's own rating too.** Tensility's 10-03609 is rated 7.5 A and + the Amazon 10-pack 5 A, so both clear 3 A with room. The Wago 221-412 takes + 24-12 AWG and is not the limit. +- **Keep it short, and do not coil the slack.** Extra length is extra voltage + drop, and a coil of current-carrying wire in a sealed case is a heat source. + +If you lengthen any of this for a different enclosure, size the wire for the +supply you actually plug in, not for the 3 A minimum. + +#### Two ways into the UPS + +Pick one. The barrel option is fewer parts and fewer joints, so default to it +unless you have a reason not to. + +**Barrel option.** Panel jack leads → a 5.5 × 2.1 mm **screw-terminal barrel +plug**, such as the **Adafruit 369** → the UPS's own barrel jack. Strip the +panel jack's flying leads, screw them into the block, plug it in. That is the +whole run: no Wago splices, no XH lead, nothing crimped or soldered, and the +block is marked **+** and **−**, which makes the polarity check harder to get +wrong. Adafruit note that those labels *"assume a positive-tip +configuration"*, which is what every input on this page wants. They do not +publish a wire range for the block, so if your panel jack came with thick +18 AWG leads, check they seat before you count on this route — the 20 AWG +leads on the Amazon DC-099 kits are the easier fit. + +> A plug that comes **pre-wired** does the same job, but it arrives with its +> own lead, so you are back to joining two leads with the same two Wago 221 +> splices the header option needs. If you go that way, check the lead carries +> 3 A ([wire sizes](#make-sure-the-wire-can-carry-the-current)) and buzz out +> which conductor reaches the tip before you splice — its colours are no more +> trustworthy than the panel jack's. The +> [DaierTek set](https://www.amazon.com/dp/B0BD46CP5Y) in the panel-jack list +> ships panel jacks and pre-wired plugs in one box. + +**Header option.** Panel jack leads → two Wago 221 splices → a JST XH 2-pin +lead → the UPS's `XH2.54-2P` DC input. One pair from the Adafruit 1152 pack in +the button row is exactly that lead (XH plug, 200 mm of 22 AWG, quick-connects +cut off), so the pack covers both jobs. Adafruit 4872 is a matching pair but +its 26 AWG wire is thin for the 3 A this input can draw. + +**The UPS itself has no screw terminals.** Geekworm give it three power +inputs and no terminal block: the `XH2.54-2P` header, its own 5.5 × 2.1 mm +barrel jack, and the USB-C socket. Any screw terminal in this build is on the +**plug you buy**, not on the board — the Adafruit 369 is a barrel plug with a +terminal block on its tail, which is exactly why the panel jack's leads can +land in it directly. + +Those three inputs are alternatives, not a sequence: use one. The USB-C socket +is covered by the same rule — see +[Keeping the official supply](#route-2b-the-same-ups-on-a-captive-usb-c-supply), +which needs neither the panel jack nor anything else in this section. + +Which panel jack physically fits is a property of the case, not of the UPS. +The **openflight-enclosure repository documents the rear I/O hole sizes** for +the current shell — the Ø12.5 mm DC hole, the Ø12.5 mm button hole and the +Ethernet cut-out, and the 3.0 mm panel thickness a threaded jack has to clamp: +see [Rear I/O openings](https://github.com/open-flight/openflight-enclosure/blob/main/docs/parts/shell.md#rear-io-openings). +Check a candidate jack against those numbers before ordering, and re-check them +if you are printing a different or older shell. + +#### The button has to be momentary, and 12 mm + +The X1202/X1206 expose their external power button on an XH2.54 2-pin header +and need a **momentary** (spring-back) switch: the board reads how long the +button is held, the way the Pi 5's own button works, so a latching or toggle +switch will not do. + +Size it to the case. Both round rear holes in the v3 shell are **Ø12.5 mm**, so +you want a **12 mm** panel-mount momentary button with 0.11" (2.8 mm) +quick-connect tabs, which is what the Adafruit 1152 lead pair pushes onto. +Adafruit showed the 1152 pack out of stock when checked; Mouser's stock is +unverified. + +**The button run needs no Wagos and no separate XH lead.** One 1152 pair +already spans the whole distance: Adafruit's own description is *"two 0.11" +quick-connects pre-crimped onto 20cm long wires … then terminated together in +a JST 2.5mm/0.1" spaced 2-pin connector"*. Push the quick-connects onto the +button's tabs, plug the JST end into the board's `PSW` header, and there is +nothing to join in the middle. The Wagos in the parts table are for the **DC** +run, and only for its header option, where the same kind of lead is used with +its quick-connects cut off and the bare ends spliced to the panel jack. + +> [!NOTE] +> Adafruit call that connector a *"JST 2.5mm/0.1" spaced 2-pin"* rather than +> naming the series. XH is the 2.5 mm JST family and Geekworm label the `PSW` +> header `XH2.54-2P`, so they mate — but that is the one detail to confirm +> with the seller if you want certainty before ordering. + +--- + +## Route 3: DC in, USB-C out, no batteries + +You want to unplug the supply at the case, but you do not want lithium cells, +the charging rules, or the cost. A wide-input DC-to-USB-C module does that: a +DC barrel jack in the case's rear hole feeds the module, and the module hands +the Pi a **detachable** USB-C cable at a genuine 5 V 5 A. + +| Part | Description | Link | ~Price | +|------|-------------|------|--------| +| **Geekworm `Pi5-5V5APD` dual PD power module** | 44 × 55 mm board that takes a wide DC input and outputs USB-C **5 V 5 A** with a real PD CC signal, so the Pi sees a 5 A supply and keeps its full USB budget. Sold in two input variants: **9-24 V on a 5.5 × 2.1 mm DC jack**, or 9-24 V on a 3.81 mm 2-pin terminal block. It can also be fed from USB-C PD, which it negotiates at 12 V. Stable 5 A, 6 A peak; a jumper cap raises the output 0.2 V. Ships with a small fan, removable below 3 A. "Dual" is two things at once: dual **inputs** (USB-C PD or DC jack) and dual **outputs** (USB-C and USB-A — note the USB-A port carries no charging protocol) | [Geekworm](https://geekworm.com/products/rpi5-5v5a-pd) / [wiki](https://wiki.geekworm.com/Pi5-5V5APD) | ~$20 | + +> [!WARNING] +> **This module needs more than 30 W in.** Geekworm states *"Total input power +> must be > 30 W"*, and their own FAQ answers the obvious question: fed from +> the official **27 W** Raspberry Pi supply the module tops out around 4.5 A +> and shuts down at 4.6 A. So a 27 W brick will not do. Use a 12 V supply of +> 36 W or more on the DC jack, or a 45 W-plus USB-C PD charger that offers 12 V. + +You still need the **panel DC jack** and the **DC adapter** from Route 2 — the +module sits inside the case and the jack is what makes the supply detachable. +You do not need the cells, the lead into a UPS board, or the button. + +> [!NOTE] +> **Fit is not solved for you.** The v3 case has mounts for the Pi, the UPS +> boards and the Adafruit bays, but no dedicated mount for this 44 × 55 mm +> module, and the no-UPS build normally uses the +> [x1202 Pi adapter](https://github.com/open-flight/openflight-enclosure/blob/main/docs/parts/adapters.md) +> plate. Plan where it goes before ordering. + +--- + +## Add-on: a USB-C PD charger or power bank + +**Not a way to power the unit on its own.** This is an add-on to a Route 2 or +Route 3 build: it changes what you plug into the barrel jack in the back of the +case, and the UPS or the converter behind that jack is unchanged. + +The reason to want it is that you already own USB-C chargers and PD power +banks. A Pi 5 cannot take those directly at 5 A, but a **PD sink** converts one +into the DC voltage the UPS or the `Pi5-5V5APD` wants, ending in the same +5.5 × 2.1 mm centre-positive plug a wall adapter would. That includes using it +with the UPS, if you want batteries *and* the option of running from a power +bank. + +| Part | Description | Link | ~Price | +|------|-------------|------|--------| +| **VFLEX Base** (Werewolf) | The easy option. A USB-C Power Delivery **sink**: plug it into any PD charger or power bank and it outputs the voltage you configured, 5 V to 48 V at up to 5 A. You set that once from [vflex.app](https://vflex.app) and it is stored on the device, so there is no switch or solder blob to knock out of place later. Its **Type B tip is 5.5 × 2.1 mm, centre positive** — exactly the barrel the X1202, X1206 V2.0 and `Pi5-5V5APD` take | [Werewolf](https://werewolf.us/products/vflex-base) / [datasheet](https://werewolf.us/vflex/base/datasheet) / [manual](https://werewolf.us/vflex/user-manual) | $8 | +| **Generic USB-C PD trigger board** | The cheaper, blunter alternative, also sold as a "PD decoy": it selects a fixed 5/9/12/15/20 V with a DIP switch, a button or a solder jumper, and some ship as a finished USB-C-to-barrel cable | [what one is](https://learn.adafruit.com/usb-pd-hacks/things-to-know) | $5-10 | + +VFLEX covers the full PD range — SPR fixed, PPS, SPR AVS, EPR fixed and EPR AVS +— and every output tip Werewolf sells is centre positive. Prefer it to a +generic trigger unless cost is decisive: on a trigger board the voltage is set +by hardware you can knock into the wrong position, and a mis-set trigger +feeding a UPS is an expensive afternoon. + +### Choosing the voltage and the charger + +Two things have to line up, and a PD charger will silently refuse if they do not: + +1. **A voltage your charger actually offers.** USB-C PD fixed steps are 5, 9, + 12, 15 and 20 V, and **12 V is optional** — plenty of good chargers skip it + and offer 9, 15 and 20 V instead. Check the PDO list printed on the charger. +2. **A voltage your board accepts.** X1202: 6-18 V. X1206 **V2.0**: 9-18 V. + `Pi5-5V5APD`: 9-24 V. So **9 V, 12 V or 15 V** all work for every one of + them; 20 V is too high for the UPS boards. + +Then check the current at that voltage. The UPS wants **3 A or more**, so 9 V +needs 27 W, 12 V needs 36 W and 15 V needs 45 W from the source. The +`Pi5-5V5APD` wants **more than 30 W** whatever the voltage. A 45 W or 65 W PD +charger or power bank set to **15 V** is the comfortable pick; 12 V if your +source offers it. + +> [!NOTE] +> A power bank has to sustain that for as long as you play. Check its +> **continuous** PD rating, not the peak number on the box, and remember that +> feeding a UPS from a power bank charges the UPS's cells from the bank's +> cells, which is lossy. If portable running is the goal, the UPS's own +> batteries are the better answer and the power bank is the top-up. + +--- + +## Add-on: Power over Ethernet + +**Also not a route on its own**, and the same shape as the one above: a PoE +splitter turns the 48 V on the Ethernet run into **12 V on a 5.5 × 2.1 mm +barrel plug**, which is exactly what Route 2's UPS and Route 3's converter +already accept. It replaces the wall adapter, not the board behind it. + +The reason to want it is one cable for network and power. It is the tidiest +option where the rig has structured cabling to sit on, and the v3 case is +already arranged for it: the shell's Ethernet opening sits next to the DC hole, +so the two leads go in side by side. + +| Part | What it is | Link | ~Price | +|------|-----------|------|--------| +| **802.3bt PoE splitter, 12 V DC out** | Splits the Ethernet run into data and power. You want **12 V on a 5.5 × 2.1 mm plug**, which sits inside the X1202's 6-18 V window, the X1206 V2.0's 9-18 V and the `Pi5-5V5APD`'s 9-24 V. Example: the REVODATA PS5712BG, 802.3bt, **12 V 3 A (36 W)**, with 2.5 Gbps passthrough and isolation, short-circuit and overvoltage protection. Price moves with the region, so read it off the listing | [Amazon UK](https://www.amazon.co.uk/dp/B0F1F8JX4G) | ~$35 | + +### The source matters as much as the splitter + +A splitter can only pass on what the injector or switch at the far end gives +it, and the three PoE standards are far apart: + +| Standard | Delivered to the device | Enough here? | +|---|---|---| +| 802.3af | 12.95 W | **No.** Not even the Pi on its own | +| 802.3at (PoE+) | 25.5 W | Marginal. Runs the Pi with nothing spare | +| **802.3bt (PoE++)** | 51 W and up | **Yes.** What this splitter needs for its full 36 W | + +REVODATA say the same thing about their own part: feed it from 802.3at and it +does not reach 36 W, and an 802.3bt source is what unlocks the full output. + +Then budget it like any other supply. The Pi 5 draws up to 25.5 W with both +radars on its USB budget, so 36 W runs it with roughly 10 W spare. On Route 2 +that spare is what charges the cells, so charging is slower under full load +than it would be from a 60 W adapter. On Route 3, where there are no cells, +36 W clears the `Pi5-5V5APD`'s "more than 30 W" requirement with room. + +### Wiring it into the case + +The splitter lives **outside** the case, which is what the two rear openings +are for. The PoE run from the wall goes into the splitter. A short patch lead +goes from the splitter into the case's Ethernet coupler. The splitter's barrel +plug goes into the case's DC jack. Nothing changes inside: the DC jack reaches +the UPS exactly as in [Two ways into the UPS](#two-ways-into-the-ups). + +> [!WARNING] +> **Meter the splitter's plug before it goes near a board.** PoE splitters are +> conventionally centre positive, but the listing does not state it and the +> plug does not enforce it. This is the same unkeyed 5.5 × 2.1 mm barrel as +> everywhere else here, so treat it the same way and read +> [Barrel-jack polarity](#barrel-jack-polarity) first. + +--- + +## Barrel-jack polarity + +> [!CAUTION] +> **Get this wrong and you destroy the Pi, the UPS and both radars at once.** +> +> A 5.5 × 2.1 mm barrel plug is **not keyed and not polarised**. A +> centre-negative supply pushes into a centre-positive jack with a satisfying +> click and reverses the rail into everything downstream. Nothing in this build +> is protected against it. + +**Every DC input in this guide is centre positive.** Centre pin (the tip) is +**+**, outer sleeve is **−**. + +- **Geekworm X1202 and X1206** — centre pin positive. Raised by JedS on + [openflight#273](https://github.com/open-flight/openflight/pull/273#issuecomment-5779406632), + who checked the X1202 and then asked Geekworm directly about the X1206: + *"I got a response from Geekworm. The center pin of the DC 5521 jack is + positive (+) also for X1206."* Geekworm's current wiki pages do not state the + polarity either way, so treat that exchange, not the wiki, as the source. +- **VFLEX** — every tip cable Werewolf sells is centre positive, Type B + (5.5 × 2.1 mm) included. +- **Geekworm `Pi5-5V5APD`** — not documented by Geekworm. Meter it. + +### Rules + +1. **Read the supply's own symbol.** Every DC adapter carries the + centre-positive/centre-negative pictogram near the ratings. It is a small + circle with a line from the middle and a line from the outside, marked + **+** and **−**. The middle must be **+**. +2. **Meter it before it goes anywhere near a board.** Power the adapter with + nothing attached, put the multimeter's black probe on the outer sleeve and + the red probe on the inside of the barrel, and read **positive** volts. A + negative reading means centre negative — do not use it. +3. **Do not trust wire colour on a panel jack.** Pre-wired panel jacks are not + consistent: red is usually the centre pin and black the sleeve, but it is + not guaranteed. **Buzz it out.** Put the meter on continuity, plug a spare + barrel plug into the jack, and find which lead reaches the plug's tip. That + lead is **+**. +4. **Wire the jack to match.** The lead that goes to the jack's **centre** + contact is **+**, and it goes to **+** on the UPS's XH input or into the + **+** screw of the barrel-plug terminal block. The `+` is marked on the + board and on the Adafruit 369 block. +5. **Check the voltage before the board goes in.** With the jack wired and the + case open, plug in the adapter and meter the far end of the leads. Right + voltage, right sign, then connect the board. +6. **Never feed two inputs at once.** Geekworm's X1202 spec says it in bold: + *"Never Use Both at the Same Time."* Barrel **or** USB-C, not both. And + whichever you use, it goes into the **UPS board's** socket — never into the + Pi's own USB-C port while the Pi is sitting on the UPS. + +--- + +## Lithium cell safety + +Only Route 2. Read this before the first charge. + +> [!WARNING] +> **Never charge the cells below 0 °C (32 °F).** Lithium-ion cells charged +> below freezing plate metallic lithium onto the anode. That damage is +> permanent and it makes the cell unsafe, not merely weaker. Bring a cold rig +> indoors and let it warm up before connecting power. + +Geekworm publishes one +[safety template](https://wiki.geekworm.com/Template:UPS_Safety_Warning) +that is carried on every one of their UPS product pages. The points that bite +in this build, in their words: + +- *"Lithium Polymer and Li-ion batteries are volatile. Failure to read and + follow the instructions below may result in fire, personal injury, and damage + to property if charged or used improperly."* +- **"When charging the Battery Pack, please place the battery in a fireproof + container. Do not leave the UPS shield on wood material or carpet + unattended."** Note the scope: this is about **charging**, and the word is + **fireproof**. Geekworm publishes no guidance about how to *store* cells, and + does not specify a metal or airtight container — a sealed metal box is in + fact the wrong shape for a venting cell. A purpose-made LiPo charging bag or + a ceramic/steel tin left unsealed, on a hard non-combustible surface, is what + this asks for. +- *"Never make a wrong polarity connection when charging or discharging battery + packs."* The holders are marked; check every cell before the board is closed. +- *"Do not mix and use old batteries with new batteries, or batteries with + different brand names."* Buy four identical cells at the same time. +- *"Please replace old batteries with new ones when they reach their service + life or when they are two years old, whichever comes first."* +- *"Ensure your fingers do not touch the solder pads when inserting the battery + into the battery holder, as this could cause a short circuit."* +- *"Make sure to insert the battery before turning on the UPS"* and before + connecting the charger. +- The power adapter *"must [come] with overvoltage and surge voltage + protection; otherwise, it may easily damage the circuit board."* Geekworm + excludes damage from a substandard supply from warranty. + +**Cell type is not a preference.** The X1202 takes four **unprotected, +flat-top 18650s**, max 18.5 mm diameter and 65.3 mm long. The X1206 takes four +**unprotected 21700s**. Both wikis say it plainly: *"Do not use [a] battery +with built-in protection circuit."* A protected cell is longer and its circuit +fights the UPS's own. + +--- + +## Getting the DC route into the v3 case + +The [openflight-enclosure v3](https://github.com/open-flight/openflight-enclosure) +shell has three rear openings on one sloped face, and +[their dimensions are documented in that repo](https://github.com/open-flight/openflight-enclosure/blob/main/docs/parts/shell.md#rear-io-openings): +a 16.0 × 14.0 mm Ethernet cut-out, a **Ø12.5 mm DC hole**, and a **Ø12.5 mm +button hole**. The face is **3.0 mm** thick, which is the panel thickness your +jack and button have to clamp. + +**None of the three is a USB-C panel connector**, and that is not an oversight +in the shell: a pass-through rated for a genuine 5 A is not a practical part to +buy, and the repo's own USB-C rear shells are retired, marked **EOL** for +*"USB-C spec compatibility"*. It is why Route 1's supply stays captive and why +the DC routes exist at all. A USB-C *plug* still passes through one of these +openings — see +[Getting a USB-C plug through the wall](#getting-a-usb-c-plug-through-the-wall). + +From the panel jack, two ways to reach the UPS — pick one, not both: + +**Barrel option, the shorter one.** Jack leads → the screw terminals of a +5.5 × 2.1 mm plug such as the Adafruit 369 → the UPS's own jack. Nothing else +in the run, and the block is marked **+** and **−**. + +**Header option.** Jack leads → two Wago 221 splices → a JST XH 2-pin lead → +the UPS's `XH2.54-2P` DC input. No soldering on this run either. + +Either way the run is short: about 45 mm straight and 80 mm routed from the +middle rear hole to the UPS's DC input, so any 150 mm jack lead reaches. Full +measurements are in [Cable lengths](parts.md#cable-lengths-enclosure-v3). + +--- + +## What this costs + +| Route | Added over a bare Pi | ~Price | +|---|---|---| +| 1. Official 27 W supply | The supply | $14 | +| 2. X1202 UPS | HAT $48 + four 18650s $24 + 12 V adapter $15 + panel jack $8 + the lead into the board $2-3 + button $6 | ~$104 | +| 2. X1206 UPS | the same list with a $52 HAT and four 21700s at $32 | ~$116 | +| 2b. Either UPS on a captive supply | The same HAT, cells and button, **minus** the adapter, the jack and the lead into the board, **plus** Route 1's $14 supply | ~$92 / ~$104 | +| 3. `Pi5-5V5APD` | Module $20 + 36 W supply $15 + panel jack $8 | ~$43 | +| Add-on: VFLEX | VFLEX Base + a PD source you already own, **on top of** route 2 or 3 | $8 | +| Add-on: PoE | An 802.3bt splitter + a PoE source you already own, **on top of** route 2 or 3 | ~$35 | + +Cells are estimated at ~$6 each for 18650 (Samsung 35E, Molicel P28A, LG MJ1) +and ~$8 each for 21700 (Samsung 50E, Molicel P42A). Routes 2 and 3 include the +panel jack and leads, because without them the supply has nowhere to plug in +once the case is closed. Route 2 also **replaces** Route 1's $14 supply rather +than adding to it, so its net cost in a full build is $90 for the +X1202 and $102 for the X1206. Route 2b *keeps* that supply and uses it, which +is why the $14 sits inside its figure rather than being deducted from it. The +staged breakdown is in the [parts list](parts.md#cost-summary). diff --git a/zensical.toml b/zensical.toml index 746537691..45e03b636 100644 --- a/zensical.toml +++ b/zensical.toml @@ -22,6 +22,7 @@ nav = [ "get-started/index.md", "get-started/overview.md", "get-started/parts.md", + "get-started/power.md", "get-started/build-order.md", "get-started/quick-start.md", ] },