Skip to content

rpisch/Morse-Maestro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

Code Created for the Morse Maestro device, meant to run Libre Computer Board system or on a laptop with accurate Morse code audio signals played. Created by Ryan Pischinger and Braden Karley.

This respository has 2 code segments: the full code, and the code to test the decoder which shows plots of the different stages of signal processing.

How to use:

Text to Morse: Enter your message, select a speed, and press translate.

Morse to Text: Select the Morse to ASCII page. Play a Morse code signal at a certain words per minute that the interface slider is set to. Make sure the signal is 1000 Hz. Press the record button before playing the signal and again when the signal is completed.

This code consists of 4 parts: Interface, Encoder, Decoder, and Database

The Interface is run on Custom Tkinter commands

The Encoder takes a message, converts it into Morse characters via a lookup table, creates an accurate bitstream, and plays the bitstream as a sine wave at the user set speed

The Decoder uses signal processing to convert an audio signal into decoded text. Its steps are:

[ Record the audio

Filter frequencies not equal to 1000 using a bandpass filter

Trim leading and trailing silence to remove timing offset

Split signal into single units

Convert to frequency domain with FFT

Create a digitized list with dense frequencies

Convert to Morse characters

Convert Morse characters to ASCII characters

Return text to the interface ]

The database saves conversation of the encoder and decoder into a string of messages.

For more information about Morse code timing visit this link: https://morsecode.world/international/timing.html