<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Overview on Granit</title><link>https://laenzlinger.github.io/granit/latest/</link><description>Recent content in Overview on Granit</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://laenzlinger.github.io/granit/latest/index.xml" rel="self" type="application/rss+xml"/><item><title>Release</title><link>https://laenzlinger.github.io/granit/latest/release/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://laenzlinger.github.io/granit/latest/release/</guid><description/></item><item><title>Board</title><link>https://laenzlinger.github.io/granit/latest/board/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://laenzlinger.github.io/granit/latest/board/</guid><description>&lt;p&gt;For detailed circuit design notes, PCB routing guidelines, and netclass definitions,
see &lt;a href="https://github.com/laenzlinger/granit/blob/main/hardware/DESIGN.md"&gt;hardware/DESIGN.md&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="key-design-decisions"&gt;Key Design Decisions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ASM1061 over USB-to-SATA bridges&lt;/strong&gt;: Native PCIe SATA controller using the
standard Linux &lt;code&gt;ahci&lt;/code&gt; driver. No proprietary firmware blob required — the SPI
flash footprint can be left unpopulated. SMART works natively without SAT
translation hacks. Full SATA III throughput on both CM4 and CM5.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;12V DC input&lt;/strong&gt;: Required for 3.5&amp;quot; HDD support (spindle motor needs 12V).
AP64501SP-13 accepts 3.8–28V. Both barrel jack and screw terminal footprints
provided — populate one at assembly time.&lt;/p&gt;</description></item><item><title>Assembly</title><link>https://laenzlinger.github.io/granit/latest/assembly/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://laenzlinger.github.io/granit/latest/assembly/</guid><description>&lt;p&gt;The PCB (92 × 99.5mm) fits both Hammond 1455 enclosure variants. PCB and HDD
sit side-by-side with the SATA connector direct-mating between them. The lid
(U-channel) is shown offset to reveal the internals.&lt;/p&gt;
&lt;h2 id="end-plate"&gt;End Plate&lt;/h2&gt;
&lt;p&gt;The connector-side end plate has cutouts for:
barrel jack (12V DC), RJ45 (Ethernet), USB-C (OTG), tactile button, and RGB LED (light pipe).&lt;/p&gt;
&lt;p&gt;Parametric design in OpenSCAD — generate for CNC machining or 3D printing:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# DXF for CNC laser/mill&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;openscad -o end-plate-slim.dxf -D &lt;span style="color:#e6db74"&gt;&amp;#39;variant=&amp;#34;slim&amp;#34;&amp;#39;&lt;/span&gt; -D &lt;span style="color:#e6db74"&gt;&amp;#39;mode=&amp;#34;2d&amp;#34;&amp;#39;&lt;/span&gt; end-plate.scad
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# STL for 3D printing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;openscad -o end-plate-slim.stl -D &lt;span style="color:#e6db74"&gt;&amp;#39;variant=&amp;#34;slim&amp;#34;&amp;#39;&lt;/span&gt; -D &lt;span style="color:#e6db74"&gt;&amp;#39;$fn=64&amp;#39;&lt;/span&gt; end-plate.scad
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="downloads"&gt;Downloads&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/laenzlinger/granit/raw/main/mechanical/end-plate-slim.dxf"&gt;end-plate-slim.dxf&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DXF&lt;/td&gt;
&lt;td&gt;Slim end plate — CNC cutting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/laenzlinger/granit/raw/main/mechanical/end-plate-wide.dxf"&gt;end-plate-wide.dxf&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DXF&lt;/td&gt;
&lt;td&gt;Wide end plate — CNC cutting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/laenzlinger/granit/raw/main/mechanical/end-plate-slim.stl"&gt;end-plate-slim.stl&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;STL&lt;/td&gt;
&lt;td&gt;Slim end plate — 3D printing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/laenzlinger/granit/raw/main/mechanical/end-plate-wide.stl"&gt;end-plate-wide.stl&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;STL&lt;/td&gt;
&lt;td&gt;Wide end plate — 3D printing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/laenzlinger/granit/raw/main/mechanical/assembly-slim.step"&gt;assembly-slim.step&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;STEP&lt;/td&gt;
&lt;td&gt;Full slim assembly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/laenzlinger/granit/raw/main/mechanical/assembly-wide.step"&gt;assembly-wide.step&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;STEP&lt;/td&gt;
&lt;td&gt;Full wide assembly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/laenzlinger/granit/raw/main/mechanical/end-plate.scad"&gt;end-plate.scad&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;OpenSCAD&lt;/td&gt;
&lt;td&gt;Parametric end plate source&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="enclosure-variants"&gt;Enclosure Variants&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variant&lt;/th&gt;
&lt;th&gt;Case&lt;/th&gt;
&lt;th&gt;HDD&lt;/th&gt;
&lt;th&gt;Internal dimensions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Slim&lt;/td&gt;
&lt;td&gt;Hammond 1455L2201&lt;/td&gt;
&lt;td&gt;2.5&amp;quot;&lt;/td&gt;
&lt;td&gt;103 × 220 × 30.5mm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wide&lt;/td&gt;
&lt;td&gt;Hammond 1455T2601&lt;/td&gt;
&lt;td&gt;3.5&amp;quot;&lt;/td&gt;
&lt;td&gt;165 × 252 × 51.5mm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Software</title><link>https://laenzlinger.github.io/granit/latest/software/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://laenzlinger.github.io/granit/latest/software/</guid><description>&lt;p&gt;Custom Raspberry Pi OS Lite image with Ansible-based provisioning.
Source: &lt;a href="https://github.com/laenzlinger/granit/tree/main/software"&gt;&lt;code&gt;software/&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;pi-gen&lt;/strong&gt;: builds a minimal image (packages + boot config)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ansible&lt;/strong&gt;: configures all services, security, and monitoring&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also skip the custom image and provision stock Raspberry Pi OS directly.&lt;/p&gt;
&lt;h2 id="hardware-support"&gt;Hardware Support&lt;/h2&gt;
&lt;h3 id="pcie-sata-asm1061"&gt;PCIe SATA (ASM1061)&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;dtparam=pciex1
dtparam=pciex1_gen=2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The SATA drive appears as &lt;code&gt;/dev/sda&lt;/code&gt; once connected and powered.&lt;/p&gt;
&lt;h3 id="ds3231-rtc"&gt;DS3231 RTC&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;dtparam=i2c_arm=on
dtoverlay=i2c-rtc,ds3231
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;System clock is set from the RTC on boot. The RTC alarm triggers scheduled wake.&lt;/p&gt;</description></item></channel></rss>