I believe JS8Call (after this referenced as JS8 sometimes – JS8Call is the software, JS8 is the mode)  is one of the best recent enhancements to amateur (HAM) radio. While for some it’s still considered experimental it is past due to come out of that category and become an accepted mode of communication. JS8 and JS8Call fit a wide variety of needs of communication.

One of the most frequently asked questions in many of the JS8 groups is “how come all I hear is heartbeats?” or “why doesn’t anyone answer a CQ?”. Well, there may be a few good answers to that. First of all, no one is in the same time zone. Additionally many of the users that are actively running JS8 stations or not retired, travel quite a bit, or are at work for many hours a day. There is a reason these operators (myself included) use JS8.  Read on if you want to know more.

There is a common misconception among the time honored elite of the amateur radio community that digital modes are not true radio, and the only “true” way to communicate is to do so “person to person” preferable via CW (Morse Code) of phone (voice) transmission. In my honest opinion this is just a failure to want to accept that time moves on. So while many of the functions that JS8Call and JS8 allows will not interest this community I hope that others will see the wide range of possibilities here.

Let me describe my station. My station operates 24/7 on JS8 mostly on 20M (maybe in the near future I will bring up a second instance on 40M).  The computer control is an Ubuntu Linux server. Yes, it has internet connectivity but other than reporting spottings the internet passes no messaging traffic, all messaging to my station is done via radio. The antenna is a half-wave dipole, inverted V, with a peak of around 60ft above ground level. The radio is a Yaesu FT-840 and the sound modem is a USB Signal Link.  I do have Rigctld installed and Hamlib for rig control.

In addition to the JS8Call installation I have some neat python software running as well:

  1. JS8Net – Provides access and python interface to the TCP port that allows command line/Python interface to the JS8Call software. JS8 also provides a neat web interface that will allow remote access (read only) to the band as received at my location.
  2. WxServer – Provides weather services for any location upon demand.
  3. MBServer – Microblog server that allows my station to serve bulletins and local weather info 

I also run a python script that pulls the weather information from the Logia weather station in my backyard and makes it available to MBServer and WxServer for “real time” weather.

So, what does my setup allow the “visiting” operator to do? 

  1. On rare occasions when I am actually home and not traveling for work I could sit in front of the monitor and “ragchew” with someone wanting to talk. It’s as simple as listening for a CQ, clicking on that station, and saying, HOW COPY?
  2. Anyone can leave me a message. In the call window type: KO4YAW MSG [enter the rest of your message here]
  3. I will see your station in the right station list with a message symbol, click on mailbox, and read your message. To reply, I can click reply and it will attempt to send, or better yet if band conditions are poor I will right click on your station (call sign), click “Store Message” and then type a message that you will be notified of the next time we “see each other” on the bands. You then QRY MSGS and QRY MSG # to pick up your message.
  4. You can access the microblogs by a whole slew of commands, but make sure  you add the @MB group and send a M.Q command to that group to see any active Microblogging site. 
  5. Just by enabling heart beats and heart beat responses you can go to PSK Reporter and see how propagation is and who may be hearing you. Great way then to go ahead and send messages. Don’t worry if they are asleep, if you do it with the MSG function they will see it when they get up.
  6. If you enable “Auto Response” and “Relay allowed” in your configuration you can be part of the passing of messages. Let’s say station AAAA wants to get to station ZZZZ and they cannot do so directly. They can go down their station list (right column) and hover over the station and see if anyone may be hearing ZZZZ that is also hearing AAAA (them). Let’s say my station KO4YAW is hearing both AAAA and ZZZZ then AAAA can send the following: KO4YAW MSG TO: ZZZZ [MESSAGE]  and this will allow ZZZZ to pick up the message when they see it. For more instantaneous results AAAA could also send KO4YAW > ZZZZ  [MESSAGE] and hope that someone is on the other end to see it real time. Or better yet, AAAA could send KO4YAW > ZZZZ MSG [MESSAGE] and that would store it in ZZZZ’s mailbox. ZZZZ could respond in the same manner.

So, one mode and associated software allows: 

  1. Real time communication
  2. Stored message retrieval
  3. Stored message forwarding
  4. Propagation  reporting
  5. Bulletin services
  6. Weather Services
  7. APRS services, I didn’t even begin to describe that capability.

And, because of the TCP interface, anyone with more ideas can develop them.

So the next time all you are seeing on the bands is a heartbeat, try sending a message. Who knows, when that other station operator sees it, you may get one back. 

My stations JS8Net public interface, stop by and see what my station is hearing:


Mbserver – the microblog package (make sure you scroll down and read the readme under the code):


Js8Net – the TCP interface but also includes the great collector and monitor software that I run on the public interface (above):

(I know there are some distribution packages out as well, but I much prefer to work from the git repository)

Leave a Reply