Electronics > RF, Microwave, Ham Radio
Morse key design thoughts
BreakingOhmsLaw:
So I've set my mind on getting the (now optional) Morse certification along with my HAREC license as quite some European countries like France, Luxembourg and Spain still require this for a "full" license.
As I understand, you can bring your own Morse key of choice to the exam.
Straight keys are widely available on Evilbay, the electronic ones not so. So, of course, I am brewing my own.
What I understand from what Google coughs up, most of these designs have a potentiometer that sets the WPM dit/dah speed in the correct 1:3 duration. Some have a second pot to set the pause to a different WPM speed, which is neat for practicing.
Now, the the sequence for a J (· − − −) can never be followed by a dit, as J can only progress into a "1" (· − − − −) or " ' " (· − − − − ·). Both follow that with a dah. So do more recent designs take this into account and filter out an erroneous dit? Does it even make sense to implement this kind of plausibilization? As morsing at higher speeds is pure muscle memory, and an automatic correction is hardly feasible, it seems kind superfluous. Of course I could administer an electric shock to the user for each error to "enhance" the learning experience >:D
geggi1:
If you are going to build a morse key you will find a lot of examples on tie internet. Just google and you will find.
I guess it is simplest to bild a straight key or possible a side trow key similar like the vibroplex.
If you are going to build a keyer (memory keyer) i have seen plenty of exsamples based on arduino. Arduino is probably the simplest and cheepest way to build the keyer.
emece67:
.
fourfathom:
--- Quote from: BreakingOhmsLaw on May 17, 2021, 03:38:39 pm ---Does it even make sense to implement this kind of plausibilization?
--- End quote ---
I think you're saying that you want to build an electronic keyer, and wondering if adding some sort of error detection would be a useful idea.
This is an interesting concept, but what do you do when you detect an invalid dot/dash sequence? I doubt that you would want to just truncate at the first error and wait for a space before resetting. You might emit the "error" code (eight dots in a row)? But I don't think this is particularly useful. I've only ever used a manual straight key (used to do 20 WPM back in my youth), but I don't think I would like any sort of automatic error detection.
joeqsmith:
I used to get a magazine I think named 73 (8.5X11 half inch thickish). The reason I liked it, it had various projects for the beginner, one was an auto identifier which I built. Sorry but it was lost over time but I remember it using a series of 7400 counters that would scan a 4148 diode array (the PROM if you will) into some decode logic. You would hard wire the diode array for your call sign. It was a fair bit of hardware for what today would be one small PIC.
I had an Vibroplex which I still have today. I showed it at the beginning of the attached video. It's pretty fast in the right hands. The magazine had an article about writing software to decode Morse code with a computer. I decided to attempt to recreate it on my own computer. Unlike the article, I had the ability to transmit as well as receive. The receive would track the speed of the sender. Here is the section of code that detects if its a dash or dot.
Keep in mind, this computer predates the microprocessor.
*
* SEGMENT USED TO RECV IN MANUAL
*
SEG ENDSRCH
STARTUP CLC POSITION CURSOR
LDI 1
MAL
LD BUFF+1 RESET BUFFERS
ST KPOINT+1
ST PPOINT+1
WAITZZ LDI X'00' RESET MARK/SPACE COUNT
ST CHRCNT
JSR VLDMKQ LOOK FOR A VALID MARK
LD CHRCNT WAS THERE A VALID MARK?
CJEQ X'01',WAITZZ IF NO CHECK AGAIN
NEWMKQ JSR MKTYPQ DASH OR DOT?
LDI X'00' RESET MARK/SPACE COUNT
ST CHRCNT
ST CHRCNT1
SPTYPQ JSR VLDMKQ IS THERE A VALID MARK YET?
LD CHRCNT
CJNE X'01',NEWMKQ
LD CHRCNT1 ACC =2*CURRENT SPACE LENGTH
AD CHRCNT1
CM LADA SPACE >= 1/2 LAST DASH?
JCGE CONVERTQ NO: CONTINUE MEASURE
JMP SPTYPQ YES: CONVERT
*
* CONVERT WHAT WAS STORED IN BUFFERS INTO ASCII CHARACTERS
*
.....................
*
* DASH OR DOT
*
MKTYPQ DAC **
LD LAST ACC= 2*NEW MARK LENGTH
AD LAST
CM CHRCNT IS NEW MARK >= 2* LAST MARK
JCGE DOTRQ LENGTH ? YES: DASH
DASHRQ LD CHRCNT
ST LAST UPDATE LAST MARK LENGTH
ST LADA UPDATE LAST DASH LENGTH
LDI X'01' UPDATE LAST MARK TYPE
ST TYPE
ST* KPOINT
INC KPOINT
LDI X'01' LOAD A '1' INTO DASH REG
ST DASH
LDI X'00' LOAD A '0' INTO DOT REG
ST DOT
JMP* MKTYPQ
DOTRQ LD CHRCNT ACC. = 2* CURRENT MARK
AD CHRCNT
SBI X'01' LENGTH
CM LAST IS MARK < 1/2 LAST MARK?
JCGE SAMEQ NO: DASH OR SAME YES: DOT
DOTTQ LD CHRCNT UPDATE LAST MARK LENGTH
ST LAST AND LAST MARK TYPE
LDI X'00'
ST TYPE
ST* KPOINT
INC KPOINT
LDI X'01' LOAD A '1' INTO DOT
ST DOT
LDI X'00'
ST DASH LOAD A '0' INTO DASH
JMP* MKTYPQ
SAMEQ LD TYPE WAS LAST MARK A DASH
CJEQ X'01',DASHRQ OR A DOT?
JMP DOTTQ
Navigation
[0] Message Index
[#] Next page
Go to full version