I have been curious as to how one might implement a morse code decoder with basic digital logic (no microcontroller), mostly as an exercise. I could decode individual letters with a state machine, if I had asynchronous inputs such as dot, dash, and pause. My problem is essentially in generating those outputs from a raw source like a telegraph key.
Is there a good circuit that can detect when a signal goes high for a certain amount of time? I would need it to send one signal when it is up for a short time and then goes low, and another signal when it stays up longer (three time periods for a dash vs one for a dot). I also need a signal when it stays low for three periods for a letter break, or around seven units for a word break. It needs to be fairly liberal with its timings, as it is intended to decode manual entry, not computer modulation.
It would be super nice if it used minimal components and if I could use a potentiometer to adjust the time period.