Saturday, May 9, 2026

The Little Pi that could

  Bridging the IC-7610, KAT500, and KPA500


I’ve been working on a project to get my station fully remoted while keeping all my gear in sync. My goal was to have my Icom IC-7610 work seamlessly with my Elecraft KAT500 tuner and KPA500 amplifier, managed through a Raspberry Pi (running the RigPi image). I have documented my initial steps to facilitate operating CW remotely using wfview, RigPi Hub and some custom Python code.

Streamlining the Rig Control

I had previously set up the IC-7610 to a Raspberry pi running the rig control software. I was originally planning to use the RigPi web interface to control the radio, But the IC-7610 has a built-in remote server that has better features. So I ended up using wfview on my Windows machine to handle the direct operation of the rig. This greatly simplifies things because it manages the high-quality remote audio and spectrum display natively over the network as well as instant access to memory presets.

RigPi radio control allows to setup a Hamlib instance for each radio defined. But, wfview talks directly to the radio's internal server, the immediate operation of the rig doesn't depend on Hamlib. However, for radios not supported by wfview, or for other logging software the Hamlib server will come in handy. I personally use Log4OM for my logging, which connects via Hamlib to track frequency changes and keep my logs accurate in real-time. One can also control the frequency changes right from this software if desired.

Connecting the Elecraft Duo

The hardware side involves connecting the IC-7610, the KAT500, and the KPA500 directly to the Raspberry Pi via USB cables. For the KAT500 I used the Elecraft KXUSB cable. The KAT500 is picky. It did not accept my DIY cable with an FTDI/USB adapter. The KPA 500 was more forgiving and worked happily with a generic FTDI serial to com adapter with a DB9 terminator.

However, this is only half the battle. To make the Elecraft duo accessible to my Windows machine, I use a few key tools:

ser2net: This utility on the Pi "exposes" the physical USB ports for the tuner and amp as TCP network ports (e.g., ports 3002 and 3003).

com0com & hub4com: On Windows, com0com creates a pair of virtual ports linked together like a software "null modem" cable. I then use hub4com to bind one end of this virtual pair over the LAN to the ser2net port on the Pi. This allows my Elecraft Utilities to connect to the other end of the virtual com0com pair, seamlessly remoting the connection to the Raspberry Pi. As far as the utilities are concerned, they are operating with locally attached KAT500 and KPA500 respectively. 

The Synchronization Script

The final piece of the puzzle was getting the Elecraft gear to follow the Icom's frequency. There are other hardware solutions possible, but Elecraft does not really play nice with the ICOMs frequency output. Their advice has been to rely on the lightning fast frequency counters within the KAT500 and KPA500. There are some commercially available software that can also provide this integration; but I was not willing to go down that route.

However, as we can see we have all pieces in place for a software solution. All we need is a glue that will tie the different protocols, I wrote a simple Python script that runs on the station server.

The script polls the radio's frequency through the Hamlib server and pushes the matching frequency and band commands to the KAT500 and KPA500 via the ser2net ports. By enabling multiple connections in ser2net, the script can handle the background tracking without interfering with the Elecraft utilities I have running on my screen.

Final Results

Here is the screen image of my remote windows station. It shows the KAT500, KPA500, wfview all living in harmony. In this instance I was testing the syncing software on my Windows machine. Once I validate all things working well, I moved the script over to the RigPi host,



As mentioned earlier, I also have my remote CW keying integrated into the Pi, making the whole system a very functional, modest-budget remote station where different brands of gear work together quite well.

Monday, April 20, 2026

Remote Heaven

Freezing toes! My "ham station" is tucked into a corner of the room that gets incredibly cold during the winter. Whenever I brought this up to my XYL, she had a simple suggestion: "Why don't you just put on thicker socks?" But no self-respecting ham would settle for such an easy fix. I wanted to be freed from that icy corner and operate in comfort from my favorite spot—the recliner in the living room. This is the story of my journey to make that a reality.


My base station is an Icom IC-7610, which features built-in networking. When paired with the stellar wfview software, it allows for nearly complete remote operation. However, I am primarily a CW operator. While wfview supports remote CW, it is limited to keyboard entry. For me, the true joy of CW lies in the tactile experience of using physical paddles.


Solutions for this exist, ranging from pricey dedicated hardware to free software like Remote CWKeyer, which uses inexpensive USB-to-serial adapters to send CW over a network. Unfortunately, the latter was Windows-only, and I didn’t have a spare Windows box to dedicate to the task.

What I did have was a spare Raspberry Pi, a few FTDI serial adapters, and a cheap Chinese electronic keyer I’d bought for rigs lacking a built-in keyer. Since the IC-7610 exposes COM ports via USB and can be configured for Morse keying by asserting the DTR or CTS pins, I had the building blocks for a solution.


During my research, I discovered that the RigPi Hub and RigPi Station Server (RSS) combination seemed to offer exactly what I needed. The RigPi Hub installs on a Windows client and translates keyer clicks from a COM port into UDP packets. These packets are sent to the RSS, which "replays" them on a connected serial port. Easy peasy! I asked an AI search tool if I could send keyer data from my Windows machine and replay it as USB keying data on the IC-7610's built-in port via the RSS. The AI gave me a resounding "yes" and even provided the necessary configuration.
I burned the RigPi image and configured everything as instructed. On my Windows box, I set up the RigPi Hub and connected it to my FTDI adapter and paddles. The hub tested perfectly, showing it was receiving my clicks correctly. But when I put it all together? Silence.


Time to troubleshoot. After verifying it wasn't a networking issue or dropped UDP packets, I started digging into the RSS code. I eventually discovered that the keyer port in RigPi is always initialized as a Winkeyer device—which is incompatible with the IC-7610’s internal USB keying. Furthermore, the "RigPi Keyer" setting was designed specifically for RigPi’s proprietary hardware, not a DIY Raspberry Pi setup. I finally confirmed this in a buried piece of documentation. So much for trusting AI results!

RigPi Hub setup on windows. Notice the RigPI IP and the RigPI CW Port. Keyer connected on COM22


I had a choice: fork the RSS code and modify it, or build something myself. Since the RSS code was a bit inscrutable, I opted for the simpler route. I wrote a Python script to listen on a UDP port and assert the DTR pins upon packet arrival. By analyzing the packets sent by the RigPi Hub, I realized they were sent in a simple format and repeated to account for UDP packet loss. Once I could parse the data and ignore duplicates, I mapped the output to the DTR pins of the IC-7610. (Note: The IC-7610 exposes two COM ports, USB A and B; you must ensure CW keying is enabled for the specific port you're using). Once it was working reliably, I created a systemctl service to ensure the script would launch automatically at boot.


For my first QSO, I stayed near the rig just in case. My caution was justified: a few wires worked loose from the adapter, resulting in a "stuck" key. Once that was repaired, it was time for a real test. I heard a CQ on 30m and answered at 22 wpm, carefully avoiding the physical buttons on the radio to maintain the remote simulation. The QSO went flawlessly.

My Laptop screen ready for remote action. wfview on bottom left for rig control. I use the RigPi Hub (top left) Key button to initiate tuning.

Emboldened, I moved my laptop a few feet away and tried sending a CQ. This time, something was wrong—the cadence was off. Another troubleshooting session revealed that my laptop was entering a "power save" mode on battery, even though the charge was full. Once I plugged in the power adapter, the timing returned to normal. Happiness restored!


Finally, I moved the laptop and paddles to the living room, put my feet up in the recliner, and balanced the keyer on my lap. I heard a friend calling CQ and responded with a wonderful QSO at 28 wpm. A happier ham I could not be!


I realize that relying on COM ports and UDP makes this solution vulnerable to OS lag and network hiccups. However, unless you’re a serious contester, this setup is more than adequate for casual rag-chewing. It’s a perfect solution for operating remotely within the house, with the reassurance that I can always walk to the shack if something goes wrong. That said, I’m curious to see how it holds up when I’m truly remote, connecting back home via VPN.



Morse from the recliner by the fireplace. I used an external electronic keyer for me to be able to use a paddle because the RigPi Hub only supports a straight key


To Summarize: The final setup

1. Morse key connected to FTDI USB Serial adapter [CTS and ground pins]

2. RigPi Hub pointed at the COM port for the ahove when plugged in. 

3. RigPi Hub connected to my Raspberry pi host and at the port that my python script listens to.

4. The Python script on the PI interprets the UDP packets from RigPi Hub

5. The Python script tickles the DTR pins of the serial port of the ICOM radio

6. CW Tones emitted.


Note: If you do not have a Radio with built in serial port, you can use another FTDI adapter connected to the Raspberry Pi and have its DTR activated. You can then connect a simple audio cable to the radio's straight key input for triggering the radio.



Wednesday, April 1, 2026

Stinker from an old timer



Note: I have redacted names, callsigns and dates in the narrative 

I was surprised to see an email titled "Interference with XXXX" in my inbox from a fellow operator. Here it is in its entirety. Note this was the second email (with a previous one nearly identical to this one. I am omitting that one for brevity)

Dear Ram,

I have to admit, I am a bit disappointed you started operating on the frequency I was using this evening. Especially with another SKCC member. I am operating a Special event Station (XXX) on x.044 @XX:XX this evening. Worst of all, you never first check to see if the frequency was clear (QRL?). If you had I would have zero beat to your freq to let you know I was there operating. Back in the day we all listened first, then put out a QRL. I realize with more crowded bands and younger hams getting their ticket in a weekend, and lack of ELMERS, it becomes paramount to be more courteous than ever. Since you took over the frequency I was operating, I will bow to you and stop operating the Special event station so you can operate your more important POTA. In the future, I kindly ask that you listen first, then send out a QRL to double check the frequency is in use before you just take it. 

--73--
XXX


I was a little shaken. I was saying to myself what did you do? Questions started racing in my mind. Did I stomp on someone else? I always put out QRLs. Did I forget it that day? So hurriedly I look up the log and found that I was operating 500Hz above the frequency mentioned. Even though the tone of the email irritated me and made some unreasonable assumptions about my operations (such as not putting out QRLs) , I sent the following replies. Originally I had checked the wrong date and responded with the following. Subsequently after realizing that error, verified the date and time in question and sent the second email below.

I looked up RBN Again and only see me on x44.5. I'm wondering if your filters were wider...

73 


XXX,
Rechecked XXX XX. I see no spots for me on x44 for me around the time frame.  All spots for me are on x44.5. Please see attached image. I usually shy away from round number frequencies especially when on the field. I typically operate 5w QRP or at most 10W on bad days. I was 10W that day with a simple wire antenna on the tree.  As a QRP operator I have been run out of the frequency many a time by inconsiderate operators and contesters some of whom are old timers from the halcyon age you allude to. So let's not tar and feather the whole crop of newer operators as there are examples of bad operators of varying tenure and skills. I've learnt to grow a thicker skin than having to dwell on that too much. 

Wishing you the best in the future. 

Ram
KE8UEX
73

Note: Not posting the RBN image was attached to the email that indicated the frequency and dates I was operating on.

I was hoping this clarification should be sufficient. However, I get the response below indicating that operating 500Hz above on CW is considered stomping on the frequency 500Hz below.  The request now seems to be that I should stay 1KHz from his station? He also acknowledged he heard my QRL and walks back his early accusation of me not doing so. Instead of saying sorry he goes on to patronize me for putting out the QRL.

Hello Ram,

I can understand your response, however, the confusion lies in that I was the one on xx.044 holding QSO's for the special event, not you, In looking at my notes I did hear you start out with QRL, which I replied to let you know I was operating 500Hz below you then you started calling CQ pushing me off a frequency because of other stations not zero beat, which got to the point I had to QSY off. I think the issue may lay in if you were using a CW filter? If you were and most CW filters are usually set around 2-300Hz, which means your filters tight response you would not have heard me because I was out of your window. All I am suggesting, in the future maybe open up your filter a bit when putting out a QRL. I commend you for doing that. As crowded as the bands are today because we now have to share our coveted bands with Chicken banders (CB'ers). I guess, really no harm done since I did a lot of QSO's volunteering for the week long special event station and was only kicked off the frequency once. Hahaha! I appreciate your reply.


Hmm... the bands must have been especially favorable for me as a 10W station to push out a QRO special event station 500Hz away! Needless to say, this reply irked me further as the as he still insists I was in the wrong. Other than the suggestion about widening the filter the patronizing/dismissive attitude added to the irritation. The concluding statement dripping with sarcasm made me determine a more direct approach was needed to get the point through. I sent the following reply. Note it is split into two emails because the send button was hit accidentally during composition


xxx,
You said: the confusion lies in that I was the one on x.044...

There is no confusion here.  I clearly understood your original missive. I am responding to your unjust accusations you raised in your original email.

You said: I am a bit disappointed you started operating on the frequency I was using this evening. 
This is clearly not borne out by the evidence I have presented. Operating 500Hz above you on CW is in no way operating on your frequency. This is at the highest end of ARRL recommendations for separation of 150-500Hz separation between stations. This should accommodate even the most egregious non zero-beaters.

You said: Worst of all, you never first check to see if the frequency was clear (QRL?). 
I see that you recanted this in the subsequent email. I understand apologizing is hard, but I appreciate you conceding that this was also an unfounded accusation not based on facts.

You said:  ... it becomes paramount to be more courteous than ever... I will bow to you and stop operating the Special event station so you can operate your more important POTA
Courtesy should extend beyond the air. While I understand the irritation of operating in crowded bands, I respectfully push back on the tone in your original email. I'm sure if you were sitting across from me you would not have used that tone. I'm not sure where the condescension for POTA operations come from given that you're an active POTA hunter as well. I also believe operating special event station does not confer any special privileges on the amateur bands. 

You said in the later email:  All I am suggesting, in the future maybe open up your filter a bit when putting out a QRL
A good suggestion that I may consider especially when expecting a lot of vintage gears on the air. I still do believe expecting a 1MHz separation for CW operations seems a little bit excessive.

You said: we now have to share our coveted bands with Chicken banders (CB'ers)

You said:  really no harm done since I did a lot of QSO's volunteering for the week long special event 
I am glad that you had a successful event. I did have a great outing at the park that day as well. I still wonder if QSYing was such a non event, what prompted the vitriolic email in the first place. 


===== THE SECOND EMAIL TO COMPLETE THE ONE ABOVE

xxx,
Sorry the previous reply was unfinished. Few corrections and the completion of the email follows: 

I said: . I still do believe expecting a 1MHz separation for CW operations seems a little bit excessive
It should read 1KHz

You said: we now have to share our coveted bands with Chicken banders (CB'ers)
I try to stay away from in-group and out-group thinking. We amateur radio operators work with what we have been granted

Hope you have fun on the air
73

Ram
KE8UEX


To which I got the classiest of replies from a courteous old-timer. 

It's clear we think differently, and no sense wasting anymore of my time with you. 

--73--

This goes on to prove age and wisdom does not equate to class. If this operator believes he is trying to educate other hams, taking a softer tone initially would probably fall on more receptive ears. For whatever it is worth, this operator has impressive credentials in the QRZ page which I respect. His supercilious attitude and sense of entitlement... I do not. 

I responded with the following. What would you have done?

XXX.
Sorry you feel that way. Wish you the very best
Ram
73
KE8UEX





Saturday, March 21, 2026

Humble Pi(e) day!

 Saturday, March 14 2026 [3/14]. For some math enthusiasts who subscribe to the US centric view of writing dates, it is Pi day. For some ham radio enthusiasts like me it was strange day with weird propagation.

I started of the day to get my early morning CW fix. Nothing like beginning the day with a good ragchew QSO. On weekends, I usually lurk on the 80m bands very early in the morning and then switch on to 40m as the propagation there gets better.  But today, the bands were flat and I did not hear any of the regulars on the band. This early harbinger should have informed me to be the tough band conditions that day.

But the information did not percolate in. Instead, I spent some time solving the New York Times Crossword and their other puzzles. A little while later, my wife wanted me to run some errands. Unwilling to let this chance go by, I decided to go in for a POTA activation. However, I was not prepared for how rough the bands were. It usually takes me about 20-30 minutes to rustle up 10 contacts. What should have been a quick 30 minute detour into the park turned into a 90 minute nailbiter. I hopped all over the bands. Very few CQs were answered. I knew that if I waited for someone to contact me after hearing my CQ it was going to take much longer to get my 10 contacts. I decided to answer the CQs of other POTA activators. I usually do not do that as I am at topped out at 10W on my POTA setup. I cannot compete with the KW stations in a pileup. But today, it was different. It was a mix of desperation and desire to help out other activators facing rough conditions. Most hunters decidedly stayed away due to rough band conditions; there was no pileup. It was miraculous that some of the POTA stations heard me. I eventually ended up with 11 contacts with about 7 of them being park-to-park QSOs initiated from my end.

I reflected on the day and wondered why I even decided for an activation that day. Then I realized this was perhaps due to the strange propagation I experienced earlier in the day. I was looking at my RBN reports of my CQs on 40m in the morning. I noticed that while most of the usual stations in the 300-600 mile range did not hear me, I was heard loud and clear in ZL. Perhaps I was hoping for a first ZL contact from the park. Perhaps one day that dream would come true!









Sunday, June 22, 2025

Ten or nothing!

Ever since I picked up ham radio and POTA, I have tended to seek out opportunities park activations any time I travel. I have also learned to try and make activations as unobtrusive as possible when travelling with family. For example, I would attempt to plan our route so that park activations coincide with breaks in our road trip. That gives the family an opportunity to stretch out their legs in a park, while I try to nab a quick activation. 

Recently, I had an opportunity to travel to California. This was going to be a short overnight trip and I was going solo. That freed me considerably in scheduling my activations. I was flying into John Wayne International in Orange County around 11:00 am. The wedding reception I was attending was at 6:00 pm and the hotel room was only available at 4:00pm. 

On the day before the travel, I decided to take my KH-1 with me as that is the only radio that will fit in my luggage for this trip. I looked around the maps and found that Crystal Cove State Park was about 15 miles from the airport. Since I had a rental car, that made it easy. My plan was to pick up the rental and head straight on to the park. I decided to walk along the beach trails and see if I can get an activation at the same time.

The flight out to California and the rental pickup went according to plan. The three hour time difference between the east coast and the west meant that I was ravishingly hungry. I stopped by at a Subway near the park and picked up a footlong. 

To say the park was beautiful would be an understatement. The weather was a near perfect 78F (26C) . The skies were clear and a beautiful breeze blowing.

I picked a trail that would put me on the beach. I readied my KH-1 and spotted myself on the POTA website. Then I started CQs as I started to walk along the trail. My walk along the trail led to increasingly beautiful views. But the sitrep for the activation was not good. Even after about half an hour of calls; there were no takers. I decided to pack it in. 

As far as busted activations go the situation could not have been better. Ten contacts or more would have been the ideal situation. However, having no contacts means I do not have to log it to the POTA website.  My POTA record(?) will not be tarnished (gasp!) with yet another busted activation! I thoroughly enjoyed the walk and the scenery could not have been more uplifting. You will find a few pictures below and I hope you would agree with me. 

A sandy trail lined by local vegetation leads to a beach at a distance
Along the Beach trail at Crystal Cove State Park

A view of a boardwalk leading to a beach. The ocean is seen at a distance
Boardwalk at Crystal Cove




Sunday, June 15, 2025

Gifted

Father's day! June 15, 2025. Time to saddle up and ride. Performed the safety check on bike:  Brakes, clutch, tires, lights and flashers -- roger. Radio and CW paddle: roger; Antenna and cables: roger, Battery and power cables: roger; log book: roger,  snack pack: roger. All set to go!

I ride to the park close to my QTH : About a 30 minute ride. I arrive at my usual spot in the park; then duck walk my motorcycle back into the slot. I proceeded to shed my gloves, helmet and riding jacket and look up at my usual tree. All's well except for the table. I moved the picnic table out of the direct sunlight into the shady part under the tree; making sure I will be in the shade for the next couple of hours. Moving picnic tables on grassy surface sure was hard work. After catching my breath and resolving to get into better shape, I throw the arborist line up the tree and get my wire antenna ready. Setting up the KX-3 was quick. Time to put out CQs. The bands have not been great these days and I wanted to spot myself on the POTA website. I reach out to my pocket to fish my cell phone out. My brain did not expect the feeling of emptiness in the pocket. Hmmm...no phone. Did I drop it on the way? Or did I leave it at home. After the initial panic, I tried to recall my departure. Did I take my phone or not? After some thinking I realized I did not verify that I took my phone out. I must have left it on the charger at home. 

Drats! I did not want to go back home to retrieve it. So it is either abandon the attempt or power through it. I opted to stay. I started my CQ sequence. My hope is that I can get a responder to spot me. I resolved to complete the activation irrespective of how long it took. 

I was getting increasingly despondent as my CQs went unanswered. As I was surveying my environs I spotted a car making its way slowly through the parking lot. It bore an uncanny resemblance to my vehicle. You know the feeling you get when you spot another vehicle on the road that is the same make and model as yours? There is a fleeting and tenuous feeling of kinship that seems to bind you to the other driver. You're curious about the other person who made the same choice as you. You want to at least get a look at the other person. I had the same feeling here especially where the color choice was also identical.

The car wound its way through the parking lot. After a few moments, it was making a beeline towards me. Hmm..this is interesting. As the car got closer, I realized it was my son who was driving it. He had realized I left my phone at home and had made the trip to the park to hand if off to me! Needless to say I was dumbfounded. A better Father's day gift I could not imagine!





Saturday, June 14, 2025

Ruined?

 I have always had mixed feelings mixing radio with vacations. My experience in mixing radio with vacation was not always a pleasant one [https://motopota.blogspot.com/2024/05/oil-and-water.html] . But as I clicked on the button to reserve our tickets to the UK earlier this year, I knew in the back of my mind that my baggage would contain a HF radio. As a bonus, our tickets included checked in baggage. That would mean I would be able to pack my JPC-12 vertical antenna with a ground spike should I need better reach.

I knew I would not have much time for activation. So I decided to stick with my KH-1. We landed in London and it was a pretty busy couple of days. The KH-1 was always with me as we were walking around the city. Surprisingly most attractions were not even interested in the radio when they performed the baggage check. They just wanted to know what it was and I was on my merry way. Even the Supreme court of the UK permitted me through with my radio. Only the British Museum security would not permit the radio to be taken inside. However, they were very polite and offered to hold it for me during my visit. I took them upon it with a little trepidation, but was glad when I was rejoined with my radio upon my exit.

As we were strolling through Hyde Park on one of the days, I decided to try out the KH-1. I heard many stations primarily on 20m. They were mostly from continental Europe, but my attempt to reach back did not elicit much success. The urban conditions and the propagation were against a QRP radio that time.

Unfortunately, that was the only opportunity to play radio during our three day sojourn in London. But the sights and sounds of the city more than made up for this minor setback. 

Soon it was time to depart London and head our way to Edinburgh! My itinerary had some time through the Scottish highlands later. It took me through a couple of POTA entities and I thought I can try and get an activation coincident with a lunch break as we drove along. However, we arrived in Edinburgh early in the evening to a typical Scottish weather. It was blustery with on and off showers. Our son was supposed to join us later in the day, so we had a few hours to ourselves. As we settled into the hotel, I check the POTA map and found out that Calton Hill in the city was within a POTA entity. It was a few minutes away from my hotel and my wife and I felt the walk would do us good after the train journey. It was a steep climb to up to the hill. We were rewarded with great sights overlooking Edinburgh. We strolled through the Greek architecture and towards sunset, I decided to try the KH-1 again. This time as well I was hearing quite a few stations, but none could hear me. RBN reports were also not that great. The blustery winds and oncoming rain forced me to call it quits and head back to the hotel.

The weather would not be our friend. As we travelled through the Highlands we encountered heavy downpours during the midday hours. The much anticipated POTA activation of the park eluded me. 

However, I still did not lose hope. Our itinerary included driving back from Inverness back to Cambridge and then on to London. Our son was a history buff and insisted that we stop by Antonine Wall. Bingo.. This was my opportunity. The early Roman ruins was also a POTA entity. The place was perfect..




As we strolled along the park taking in the sights, I was able to use my KH-1 and rustle up enough contacts for a successful activation. Despite the tiredness at the end of the day, all of us enjoyed this little detour. I especially was ecstatic as I was able to snag my first overseas park in addition to enjoying the beautiful ruins. The 150 mile trip to our next planned stop did not seem daunting any more.



The Little Pi that could

  Bridging the IC-7610, KAT500, and KPA500 I’ve been working on a project to get my station fully remoted while keeping all my gear in sync....