From e2fef1afc1ba403435e36cae628ddac3a9d8dbea Mon Sep 17 00:00:00 2001 From: DevilDogXXX Date: Wed, 1 Apr 2026 01:24:30 -0600 Subject: [PATCH] Improve documentation, add assembly guide, print settings, and consolidated BOM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Expand README with specs, file structure, BOM overview, tools list, and help-wanted checklist - Add ASSEMBLY.md with wiring reference table for all PCB connectors and safety notes - Add PRINT_SETTINGS.md with per-category settings, part quantities, and Bambu compatibility note - Add BOM.csv consolidating all three separate BOMs with manufacturer part numbers - Add CONTRIBUTING.md with priority list of needed files (STEP, schematic, wiring diagram) - Improve .gitignore to cover Windows, macOS, slicer output, and editor temp files - Fix typo: Hardware_Fastners → Hardware_Fasteners --- .gitignore | 14 ++- ASSEMBLY.md | 104 ++++++++++++++++++ BOM.csv | 31 ++++++ CONTRIBUTING.md | 49 +++++++++ ...rs _BOM.csv => Hardware_Fasteners_BOM.csv} | 0 PRINT_SETTINGS.md | 87 +++++++++++++++ README.md | 94 +++++++++++++++- 7 files changed, 372 insertions(+), 7 deletions(-) create mode 100644 ASSEMBLY.md create mode 100644 BOM.csv create mode 100644 CONTRIBUTING.md rename Enclosure/BOMs/{Hardware_Fastners _BOM.csv => Hardware_Fasteners_BOM.csv} (100%) create mode 100644 PRINT_SETTINGS.md diff --git a/.gitignore b/.gitignore index 9bea433..ae3183b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,14 @@ - .DS_Store +._* +Thumbs.db +Desktop.ini +__MACOSX/ +*.gcode +*.bgcode +*.swp +*.swo +*~ +.vscode/ +.idea/ +*.bak +*.backup diff --git a/ASSEMBLY.md b/ASSEMBLY.md new file mode 100644 index 0000000..c49726e --- /dev/null +++ b/ASSEMBLY.md @@ -0,0 +1,104 @@ +# Assembly Overview + +This document provides a high-level assembly reference for the 3D Printed NAS. For detailed step-by-step instructions with photos, see the [Instructables guide](https://www.instructables.com/3D-Printed-Home-Server-6-Bay-ZimaBoard-NAS/) or the [build video](https://youtu.be/NXIu-B52WPU). + +## Before You Start + +- [ ] All parts printed (see [PRINT_SETTINGS.md](PRINT_SETTINGS.md) for quantities and settings) +- [ ] All components sourced (see [BOM.csv](BOM.csv)) +- [ ] Heat-set inserts installed in all structural parts (72× M3 inserts) +- [ ] Soldering iron, hex drivers (M3, M6), and wire tools on hand + +## Assembly Order + +### 1. Install Heat-Set Inserts + +Insert all 72× M3 heat-set inserts into the structural parts using a soldering iron with a heat-set tip. Parts requiring inserts: +- Base +- Side plate L / Side plate R +- Brace +- Back fan housing +- Zima support + +### 2. Assemble the Frame + +1. Attach **Side plate L** and **Side plate R** to the **Base** using M3×10-12mm countersunk screws +2. Install the **Brace** between the side plates +3. Mount the **Back fan housing** to the rear +4. Install the **Front grill** +5. Install the **Zima support** bracket +6. Install the **PCIe card support** + +Use **M6 threaded rods** with **M6 hex nuts** and **M6 nylon washers** for the drive bay rail system. + +### 3. Mount Electronics + +1. Mount the **ZimaBoard 832** onto the Zima support bracket +2. Connect the **PCIe SATA expansion card** via the 90° riser cable +3. Secure the **power adapter PCB** in its designated location + +### 4. Wire Power + +> **Important:** Double-check all connections before powering on. The power adapter PCB handles dual 5V/12V rails at significant current. + +**Power adapter PCB connectors:** + +| Connector | Pins | Function | +|-----------|------|----------| +| PSU_IN | 3-pin terminal block | Power supply input (5V, 12V, GND) | +| ZIMA_PWR | 6-pin header | Power to ZimaBoard | +| ZIMA_IO | 14-pin header | ZimaBoard IO connection | +| POWER_SW | 4-pin header | Momentary power button | +| DRIVES_PWR1 | 4-pin Molex | Drive power rail 1 (drives 1–3) | +| DRIVES_PWR2 | 4-pin Molex | Drive power rail 2 (drives 4–6) | +| X1–X4 | 3-pin Molex | Fan headers (12V) | + +**Wiring sequence:** +1. Connect the **PSU** output to the PCB's **PSU_IN** terminal block +2. Connect **ZIMA_PWR** and **ZIMA_IO** to the ZimaBoard using the ribbon/header cables +3. Connect the **power button** to **POWER_SW** +4. Connect **DRIVES_PWR1** and **DRIVES_PWR2** to SATA power splitters → drive extender cables +5. Connect fans to **X1–X4** headers + +### 5. Install Drives + +1. Slide each drive into a **Caddy** +2. Snap on the **Cover** +3. Insert assembled caddies into the **Slots** separated by **Separators** +4. Connect SATA data cables from drives to the PCIe SATA card +5. Connect SATA power via the extender cables + +### 6. Install Covers + +Attach in this order: +1. **Back IO** panel +2. **Back plate** +3. **Side cover** +4. **Top cover** +5. **Face plate** (front) + +### 7. Power On and Configure + +1. Connect power cable to the **Power Socket Inlet Module** +2. Press the **power button** +3. Access the ZimaBoard via network to configure your NAS OS (CasaOS, TrueNAS, OpenMediaVault, etc.) + +## Safety Notes + +- The power adapter PCB switches up to **40A across dual rails** using P-Channel MOSFETs. Verify all connections before first power-on. +- Use a multimeter to confirm correct voltage on the 5V and 12V rails before connecting the ZimaBoard. +- Ensure adequate ventilation — the 4-fan setup is designed for continuous operation. +- PTC resettable fuses on the PCB provide overcurrent protection, but they are not a substitute for correct wiring. + +## Troubleshooting + +| Issue | Check | +|-------|-------| +| No power | PSU_IN terminal connections, power button header, PSU switch | +| Drives not detected | SATA data cables seated, PCIe card in slot, riser cable connection | +| Overheating | Fan headers connected (X1–X4), fan direction (intake front, exhaust rear) | +| Drive caddy too tight/loose | Print tolerance — try ±0.1mm horizontal expansion in slicer instead of scaling | + +## Need More Detail? + +The full photo-illustrated build guide is on [Instructables](https://www.instructables.com/3D-Printed-Home-Server-6-Bay-ZimaBoard-NAS/). The [build video](https://youtu.be/NXIu-B52WPU) walks through the entire process. diff --git a/BOM.csv b/BOM.csv new file mode 100644 index 0000000..937f85e --- /dev/null +++ b/BOM.csv @@ -0,0 +1,31 @@ +Category,Qty,Description,Manufacturer Part Number,Link,Notes +Electronics,1,ZimaBoard 832 Single Board Server,,https://geni.us/uwBCZ,Main SBC — the brain of the NAS +Electronics,2,Noctua NF-A4x10 FLX 3-Pin 12V (40x10mm),NF-A4x10 FLX,https://geni.us/Fkr3L,Drive bay intake fans — small form factor for tight spacing +Electronics,2,Noctua NF-R8 redux-1800 3-Pin 12V (80mm),NF-R8 redux-1800,https://geni.us/5GhNKWv,Rear exhaust fans — main case cooling +Electronics,1,Momentary Push Button 12V LED Ring (16mm hole),,https://geni.us/luLH,Power button — 16mm matches the face plate cutout +Electronics,1,SATA PCIe Expansion Card (4 Ports),,https://geni.us/9vRfBY,Adds 4 SATA ports to ZimaBoard's native 2 for 6 total +Electronics,1,90 Degree PCI Extension Cable (15cm),,https://geni.us/D940HF5,PCIe riser — needed because ZimaBoard is mounted perpendicular to SATA card +Electronics,2,Molex IDE Male to 3x 15-Pin SATA Power Splitter,,https://geni.us/eeVQD,Splits PCB drive power into per-drive SATA power connectors +Electronics,1,Power Socket Inlet Module,,https://geni.us/WkVR7,IEC C14 panel mount — standard PC power cable socket +Electronics,6,SATA 22-Pin (7+15) Male to Female Extender,,https://geni.us/wC48Yf,Pass-through cables from drive bays to rear — avoids bending cables at sharp angles +Electronics,1,Multiple Output PSU 5V(10A) 12V(12A),,N/A,Dual-rail power supply — must provide both 5V and 12V simultaneously +PCB,1,"Terminal Block 3-pos 5.08mm TH",691216510003S,Digikey: 732-691216510003S-ND,PSU_IN connector — 5V / 12V / GND input from power supply +PCB,1,"Header TH 4-pos 2.54mm",61300411021,Digikey: 732-5337-ND,POWER_SW connector — momentary button interface +PCB,1,"Header TH 6-pos 2.54mm",61300621121,Digikey: 732-5295-ND,ZIMA_PWR connector — delivers regulated power to ZimaBoard +PCB,1,"Header TH 14-pos 2.54mm",61301421121,Digikey: 732-5298-ND,ZIMA_IO connector — IO passthrough to ZimaBoard +PCB,4,"Ceramic Capacitor 0.1uF 50V X7R 1206",C1206C104K5RACTU,Digikey: 399-C1206C104K5RACTUCT-ND,Decoupling caps — one per MOSFET/transistor pair for switching noise suppression +PCB,4,"Resistor 10k 1% 0.25W 1206",,Digikey: 311-10.0KFRCT-ND,Gate pullup/bias resistors — set MOSFET default state and BJT base bias +PCB,4,"Electrolytic Capacitor 10uF 50V",WCAP-ASLI 4x5.5,Digikey: 732-8451-1-ND,Bulk filtering — smooth voltage ripple on 5V and 12V rails +PCB,2,"PTC Resettable Fuse 16V 10A TH",,Digikey: PTR016V1000-BK-ND,Overcurrent protection — self-resets after fault clears (one per rail) +PCB,4,"Molex Header TH 3-pos 2.54mm",22-23-2031,Digikey: WM4201-ND,Fan headers X1-X4 — standard 3-pin fan connector pinout +PCB,2,"Molex Header TH 4-pos 5.08mm",350211-1,Digikey: A1212-ND,DRIVES_PWR1/PWR2 — Molex power to drive SATA splitters +PCB,2,"P-Channel MOSFET 30V 40A TO-252",G40P03K,Digikey: 3141-G40P03KCT-ND,High-side power switching — one per rail (5V and 12V) +PCB,2,"NPN Transistor 40V 600mA SOT-23",MMBT2222AL,Digikey: MMBT2222ALT1GOSCT-ND,Gate drive — level shifts logic signal to MOSFET gate voltage +PCB,1,"Receptacle 6-pos 2.54mm",,Digikey: 732-61300621821-ND,ZIMA_PWR mating connector — plugs into the 6-pin header +PCB,1,"Receptacle 14-pos 2.54mm",,Digikey: 2057-RS2-14-G-ND,ZIMA_IO mating connector — plugs into the 14-pin header +Hardware,52,M3 x 10-12mm Hex Socket Countersunk Head Screw,,https://geni.us/bYhU,Frame and cover assembly — countersunk for flush fit +Hardware,20,M3 x 10mm Hex Socket Head Cap Screw,,https://geni.us/5N61va,Component mounting — cap head where flush fit not needed +Hardware,72,M3 Heat-Set Inserts,,https://geni.us/PdB8mWk,Press into printed parts with soldering iron — creates reusable threaded holes +Hardware,6,M6 Fully Threaded Rod,,https://geni.us/T6Quy,Drive bay rails — drives slide along these rods +Hardware,12,M6 Hex Nut,,https://geni.us/BPGwNiY,Rod fastening — 2 per rod (top and bottom) +Hardware,29,M6 Nylon Washer (1.2mm thickness),,https://geni.us/38l20a,Drive bay spacing — sits between drive slots to set correct bay gap diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..d9ec4e3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,49 @@ +# Contributing + +Thanks for your interest in improving the 3D Printed NAS project! Contributions are welcome under the [CC BY-NC-SA 4.0](LICENSE) license. + +## What's Most Needed + +These are the highest-impact contributions the project needs right now: + +1. **STEP file exports** — If you have Fusion 360 access, export the two `.f3z` source files as STEP and submit a PR +2. **Schematic PDF** — Export the power adapter PCB schematic from the original EDA project (KiCad, EasyEDA, etc.) +3. **PCB source files** — The original KiCad/EasyEDA project for the power adapter PCB +4. **Wiring diagram** — A clear diagram showing PSU → PCB → ZimaBoard → SATA → fan connections +5. **Generic 3MF plate file** — Re-plate the parts in PrusaSlicer or Cura for non-Bambu users +6. **Photos** — Assembly-stage photos to supplement the Instructables guide + +## How to Contribute + +### Reporting Issues +- Open a [GitHub Issue](../../issues) for bugs, missing information, or suggestions +- Include your printer model and slicer if reporting print issues +- Include photos if reporting fitment or assembly problems + +### Submitting Changes +1. Fork the repository +2. Create a descriptive branch (`add-step-exports`, `fix-caddy-tolerance`, etc.) +3. Make your changes +4. Submit a pull request with a clear description of what you changed and why + +### File Format Guidelines + +| File Type | Preferred Format | Notes | +|-----------|-----------------|-------| +| 3D Models (print-ready) | STL + 3MF | Include both for slicer compatibility | +| 3D Models (editable) | STEP preferred, .f3z accepted | STEP works across FreeCAD, SolidWorks, Onshape, etc. | +| Schematics | PDF/SVG + source project | Always include the editable source alongside exports | +| BOMs | CSV | Keep columns consistent with existing BOMs | +| Documentation | Markdown (.md) | — | +| Images | JPG or PNG | Compress to <2MB per image | + +### Remixes and Modifications + +If you've adapted the enclosure for a different SBC, drive configuration, or form factor: +- Open an issue or PR describing your modification +- Include photos of the finished build if possible +- Note any changes to the BOM + +## Code of Conduct + +Be respectful and constructive. This is a hobby project — keep it fun. diff --git a/Enclosure/BOMs/Hardware_Fastners _BOM.csv b/Enclosure/BOMs/Hardware_Fasteners_BOM.csv similarity index 100% rename from Enclosure/BOMs/Hardware_Fastners _BOM.csv rename to Enclosure/BOMs/Hardware_Fasteners_BOM.csv diff --git a/PRINT_SETTINGS.md b/PRINT_SETTINGS.md new file mode 100644 index 0000000..7908b04 --- /dev/null +++ b/PRINT_SETTINGS.md @@ -0,0 +1,87 @@ +# Print Settings + +Recommended FDM print settings for the 3D Printed NAS enclosure. All parts are designed for standard FDM printers with a 220×220mm or larger bed. + +## General Settings + +| Parameter | Recommended | +|-----------|-------------| +| **Material** | PLA or PETG (PETG preferred for heat resistance near electronics) | +| **Layer Height** | 0.2mm | +| **Nozzle** | 0.4mm | +| **Infill** | See per-category settings below | +| **Wall Count** | 3–4 perimeters | +| **Top/Bottom Layers** | 4–5 layers | +| **Supports** | Generally not required (see exceptions below) | + +## Per-Category Settings + +### Structure (Base, Brace, Side Plates, Fan Housing, Zima Support, PCIe Support, Front Grill) + +These are load-bearing parts that support the weight of the drives and ZimaBoard. + +| Parameter | Recommended | +|-----------|-------------| +| **Infill** | 30–40% | +| **Pattern** | Grid or Gyroid | +| **Supports** | Not required | +| **Orientation** | Print flat on the largest face | +| **Notes** | The Base and Side Plates are the most structurally critical. Use PETG if possible. | + +### Covers (Back IO, Back Plate, Face Plate, Side Cover, Top Cover) + +Non-structural cosmetic panels. Lower infill is fine. + +| Parameter | Recommended | +|-----------|-------------| +| **Infill** | 15–20% | +| **Pattern** | Grid or Gyroid | +| **Supports** | Not required | +| **Orientation** | Print flat, exterior face down for best surface finish | +| **Notes** | Face Plate is the most visible — use a higher quality profile if desired. | + +### Drives (Caddy, Cover, Separator, Slot) + +Tool-less drive tray system. The Caddy is the most printed part (6× needed). + +| Parameter | Recommended | +|-----------|-------------| +| **Infill** | 25–30% | +| **Pattern** | Grid | +| **Supports** | Not required | +| **Orientation** | Print flat | +| **Notes** | Print a test caddy first to verify drive fitment before printing all 6. Tight tolerances — do not scale. | + +## Part Quantities + +| Part | Quantity | +|------|----------| +| Base | 1 | +| Brace | 1 | +| Back fan housing | 1 | +| Front grill | 1 | +| PCIe card support | 1 | +| Side plate L | 1 | +| Side plate R | 1 | +| Zima support | 1 | +| Back IO | 1 | +| Back plate | 1 | +| Face plate | 1 | +| Side cover | 1 | +| Top cover | 1 | +| Caddy | **6** | +| Cover (drive) | **6** | +| Separator | **5** | +| Slot | **6** | + +**Total print count: ~34 parts** + +## Bambu Lab Users + +A pre-arranged plate file is included at `Enclosure/CAD/3MF/3D Printed NAS _Bambu Plates.3mf` for Bambu Studio. + +> **Note:** This plate file uses Bambu Studio's proprietary 3MF extensions and may not open correctly in PrusaSlicer or Cura. Use the individual STL or 3MF files from the `STL/` or `3MF/` subfolders instead. + +## Filament Estimate + +Approximately **800g–1.2kg** of filament total, depending on infill and part count. Budget 2 rolls. diff --git a/README.md b/README.md index e8a097d..f43b5db 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,98 @@ -# 3D Printed NAS - -Watch the build video ↓ +# 3D Printed NAS — 6-Bay ZimaBoard Home Server [](https://youtu.be/NXIu-B52WPU) -I was juggling too many small SSDs for backups, so I set out to build something more permanent. -In this video, I walk you through the design and build of a custom NAS powered by the ZimaBoard — complete with a custom power adapter PCB and tool less drive trays. +A custom 3D printed NAS enclosure for the ZimaBoard single board server, featuring a custom power adapter PCB, tool-less drive trays, and a modular design that's easy to build and maintain. -Build instructions → [Instructables](https://www.instructables.com/3D-Printed-Home-Server-6-Bay-ZimaBoard-NAS/) +## Specs + +| Feature | Detail | +|---------|--------| +| **Drive Bays** | 6× 3.5" SATA (tool-less caddies) | +| **SBC** | ZimaBoard 832 | +| **SATA Expansion** | 4-port PCIe SATA card via 90° riser | +| **Cooling** | 2× Noctua 80mm (rear exhaust) + 2× Noctua 40×10mm (drive bay intake) | +| **Power** | Custom PCB adapter — dual 5V/12V rails from a single multi-output PSU | +| **Enclosure** | Fully 3D printed (14 parts), M3/M6 fastener assembly with heat-set inserts | +| **Approximate Dimensions** | Compact desktop tower (see CAD files for exact measurements) | + +## Project Links + +- **Build Video** → [YouTube](https://youtu.be/NXIu-B52WPU) +- **Step-by-Step Instructions** → [Instructables](https://www.instructables.com/3D-Printed-Home-Server-6-Bay-ZimaBoard-NAS/) +- **Assembly Overview** → [ASSEMBLY.md](ASSEMBLY.md) +- **Print Settings** → [PRINT_SETTINGS.md](PRINT_SETTINGS.md) + +## Repository Structure + +``` +├── Electronics/ +│ ├── BOMs/ +│ │ ├── Parts_BOM.csv # Main components (ZimaBoard, fans, PSU, cables) +│ │ └── Power Adapter PCB_BOM.csv # PCB-specific components with DigiKey part numbers +│ └── Power Adapter PCB/ +│ └── Zima Power Adapter_CAM.zip # Gerber files for PCB fabrication +│ +├── Enclosure/ +│ ├── BOMs/ +│ │ └── Hardware_Fasteners_BOM.csv # Screws, inserts, rods, nuts, washers +│ └── CAD/ +│ ├── 3MF/ # Print-ready files (Bambu Studio plates included) +│ │ ├── Covers/ # Back IO, Back plate, Face plate, Side cover, Top cover +│ │ ├── Drives/ # Caddy, Cover, Separator, Slot +│ │ └── Structure/ # Base, Brace, Fan housing, Grill, PCIe support, Side plates, Zima support +│ ├── STL/ # Universal print-ready files (same parts as 3MF) +│ └── Autodesk Fusion/ # Editable source files (.f3z) +│ +├── Images/ +├── ASSEMBLY.md +├── PRINT_SETTINGS.md +├── CONTRIBUTING.md +├── BOM.csv # Consolidated master bill of materials +└── LICENSE # CC BY-NC-SA 4.0 +``` + +## Bill of Materials — Quick Overview + +See [BOM.csv](BOM.csv) for the full consolidated parts list. Estimated total cost: **~$250–350 USD** depending on drive selection and region. + +**Key Components:** +- 1× ZimaBoard 832 +- 1× 4-port SATA PCIe expansion card + 90° riser cable +- 1× Multi-output PSU (5V 10A / 12V 12A) +- 1× Custom power adapter PCB ([order assembled](https://ocrlab.myshopify.com) or fabricate from Gerbers) +- 2× Noctua NF-R8 redux 80mm fans +- 2× Noctua NF-A4x10 FLX 40mm fans +- 72× M3 heat-set inserts + M3 screws +- 6× M6 threaded rods + nuts + nylon washers +- 6× SATA 22-pin male-to-female extender cables +- 2× Molex IDE to 3× SATA power splitter cables + +## Required Tools + +- 3D printer (FDM, 220×220mm+ bed recommended) +- Soldering iron with heat-set insert tip +- Hex driver set (M3, M6) +- Wire strippers / crimping tool (for PSU wiring) + +## What's Missing (Help Wanted) + +The following files would significantly improve this project but require access to the original design tools: + +- [ ] **STEP files** — Neutral CAD format export from Fusion 360 (enables editing in FreeCAD, SolidWorks, Onshape) +- [ ] **Schematic PDF/SVG** — Circuit diagram for the power adapter PCB +- [ ] **PCB source files** — KiCad or EasyEDA project for the power adapter +- [ ] **Wiring diagram** — Full interconnect diagram (PSU → PCB → ZimaBoard → SATA card → fans) +- [ ] **Generic 3MF plate file** — Non-Bambu-specific version for PrusaSlicer/Cura users + +If you have access to these or can contribute, see [CONTRIBUTING.md](CONTRIBUTING.md). + +## License [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa] +This work is licensed under [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International][cc-by-nc-sa]. + [![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa] [cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/