W5UXH CW Keyboard / Keyer
A Combination CW Keyboard and Paddle Keyer
Chuck Broadwell   W5UXH
 Note:  To download file attachments found on some pages, use the DOWN ARROW at the far right next to the file name.

Users Manual, Construction Manual,  Schematic and Printed Circuit Board Layout and Source Code
Use the "panel" at the upper left to find the pages that have the various manuals etc.  (Items 1a, 2, and 7 are the manuals).
(The     Packaging Manual     is probably the most useful one related to construction.)
This link has the pertinent schematic and parts list for a builder to assemble the working keyer:  3_Schematic

22 Sept 2014 Note:  I still provide blank PCBs and/or pre-programmed chips.  I do not sell paritial kits or assembled keyers any more.  I usually have a random assortment of older assemblies on the shelf that I can offer.  The bottom of this page has a lot of notes and links about later projects, but none are provided as kits or assemblies other than the random assortment of projects on the shelf.

21 Feb 2015 Note:  I should also emphasize that this is not a step by step project.  So it is not for anyone who does not have some experience with following schematics and silkscreens to assemble a fairly simple PCB.  A number of guys (I don't think I know of any gals) have built the keyer, some even making their own homebrew PCBs and some have programmed their own chips themselves.  But there is no set of step by step instructions to be blindly followed.  I am happy to answer questions and try to point to the most suitable information that might be useful among the scattered and evolving documentation that I have uploaded to this and other web pages over the last four or five years.

3 Mar 2015:  I think I will end up with a "2015" project documented on a new web page.  I have been working very slowly (intermittently) on what began as the "Goertzel Decoder" project that began based on Hjalmar's Arduino decoder project:  OZ1JHM project.  I quickly ported a similar project to the Max32 ChipKit board, concentrating on QRQ decoding.  That gradually evolved to start including a port of my AVR keyer functions along with the decoder.   Some early comments without any details can be found here:  Combined Keyer + Decoder Project using PIC32 ChipKit Boards
The W5UXH Keyboard / Keyer is a CW keyboard combined with a paddle keyer.  It uses a single Atmel  microprocessor,  the  ATmega328P  from the AVR family,  and a 4 row by 20 column LCD display module.  The CW keyboard works with a standard set of PS-2 keys (any PS-2 keyboard with a 6 pin mini-din connector).  The paddle keyer emulates both the Curtis Type A and Type B iambic keying modes.    A User's Manual provides detailed description of the features.  (See the link in the panel at upper left.)

The photo above shows a front view of the pre-drilled enclosure from W8FGU.  Clicking on a photo will show a full size image.  A video that shows details of this new enclosure will be found here:   Clear Enclosure by W8FGU

I ordered 9 of the enclosures (after the one prototype) and have built up a total of six.  They are working out very well.  It is much easier (and worth the price) to not be drilling and nibbling!
(I have no more enclosures available.)

A blank PCB and pre-programmed chip can be obtained from W5UXH for a total of $20. The LCD can be ordered out of China (ebay) for $10 including the cost of shipping. The remainder of the parts will determine the final total price. Depending on the builders resources, and desired method of construction, the price can probably come in anywhere between $40 and $120, not counting shipping costs or taxes at Radio Shack etc.  Contact me for more information.  

Note:  For anyone wanting to figure out the capabilities of the keyer, the Summary of Features section below briefly describes most features.  The Users Manual link (in window at upper left) provides more details.   I have not kept the manual completely up to date in the past year or so (it is now Dec 2013).  There are some special function key assignments that have changed, but the main features are as described.

There should be sufficient information for those with some experience in such projects to build the project, but it will require some dedication to dig through everything.  One could build it completely from scratch, or using the available blank PCB.  I have plenty blank PCBs on hand, and try to keep a small stock of programmed chips.  I am not trying to make a business out of the keyer, so you will need to contact me for specific questions.

Note:  At the bottom of this page there is a short comment and link to a slightly related project.  

You Tube Demos
Links to a series of rough demos will be found at this link:  You Tube Demos    The LCD display is shown while CW is sent to demonstrate various features.  One of the demos (#8) uses the spoken word instead of CW to show the basic assembly of the modules.   

I have another set of videos available.  These show various steps in the process of packaging a PCB+LCD assembly in the enclosure.  I can provide a link on request.  

Recent Changes:

20 August 2012:  A recent change provides an adjustable sidetone, primarily of interest when the keyer square wave sidetone (normally connected to the Pieze speaker) is connected to a narrow filter and audio amp (designed by Jerry, K9JB and not quite finalized yet).  This feature provides a quality sidetone with 16 steps from 600 to 750 Hz.  Another filter/amp option is the Hi-Per Mite (http://www.wa0itp.com/cwfilter.html).  Either filter is small enough to be built into the keyer enclosure and connected to the 12V DC and sidetone signal (disconnected from the Piezo speaker).  Depending on the size of the enclosure, a small speaker can be included, or just a jack to drive an external speaker like the MFJ-281 ClearTone Speaker which really sounds good.

25 June 2012 update:  I added a message preview feature to display message contents on the LCD.  Use the shift key on key pad keys 1-9 to display messages 1-9.  The message number is shown at the end of the message so messages longer than 20 characters can still be identified on the display.  The message repeat functions are now on shift-Q through shift-O (lined up below numeric keys 1-9 to allow easy location of the desired key).  In addition, messages can now be concatenated.  The left side ALT key now dumps the buffer as an alternate key sequence for that function.

9 June 2012 update:  I added a software function to allow reversing the dot/dash sides of the paddle.  The default is "normal" (stereo jack TIP = DOT).  The shift-F6 key reverses this.  There is no provision to store the reverse state in non-volatile memory, so after a power cycle the paddle mode reverts to normal.

25 May 2012 update:  I have also added a feature that allows use of the serial port to display all transmitted characters (from paddle and kbd) in a window on a computer.

20 May 2012 Note:  I have added a feature where characters sent by paddle or keyboard can be displayed on a terminal emulator (PuTTY) using the serial port of the ATmega328P chip.  This requires a USB to Serial-TTL converter, the same module that is used for doing program updates.

13 Mar 2012 update:  I have added software support for a set of four push button switches to allow control of speed  when a set of PS-2 keys is not attached.

                                                                                                Summary of Features

A type ahead buffer of 128 characters is provided.  A warning is given when the buffer contains more than 96 characters.  There are nine 80 character programmable message memories, and a key to send the user ID (e.g. "  de W5UXH").  The messages are triggered from the keypad keys labeled 1-9.  The messages are triggered in auto repeat mode when the SHIFT key is used with the keypad numeric keys. 8 June 2012 Note:  I see that I never corrected the type ahead buffer size.  At some point in the past it was increased to 384 characters in order to use available data memory.  Today, I found I was bumping into data limits where there was no more space for the stack.  So I dropped the buffer size back to 256 bytes.

Most settings (e.g. speed, weight) and programmable messages are stored in non-volatile memory.  Speed and weight are not written to non-volatile storage automatically.  A key sequence is provided to store these parameters in order to control what the speed and weight are set to at power on.

There are two independent speeds maintained, one for the paddle and one for the keyboard.  Speed range is at least 5 to 100 WPM.

Speed and weight are changed using the four arrow keys on the PS-2 keys.     (See previous note, support for stand alone operation without PS-2 keys has now been added.  The Users Manual has the most up to date description.)

A "ten minute timer" is included.  The timer counts from 0 up to 99.  The timer automatically resets to zero when the operators ID (or any defined character sequence up to 21 characters in length) is sent, either from the paddle or the keyboard.  A visual indication is provided on the display when time is > 8 minutes.  An optional audible indicator is also provided.

Paddle sent code is displayed on one line of the LCD display.  Keyboard sent code is optionally displayed on one or two rows.  In one row mode, the text is displayed as it is typed.  In two row mode it is also displayed as it is transmitted.  When typing ahead (something I do not care for) backspace can be used to correct typos before they are transmitted.

A simple piezo speaker provides an internal sidetone, intended primarily for use when testing or demonstrating the keyer without the need to connect to a rig or external sidetone generator.  Output key jacks are provided for keying up to two rigs.  The active output is selected by a special function key on the PS-2 keyboard.

There are no specific features targeted at contesting.  The project goal is accurately timed CW with easy control of speed for both paddle and keyboard.

In order for the user to have the capability of doing updates of the firmware, a USB to Serial board  (BUB) from  http://shop.moderndevice.com/products/usb-bub is required. 

Alternatively, any In Circuit Serial Programming system for AVR chips can be used, such as the AVR-ISP MKII  ( http://www.mouser.com/search/ProductDetail.aspx?qs=2mdvTlUeTfBRoycsKqwYpg%3D%3D ).    The Modern Device BUB is reasonably priced at about $15.

Most of the current requirement is due to the back light for the LCD.  I have measured as low as 60 ma and as high as 100 ma with the LCD modules from Satistronics.  These days most PS-2 keyboards have negligible current draw and the AVR chip draw is also negligible.  The LCD module data sheets indicate a typical current of 145 ma for the back light.

A standard 7805 1 amp regulator is used to power the keyer from an external input of 9V to 15V DC.

Closeup views of the front and back of the "production" PCB are shown below: (click the image for a larger view)


Here is a group photo of some "production" keyers in the new enclosures:


Brief History of the Project
This is the "final" version in a long line of final versions!  This ATmega328P (an Atmel AVR microcontroller / processor) project began in the Spring of 2010.  It was preceeded a decade earlier with a PIC processor version with similar features.  The PIC was programmed fully in assembly language.  This new AVR project is programmed in the C language.  The Atmel AVR Studio 4 compiler is used for compilation and the WIN-AVR Avrdude utility is used for download over a USB interface.
The project began with an Arduino Duemilanove hardware board, followed by several versions using the Seeeduino Arduino clone board.  These were then followed by a version using the Modern Device Bare Bone Board (BBB) and then several iterations using the Modern Device Really Bare Bones Board (RBBB).  The final RBBB version used a printed circuit board that I did the layout for and had fabricated by ExpressPCB.
In February of 2011 I then started work on a version where I mount the AVR chip directly on my printed circuit board instead of using the RBBB module.  As of this date (11 Feb 2011) I have not had new PCBs fabricated but have verified that I am able to program the blank AVR chip with the necessary boot loader firmware to allow further programming / updates over the USB / Serial interface.  (New PCBs now ordered, should arrive around 17 Feb 2011.)  (Newest batch of PCBs ordered in Mar 2012.)
I intend to provide sufficient details on this web site to allow anyone with some familiarity with such projects to be able to build one, but this will not be a step by step set of instructions.  There is an another web site that has a lot of information for earlier stages of this project.  It has become cluttered.  I will provide a link to it here:  https://sites.google.com/site/w5uxhavrkeyboard/really-bare-bones-version
until I have (hopefully) provided a bit cleaner set of documentation on this web site.
Anyone trying to reproduce this keyer is pretty much guaranteed to run into items in the documentation that are inconsistent, unclear. in error etc.  Hopefully I will be able to clear up questions if they are asked.  Anyone who wants to make sure they have the latest manuals should contact me to insure I upload the latest copies. In particular, small changes I occasionally make well after the software was basically "mature" are not likely to make it into all the documentation, so some features may only show up on these web pages as brief "update" comments.

Keyers Built By Friends in Europe (and others)
EA5VK (Jose) and ON4EA (Roland) have both built their own versions of the keyer, including doing their own PCB layout and fabrication.  They do very nice work.  Video links are here:
EA5VK    and    ON4EA.  Roland has some nice photos here:  http://sites.google.com/site/rolandferyon4ea/on4ea  

Peter, PA3EEP built the one shown below left:   Rafael, EA5TV built the one shown in the next two photos:


Both Jose and Roland have also done program updates using USB to Serial-TTL converters with the Avrdude command line utility.

K9JB has done a great job of repackaging his keyer:  9_K9JB-Packaging

25 June 2014:  EA5VK sent a link to a very low cost Arduino Pro Mini board that I am testing now with the keyer software.  The board only costs $2.58 with free shipping from China:
Not sure how long this link will stay active, but click here  <<< link still valid on 25 June 2014.  The Arduino board is lower cost than the ATmega328P DIP chip alone!

So far I have only verified that the boot loader in the chip is the one I use with the keyers and that the LCD interface works.  In the photo below (click the image for a larger view) the Arduino board is pointed out by the white arrow.  If a keyer is built without the LCD, it could be a very small and cheap keyer / kbd if packaged very simply.  I have built keyers without the LCD and they are fully functional but the LCD certainly makes some operations much easier.  But for a simple keyer / kbd with paddle speed control (and speed query) using the push buttons it is quite useable.  

I do not intend to provide details for wiring up this module online, but should be able to provide some basic information to anyone interested in using this module.

9 Apr 2014:  I have done a new version of the keyer that has all the I/O connectors and the Hi-Per Mite filter circuit on board.  See this page:  https://sites.google.com/site/w5uxhkeyerkbd2014/home  

I still have plenty PCBs for the keyer shown here but do not plan to build more for sale.  I can still provide the blank PCB and pre-programmed chips.


A series of videos showing most assembly steps for a "partial kit":  Assembly Videos  (See the README file;  Right click on filenames to get the Download menu.)

Arduino Hardware:  The keyer HEX file can be downloaded to Arduino boards using AVRDUDE
Old pin mapping for the Duemilanove at this link:  Duemilanove pin mapping

19 Oct 2012: I added the A_TeensyBoards page with a few comments related to supporting two small boards available from this site:  http://www.pjrc.com/teensy/
This page:  A_TeensyBoards has some discussion of the Teensy and also of iCW (internet CW).
24 Nov 2012:  I have started a separate google site for the Teensy:  https://sites.google.com/site/w5uxhteensykeyers/

7 Mar 2013:  This page:  iCW (internet CW)  has a few comments about "internet CW" and a link to the AA0HW web page with details about operating CW over the internet.

NOTE:  Do not expect a professional presentation here.  I think I have provided sufficient details if someone digs through and asks questions, but it will not be as clear as I would like!

4 Mar 2015:  I have not built any of the Teensy keyers in a few years, but I will leave the links here for "historical" reasons  :)  

A brief note, slightly related to this project: 
Unlike this project that is "mature" and can either be built by someone starting with the blank PCB, or as a partial kit, or obtained fully assembled, the following link:  Similar project using the MBED platform has some information about a project using an impressive board that comes with a very well done online development environment.  If you want to work with existing code (my keyboard software migrated to the MBED) to play around, the development environment for the MBED is very easy to work with.  A short video is here:  http://sdrv.ms/KD7QZH
free counters