<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sdr &#8211; ABNielsen.com</title>
	<atom:link href="https://abnielsen.com/tag/sdr/feed/" rel="self" type="application/rss+xml" />
	<link>https://abnielsen.com</link>
	<description>Anders Braüner Nielsen</description>
	<lastBuildDate>Wed, 24 Dec 2025 22:57:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Building the “PhaseLatch Mini”: A Detour Into Modular SDR Design</title>
		<link>https://abnielsen.com/2025/11/16/building-the-phaselatch-mini-a-detour-into-modular-sdr-design/</link>
					<comments>https://abnielsen.com/2025/11/16/building-the-phaselatch-mini-a-detour-into-modular-sdr-design/#respond</comments>
		
		<dc:creator><![CDATA[Anders]]></dc:creator>
		<pubDate>Sun, 16 Nov 2025 08:29:44 +0000</pubDate>
				<category><![CDATA[6502]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[sdr]]></category>
		<category><![CDATA[stm32]]></category>
		<guid isPermaLink="false">https://abnielsen.com/?p=292</guid>

					<description><![CDATA[Buy a PhaseLoom and PhaseLatch Mini at my store iMania.dk Source code and design files: https://github.com/AndersBNielsen/PhaseLatchMini If you’d told me a few years ago I’d be designing and building my [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Buy a PhaseLoom and PhaseLatch Mini at my store <a href="https://www.imania.dk/index.php?currency=EUR&amp;cPath=204&amp;sort=5a&amp;language=en">iMania.dk</a></p>



<p>Source code and design files: <a href="https://github.com/AndersBNielsen/PhaseLatchMini">https://github.com/AndersBNielsen/PhaseLatchMini</a></p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="632" src="https://abnielsen.com/wp-content/uploads/2025/11/image-2-1024x632.png" alt="PhaseLatch Mini" class="wp-image-298" srcset="https://abnielsen.com/wp-content/uploads/2025/11/image-2-1024x632.png 1024w, https://abnielsen.com/wp-content/uploads/2025/11/image-2-300x185.png 300w, https://abnielsen.com/wp-content/uploads/2025/11/image-2-768x474.png 768w, https://abnielsen.com/wp-content/uploads/2025/11/image-2-1536x948.png 1536w, https://abnielsen.com/wp-content/uploads/2025/11/image-2-2048x1264.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>If you’d told me a few years ago I’d be designing and building my own modular Software Defined Radio platform, I’d have laughed. Radio has always felt like electronics magic to me—no matter how much I learn, the sense of wonder never goes away. In the previous video, we explored the bare-minimum concept of an SDR: mixing a radio signal down to IQ baseband and handing it off for digital processing. And yes, I did that with a 50-year-old CPU, the 6502.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="6502 + STM32 join forces as cheap SDR!" width="640" height="360" src="https://www.youtube.com/embed/UEAtSE1PV44?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>For a quick refresher on what SDR means at the circuit level, check out the first video in this series. Back then, my 65uino didn’t have a usable ADC, so the only real option was the classic 1990s approach—pipe the baseband into a computer sound card. In 2025, that makes it one of the lowest bandwidth SDR setups imaginable: stuck at 44.1 kHz, which is roughly 1/72 of what a cheap RTL-SDR can do. It can’t even decode FM. And since my long-term goal is far beyond a few megasamples per second, I needed something better.</p>



<p>Before jumping into high-end territory, I wanted to explore an affordable middle ground. Enter the STM32 “Blue Pill”—a dirt-cheap board I’d had sitting in a drawer for years. Despite its price, the STM32F103 MCU has a surprisingly ideal feature set for SDR use: USB, DMA, and, crucially, dual ADCs that can sample simultaneously. That last part is essential for properly digitizing I/Q channels, and it’s something many MCUs lack.</p>



<p>My expectations weren’t high, but after experimenting with the dev board, I got enough usable bandwidth to justify designing my own custom board. Huge thanks to this video’s sponsor, JLCPCB, who handled fabrication and assembly. I’ve used them long before ever being sponsored—they’re affordable, fast, and the boards come out great every time.</p>



<p>Since ADC performance depends heavily on layout, I upgraded the board to include a proper ground plane and clean separation between the sensitive analog input and noisy USB lines. The design is simple: capture I and Q through a passive LC low-pass filter for anti-aliasing, then feed them straight into the MCU’s ADCs.</p>



<p>After verifying power rails, programming via SWD, and confirming the 8 MHz clock, I wired the board into my existing <a href="https://abnielsen.com/2025/09/06/phaseloom/" data-type="post" data-id="283">PhaseLoom IQ mixer</a>. A single USB cable powers everything. Connected to my 40-meter antenna, the system immediately picked up AM, CW, and FT8—though with some aliasing and imperfect image rejection. Increasing the gain in the mixer helped, but only after carefully matching resistor pairs to avoid I/Q imbalance.</p>



<p>Once the hardware side looked solid, I tackled the firmware. The result is the PhaseLatch Mini: an STM32-based direct-conversion SDR front-end paired with simple Python host scripts. GQRX reads samples through a USB FIFO, and tuning is handled on the hardware side through the si5351 synthesizer. With this setup, I was able to cleanly receive HF, FM broadcast, and even experiment (with mixed success) around 144 MHz.</p>



<p>The PhaseLatch Mini isn’t the final destination—it’s a fun and capable side project on the path to a much more advanced 6502-powered SDR. But it’s already a surprisingly usable 200 kHz-bandwidth receiver, and I’ve made boards, kits, and files available for anyone who wants to experiment.</p>



<p>If you’re curious or want to dive deeper, come hang out on the Hackerspace Clubhouse Discord. More samples and a sneak peek at what’s next are at the end of the video up top. </p>



<p>Discord: <a href="https://discord.gg/kmhbxAjQc3">https://discord.gg/kmhbxAjQc3</a><br>Buy a PhaseLoom and PhaseLatch Mini at my store <a href="https://www.imania.dk/index.php?currency=EUR&amp;cPath=204&amp;sort=5a&amp;language=en">iMania.dk</a></p>



<p>Source code and design files: <a href="https://github.com/AndersBNielsen/PhaseLatchMini">https://github.com/AndersBNielsen/PhaseLatchMini</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abnielsen.com/2025/11/16/building-the-phaselatch-mini-a-detour-into-modular-sdr-design/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The 6502 Turns 50 – And I Built a Software Defined Radio With It</title>
		<link>https://abnielsen.com/2025/09/06/phaseloom/</link>
					<comments>https://abnielsen.com/2025/09/06/phaseloom/#comments</comments>
		
		<dc:creator><![CDATA[Anders]]></dc:creator>
		<pubDate>Sat, 06 Sep 2025 07:35:19 +0000</pubDate>
				<category><![CDATA[6502]]></category>
		<category><![CDATA[sdr]]></category>
		<guid isPermaLink="false">https://abnielsen.com/?p=283</guid>

					<description><![CDATA[This blog post is part 1 of a series of posts and videos where I build a modular Software Defined Radio. I&#8217;ll try to update this post as I release [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>This blog post is part 1 of a series of posts and videos where I build a modular Software Defined Radio. I&#8217;ll try to update this post as I release new modules and videos. </p>



<p>Part 1: <a href="https://youtu.be/lQh3Q6Q6pK8">A 6502 Software Defined Radio</a> (video), <a href="https://github.com/AndersBNielsen/PhaseLoom">PhaseLoom Github project</a>, <a href="https://abnielsen.com/2025/09/06/phaseloom/" data-type="post" data-id="283">this post</a>, <a href="https://www.imania.dk/samlesaet-hobbyelektronik-og-ic-er-phaseloom-v1-0-hand-fixed-assembled.htm">buy one here</a><br>Part 2: <a href="https://youtu.be/UEAtSE1PV44">6502 + STM32 join forces as cheap SDR!</a> (video), <a href="https://github.com/AndersBNielsen/PhaseLatchMini">PhaseLatch Mini</a> (Github), <a href="https://abnielsen.com/2025/11/16/building-the-phaselatch-mini-a-detour-into-modular-sdr-design/" data-type="post" data-id="292">Building the “PhaseLatch Mini”: A Detour Into Modular SDR Design</a> (blog post), <a href="https://www.imania.dk/samlesaet-hobbyelektronik-og-ic-er-phaselatch-mini.htm">buy one here</a></p>



<p>Part 3: <a href="https://abnielsen.com/2025/12/24/6502-and-a-20mhz-adc-takes-up-the-challenge/">6502 + 20MHz ADC!</a></p>



<p></p>



<figure class="wp-block-image size-full"><img decoding="async" width="2560" height="1707" src="https://abnielsen.com/wp-content/uploads/2025/09/AB981FA8-C095-4AFA-95DF-2FCCCA59D215_1_201_a-scaled.jpeg" alt="" class="wp-image-284" srcset="https://abnielsen.com/wp-content/uploads/2025/09/AB981FA8-C095-4AFA-95DF-2FCCCA59D215_1_201_a-scaled.jpeg 2560w, https://abnielsen.com/wp-content/uploads/2025/09/AB981FA8-C095-4AFA-95DF-2FCCCA59D215_1_201_a-300x200.jpeg 300w, https://abnielsen.com/wp-content/uploads/2025/09/AB981FA8-C095-4AFA-95DF-2FCCCA59D215_1_201_a-1024x683.jpeg 1024w, https://abnielsen.com/wp-content/uploads/2025/09/AB981FA8-C095-4AFA-95DF-2FCCCA59D215_1_201_a-768x512.jpeg 768w, https://abnielsen.com/wp-content/uploads/2025/09/AB981FA8-C095-4AFA-95DF-2FCCCA59D215_1_201_a-1536x1024.jpeg 1536w, https://abnielsen.com/wp-content/uploads/2025/09/AB981FA8-C095-4AFA-95DF-2FCCCA59D215_1_201_a-2048x1365.jpeg 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></figure>



<p></p>



<p>I just built what might be the coolest gadget of the year: a Software Defined Radio (SDR) powered by none other than the legendary MOS Technology 6502 CPU. And the timing couldn’t be better &#8211; this chip turns 50 years old on September 8th!</p>



<p>If you already know what SDRs and 6502s are, your jaw may have just dropped. But if not, don’t worry. I’ll catch you up.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="A 6502 Software Defined Radio" width="640" height="360" src="https://www.youtube.com/embed/lQh3Q6Q6pK8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>The source code for everything is on Github: <a href="https://github.com/AndersBNielsen/PhaseLoom">https://github.com/AndersBNielsen/PhaseLoom</a><br>You can also jump straight over to my store and <strong>buy one</strong>: <a href="https://www.imania.dk/index.php?currency=EUR&amp;cPath=204&amp;sort=5a&amp;language=en">https://www.imania.dk/index.php?currency=EUR&amp;cPath=204&amp;sort=5a&amp;language=en</a></p>



<p></p>



<h2 class="wp-block-heading">What’s an SDR Anyway?</h2>



<p>Think of an SDR as the Swiss Army knife of radios. Instead of filling a workbench with dedicated devices, like a garage door opener, a satellite receiver, and a shortwave set, you just plug in an SDR and let software do the heavy lifting. Tuning, filtering, demodulating is all handled by code.</p>



<p>With an SDR, you can:</p>



<ul class="wp-block-list">
<li>Pull down data from satellites</li>



<li>Decode airplane transponders</li>



<li>Listen to ham radio or shortwave broadcasts</li>



<li>Experiment with frequencies you didn’t even know existed</li>
</ul>



<p>They come in all shapes and sizes, from cheap USB dongles to professional-grade equipment worth thousands. Some just receive, others transmit. But they all share the same principle: turn analog radio waves into digital data, then let software handle the magic.</p>



<h2 class="wp-block-heading">And the 6502?</h2>



<p>Ah, the 6502. This little 8-bit CPU powered the Apple I &amp; II, Commodore 64, Atari consoles, and even the NES. For many, it was the chip that introduced the world to affordable personal computing. And now, half a century later, it’s back—this time running the front end of my homemade SDR.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://abnielsen.com/wp-content/uploads/2025/09/63F0EE7D-5044-4C9B-9454-EAEB08119BBD_1_201_a-1024x683.jpeg" alt="" class="wp-image-285" srcset="https://abnielsen.com/wp-content/uploads/2025/09/63F0EE7D-5044-4C9B-9454-EAEB08119BBD_1_201_a-1024x683.jpeg 1024w, https://abnielsen.com/wp-content/uploads/2025/09/63F0EE7D-5044-4C9B-9454-EAEB08119BBD_1_201_a-300x200.jpeg 300w, https://abnielsen.com/wp-content/uploads/2025/09/63F0EE7D-5044-4C9B-9454-EAEB08119BBD_1_201_a-768x512.jpeg 768w, https://abnielsen.com/wp-content/uploads/2025/09/63F0EE7D-5044-4C9B-9454-EAEB08119BBD_1_201_a-1536x1024.jpeg 1536w, https://abnielsen.com/wp-content/uploads/2025/09/63F0EE7D-5044-4C9B-9454-EAEB08119BBD_1_201_a-2048x1365.jpeg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Meet the PhaseLoom</h2>



<p>I call my creation the PhaseLoom: a Quadrature Sampling Detector Phase-Locked Loop SDR frontend. Don’t worry about the jargon—what matters is that it’s a custom circuit that converts radio signals into the digital I/Q streams needed for software processing.</p>



<p>In practice, it works like this:</p>



<p>RF Frontend – A simple low-pass filter to clean up incoming signals.</p>



<p>Quadrature Sampling Detector – Uses clever switching to split the signal into in-phase (I) and quadrature (Q) components.</p>



<p>Local Oscillator – Generated by an SI5351 clock chip, controlled by 6502 assembly code.</p>



<p>Output – The I/Q signals can be piped into a sound card, oscilloscope, or eventually a higher-speed ADC for real SDR processing.</p>



<p>When I first powered it up, I wasn’t sure what to expect. But sure enough, with an antenna hooked up, I could tune into the 40-meter ham band. It’s rough, noisy, and very much a prototype—but it works. A 6502-powered SDR is alive.</p>



<p>Why This Matters</p>



<p>Most SDRs today rely on powerful modern processors or FPGAs. Running one from a CPU designed in 1975 is absolutely ridiculous—and that’s exactly why it’s so fun. The 6502 may not be doing the heavy DSP (yet), but it’s orchestrating the whole show. And with more development, I plan to push it further—maybe even squeezing in some real signal processing routines on that ancient silicon.</p>



<p>The Road Ahead</p>



<p>This is just the beginning. Better filters, wider bandwidth ADCs, and smarter software are all on the horizon. And yes, the PhaseLoom will be open hardware—schematics, code, and boards are already available.</p>



<p>The 6502 started a revolution 50 years ago. Today, it’s tuning in the airwaves. And I can’t wait to see how far this project goes.</p>



<p>For now you can <strong>buy one here</strong>: <a href="https://www.imania.dk/index.php?currency=EUR&amp;cPath=204&amp;sort=5a&amp;language=en">https://www.imania.dk/index.php?currency=EUR&amp;cPath=204&amp;sort=5a&amp;language=en</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abnielsen.com/2025/09/06/phaseloom/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
