<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Black Electronics</title>
		<link>https://black-electronics.com/</link>
		<description>Recent content on Black Electronics</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Wed, 12 Aug 2026 10:27:39 +0000</lastBuildDate>
		
			<atom:link href="https://black-electronics.com/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>PCIe, what are groups, lanes, gen and how they all relate?</title>
				<link>https://black-electronics.com/posts/pcie-reference/</link>
				<pubDate>Wed, 12 Aug 2026 10:27:39 +0000</pubDate>
				<guid>https://black-electronics.com/posts/pcie-reference/</guid>
				<description>&lt;p&gt;It’s pretty easy to get lost in all the PCIe jargon and, as a non-technical person, figure out what the specs actually mean and what they do.&lt;/p&gt;&#xA;&lt;p&gt;It’s even more important for a PCB designer to understand all these differences. I was lost too.&lt;/p&gt;&#xA;&lt;p&gt;So, let’s break down the basics of PCIe (Peripheral Component Interconnect Express) and try to understand what all these terms actually mean.&lt;/p&gt;&#xA;&lt;h2 id=&#34;table-of-contents&#34;&gt;Table of Contents&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#1-lanes--the-xn-notation&#34;&gt;1. Lanes — the xN notation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#2-generation--gen&#34;&gt;2. Generation — Gen&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#nrz-vs-pam4&#34;&gt;NRZ vs PAM4&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#gts-is-not-the-same-as-gbps&#34;&gt;GT/s is not the same as Gbps&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#pcie-bandwidth-by-generation&#34;&gt;PCIe bandwidth by generation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#pcie-gen4-x16&#34;&gt;PCIe Gen4 x16&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#3-pcie-slots-and-link-width&#34;&gt;3. PCIe slots and link width&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#4-groups-root-complex-and-pcie-switches&#34;&gt;4. Groups, Root Complex and PCIe Switches&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#root-complex&#34;&gt;Root Complex&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#groups--lane-bifurcation&#34;&gt;Groups / Lane bifurcation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#channel-length&#34;&gt;Channel Length&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#why-did-gen6-move-to-pam4-instead-of-just-increasing-the-frequency&#34;&gt;Why did Gen6 move to PAM4 instead of just increasing the frequency?&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#rise-time-makes-things-even-more-interesting&#34;&gt;Rise time makes things even more interesting&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-downside-of-pam4&#34;&gt;The downside of PAM4&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#thats-the-basic-pcie-vocabulary&#34;&gt;PCIe vocabulary&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-lanes--the-xn-notation&#34;&gt;1. Lanes — the xN notation&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;strong&gt;lane&lt;/strong&gt; is the basic unit of communication in PCIe.&lt;/p&gt;</description>
			</item>
			<item>
				<title>From CircuitPython to QMK: Giving My Macropad a Upgrade</title>
				<link>https://black-electronics.com/posts/marcopad-update/</link>
				<pubDate>Wed, 12 Aug 2026 07:24:49 +0000</pubDate>
				<guid>https://black-electronics.com/posts/marcopad-update/</guid>
				<description>&lt;p&gt;Continuing from my &lt;a href=&#34;https://black-electronics.com/posts/macropad-on-rp2040/&#34;&gt;last build&lt;/a&gt;, the firmware running on the macropad was based on CircuitPython.&lt;/p&gt;&#xA;&lt;p&gt;It was doing the job just fine, but I wanted to add a few more features. As I started pushing it further, I also noticed that CircuitPython was slowing the macropad down a bit. Every now and then, I would also run into the dreaded &lt;strong&gt;USB busy error&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;So I decided it was time to try something different.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Turning a Tiny RP2350 Display into a PC Monitor</title>
				<link>https://black-electronics.com/posts/2026-08-11-turning-a-tiny-rp2350-display-into-a-pc-monitor/</link>
				<pubDate>Tue, 11 Aug 2026 07:57:20 +0000</pubDate>
				<guid>https://black-electronics.com/posts/2026-08-11-turning-a-tiny-rp2350-display-into-a-pc-monitor/</guid>
				<description>&lt;p&gt;I recently went on a bit of a shopping spree and ended up with a pile of new hardware to play with. Somewhere in that pile was this &lt;strong&gt;RP2350 board from Waveshare with a 1.47-inch display&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.waveshare.com/rp2350-lcd-1.47-a.htm?utm_source=chatgpt.com&#34;&gt;Waveshare RP2350-LCD-1.47-A&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;As soon as I saw it, the most obvious thing to do was turn it into a tiny PC monitor.&lt;/p&gt;&#xA;&lt;p&gt;I know this has probably been done &lt;strong&gt;hundreds of times&lt;/strong&gt;, but that&amp;rsquo;s never really stopped me from building something.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Turning an RP2350 into a Security Key</title>
				<link>https://black-electronics.com/posts/pico-key/</link>
				<pubDate>Tue, 11 Aug 2026 07:31:02 +0000</pubDate>
				<guid>https://black-electronics.com/posts/pico-key/</guid>
				<description>&lt;p&gt;I recently came across a project called &lt;strong&gt;PicoKeys&lt;/strong&gt;, and I thought it was a pretty cool use of these tiny development boards.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.picokeys.com/?utm_source=chatgpt.com&#34;&gt;PicoKeys&lt;/a&gt; is an open-source firmware project that can turn boards based on the &lt;strong&gt;RP2040, RP2350/RP2354, and ESP32-S3&lt;/strong&gt; into different types of security devices. Depending on the firmware, you can use them for FIDO2 passkeys, OpenPGP, or other cryptographic applications.&lt;/p&gt;&#xA;&lt;p&gt;The RP2040 is supported, but I decided to go with an &lt;strong&gt;RP2350&lt;/strong&gt; because it has a stronger hardware-security foundation. The RP2040 lacks some of the built-in security features available on the newer RP2350.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Printing with a 1 mm Nozzle</title>
				<link>https://black-electronics.com/posts/1mm-nozzle-prusa-coreone/</link>
				<pubDate>Mon, 10 Aug 2026 14:32:26 +0400</pubDate>
				<guid>https://black-electronics.com/posts/1mm-nozzle-prusa-coreone/</guid>
				<description>&lt;p&gt;I wanted to try printing with a &lt;strong&gt;1 mm nozzle&lt;/strong&gt;, so I needed something fairly simple to test it with. I ended up going with this rectangular trash can.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.printables.com/model/260646-rectangular-trash-can-vase-mode?utm_source=chatgpt.com&#34;&gt;Rectangular Trash Can – Vase Mode on Printables&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I printed it in &lt;strong&gt;vase mode&lt;/strong&gt;, and I was actually quite surprised by how sturdy it turned out. With a 1 mm nozzle, the wall is obviously much thicker, and even though it is technically just a single-wall vase-mode print, it feels pretty solid.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Tuning a PCB Antenna in the Loop, From KiCad to a 3D-Printed Radiation Pattern</title>
				<link>https://black-electronics.com/posts/antenna-tunning-openems/</link>
				<pubDate>Thu, 23 Jul 2026 12:56:51 +0400</pubDate>
				<guid>https://black-electronics.com/posts/antenna-tunning-openems/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been closing the loop between KiCad and openEMS for antenna tuning, no manual coordinate transcription, no guesswork. Edit the copper in KiCad, simulate, read the dip, repeat.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;The antenna&lt;/strong&gt;: a 2.4 GHz meandered inverted-F (IFA), copper artwork adapted from TI&amp;rsquo;s DN007 reference design, feed leg, shorting stubs down to a ground pour, single top-layer trace.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-sim&#34;&gt;The sim&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://black-electronics.com/uploads/antenna-tunning/kicad.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;openEMS (FDTD) via its Python bindings: substrate + copper as simulation primitives, PML boundaries (a radiating structure reflects too much off the cheaper absorbing-boundary option), a lumped port bridging the feed leg to ground, and a near-field-to-far-field box for the radiation pattern.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The BGA Evacuation Plan- How to Estimate PCB Layers Using the Stadium Method</title>
				<link>https://black-electronics.com/posts/layer_estimation/</link>
				<pubDate>Tue, 23 Jun 2026 06:03:06 +0000</pubDate>
				<guid>https://black-electronics.com/posts/layer_estimation/</guid>
				<description>&lt;p&gt;If you have ever stared at a newly selected high-pin-count Ball Grid Array (BGA) and found yourself guessing how many layers your PCB stackup actually needs, you are not alone. Guessing too low leads to unroutable designs and wasted weeks; guessing too high adds unnecessary fabrication costs and manufacturing complexity.&lt;/p&gt;&#xA;&lt;p&gt;In a recent episode of Sierra Circuits&amp;rsquo; &lt;em&gt;Trace Talks&lt;/em&gt;, veteran PCB designer Greg Albert shared a brilliant, practical framework for calculating layer constraints. It all comes down to a single bottleneck: &lt;strong&gt;BGA escape routing (or breakout) and channel capacity.&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>From Envelope Writer to A3 Drawbot- Modding a Small Drawing Robot</title>
				<link>https://black-electronics.com/posts/from-envelope-writer-to-a3-drawbot--modding-a-small-drawing-robot/</link>
				<pubDate>Tue, 06 Jan 2026 06:03:06 +0000</pubDate>
				<guid>https://black-electronics.com/posts/from-envelope-writer-to-a3-drawbot--modding-a-small-drawing-robot/</guid>
				<description>&lt;h2 id=&#34;the-find&#34;&gt;The Find&lt;/h2&gt;&#xA;&lt;p&gt;I found a great deal on a small drawing bot, likely intended for writing addresses on envelopes. One thing that immediately caught my attention was the pen mechanism — it was driven by a stepper motor instead of the more common servo setup. That alone made it worth picking up.&lt;/p&gt;&#xA;&lt;h2 id=&#34;getting-it-running&#34;&gt;Getting It Running&lt;/h2&gt;&#xA;&lt;p&gt;I started by configuring the electronics and setting up a basic workflow to get the machine moving. It worked, but it quickly became obvious that the stock setup had a lot of limitations.&lt;/p&gt;</description>
			</item>
			<item>
				<title>GPIO Hacker Board Timelapse on Core One</title>
				<link>https://black-electronics.com/posts/gpio-hackerboard/</link>
				<pubDate>Wed, 31 Dec 2025 11:57:00 +0000</pubDate>
				<guid>https://black-electronics.com/posts/gpio-hackerboard/</guid>
				<description>&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;&#xA;&lt;p&gt;The GPIO Hacker Board is an I2C GPIO expander designed for the Prusa Core One. It allows external hardware to be controlled directly from the printer using G-codes. By embedding specific M-codes into the sliced G-code, the printer can toggle GPIO pins at defined points during a print.&lt;/p&gt;&#xA;&lt;p&gt;This post documents how I used the GPIO Hacker Board to build a layer-by-layer timelapse system and how I tested and validated the setup efficiently.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Core One Assembly, Add-ons, and Initial Prints</title>
				<link>https://black-electronics.com/posts/core-one/</link>
				<pubDate>Mon, 22 Dec 2025 11:15:57 +0000</pubDate>
				<guid>https://black-electronics.com/posts/core-one/</guid>
				<description>&lt;p&gt;After being around 3D printers for almost a decade, I finally purchased my first personal machine: the &lt;strong&gt;Prusa Core One kit&lt;/strong&gt;. I’ve assembled a Prusa MK3 at work before, so I roughly knew what I was getting into. As expected from Prusa, the assembly instructions were clear and easy to follow.&lt;/p&gt;&#xA;&lt;p&gt;That said, there’s still room for improvement—especially in how the parts are distributed across the boxes. A bit more optimization there would make the build process smoother.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
