Foundations of Amateur Radio After weeks of attempting to get some noise, any noise out of my PlutoSDR I have finally cracked it. Not sure if cracked it refers to my sanity or the outcome, but beeping was heard from the Pluto on my radio, so I'm doing victory laps around the house, all conquering hero type affair, complete with whooping and hand waving. In the end it all came down to serendipity and truth be told, I know it beeps, I've heard it beep, it does so on a predictable frequency, but why it exactly works is still a mystery that has yet to be discovered since the documentation I have isn't sharing and the example code I have contradicts what I'm seeing. For context, a PlutoSDR, or Pluto, is a very capable software defined radio, perfect for experimentation. I've talked about it before in the context of using it as a receiver. My most recent efforts involved coaxing my Pluto out of a corner after it sat there sulking for weeks. Turns out that not only was my USB power lead broken, which caused the blinken lights to stay off. When I finally figured that out, I discovered that one of the two wireless dongles I'd purchased together was Dead On Arrival. After a frustrating morning with the manufacturer who wouldn't take my word for it that swapping out the two identical units would not require installing the driver, something about Windows Device Manager on my Linux computer, I went back to the store who happily swapped out the faulty device on the spot. Mind you, the Pluto still isn't talking to my wireless network, but at least it's not the dongle anymore. I plugged the Pluto into the back of my main workstation and discovered to my surprise that in addition to showing up as a thumb-drive, which I knew about, it also turned up as a network device, which I didn't know about. It's been a while since I powered this up to play, so I updated the firmware which fixed some annoying issues and started to explore. The aim of my quest was to create a proof of concept beep from the command-line on the Pluto. If you're not familiar with this. The Pluto is running a flavour of Linux. You can connect to its command-line and run commands from inside the hardware. This is important because for most radios, of both the analogue and software kind, you generate the information somewhere, like Morse Code, a WSPR signal, your voice, what-ever and then you send that to the radio. On an analogue radio it's likely to go across an audio cable of some sort and if you have a software defined radio, it's likely to travel from your computer across a USB or network cable to the radio to get processed. This is different in that there is no such signal coming across the USB link. The link is used as a network cable to ssh into the radio where you can generate whatever you want. In my case Morse. If you're not familiar with ssh, think of it as a keyboard connection to a remote computer. My script, hacked together as it is, more on that shortly, takes a string, like say "CQ DE VK6FLAB" and processes that character by character. It converts each into the equivalent Morse code dits and dahs and then uses those to turn on a test tone for an appropriate amount of time. So, to send "CQ", the script changes that into -.-. --.- and then turns on the transmitter for three units, off for one, on for one, off for one, on for three, off for one, etc. This is Morse code at its very simplest, the software equivalent of holding down a Morse key for the correct amount of time and then releasing it. I disparagingly called it hacked together, because it's using the in-built busybox command shell that comes with the Pluto. If you're familiar, the actual shell is called ash, or Almquist shell. It's strictly limited in functionality, no arrays, minimal redirection, all very basic. Perfect for what I want to do, but not so much if you want to write software. After working around the lack of arrays, one of the things that caused me the most problems was to discover just how to setup the Pluto to actually do this. I found a couple of examples online that pretended to work, claimed to be doing what they said they were, but nothing was heard on my local analogue radio. At one point I heard clicks, but no beeping. After spending literally hours testing, scanning up and down the radio dial with my Yaesu FT-857d, I stumbled on a tone that stopped when my test script stopped. I started the script again and the tone came back. When it ended, the tone stopped again. I finally had a relationship between a tone on the PlutoSDR and the frequency on my radio. So, with all manner of funky offsets in my code, subject to me understanding the how and what of them, I can now beep to my hearts content. Of course I've shared my efforts on github, cunningly called Pluto Beacon. Have a look and tell me what I did wrong. I'm Onno VK6FLAB