11 Feb 2011 Note: I have started a new "final" site here: https://sites.google.com/site/w5uxhatmega328pkeyerkbd/home
that hopefully will contain the essentials and not quite as much clutter. It currently links back to this site until I get it fleshed out more.
See this link for a list of YouTube links to some very rough demos of some features: YouTube Links to Demos
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 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").
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. There are no provisions for standalone paddle keyer operation. The keyer will function if operated without the PS-2 keys, but the speed cannot be changed.
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.
There are no specific features targeted at contesting. The target is just cleanly generated, well timed CW.
A double sided printed circuit board is used as a "backplane". The Atmel processor chip is on a commercial printed circuit board, available in a low cost ($15) kit from www.moderndevice.com . This kit is called the Really Bare Bones Board (RBBB) kit. The RBBB plugs into female socket headers on one side of the backplane. The LCD display module plugs into female socket headers on the other side of the backplane. One source for the LCD module is out of China, but my recollection is that the single quantity shipping only brings the total price to about $10. The web site is http://www.satistronics.com/hd44780-20x4-characters-lcd-module-blue-backlight_p1106.html. The LCD is also availabe from Modern Device among other US sources, but at higher cost.
I did the PCB layout using ExpressPCB and ordered a set of three "mini boards" from them, without silkscreen or solder mask. The PCB is currently the most expensive single item in this project. The minimum order is 3 boards, for $60, so $20 per circuit board. I have previously built several similiar keyers using the Arduino Duemilanove and Seeeduino boards and one using the Modern Device BBB board, all using just a perfboard "backplane". I have now built three using the RBBB and PCB and I feel the PCB is well worth the price. In high quantities, I am sure the PCB would be priced much lower, but I don't expect to ever be ordering in production quantities! I just checked prices for boards with solder mask and silkscreen using the 2 week delivery option (instead of the much faster prototype service). For a quantity of 10, the price is still high at $27 each. At the quantity 100 level, the price drops to $5 per board, not bad at all! (But I doubt there will ever be demand for ordering in such quantities!)
Most of the "special" features of the keyer are best learned by trial and error, but the manual will hopefully provide an introduction to most of the features. The key layout assignments can be used to identify keys that might be of interest for further experimentation.
A PDF file is attached below (W5UXH AVR Keyboard-Keyer.pdf) that presents the current state of the "users manual". It contains a detailed discussion of the key layout assignments. This is manual is currently very preliminary.
The features of this implementation basically duplicate those of an earlier PIC project from the 1998-2001 time frame. The new project, written completely in C, uses the AVR-Studio / WinAVR / AVRDUDE development environment. This is a great environment, particularly since it is free.
The RBBB module is programmed using a third module from the same site, the BUB. This is a USB interface board. A USB cable connects to the BUB and the BUB connects to a 6-pin header on the RBBB module. Sample batch files for programming the RBBB using the BUB / USB are provided in the AVRDUDE batch files subpage. Some general information about the software environment needed for programming the chip over the USB interface is at this link: UserUpdateEnvironment. These notes applied to the larger chip on the Seeeduino board, but the same software is used for the RBBB and the only real difference is that the BUB is required for the RBBB. I don't expect many people to be duplicating the keyer, so I should be able to program the RBBB if it is shipped to me.
A PDF file is attached below (Keyer-AVR-RBBB-Construction.pdf) that is the current state of a document I intend to continue work on to describe the construction, using the printed circuit board. It is most definitely a "work in process". This document also contains the key layout drawings that define the operation of the special function key operations. BMP versions of the key layouts are also provided on the Key Assignments subpage. The layout drawings were done some months ago and it is possible there have been some changes that I have not caught, but I think they are pretty close.
The Keyer-AVR-RBBB-Construction.pdf document has some discussion of templates for cutouts for the enclosure. One item is the front panel template, shown below. You will need to install the Front Panel Express software to print out the template to scale. See the referenced document (attached below) for a link to this software and for discussion of the way I utilize this template. The native FPD file is attached at the end of this page. (This panel was for a larger machined enclosure, but it is useful for the cheap RS enclosure shown in this project.)
A template to help position connectors on the back panel can be printed from the ExpressSCH schematic:
The "keep out" area must be observed to prevent mechanical interferences between the RBBB and the connectors. The native ExpressSCH file (RBBB-Keyer_Schematic.sch) is attached below. The back panel template will be found on one of the pages. The software can be downloaded from this link: http://www.expresspcb.com/ExpressPCBHtm/Download.htm where both the the schematic drawing software (ExpressSCH) and PCB layout software (ExpressPCB) are downloaded together.
As soon as I ordered the first three PCBs, I realized I had neglected to add a series 1N4007 on the DC input for reverse voltage protection. I then added that diode and did a few other minor changes in the Rev A schematic and layout, in case I end up ordering more PCBs some day.
Anyone attempting to duplicate this keyer should definitely contact me (email address on QRZ) to see if the documentation is up to date. You definitely need to be able to "read between the lines" and recognize inconsistencies since things evolve and I do not always catch all references to things that have changed.
My how things change. The photo below is one of my earlier projects, circa 1980's, that used a set of Cherry ASCII encoded keys. The slope front enclosure went through many lifetimes of keyer / keyboard projects. This photo was taken on the day it was consigned to the junk heap. All those TTL etc. chips are now functionally replaced with just a lot of words typed into a C language source file!