browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

Adding an external keypad to the K3

Posted by on January 21, 2016

Genovation KeypadThis article on adding an external keypad to the K3 was created to make it simpler for the next poor sod down the road to add a Genovation CP48USBHID, 48 key keypad, or the Genovation CP24USBHID, 24 key device to their K3/P3 devices.  I initially learned about the Genovation keypads on the Elecraft mail list.  It sounded to me like several people were talking as if they had them working, so I asked how to set one up, and got nothing back…  I asked again a few weeks later, only this time on both the Elecraft, and the Yahoo mail lists.  I received several replies, all saying they would like to have one of these working as well.  I did get one lone reply from a person who said, “yes, but I did it a year ago, and have now forgotten how”.  From that I concluded I was on my own in getting these two devices connected.  Given I agreed with the general premise that having a keypad available to send macros to the radio would be good, I decided to move forward with this project and see how far I might get.  I contacted the Elecraft support team first, and got, “only the listed keyboards will work”, response.  However, in the discussion, I got what would later turn out to be a vital piece of information in making the connection between these two devices work.

What was that vital piece of information– the P3 will not recognize a Multimedia Keyboard, period.  If a keyboard identifies itself as multimedia, (which the stock Genovation CPXXUSBHID devices do), the P3 totally ignores the keyboard as if it is not plugged in.  That single issue appeared to be the only reason the Genovation keypad was not simply plug and play with the P3/SVGA.  I next contacted Genovation support to inquirer about getting the device ID changed.  To my delight, I found a support department that was totally willing to go to almost any length to help, up to and including programming a special version of the Genovation software which did not ID itself as a multimedia keyboard.

While this is probably a very small change in the software, the willingness of the support staff at Genovation to help floored me.  My hat is off to Genovation and the individuals there.  I will recommend a Genovation product to everyone that even hints at needing an external keypad for any reason as a result of this treatment.

Genovation took about two days to create a changed OS for their pads.  This file goes into the Genovation CP48USBHUD keypad, using the standard upgrade program they include with each keypad, which changes the IDs of the CP48USBHD to a non multimedia keyboard, thus allowing the CP48USBHID series of devices to simply plug into the Elecraft P3/K3.  Genovation is currently working on a file for the CP24, and expects it in a few weeks.  I will link below when it is available.  The software provided here has released for download on this site by Genovation.  Neither Genovation, or myself can be held responsible for any problems this creates on your end…  If you are unsure, don’t use it.

Here is what I needed to get this project working, with links to each item:

First a bit of history, and a lesson on how each device works, what each device expects, and finally a how to on how I got them working together.

How the P3/SVGA works:

The P3/SVGA can hold at least fifty macros for use with the K3, each macro is programmed into the P3 in advance of use, and each macro has at least the following three details attached to it:

  1. A memory number within the P3.
  2. A trigger character to look for, associated with the above memory number.
  3. The actual macro itself.

You program all macros into the P3 in advance of use and associate a numbered location within the P3 with each macro you program.  Assuming the P3 is not in macro program mode, when the P3 sees a character come in on its USB port that character is looked at, and then compared to the list of preprogrammed trigger characters you put in when you programmed the P3.  If no match is found between the trigger coming in, and a triggers already programmed in the P3, the incoming character is ignored and nothing happens.  If on the other hand a match is found, the P3 knows it has found a valid trigger, and sends out the macro associated with that triggers memory location within the P3.  More on this later, with a walk through.

How the Genovation works:

The Genovation keypads have either forty-eight or twenty-four keys on them depending on which model you purchase.  Each individual key can be programmed to send a single character, or a series of characters.  Further, each key has a removable plastic cover so you can put a label under the plastic.  All of this allows you to program a key, then label it, then use it to send a macro trigger to the P3.  Like the P3, the Genovation also needs to be programmed in advance of use.  Fortunately Genovation provides a rather nice piece of software with each keypad for just this task.  Once a key is programmed, if you tap that key, the Genovation sends out the character(s) you pre-programmed into it via the USB port.  This lends itself well to the function of sending macro triggers to the P3.

How the the Genovation Keypad, the Elecraft K3, and the P3/SVGA work together:

Genovation keypad in front of Elecraft K3In short, they don’t work together at all in their stock configurations, you need to download either the 48 key, or 24 key update file above, which was constructed by the Genovation support team and install it into the Genovation keypads prior to anything you do here.  Again Genovation has a tool for this, and again, it is included with the keypad when you buy it.  Follow the instruction in the Genovation install folder on how to upgrade your keypad, using the file here as the upgrade file.  It takes about five minutes to upgrade the keypad.  When you are finished, the P3 will recognize the Genovation Keypad as a dumb keyboard.

Now– assuming that the P3 is NOT in macro programming mode, when the P3 sees a trigger character come in on the USB port, (from the Genovation, or a keyboard), the P3 looks at that trigger character, and then fires the macro associated with that trigger character into the K3.

A quick example might be– if you program the letter “a”, as trigger for the macro to change the bandwidth of your K3 into your P3, then later, (with the P3 NOT in macro entry mode), you send an “a” into the P3 via the USB port, the P3 fires off the macro you programmed to change bandwidth of the K3.

Template for keytops on the Genovation Keypad

Figure 1, click to expand

All of this means that each key on the Genovation keypad must represent a unique trigger in the P3s macro library, and that each key must also have a unique memory location associated with it.  Both the triggers and memory locations need to match what is in the P3 if you want the correct macro sent to the K3.  I decided it would be best to program the Genovation keypad just once, so each key got a value of a-z, 1-0, and F1-F12 programmed into it left to right, and wrapping downwards at the end of each row, look in the lower right of each key to see the programmed trigger.  At this point I would click on the chart on the left, expand it, then print it and get it in front of you.  Looking at Figure 1, you will see that each key has a unique, small number in the upper left corner, this number represents the P3 memory location that single key will trigger.  In the lower right corner of each key is the trigger character that will be sent to the P3, when that key is pressed.  In the middle of the key is what the macro I want triggered does, in English, so I remember it later.  For the moment, lets assume you have a fully programmed, and updated Genovation keypad, and lets say you want to program a key to change the bandwidth of your K3 when you press the “BNDW 2800 HZ” button on the Genovation.  This key is in the light blue row on the top.  Note it has a number 4 in the upper left corner, and a letter “d”, in the lower right corner.  I have previously programmed the P3 to contain a macro to change bandwidth of my K3, at location 4, using a trigger of “d”.  Now when I press the “BNDW 2800 HZ” key, the Genovation keypad sends out the character “d”, which can be seen in the lower right of the “BNDW 2800 HZ” key.  The P3, (not caring what is connected to it, but seeing a character on the right port), sees this incoming character, (or trigger), and looks up the macro associated with that trigger, the P3 associates that trigger with the macro stored at location 4, (upper left hand corner of the key), and fires off the actual macro programmed in location 4 of the P3 to the K3 and the bandwidth changes.

This all seems overly complicated, and the process of putting it in writing at this detail level is why.  The short version of this is in essence– I program the Genovation to send a “d” out the USB port when I press the 4th key from the right on the top row, and when the P3 sees that “d”, it sends the macro I associated with the “d” to the K3.

Keeping your life simple:

Raw Genovation keypad templateWanting to keep things simple down the road, I decided that all I needed to do was to program the keypad using the triggers in the lower right of each key, once, not every time I wanted a macro changed.  Creating the template to the left allowed me to do this.  Using the Genovation software I programmed the CP48USBHID, to send the characters shown in the lower right of each key when that key was pressed.  I should never need to program the Genovation again…  If I decide to change a macro, I look at the chart to the left, decide which key I want to use for the macro, then look up that key on the template, and from the template, I can see both the trigger I need, and the memory location I need to use to program the macro into the P3.

Changes take almost no time:

Once the Genovation and the P3 are programmed, changes take almost no time, I unplug the Genovation, plug-in a keyboard, update the P3 memory location representing the key I decided to use on the Genovation, take the P3 out of programming mode by hitting ESC, and I am done.  I then remove the keyboard, and plug the Genovation back into the P3.  The template on the left does all the  work of keeping things straight.  If you click the template, you will get a much larger version you can use as a programming guide.  Just right-click the template and select download to get a copy of it.  I also use the template for making labels for the keys on the Genovation.  Use your favorite graphics program to scale it to the correct size, fill in the labels, and then print it, cut the new label, and insert it under the key top and you are done.

A few hints:

  • When you are done with programming the P3, ALWAYS hit ESC.  This takes you out of macro programming mode and leaves the P3 in the right mode to allow the P3 to accept incoming triggers.  If you don’t nothing will happen when you hit the Genovation key.
  • I also created a spreadsheet, CP48-Master-Spreadsheet…  I use it to keep track of what I am doing macro and programming wise.  I make my changes to the spreadsheet, then program the P3 from that.  Trust me, it avoids errors.
  • Keep your keyboard handy for the first few days after getting this working, you will suddenly start thinking of more, and more macros to add.
  • Make sure the P3 SVGA DATA mode is turned on.


This was a fun project, and one I have wanted to do from the first day I had my K3.  You see, I had an iMate for my old 756 Pro III, and it allowed me to trigger four different memories on the 756 PRO III, either voice or CW.  I have missed it from the day I switched to the K3, so this is a welcome project to have finished.  Here are a few macros I have programmed up for the keypad now:

  • Split + 1.
  • Split + 5.
  • Split Cleanup.
  • Band up.
  • Band down.
  • Bandwidth for each mode.
  • Mode select.
  • Memory triggers, works for voice and CW. (M1-M4)
  • Preset frequencies to go to.
  • Fire off memories on the K3, voice or CW.

All single button presses, the list goes on and on, the more I use this the more I find I need it, and the more macros I think of.  At this point, I can see where 48 are not enough.  Have fun, and if you have questions, please post them here as a comment, I will try to answer your question, that way the next person may find your question and the answer useful and not have to wait.


36 Responses to Adding an external keypad to the K3

  1. Byron

    I ordered my 48-key keypad today based upon this article. My plan is to program the P3 entirely without a P3-dedicated keyboard:

    1. Write and test the Macros in the P3 Utility.
    2. Copy and Paste the tested Macro into the keypad utility.
    3. Add the “special keys” you need to interact with the P3, like ENTER, UP, DOWN, and the key you will set (i.e. Ctrl+F1).
    4. Download keypad settings to keypad using the keypad utility.
    5. Upload macros to P3 using the #3 special keys and the corresponding Macros.
    6. Rinse and repeat until you’ve loaded all P3 memories desired.
    7. Reload the keyboard with only yhe “launch codes”, or P3 trigger keys.
    8. Retest calling all 50 P3-stored macros.

    My longest P3 macro to-date is 111 characters, which is the limit a keypad can hold in split mode. That means I could have 47 macro string for this load and the 48th button as shift/toggle to the control keys. Or have half of my macro strings on the first layer and half on the second, with control keys on both. It eems like I could easily program all 50 memories in a single pass.

    If this would work, I can use my regular computer to define and test the macros, do extensive copy and paste operations (like when eight macros are the same except for band or whatever) and make the loading (admittedly a one-time operation) more failsafe. But it also means I might have a set of Casual DXing macros and a different set of Casual Contesting macros. Using the standard Elecraft method would cause me to tend to never change things once they were configured.

    I wonder if anyone has done this already? My keypad is due next week.

    73, Byron NZ3O

    • Byron

      Update: While I was able to get the Gen CP48 to actually program macros, the process was not very efficient, and I have realized the way presented here is the best. I used F1-F8 through Alt+Shift+F1-F8 but the actual Trigger Key does not matter, only the match is important. Again, one of the best posting on the entire Internet for automating Elecraft operation. (So impressive that I ordered a white ControlPad 48 for my Mac.)

      • Bill Clarke W2BLC

        I worked it all out on paper, then set up and entered the macros. I have been using it since then – couple of years?? It is the best add-on for the K3 available. I am surprised no one is marketing it. Actually, it is the sole reason I keep the K3. I cannot so easily control any other rig out there. The K-Pod is good, but only if you need a VFO. I do not.

  2. Andy Nehan

    I have just installed my 24 key Genovation keypad and it works a treat. Setting up the macros is a bit of a kludge – but that’s life.
    Question, the cable is very inflexible and I would rather like to make my own. Do you know the pinout, that way I could take a standard flexible usb cable and terminate it with an rj45 plug.

    Andy G4HUE

    • Dave

      Give the Genovation folks a call, ask for Grant… He will be able to assist you. The Genovation people have been so helpful in this project.

  3. Bill

    I have been using the keypad thru the P3 for many months. It works as described and I am pleased. I rarely reach for the K3 – just to turn on/off.

  4. Harris. K9RJ

    Are you operational yet?l

  5. Bill Clarke

    If this looks like a strong possibility, I will hold off on ordering the SVGA board. I do use a Pigknob that has each button programmed and goes through the serial port. It works fine.

    • Dave

      I give it a 50/50 chance of working… I suspect I will need to send it a sequence to get it in the right mode to accept commands from the keypad… Once I test I will post here. I expect another three or so weeks before I get to it. I lost a monitor for the P3 in a lightening storm, so I have no way to see what changes I am making are… New monitor ordered, three weeks out.

  6. Ignacy

    Really interested whether the direct connection can work.

  7. Bill Clarke

    How did this go? I would prefer not to buy the SVGA board, as I have no other use for it.

    • Dave

      Hello Bill,
      I now have all the parts to begin testing to see if this is possible. I suspect it is, but I need several more weeks to play with things…

      • Bill Clarke

        Super – In the interim I am playing with macros on the K3. I think the new K-pod will be a great addition to the keypad idea also. Brings the VFO to the edge of the desk.

  8. Paul ecker

    Dave – seems like the just announced “K-Pod” is doing exactly what you are with the Genovation Keypad, except they have a VFO knob, but less number of keys. Can’t wait to see how much it will cost.

    73 Paul

    • Dave

      Not sure it is the same, the Genovation will do 48 commands, of which I have 44 or so filled, and am wanting a few more… The VFO knob is slick… My hat is off to Elecraft, they could have held the release of new commands back until they announced this, and they did not… Very smart company, they put customers first.

    • Dave

      The K-Pod is nice, but I think it will ultimately face some marketing challenges… For me, it is too small. I like the larger keypad Genovation has, and it does not slide around… At some point I will order a K-Pod, and review it… More as I get it.

    • Byron

      This is in response to the comment about K-Pod “doing exactly what you are”. The K-Pod is limited to calling 16 Macros stored inside the K3/K3S radio. The keypad discussed here can store and character sequence within the keypad itself. The technique described here for making the keypad send the trigger keycodes to P3 memory is clever in itself, but might not be the only use of the keypad given its inherent flexibility.

      (I know this is an old old old comment, but a lot of people are just discovering this discussion – like me.)

  9. Dave

    I have not purchased a Serial to USB adapter… I have seen others who have it working on the Elecraft Mail List… Still on my radar…

  10. Paul ecker

    Dave- I still have this project on my ToDo list, so I try to read everything you put out. I can not find the “Few Tips” item where the new spread sheet is you mention in the K3 Reflector
    73 Paul

  11. Paul KC2NYU

    Dave – Bear with me. I have the P3 with the SVGA card installed. I used the P3 with a VGA monitor and USB keyboard for quite a while. But just recently, I began using the Win4K3 Suite, and added an ASUS u7 sound card. I now use the monitor that had been for the P3 SVGA display for the W4K3 Spectrum scope. So I now use the P3 display stand alone and don’t use the USB keyboard any longer. So… my question is, to use the Genovation 48 keyboard, I would need to hook the usb keyboard and monitor back up to load the macros. but once that is complete, it would seem that I could unhook the usb key board and vga monitor and just have the Genovation keyboard connected to the P3 and the I would be able to trigger the macros. Am I correct?

    73 Paul kc2nyu

    • Dave

      Hello Paul– I believe you are correct, the reason I hesitate slightly is the possibility of an odd pairing between software. I have not tested the Genovation with that piece of software in place, but I can’t imagine it would cause an issue…

      The only thing I can think of, that might cause an issue would be if that particular piece of software somehow disabled the USB port on the P3, which I can’t imagine happening, or if there were some sort of control data getting conflicted with between your software, and the USB port on the P3. I use my Genovation with MixW running all the time, controlling my radio with both…

      So to answer your question another way. I only connect the keyboard and monitor when I need to reprogram a macros within the P3. When the keyboard is not connected the Genovation is.

      I just turned off my SVGA monitor, and the Genovation still works, so I would think you would have no issues along that line…

      If you set up a Genovation, please post back here the results for the next person asking a similar question.

      Have fun with it, it really is nice to have the radio controls exposed as they are in the keypad… The entire radio look and feel changes for the better.

      • Paul KC2NYU

        Dave – thanks for the quick reply. Will let you know how it works out,
        73 Paul kc2nyu

  12. P. J. Hicks

    That sounds like the way I do it with the KX3 and the 24 key Genovation keypad. The macros are all stored in the keypad but does the K3 need a ‘trigger’ or does it just accept the macro when it appears on the serial port?

  13. P. J. Hicks

    I use a K3 but do not use a P3. Is there a way to have the keypad send the macros to the K3 directly?

    P.J.Hicks, N7PXY

    • Dave

      Probably by using the serial port on the K3, but you would have to save the Macros themselves in the Genovation, which could be done, but I have not tested that yet. Currently the P3 is used to hold the macros, and triggers are sent to the P3 via the Genovation.

    • Dave

      I would imagine you could, however if you have a computer using the serial port, you will not be able to do both. That is why I use the P3. As I said, I have not tested this yet… I will get around to this test soon enough, just not yet.

Leave a Reply