Episode: 1427 Title: HPR1427: Decoding HPR1216 the easy way and a bit more Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1427/hpr1427.mp3 Transcribed: 2025-10-18 02:10:07 --- Hello everybody, this is Mervy or simply Michael. Welcome to my episode decoding HBR1216 the easy way and a bit more. You remember HBR1216 digital data transfer where it can fell and put out about 20 minutes of more encoded text without telling us anything else about it. I wonder if he was aware of what he started, but it served its purpose as it intrigued some people and they put a lot of effort in decoding this secret message. As shown in land years episode HBR1343 took level for your own good where he described his awesome way of decoding the most message from Ken's episode and this recording is kind of a sequel to the previous tool. Please first let me digress a little bit because one of the things land years episode did was to bring back a memory of some 20 years ago where I tried to decode the most telemetry beacon of an amateur radio satellite. The satellite was Amsterdam Oscars 21 back at the time and the computer I tried to use for it was a Commodore Business Machines CBM 8032 so let me elaborate a little bit on this topic. Amateur radio satellites including the most recent cube sets which are deployed at a mind-boggling rate right now usually include a more encoded telemetry beacon where they sent down some important health parameters of a satellite like a battery voltage, solar panel, current temperature on board and such. Of course there are often other downlinks using higher bandwidth digital encodings but having the satellite telemetry more encoded enables you to literally sit down with pen and paper right down the text message and take the formulas a hand calculator and get to the relevant physical parameters on board of the satellite which is a neat thing. Amsterdam Oscars 21 was a very rewarding target for experimentation because it had high transmit power and the signal was easy to pick up even with simple antennas and you hadn't to put a lot of effort in the technical side to be able to receive a decent signal from this satellite. The downlink was on 2 meters at 145.8 something megahertz so I could use my amateur radio 2 meter rig to receive this satellite. The next step was to get the analog received signal into the digital domain to be able to hook it up to the computer for later decoding. I had to build some interface which never made it to a real PCB. I think it only lived on an experimentation board with the stockets where you could plug in the wires of the components directly and it was indeed a very simple setup. I took the audio signal from the receiver speaker, amplified it a little bit more and then just rectified it by a diode. So this setup was completely non-selective and I ended up with basically a voltage varying on the loudness of the signal and the receiver. And I found out there was quite a significant difference between background noise and the tone produced when the satellite was keying more. So everything I had to do was find a decent threshold which distinguished background noise from tone present compared the varying voltage against it and decide if voltage is above threshold we have a 1 if voltage is below we have a 0 and that's basically all the interfaced it. But that was the signal I fed to the computer. And the computer in a quote was this CBM 8032 Commodore Business Machines 8032 it was one of those console type machines with a green screen monitor and the keyboard all built together in a very sturdy metal housing, grayish beige colors which was already far outdated at this point on time but it was discarded at some local school and had mysteriously found its way to my home. So that was what I had at hand so I wanted to use it. It had one of those well known MOS 6502 processors running at one megahertz and 32 kilobyte of RAM and it also featured a built-in Commodore Basic 4.0 which I used for programming the machine. I have a link to the Wikipedia page for this Commodore patent and CBM and in the show notes you might have a look there to see how these machines looked like. Mine looked exactly like the image of the 4032 they have there and I also had this 4040 double 5 and a quarter inch floppy drive. This machine had an 8-bit extension port where you could feed in signals and that's what I did. I took the output signal of my radio interface and took it up to one logic input pin of this 8-bit port and all I had to do in the in the basic program was to use a peak command at the right address to read the byte value of this 8-bit port then mask out the bit and then decide if there was more seeing from the radio interface. And not knowing better at the time I used three path approach with three separate programs with the first program being simply an endless loop sampling the logic pin input and depending whether it was a high or low writing a different character to a text file on the floppy. So I used the the floppy drive as intermediate storage to record the digital input data stream. This input loop had enough oversampling capabilities to cleanly record the dits and does so the dots and stashes of the morse encoding and this worked pretty fine until the buffer was full and the floppy drive actually spun up to write the data to the to the physical medium. This completely screwed up all my timing in this endless loop and I had dropped out. My skills back then were not sophisticated enough to really fix that so I simply had to live with it and that's what I did. So after the satellite disappeared below the horizon again after a path of 10 to 15 minutes which is quite usual for low earth orbiting satellites. I went into the second decoding path with another program which took the input of the stored digital input stream from the file and decoded it to dots and dashes and convert these to actual letters and characters and the output of this program basically was the same text as a skilled operator could have written down with pen and paper just sitting down listening to the audio from the receiver. This text went into another file on the floppy drive which was then used as input for the third path another program which knew the telemetry format and converted the characters to actual figures and numbers again applied the necessary formulas for scaling and such and added physical units to the to the numbers and the output were real usable readable physical parameters of the satellite like I said a battery voltage internal reference voltage of the bus and whatever or together not a very sophisticated solution I had a lot of fun doing it learn something along the way and that's how it should be. Enough memories now let's get back to the mid of the episode decoding hbr1216 the easy way the way lander did it made me freeze in awe how he found a way to tackle every obstacle he was presented with and it's just amazing how he did it he dimmed it a waste of time but I think it's completely in the eye of the beholder and he obviously had fun doing it and it resulted in a very entertaining very interesting episode for heck of a epic radio so it was all worth the time but this also brings back to mind is that it's sometimes very important to look at a problem from a different angle because from an amateur radio perspective there was an obvious way to decode this morse message and it was not not very difficult as lander's episode made obvious for me not everyone is aware of these possibilities and and it makes sense for me to share the lame way how to do it with you in this episode so the only magic is to use an amateur radio communication program or many out there but on Linux there is fldg I think it stands for fast light digital and it supports a gazillion of digital communication modes and among them there is cw which stands for continuous wave and it means morse code so you should get fldg which is in the normal repositories for any Ubuntu debut and based distribution the amateur radio stuff is in the user repositories for arch and I think you will find it and in the repose for any other distribution it's also cross-platform you will find versions for the windows and I think also for the make operating systems so the first step for you is if you don't have it installed please get fldg and while you are at it make sure you have the proud audio volume control application installed PAVU control I think it's a separate package I'm not sure if it's installed by default but it's one of my must-have applications which get installed very early in the process of setting up a new system PAVU control the proud audio volume control application is a very very useful tool if you play with audio and proud audio and we will use it here to help us get the audio into fldg okay now let's assume you have installed fldg and if you run it for the first time you will be presented with a configuration wizard you can ignore most settings for the moment the only important thing is the audio devices check the checkbox at port audio and keep the defaults and then next finish and you will be presented with the main screen of the program it's basically divided in three important areas the upper one with the yellowish orangeish background is the receive window whether decoded and or received text will appear below there's this blueish background for the input area where you write the text down which will be transmitted if you are using the program for digital communication and the black area on the bottom which has a one to about four thousand frequencies scale is where the waterfall display will appear later which is an aspectogram of the audio input signal about about three kilohertz is the audio frequency range you will get as output from a normal amount of radio receiver so this display covers the needed frequency range and you will see color encoded slowly scrolled by audio signals strength over frequency now let's select the right decoding mode on the top menu bar there is up mode the operating mode select this drop down and the first item is cw selected and then go in the in the waterfall in the black window on the bottom and if you move the mouse you will see a yellow marking and put this yellow marking to the 800 hertz position and just click there the red receive window indicator will appear there and we are almost good to go and that's basically all we have to set up for FLDG for the moment the next thing is start the pulse audio volume control PAVU control has a tapped in the face with taps named playback recording output devices input devices and configuration so the playback and recording taps basically show applications or logical audio sources or audio sinks and output devices in input devices are more or less the physical interfaces you have go to the recording tab and you should see an entry here also plug in FLDG and also capture from then there is a combo box to select the source where where FLDG will get its audio from so on my computer here the the onboard sound card is called built-in audio analog stereo so please in your case substitute built-in audio analog stereo with the name you will see for your sound card and then go to the also plug-in FLDG input selection combo box and normally if you select the name of your sound card you will use the microphone input of your sound card and what we are doing here is we will use monitor of insert name of your sound card so in my case monitor of built-in audio analog stereo I select this as recording source for the FLDG program what it is is basically it's tapping the output of your sound card before it goes to the analog digital converter and making it available again as input for recording programs so this is a very very simple way to basically look back what you hear at your speaker or headphones output to another program to record it again or decode something or manipulate or whatever you can achieve something similar by using also mixer and using your sound card and enabling the output as input for your sound card but this includes the analog path because the signal is converted from digital to analog and the analog mixer on the sound card routes back this analog output signal to the input converted back from analog to digital and that's what you see as a recording source there so you have this conversion losses and so on so the cleaner way is to use the digital data stream without any conversion losses to the analog domain and tap that and make this digital stream again available as input source within pulse audio so that's what these monitors are if you select monitor of your sound card name as input for FLDG you're good to go so now take your favorite media player like like also player or whatever load up episode 1216 digital data transfer back in and start it if you then change to FLDG again you should see the waterfall display a bluish background and yellow dots and lines representing the audio density over frequency of the intro music of the HBR episode the decoder might print some funny characters during that phase but don't worry of the intro music stops you will see a dominant signal at 800 hertz representing the Morse code message and the decoder should start right out printing a meaningful text message and as the program is meant for noisy radio channels it has filters in place so a little bit of overlap of the Morse message with the intro music will not harm in any way I don't want to go much into detail about FLDG right now but I encourage you to get it and play around with it and you might want to throw some real world signals at it and try some of the different operating modes of it to decode some of the air signals even if you do not have a shortwave receiver or something equivalent the monitor input feature of pulse audio comes to the rescue also because there are receivers on the web out there there is web sdr go to your browser head over to webstr.org like visky echo bravo sera delta Romeo dot or g webstr stands for web software defined radio or in this case software defined receiver on webstr.org you will find a list of links and frequency ranges where people all over the world have hooked up their receivers to webstr servers made it available for anybody to connect to and on the very top of the list you will see the webstr of the university of 20 which covers the continuous frequency range from 0 to 29.16 megahertz and this one is run by Peter T.O the Burr Papa alpha 3 fox dot visky mic the inventor of webstr and that's what we're gonna use right now at the moment i'm doing this here it has 207 concurrent users each of them being able to listen to a completely individual spot in this whole shortwave frequency range and if you follow the link to the 20 webstr on the top of the page you will see a picture of an of a PCB of a printed circuit board with three chips on it and that's the actual receiver used for feeding the webstr if you scroll a little bit down the page you will see a waterfall display of the whole frequency range beneath it you have markings for the amateur radio frequency bands in green and purple for the broadcast frequency ranges in the black area below the waterfall you can click to set your received position or drag it with the mouse or enter your frequency directly in the input field a little bit further down you can use the waterfall controls on the right side to zoom in zoom out or zoom to a given frequency band to change the scope of your waterfall and just for a start i would simply select usb the upper sideband for receiving digital modes and just select one of the amateur radio bands at the beginning you usually have more code and then a little bit further up there are other digital modes and then there's voice if you want to listen to voice communication usually you use usb and for frequencies below 10 megahertz use lsp which is the lower sideband and usb is the upper sideband for single sideband modulation which is the common mode for voice on on shortwave if you want to listen to broadcast radio stations use a m and for a start for playing around with digital modes i would suggest you concentrate on either psk31 which you will find and in fldg and the operating modes drop down psk psk31 you will see the received indicator being a narrow line because psk is a narrow band teletype mode and it will sound like this and each of these winding tones is a separate communication channel and if you go and have a digital view menu and select view channels you will get a decoder which tries to decode multiple signals in the frequency range to see what's going on there and the good starting point for psk31 signals is on the 20 meter amateur radio band at 14 or 7 or kilohertz there you will find lots of psk31 station you might also want to activate on view waterfall docked scope to give you a little tuning indicator on the lower right corner in the case of psk31 it will be an analog clock like display with a single hand showing you the face angle of the decoded signal and for psk31 which is a binary face encoded signal if the tuning is correct it will be on the on the center line up and down with an ideal signal but you will see this if you play around another interesting mode is RTTY which is the original radio teletype mode will go to operation mode RTTY RTTY 45 because amateur radio is 45 both you will see the receive indicator in the waterfall display gets wider because it uses 170 hertz shift between two tones and it sounds like this good starting point is around 14 or 8 two kilohertz for RTTY 5 signals the tuning indicator will change to an oscilloscope type display and the signals will basically be double aligned in the waterfall just put the receive marker there and click it to decode an individual signal just play around have fun so before i'm out of here let me add another hint about pulse audio it's been a while i have heard people saying in podcast or whatever that they had to shut down pulse audio in order to run this or that old legacy application still using the OSS sound system and with pulse audio occupying the interface the OSS interface was not available for the application so they had to shut down pulse audio by now i think the necessity for it is reduced because there shouldn't be too many applications around using the OSS sound interface but there is a neat way to do it and these things are called OSS wrappers and they do what the name says they wrap around the application present an OSS interface towards the application and speak themselves to pulse audio and there are two of them i'm aware of one is p a dsp papa alpha delta zero papa and which is which can be found in the pulse audio utils package at least on dappian based systems and there is also in the also dash oss package the program called a oss and all you do is you prepend the application you want to use with either p a dsp or a oss and you should be good to go and if everything goes fine they will show up with a proper application name in the pulse audio mixer like any other program as a playback source or as a recording sync depending on your application and all will be fine i had cases where one of those programs for some reason didn't work so your mileage may vary and you might try both in some occasions i use it primarily for sick gen command line slash and curses based audio signal generator which can produce waveforms like sine triangle rectangle whatever you want noise and comes sometimes in handy for playing with audio signals and testing testing stuff so that's all for now folks i finally did it i finished my first haka public radio episode and if i can do you can do whatever you want to talk about it's very likely that there is someone interested in the haka public radio community so please go ahead record a show contribute have fun bye you have been listening to haka public radio our haka public radio does our we are a community podcast network that releases shows every weekday Monday through Friday today's show like all our shows was contributed by a hbr listener like yourself if you ever consider recording a podcast then visit our website to find out how easy it really is haka public radio was founded by the digital dog pound and the economical computer club hbr is funded by the binary revolution at binwreff.com all binwreff projects are proudly sponsored by linear pages from shared hosting to custom private clouds go to lunar pages.com for all your hosting needs unless otherwise stasis today's show is released under a creative comments attribution share like to do also license