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: AustraliaPosts: 52 |
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: NetherlandsPosts: 4246 |
What is your reveiver output? Logic? Audio tone? PicomiteVGA PETSCII ROBOTS |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6798 |
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: NetherlandsPosts: 4246 |
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: AustraliaPosts: 6100 |
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: AustraliaPosts: 2136 |
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: SwedenPosts: 9 |
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: NetherlandsPosts: 4246 |
@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: GermanyPosts: 1114 |
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: NetherlandsPosts: 4246 |
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 StatesPosts: 3150 |
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 StatesPosts: 393 |
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: AustraliaPosts: 43 |
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 |