Files
Lee Hanken 7c8efd2228 Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use
- Search episodes, transcripts, hosts, and series
- 4,511 episodes with metadata and transcripts
- Data loader with in-memory JSON storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 10:54:13 +00:00

226 lines
20 KiB
Plaintext

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