Foundations of Amateur Radio The hobby of Amateur Radio is essentially one of experimentation. Within our community we endlessly build things, from amplifiers to Yagis and every letter of the alphabet in between. With every experiment we grow the amateur radio sphere of influence just a little bit. As our hobby is evolving into Software Defined Radio, or SDR, the homebrew aspect of our community is also changing bit by bit and as a result, homebrew today is just as likely to be based on software as it is in hardware. Unlike the physical world where you need to source and buy components, design a circuit, build it, test it and then put it in a box, in the software realm you can get started with the computer that is more than likely within reach right now. Recently I took delivery of a new SDR, an ADALM Pluto. It's essentially a Linux computer, FPGA and transmit capable SDR in a small box. I bought it specifically for the purpose of experimentation. One of the first things I did with this device was install an existing piece of software called dump1090. The tool listens to 1090 MHz and decodes Mode S transponders, used by aviation to report aircraft information in real-time. Originally written by Salvatore Sanfilippo in 2012 for the RTL-SDR dongle, it was patched by several people and in 2017 it was updated by Jiang Wei to support the Pluto SDR. My contribution to the project is minor. I've updated the on-board web-server to use Open Street Map and a few other cosmetic changes. For me it was a "Hello World" project, something that's the software equivalent of warming up your soldering iron and pre-tinning the wire you're about to use. The tools to do this is what I want to discuss. When you look at the software that underlies much of the SDR world, the digital modes, logging, contesting, even the software inside tools like the Nano-VNA, much of it is open source. That means that as a curious amateur you can have access to the underlying equivalent of the circuit diagram. As you can with a soldering iron, a scribe and wire, you can patch or update a circuit. In the software realm you can do the same once you have access to the source code. The tools you're going to get in touch with are text editors, compilers, libraries and configuration files. If that's not your thing, I appreciate that, but if it sparks your interest, you'll open the door into a brand new world of software development where you can determine how a mode works or what it supports or how it interacts with your radio or testing gear. When you jump in, likely feet first, you're going to make mistakes and lose hair and sleep and you'll be shaking your virtual or physical fist at the person who came before you, but then that's the world of experimentation, so likely you'll already have that down pat. You'll likely play with different tools that require different versions, often installed side-by-side, much to your chagrin when you learn that it just won't work. Not to mention that removal of the offending tool often leaves interfering cruft behind, not unlike unsightly and short-circuiting blobs of solder. I'm here to introduce you, albeit briefly, to a tool that will take much of that pain away. The free tool is called Docker. It has got little in the way of visibility in the amateur radio world, but in the software development world it's pretty much old hat. Essentially the idea is that you can install stuff into a so called disposable container so you can have your copy of dump1090 installed in one container and your copy of codec2 in another, a copy of rtl-sdr in a third container, all working independently from each other, without needing to complicate things with multiple computers or virtual machines. If a developer uses Debian, another uses Ubuntu and a third uses Red Hat, you can run these side-by-side without any issue. If they need an ancient version of something, that too is handled without a problem. Make a mistake, destroy the container and start again, fresh. Docker is a tool that allows you to build an environment on Linux, MacOS and Windows, as well as the Raspberry Pi, that acts and behaves in many ways like a virtual machine. In all the ways that you're likely to use it, at least initially, it's indistinguishable. What that means is that the operating system, the compiler and the libraries that you need for one tool won't affect those needed for another tool. The best part of this is that you can build on a massive library of pre-existing Docker containers and use files that describe how to build and compile tools like dump1090. If you look for my callsign vk6flab on github.com, you'll find my version of dump1090 and you'll find a Dockerfile that describes how I built it. The project contains all the bits you'll need to get started with your own version of dump1090, or some other project that tickles your fancy. Every time you build something, the amateur radio sphere of influence grows just that little bit. I'm Onno VK6FLAB