Python interfaces with Yaesu FTX-1 utilizing UART and USB-audio

I was wondering: How hard would it be to create a proof of concept for myself that indicates how difficult (or easy) it is to use Python 3 for interfacing with my Yaesu FTX-1 radio.

Short answer: it’s quite easy. If you know a little bit about Python programming, how UART works and a bit about tone generation, anyone can do this in an afternoon.

This proof of concept assures me that I can make tools myself that are specialised and optimized for use with my FTX-1. An example would be to be able to run a VARA FM or some Packet soundmodem, but return to the previous state the radio was in, afterwards.

Imagine, you want your Winlink email being checked every 30 minutes. But you also want to sweep the bands or do some scanning on VHF, for example. You have limited equipment and you want to switch fast between both modes, automatically if possible.

Utilizing a small Python script that interfaces between your sound modem and the transceiver would be able to do that:

  1. A cron-job is active that schedules to check email over Packet radio every 30 mins.
  2. You are sweeping the bands or just scanning.
  3. The cron-job fires and runs a Python script that prepares the radio.
  4. All current settings and VFO-positions are stored in memory
  5. The radio is now set in the mode and frequency for use with the soundmodem that is required to check the email
  6. The Winlink is doing the email check and perhaps some other Packet stuff is being performerd, depending on your needs
  7. After Winlink and such are done doing what they needed to do, the Python script restores the previously stored settings and positions of your radio
  8. Your radio continues doing whatever it was doing right before the cron-job fired to check emails.
  9. Different cron-jobs or scheduled events can be chained together, so a lot of different stuff can be combined and automated with the same rig with the same antenna:
    • Checking mail
    • Sending APRS beacon
    • Automated voice or CW call to another frequency or multiple frequencies in sequence
    • Act as a digipeater for a brief moment of time
  10. As a bonus there could be a ‘Not now‘ or ‘skip‘ button to quickly terminate a cron-job triggered radio ‘takeover’ and let you just do whatever you were doing. (If for example you were listening in on something important)
  11. The Python script can also be used for some really advanced scanning: Scan certain frequencies more often than others, instead of just cyclic, scan hold longer for certain frequencies, and quick sweeps for others. Change RX-treshold (squelch-ish) to sensitive for certain frequencies, to pick up the faintest signals, but make it less sensitive for others, because of congestion, etc.

This is just an idea of what a simple Python script could mean for us hams. At least to me. And I’m glad I know now that interfacing with my radio in this manner is possible.

73

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *