SOTACAT firmware now supports Elecraft KH1

Ken WR7D added Elecraft KH1 support to the SOTACAT firmware in the 2026-01-11 version.

Since the KH1 has one jack with two functions (the ACC accessory CAT control serial port function, and the KEY keyer port function), it is a bit more limited in value compared to using a SOTACAT with a KX device. Still, you can use a SOTACAT with the KH1 to:

  • Send an Alert, internet-free, (and then use RBHhole)
  • Send a Spot, internet-free
  • Click-to-Pounce (only when internet is available): see recent spots on your mobile device - clicking one tunes your VFO to that frequency.
  • And other SOTACAT functions

The Alert is probably the most useful for a KH1 because you can do it on-summit in situations where an arrival time and summit ID aren’t known ahead of time: and then use RBNhole for spotting as you QSY. All without internet, and without sticking to a plan.

The SOTACAT can send Alerts and Spots internet free by directly synthesizing special FT8 messages that are picked up by about 130 monitoring skimmers running CWSL_Digi, SparkSDR, or other SOTAMAT compatible software. The SOTACAT teaches the KX and KH1 radios to generate the FT8 commands by transmitting the radio’s CW and rapidly changing the VFO oscillator. This method allows the radio to transmit (not receive) FSK (frequency shift keying) signals used by protocols such as FT8, FT4, RTTY, etc. without using audio.

While SOTACAT supports CW keyer memories on KX radios, it doesn’t on the KH1 (yet: but it is possible and Ken is considering it).

Software Developers: It uses the new FOnn; API in the latest KH1 firmware announced by Wayne N6KR (Elecraft). The source is available on Github.

Thank-you to WR7D: this was his first Github Pull Request and ESP32 submission. Looking forward to additional KH1 features from Ken! Thank-you to @n6kr Wayne (Elecraft) for adding the new FOnn; command to the firmware and allowing the open source community to do FSK!

73 de AB6D - Brian

17 Likes

Hi Brian,

I built a Sotacat to use with my KH1. I was able to load the prebuild firmware from the web interface, connect with my wifi and phone and view the logs on the web. I loaded 1.27 on my KH1 and set the key jack to RS232 mode. When I watch the logs it continues to loop through all of the baud rates attempting to connect, but doesn’t seem to actually connect. When I open up sotacat.local and bring up the cat page there, I get an error ā€œradio not connectedā€ on the log.

Am I missing a step? I’m going to build it from source with debug enabled but just wanted to check and make sure I wasn’t missing anything simple.

Thanks for all you do with this project!

Matthew NE3U

1 Like

It sounds like you are doing things correctly.

The KH1 support in SOTACAT was added and tested by Ken @WR7D - hopefully Ken sees this post. If not, I’ll reach out and see if he can help with your KH1 issue.

-Brian AB6D

1 Like

Mathew,

I don’t think you’re doing anything wrong. The only explanation is that the SOTACAT isn’t ā€œtalkingā€ to the KH1. There are only a couple of possibilities.

–The cable could be bad or not a data cable (if you’re using an extension cable).

–The plug might not be wired properly on your SOTACAT so check that carefully.

–The serial port on the KH1 might not be working. You can verify that by using the KXUSB cable and the KH1 Utility.

–If you have access to a KX2 or KX3 you could eliminate most of these possibilities.

Ken. WR7D

1 Like

Thanks for the feedback. I’ll keep messing with it. I build the fimware and loaded a debug copy with verbose logging, but didn’t see anything obvious there. It does seem like a communication issue with the sotacat. I ohmed everything out and it seems to be wired correctly. I connected a terminal to the kh1 and cat commands are working correctly. I’m going to put it down for a few days and come back to it, that often helps me.

1 Like

we are having the same problem with the home built sotacat. it connects to the KX2 at 38k, and changes frequency on the POTA page. But it does not seem to connect to the KH1. Looking at the logs on the sotacat, it seems to be looping through bauds, whereas when connected to the KX2, it finds the 38k and connects, and reports radio type etc. we downloaded 1.27 to the KH1 so we know the rs-232 works. any ideas? thanks. Ken K7BXI. the commercial sotacat works fine and talks to the KH1, changes frequency etc.

1 Like

Sounds like the same issue I’m having. I haven’t spend much time investigating it, but I have some time this weekend. I’m going to start off by rolling back the firmware on the sotacat and see it’s a regression issue. If the doesn’t work I’m going to see if I can hook a debug probe up to it and step through the communications and see if I can figure out what’s going on. I’ll let you know if I find anything.

You don’t need a debug probe to look at the serial. There is extensive debugging information being sent to the USB port. All you have to do is:

  • use a Web Serial / Web USB compatible browser (ex. Chrome, Opera, or Edge but NOT Firefox),
  • Connect your SOTACAT to an Elecraft radio and turn the SOTACAT on and the Radio on
  • Connect a USB cable from the SOTACAT to a computer
  • Visit SOTACAT – SOTAmāt
  • Click on the Connect to SOTACAT via USB button
  • Select the SOTACAT from the list of serial devices available (for me it is USB JTAG/Serial debug unit)
  • Click Connect
  • Click Logs & Console and do NOT click the install button.
  • You can see the debug messages from the SOTACAT while you interact with it from your cell phone, browser, etc.

Note that the stock firmware only sends limited debugging data to the USB port. For full debugging information you can build the firmware (it is open source) in DEBUG mode and you will get a lot more info.

Here is some alternative firmware for you to try: SOTACAT-firmware

  • Note: this is a beta version that has not been released yet (still in testing) which was built in Debug mode and will output much more debugging info
  • Generally you want the OTA (over the air) BIN file in that folder. Download that OTA .bin file to your phone, and then use your existing SOTACAT UI to select that .bin file from your phone and upload it into your SOTACAT.

And if you want to really debug stuff, you’ll have to set up the compiler and build from source code so you can add your own debugging logic.

73 de AB6D - Brian

1 Like

Thanks for the info. I have it set up and compiling locally with the debug release. I can see the debugging messages, you’ve done a great job with those. It just cycles through all the baud rates attempting to connect. The kh1 is working correctly the best I can tell, I’ve connected to it through a terminal session and I can execute all the api commands.

I set some breakpoints and stepped into the code a little bit and couldn’t see any immediate issues. All of my embedded experience has been with the STM32 ecosystem, so I’m still trying to figure out how to use platformio.

Matthew

NE3U

1 Like

Well if it is stuck that early trying to connect, by cycling through the baud rates, then there are only a few possibilities:

  1. Maybe it is electrically broken, and is not a software/firmware issue. For example, wrong pins used, wrong resistors for the voltage divider, static electricity fried the GPIO pin of the ESP32, etc.
  2. Maybe it is the KH1 radio not in the correct mode for CAT control
  3. Maybe you don’t have the newer firmware that when first communicating with the radio, starts with 9600 baud first, before trying other baud rates. Try connecting the CAT to the KH1 first and then turn on the SOTACAT - the current firmware starts at 9600 baud. The problem might be that when the KH1 gets serial data at a baud rate that isn’t 9600 it will interpret the signals as random data that might put the radio in a weird state. By starting at 9600 baud you avoid it ever switching to the wrong baud rate.
  4. <or something I don’t understand>

73 de AB6D - Brian

1 Like