The Raspberry Pi is first setup as a code practice oscillator using LINUX NATIVE REAPER and its own plugins. Then using a circuit similar to this: http://i.imgur.com/C2qYIPm.png , a 555 timer chip is keyed by a FET optoisolator that connects to a CW KEYER's key-RIG OUTPUT jack. In this video a K1EL K40 CW KEYER was used to key the FET OPTOISOLATOR, which then keys a 555 timer chip -sending out an audio tone into a USB MIC input adapter into the RASPBERRY PI's audio input system.(Jack Audio Connection Kit) upon reception of this harsh high pitched 555 square wave output tone, it is converted into a cloned cw element keying command to key an internal software code practice oscillator using LINUX NATIVE REAPER's plugins - Reagate and Reasynth. Reagate measures the incoming audio volume from the USB MIC INPUT...and a GATING THRESHOLD is set by Reagate to the top 10 percent peak of this audio input volume, which will trigger a MIDI NOTE ON, NOTE OFF, message according to the exact input cw element length/duration from the 555...Reagate's MIDI OUTPUT NOTEON/noteoff message goes directly to the input of the next plugin, REASYNTH...which is setup to perform a sinewave audio output just like a code practice oscillator circuit...Reasynth has an audio pitch adjustment with rise / fall time adjustment too...
With JACK AUDIO CONNECTION KIT and the RASPBERRY PI using a USB SOUND CARD for playback and another USB SOUND CARD for MIC INPUT(adapter) low latency keying(no lag in keying your paddles, st key, bug or keyboard - from hitting the paddle handles or keyboard letters until you hear the tone) is achieved using JACK AUDIO CONNECTION kit with 48k sample rate and 128 buffer frames.
EXPERIMENTAL TEST SETUP:
to measure the accuracy of duplicating precisely the K1EL K40's cw output, an extreme qrq speed was used - 120 wpm - so that the oscilloscope view would be close to 10 milliseconds and easier to measure. the letters e, i, s, h and the number 5 were sent by the K40 and then measured on the scope by comparing the original cw element input to the RAPSBERRY PI' s USB MIC INPUT to the regenerated cw audio output from REAPER. Zero RISE/FALL time was shown first to evaluate the accuracy of 10ms elements being sent.
RESULTS: very precisely cloned k40 cw keyer qrq cw keying was successfully recreated by REAPER's Reagate and Reasynth plugin.
at first the test is run with ZERO rise/fall time...then adjusted to 5ms for rise/fall time in the Reasynth settings....you can make the keying harder or software accordingly by changing those values...
NOTE: any audio glitch heard or any timing glitch that might be seen on the SCOPE, is due to the VIDEO RECORDING software taxing the Pi'z CPU...without the VIDEO SOFTWARE running....every REAPER cw regenerated output tone was measured to be exactly 10 ms for every dit and every space between dits in letters like "i",
s, h, and the number 5.