Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 23:53 27 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Morse decoding off air

Author Message
RicM
Regular Member

Joined: 05/02/2022
Location: Australia
Posts: 52
Posted: 03:52am 23 Jul 2023
Copy link to clipboard 
Print this post

Has anyone made a morse decoder for off air morse translation using either the CMM or CMM2

Regards

RicM
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4246
Posted: 06:53am 23 Jul 2023
Copy link to clipboard 
Print this post

What is your reveiver output? Logic? Audio tone?
PicomiteVGA PETSCII ROBOTS
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 08:37am 23 Jul 2023
Copy link to clipboard 
Print this post

It's a horrible, soggy day. You never know...


(PicoMite and Cray 1 ports only)

OPTION MORSEBUFFER <CHARS>, <LANGUAGE>

PRINT MM.INFO$(MORSE <ADC_PIN>, <SPEED!AUTO>)

Only joking!  
Edited 2023-07-23 18:38 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4246
Posted: 06:53am 25 Jul 2023
Copy link to clipboard 
Print this post

I am not a home radio amateur, so I have no idea how morse is published to the human.
Since it is historically broadast by keying the radio carrier, you could demodulate it by analyzing the receive strength.

But from TV movies I remember it is a tone that is keyed ON and OFF. No idea wether that is right. In that case you need a tone decoder (LM567) that you tune to the particular tone, and that outputs a logic 1 or 0.

The KEYING timing then can be decoded in MMBasic to translate to text. Maybe even autotune the timing to cope with varying speeds.

A poor mans solution could be to peak detect the audio in the ADC. But that would be a bad idea in a noisy DX situation.

PLL detecting the tone in MMBasic is not a good idea. It will be very hard to get this right. (I do not have the experience, nor do I have a radio).

Volhout
Edited 2023-07-25 16:54 by Volhout
PicomiteVGA PETSCII ROBOTS
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6100
Posted: 07:03am 25 Jul 2023
Copy link to clipboard 
Print this post

It will depend on the receiver.

A good CW receiver will have a narrow filter and a simple rectified audio would be more than enough.
A comparator would be nice to have on the micro input but with the receiver audio gain available, strong signals could go straight to a digital input (after rectification).

After that, good hand sending or automated sending should be relatively easy to decode.

Jim
VK7JH
MMedit   MMBasic Help
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2136
Posted: 08:33am 25 Jul 2023
Copy link to clipboard 
Print this post

From my fragmentary memory the Morse tones heard in the old movies was often generated in the receiver by heterodyning the received CW with a local oscillator running a few hundred Hz off the CW frequency.
 
Doktorn

Newbie

Joined: 09/07/2019
Location: Sweden
Posts: 9
Posted: 04:17pm 26 Jul 2023
Copy link to clipboard 
Print this post

Hi RicM

This is from Swedish Computer Magazine MikroDatorn
November 1979.

The port is not a true V24, it is port B on a Z80-PIO.
Written for Swedish computer ABC80.

Have fun.

/Lasse





N/A
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4246
Posted: 09:19am 23 Aug 2023
Copy link to clipboard 
Print this post

@RicM,

I am looking into this RicM. You are asking about CMM or CMM2.
I would like to help you create a morse decoder but I am restricted in my capabilities.

- I do not won a working CMM2 anymore (destroyed in experiment)
- I own a CMM, but the CMM has MMBasic 4.5. And 4.5 does not have MATH commands (especially MATH FFT).

I have a tone decoder working on a PicoMiteVGA using the ADC and using MATH commands.

Is this something that I should proceed with ? Or are you tied into the CMM/CMM2.

If you want me to proceed, can you suggest a test signal (I am not a HAM radio owner, so I have to test with Youtube or MP3 test sounds). I have great confidence I can make this work using MMBasic on the PicoMiteVGA (and for that matter also PicoMite with LCD screen, or PicoMIte to terminal (PC)...). The tone decoding, even in very noisy signals, using FFT works great, and is amazing fast on PicoMite.

Waiting for your answer,

Volhout
Edited 2023-08-23 19:22 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1114
Posted: 09:31am 23 Aug 2023
Copy link to clipboard 
Print this post

  Volhout said  @RicM,

I have a tone decoder working on a PicoMiteVGA using the ADC and using MATH FFT  commands.



I don't have any experience with decoding, but isn't MATH FFT a bit too complicated?
AFAIK In Morse code, the frequency does not matter, only the duration of the pulse.

a counter starts at the Tones/pulses rising edge, and measures the time how long the pulse is present,then it countes till the next rising edge, the counter restarts.
By the relationship between tone and pause, one can theoretically determine whether it is a dot or a stroke.
Edited 2023-08-23 19:50 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4246
Posted: 10:49am 23 Aug 2023
Copy link to clipboard 
Print this post

Yes, you are correct. And (as confirmed by Jim) you would only need a peak detector (diode+cap+resistor) on a digital input pin to do this. The decoding would work exectly as described by you.

I was looking into the FFT since it allows you to find tones in the noise. And what I tested on the bench is quite amazing. You can even detect a tone quite accurately with a S/N of only 3 dB. To the human ear that is almost indistinguisable.

Just research, just fun....
And MMBasic 5.07.07 can do this using Peters MATH and ADC commands in basic in a 10ms loop. Giving you the capability to decode fast morse keying....

Volhout
Edited 2023-08-23 20:51 by Volhout
PicomiteVGA PETSCII ROBOTS
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 12:48pm 23 Aug 2023
Copy link to clipboard 
Print this post

  Volhout said  can you suggest a test signal


Not MMBasic, but this came up yesterday on the PICAXE forum:
PICAXE Morse Decoder (visualized)



It provides tones for a 2-word phrase which could be fed into a decoder.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
William Leue
Guru

Joined: 03/07/2020
Location: United States
Posts: 393
Posted: 03:36pm 23 Aug 2023
Copy link to clipboard 
Print this post

A simple threshold and timing detector will work if the received audio signal is absolutely clean and the keying rate highly consistent.

Unfortunately these requirements are often not met. I have seen accounts of Morse decoders that use a Kalman filter to track variations in speed, amplitude, and noise, I have no idea how successful they are, but for instance, the Morse decoder that is built in to my Elecraft K3 receiver is only sometimes successful in decoding a Morse signal that is perfectly intelligible to a human listener.

-Bill (US amateur license K2WML)
 
amigawizard

Regular Member

Joined: 15/08/2023
Location: Australia
Posts: 43
Posted: 03:37pm 23 Aug 2023
Copy link to clipboard 
Print this post

tone detector / peak detector



Tig_level = 7   ' .3 - 25

setpin 5  , PIN

led = 4
setpin led , dout
setpin 34  , ain
dc = (pin(34)+pin(34)+pin(34))/3

do

inp! = pin(34)
ac = ( inp! - dc )
dc = ( dc * 31 + inp! ) / 32

' vu = abs( ac * 10 )
vu = abs( ac * Tig_level )
vx = cint( vu )

pin(led) = vx / 5 ' tone detector / peak detector

? vu , vx    ' ,  pin(5)    ' pin(5)  may not work this way ?
                                   ' to pin(led)  = period
loop





        Wayne   !

,
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024