126 lines
6.9 KiB
HTML
126 lines
6.9 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta charset="utf-8">
|
|
<title>KiMesh | Home</title>
|
|
<meta name="description" content="">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="mobile-web-app-capable" content="yes">
|
|
<meta name="color-scheme" content="dark light">
|
|
<meta name="fediverse:creator" content="@jaseg@chaos.social">
|
|
<link rel="stylesheet" href="/style.css">
|
|
|
|
<link rel="preload" href="/fonts/roboto_slab/RobotoSlab-VariableFont_wght.ttf" as="font" type="font/ttf" crossorigin />
|
|
<link rel="preload" href="/fonts/nyght-serif-main/fonts/WEB/NyghtSerif-Regular.woff2" as="font" type="font/woff2" crossorigin />
|
|
<link rel="preload" href="/fonts/nyght-serif-main/fonts/WEB/NyghtSerif-Bold.woff2" as="font" type="font/woff2" crossorigin />
|
|
<link rel="preload" href="/fonts/nyght-serif-main/fonts/WEB/NyghtSerif-BoldItalic.woff2" as="font" type="font/woff2" crossorigin />
|
|
</head>
|
|
<body><nav>
|
|
<div class="internal">
|
|
|
|
<a href="/" title="Home">Home</a>
|
|
<a href="/blog/" title="Blog">Blog</a>
|
|
<a href="/projects/" title="Projects">Projects</a>
|
|
<a href="/about/" title="About">About</a>
|
|
</div>
|
|
<div class="search">
|
|
<div id="search"></div>
|
|
</div>
|
|
<div class="external">
|
|
<a rel="me" href="https://git.jaseg.de/" title="cgit">cgit</a>
|
|
<a rel="me" href="https://github.com/jaseg" title="Github">Github</a>
|
|
<a rel="me" href="https://gitlab.com/neinseg" title="Gitlab">Gitlab</a>
|
|
<a rel="me" href="https://chaos.social/@jaseg" title="Mastodon">Mastodon</a>
|
|
</span>
|
|
</nav>
|
|
|
|
<header>
|
|
<h1>KiMesh</h1>
|
|
<ul class="breadcrumbs">
|
|
<li><a href="/">jaseg.de</a></li>
|
|
<li><a href="/projects/">Projects</a></li><li><a href="/projects/kimesh/">KiMesh</a></li>
|
|
</ul>
|
|
<strong>2023-10-04</strong>
|
|
</header>
|
|
<main data-pagefind-body>
|
|
<div class="links">
|
|
<a href="https://git.jaseg.de/kimesh.git">Sources</a>
|
|
<a href="https://github.com/jaseg/kimesh/issues">Issues</a>
|
|
<a href="https://jaseg.de/projects/kimesh">Docs</a>
|
|
</div>
|
|
<div class="document" id="kicad-security-mesh-generator">
|
|
<h1 class="title">KiCAD Security Mesh Generator</h1>
|
|
|
|
<img alt="A screenshot of KiCAD showing a PCB security mesh generated by KiMesh." src="kicad-mesh-result-large.png" style="width: 800px;" />
|
|
<p>This repository contains KiMesh, a KiCAD pcbnew plugin that generates security mesh traces on a KiCAD PCB.</p>
|
|
<div class="section" id="installation">
|
|
<h2>Installation</h2>
|
|
<p>KiMesh has two parts: The pcbnew plugin that generates the traces, and the magic footprints that you use to tell the
|
|
plugin how many traces of which dimensions to generate where.</p>
|
|
<p>To install the plugin, copy the "kimesh" directory into your KiCAD installation's scripting plugin folder. Usually, this
|
|
is <cite>~/.config/kicad/scripting/plugins/</cite> for KiCAD stable installations or
|
|
<cite>~/.config/kicad/[major version].99/scripting/plugins/</cite> for nightly builds. On Windows, these paths can be found in your
|
|
user account's <cite>AppData/Roaming</cite> directory.</p>
|
|
<p>To install the footprint libraries, the easiest way is to download the library zip from the project's repo
|
|
<a class="reference external" href="https://git.jaseg.de/kimesh.git/plain/mesh_footprints.tar.xz?h=main">[link]</a>, unpack it to your project folder, and
|
|
add the unpacked libraries as project-specific libraries through KiCad's library management thingy.</p>
|
|
</div>
|
|
<div class="section" id="usage">
|
|
<h2>Usage</h2>
|
|
<p>To work, KiMesh requires four things:</p>
|
|
<ol class="arabic simple">
|
|
<li>An area free of other features such as footprints or traces where to generate the mesh.</li>
|
|
<li>One or more "graphic polygons" on a drawing layer that specify the area of the mesh.</li>
|
|
<li>A closed board outline on the <cite>Edge.Cuts</cite> layer.</li>
|
|
<li>One of the magic footprints from the KiMesh anchor library that defines the mesh's number of wires and their
|
|
dimensions, and tells KiMesh where to start the mesh and in which direction to start it.</li>
|
|
</ol>
|
|
<p>You can choose any layer for the outline polygons, such as the pre-defined <cite>User.Eco1</cite> or <cite>User.X</cite> layers, or you can
|
|
define your own. You just have to select that layer later in KiMesh's generator dialog. Note that KiMesh only processes
|
|
graphic polygons on that layer, and ignores other shapes such as lines, rectangles or circles. You can still use other
|
|
shapes, but you have to manually convert them to polygons before running KiMesh. To convert other shapes to
|
|
a polygon, select them, open the context menu with a right click, then choose the "Create from Selection 🞂 Create
|
|
Polygon from Selection" entry. For rectangles or circles, use the "Use Centerlines" option. For lines or arcs, use the
|
|
"Create bounding hull" option.</p>
|
|
<p>Place the magic anchor footprint on the outline of the mesh's shape polygons so that you have space to route out the
|
|
traces. The anchor footprint has an arrow on the <cite>F.Fab</cite> layer that indicates in which direction the mesh will be
|
|
generated.</p>
|
|
<p>I recommend adding the mesh to the schematic with one of KiCad's built-in <cite>Connector_02xN_Top_Bottom</cite> footprints. For a
|
|
mesh with k wires, choose a symbol with two rows of 2k pins each. For instance, for two mesh wires, choose
|
|
<cite>Connector_02x04_Top_bottom</cite>. Then assign one of the magic footprints to that symbol. To avoid DRC warnings, join the
|
|
two halves of the mesh on the output side of the footprint. That's the right side in default orientation, where the
|
|
higher-numbered pins are.</p>
|
|
<img alt="A screenshot of the connector footprint mentioned in the previous paragraph, shown conencted up as described in KiCad's schematic editor." src="screenshot-mesh-schematic.png" style="width: 800px;" />
|
|
</div>
|
|
<div class="section" id="theory-of-operation">
|
|
<h2>Theory of operation</h2>
|
|
<p>I have published a <a class="reference external" href="https://jaseg.de/blog/kicad-mesh-plugin/">post</a> on my blog on the theory of operation behind KiMesh.</p>
|
|
</div>
|
|
</div>
|
|
</main><footer>
|
|
Copyright © 2026 Jan Sebastian Götte
|
|
/ <a href="/about/">About</a>
|
|
/ <a href="/imprint/">Imprint</a>
|
|
</footer>
|
|
<script type="text/javascript" src="/pagefind/pagefind-ui.js" defer></script>
|
|
<script>
|
|
window.addEventListener('DOMContentLoaded', (event) => {
|
|
new PagefindUI({element: "#search", showSubResults: true});
|
|
});
|
|
</script>
|
|
<script type="speculationrules">
|
|
{
|
|
"prerender": [
|
|
{
|
|
"source": "document",
|
|
"where": {
|
|
"and": [
|
|
{"href_matches": "/*"}
|
|
]
|
|
},
|
|
"eagerness": "moderate"
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|