K3NG Keyer for ESP32 and BT keyboards now ready

46 views
Skip to first unread message

Mike Lewis

unread,
Oct 9, 2025, 7:04:54 PM10/9/25
to PNW...@googlegroups.com

I now have a version of the K3NG CW keyer running on ESP32-WROOM-32 CPU.  Small and low cost, these are around $7 each.

 

This version is based on a 2022 fork of the original K3NG Keyer code so it is not up to date but not much has changed in the last few years.  It is a very feature rich keyer project that includes beacon mode, 12 memories and much more.  I have enabled a minimum, but useful, feature set by default.  If you can compile code you can change features. 

 

I added BT keyboard support for BT Classic (Logitech K380 compact keyboard) and BLE (Rii i8+ mini keyboard).  This was done by request to make desktop and tripod microwave ops less cluttered.

 

All the PS2 keyboard key assignments except SCROLL-LOCK in the K3NG code (as of 2022) are working on BT keyboards provided the BT keyboard has the keys.  Compact keyboards are usually missing some keys. 

 

The K3NG Keyer is an Arduino project that supports several CPUs over time.  I was able to get everything running except I ran into an issue with BT classic keyboard being discovered but then the connection attempt stalled.  I could not remedy the issue readily.  I had earlier BT keyboard test programs working under esp-idf framework so I ported the K3NG Keyer code to esp-idf to compile it then both BLE and BT Classic keyboards worked fine there.  I improved performance by putting the keyboard and main programs into their own real time operating system (RTOS) tasks that run parallel to each other.

 

You do not have to compile source code or know anything about programming, Arduino, or esp-idf to use this.  With each build I automatically generate binary firmware images that you can use 1 of 2 tools to upload to your compatible CPU board.  These are always copied up to the GitHub repository.  Instructions on how to upload firmware on in the project Wiki pages.

 

The project is located here  https://github.com/K7MDL2/K3NG_Keyer_ESP32_BT_Keyboard

 

The GitHub readme page has basic info and links the Wiki pages where more info is found for key assignments, hardware, and how to upload images.  Extensive documentation exists on the main K3NG Keyer Github site Wiki pages and there are many other resources online also.

 

I am headed to AZ for the Microwave Update conference in Tucson and other vacation travel.  When I return, I plan to fork the current K3NG keyer repository and then merge my changes in so that I can keep my version up to date with the main repo.   I also hope to dig into why BT classic failed to complete connection under Arduino IDE.

 

 

Mike Lewis, K7MDL

CN87xs

 

Mike Lewis

unread,
Nov 3, 2025, 10:27:02 PM11/3/25
to PNW...@googlegroups.com

I have added support for the old school 4x20 or 2x16 LCD display, and 1.9” and 3.2” color TFT graphics displays.   The 3.2” has a capacitive touch screen.  I plan to try to get that working and add some touch buttons under the text box.  As is, it is the same code for the 1.9” and a conifg item will switch on or off the touch stuff allowing the code to run on either display.

 

The 1.9” is very bright and would make for a super compact beacon box with full K3NG capability as desired.    The 3.2” is not that much larger.     Both units the CPU is mounted on the back.  The 3.2” has a L:I battery charge/power circuit and speaker connector and 4 mounting holes, i2c and serial connectors with a couple IO lines.  The 1.9” has a few more IO lines available.

 

I am using the default proportional fonts in a fixed width display pattern which results in odd looking gaps after narrow letters and numbers and some punctuation .  I plan to switch to fixed fonts.

 

The 3.2” TFT.

 

    

 

The 1.9” TFt

 

 

 

 

  • Mike K7MDL

Mike Lewis

unread,
Mar 20, 2026, 2:50:52 AMMar 20
to PNW...@googlegroups.com

It has been a few months since my last post on my modernization of the K3NG keyer.

 

A lot of changes have been made in that time, I think it is now about done, at least so far as software ever is.

 

There are now 2 hardware platform options.  They work and look nearly identically are both inexpensive.

 

ESP32-WROOM and Pico 2W.

 

Here is a recent shot of a 3.5” 320x480 resistive touch screen with a Pico 2 W.  It is configured for 4 rows of 4 buttons.  For 320x480 resolution screens there is a single panel of 2 rows of 8 buttons each.  Font size is large for easy reading.

 

 

The Pico solution back side

 

 

The main differences are:

  1. On ESP32 when compiled under Arduino IDE only the Rii mini i8+ BLE keyboard works.  Compiled under ESP=-IDF, BLE and BT work (K380s, Rii mini  I8+, and K380).  You can connect BLE or BT at will.   BLE keyboards require pushing the pair button, BT Classic does not.  I have configurations for several combos of graphic screens and CPU modules, most screen have the CPU on the back for easy build.  Have both capacitive and resistive touch controller options.

 

  1. On Pico 2W, it is Arduino IDE compile only and all 3 keyboards work, you choose at compile time which BT you want, BLT or BT classic.  BT classic requires you to hit the pair button for each connect,  BLE only 1 time then reconnects automatically.   At this time I support one 3.5” graphics screen and either a Pico 2W which is based on a RP2350A, or a Waveshare RP2350B Plus W, and the Waveshare 3.5” resistive touch screen with a socket on the back for any Pico board as seen in the picture above.

 

While I have Wiki pages to help build either platform, if compiling is not your thing, I provide compiled images you can load direct to the CPU.  For ESP32 this requires a tool, for Pico you just push a button at bootup and a file manager window opens and you copy the image file into it.  It automatically closes the windows and reboots with your new firmware.

 

https://github.com/K7MDL2/K3NG_Keyer_ESP32_BT_Keyboard

 

There are numerous Wiki pages there to help configure and build one.

 

With this wrapping up I have been spending more time evaluating SDR based solution for contest rover operation.

 

  • Mike K7MDL CN87

 

Reply all
Reply to author
Forward
0 new messages