I recently needed a new CW keyer with Winkey compatibility for use with my N1MM logging setup. K3NG has written some nice keyer code that I compiled and uploaded to one of my Arduino UNO boards that I had laying in the shack (if you want to try it, you need the latest – above 1 – version of the Arduino “IDE”). Below you can see some pictures from making the prototype thru to ready made keyer with USB interface and adjustable speed button. I did not install the memory buttons, as I control the CW keyer via USB from N1MM or Hamradio Deluxe. It works very well with my Yaesu FT-450D but instead of the UNO I will eventually use a Mini Pro board with the Atmel Atmega 328. You can see more info on K3NGs site http://radioartisan.wordpress.com/arduino-cw-keyer/#comment-3255
Below is the schematic (remark: full credit is given to to K3NG!). I have modded the design for my own needs. Instead of the 2N2222 I use a TTL tolerant FET of type IRLIZ44N to drive the keyer output. Then I don’t need the 100 ohm resistors in series. I also did connect a piezo tweeter directly to the CPU without using the 2N222 transistor. It works OK. However, the sound of the piezo tweeter is not the best in the world. Finally, as mentioned above, I did not install all the buttons. I installed only the command button to save space. There is a need to do a small mod on the UNO hardware due to some reset issues. For that I will have to add another button that needs to be pressed when I want to upload code.
I also needed a CAT interface. It is possible to use a FTDI chip for this task, however the signal levels need to be transformed to +/- 12V. This I solved with a MAX232 board that I had laying around in the shack. So now I have a CAT interface that is compatible with Win XP, NT, 2000, 98, Windows 7, Windows 8 etc since the FTDI chips are widely supported. It looks like … but works like …