know.2nth.ai Technology tech hardware
tech/hardware · Sub-domain hub

Hardware is
code now.

The electronics-design layer of the tree — the physical board underneath the firmware. For thirty years a schematic was something you drew in a GUI; now it's something you write, diff, version, and compile. This hub maps the EDA toolchain (capture, layout, simulation), the fab partners that turn a design into a panel of boards, and the new code-defined PCB tools — led by Diode — that make a circuit a software artefact a coding agent can reason about.

6
Tools tracked
6
Live explainers
EDA→Fab
Design to board
01 · The landscape

From schematic to shipped board.

Three bands — code-defined design (the new layer), the established EDA suites it builds on, and the fab/manufacturing partners at the end of the pipeline. All six are live explainers now — Diode plus the EDA suites it builds on and the fab partners it ships to. Each card maps to a leaf in tech/hardware/*.

Code-defined design · 1
EDA suites · 3
Fab & manufacturing · 2
02 · The shared pattern

A circuit becomes a software artefact.

The thread running through this whole branch is the same one that reshaped software twenty years ago: take something that lived in a binary GUI file and make it text. Once a schematic is code, it gets everything code gets — version control, pull-request diffs, reusable modules, CI checks, and an LLM that can read and write it. Diode's Zener is the clearest expression of the pattern.

Hardware-as-code

A traditional schematic is a drawing locked in a tool's binary format — you can't grep it, you can't diff it meaningfully, and you certainly can't reuse a power-supply block by importing it. Zener describes the same circuit as a hierarchy of nets, components, and modules. A reviewer sees exactly which two nets changed; a build server runs electrical-rule checks on every push; a reference design becomes an import.

# power.zen — a reusable 3V3 regulator module
load("@stdlib/interfaces.zen", "Power", "Ground")

vin = Power("VIN")
v3v3 = Power("3V3")
gnd = Ground()

# Components carry their footprint + pin map
Component(
    name = "U1",
    mpn = "AMS1117-3.3",
    footprint = "SOT-223",
    pins = { "VIN": vin.NET, "VOUT": v3v3.NET, "GND": gnd.NET },
)

That module compiles to a KiCad layout, drops into any board with one load(), and reviews like any other code change. It's the same move PlatformIO made for firmware and Drizzle made for database schemas — the design becomes the source, and the GUI becomes a viewer.

03 · Related branches

Where the hardware branch connects.

Electronics is the bottom of the stack — the board everything else runs on. It hands off upward to firmware (the code that runs on the silicon you just designed), sideways to the AI agents that now help design it, and outward to the partner hardware that 2nth ships. These are the branches it touches most.