From 19895e2fdb95029f4c87267a3077da6c7f0440b3 Mon Sep 17 00:00:00 2001 From: Jannik Beyerstedt Date: Tue, 22 Sep 2026 22:12:29 +0200 Subject: [PATCH] FIXUP: Add battery compartment --- Readme.md | 6 ++++++ .../housing/c_its-companion-assembly.FCStd | Bin 2221875 -> 2231908 bytes .../c_its-companion-housing-bottom-2mm.3mf | Bin 0 -> 76082 bytes .../c_its-companion-housing-bottom-9mm.3mf | Bin 0 -> 81205 bytes .../c_its-companion-housing-bottom.3mf | Bin 33603 -> 0 bytes .../housing/c_its-companion-housing.FCStd | Bin 266596 -> 336717 bytes hardware/housing/overpass-semibold.otf | Bin 0 -> 65620 bytes 7 files changed, 6 insertions(+) create mode 100644 hardware/housing/c_its-companion-housing-bottom-2mm.3mf create mode 100644 hardware/housing/c_its-companion-housing-bottom-9mm.3mf delete mode 100644 hardware/housing/c_its-companion-housing-bottom.3mf create mode 100644 hardware/housing/overpass-semibold.otf diff --git a/Readme.md b/Readme.md index 2b8ed56..eb9bdb6 100644 --- a/Readme.md +++ b/Readme.md @@ -120,6 +120,12 @@ The unit tests in this project are meant to be run on the host: cargo test --target host-tuple --bin test --no-default-features -F std,spat ``` +## PCB and Housing +A simple PCB to combine the u-blox SAM-M10Q, a XIAO ESP32-C5 and the screen can be found in [hardware/c_its-companion/](./hardware/c_its-companion/) including finished gerber files. + +The housing is a FreeCAD model at [hardware/housing/c_its-companion-housing.FCStd](./hardware/housing/c_its-companion-housing.FCStd), but the same folder also contains finished 3mf models that can be loaded into a 3D printer slicer. +The export is prepared for a 40x60x9mm lipo battery, e.g. LP803860 (2000 mAh) or no additional space below the PCB besides for the display standoffs. + ## Tips and Tricks ### Create TGA Assets diff --git a/hardware/housing/c_its-companion-assembly.FCStd b/hardware/housing/c_its-companion-assembly.FCStd index c438e5f6bcee8d5f0ef81a5800dee3453b8a2e64..6983d8dcded3f843f7a74328de5e26afdb2baeea 100644 GIT binary patch delta 227216 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