226 lines
20 KiB
Plaintext
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
|