Running piHPSSDR on MacOS
including DigiModes with virtual audio cables
piHPSDR for MacOS
Because I am not familiar with Windows (only MacOS and LINUX), I had to look for an alternative to PowerSDR or Thetis.
During the last year, I did not only port piHPSDR such that it also runs on MacOS, but also worked out tons
of improvements, e.g. making PURESIGNAL and DIVERSITY functional both with the old and the new protocol.
See my reports on "piHPSDR+STEMlab (old protocol" and "piHPSDR+ANAN7000 (new protocol)"!
Since I am in close contact with John Melton, the main developer of piHPSDR, all this is now included in the
"official" piHPSDR repository
(https://github.com/g0orx/pihpsdr),
they can also be foundin my github account
(https://github.com/dl1ycf/pihpsdr).
You can use Microphone and Headphones connected to HAMlab, but you
can equally well use the built-in Microphone and audio output from your
Mac, or you can use, for example, an USB headset.
For Digi modes, I run fldigi or wsjt-x along with piHPSDR on my MacOS laptop, and here
it is best to use "virtual audio cables" that route the "audio" digitally between the
applications, without ever converting them to an analog signal.
This is a screen-shot of piHPSDR on my MacBook Air,
- connected to HAMlab,
- using virtual audio cables to do WSJT-X.
More about MacOS virtual audio cables: see below.
Virtual Audio Cables for MacOS
For going digi you need two things: CAT control and audio routing. Using CAT control,
a program such as wsjt-x can set/read the frequency or activate PTT.
CAT control is no problem since both programs use
hamlib. Simply select the "OpenHPSDR piHPSDR" rig model and an
appropriate port (19090 is fine). Take care to start "rigctl" within
piHPSDR and use the same port number.
The problem was how to get the
audio from the SDR application into the digimode program and back. In
principle, one could use two different audio interfaces connected by
two stereo audio cable. But it is not natural to have the signal
converted from digital to analog, feed it through a cable and convert
it back to digital. This is where "Virtual Audio Cables" enter the
scene.
A virtual audio cable is a sound
device that can be used by two applications. While application A opens
the device for audio output, application B opens it for audio input.
The audio signal "sent" by application A can then be "read" by
application B.
There is one company where you can buy this. It is names "Loopback" from
Rogue Amoeba (google "rogue amoeba loopback" and you find it).
One can also (with modest effort) program such a device driver. It offers two virtual
audio cables names "SDR RX" and "SDR TX". This driver can be found at
my github account
(https://github.com/dl1ycf/MacOSVirtualAudio).
Security
Notice: this device driver is a kernel extension (kext). It can only be
used if Apple's SystemIntegretyProtection is switched off, unless you
have a certificate to code-sign such kernel extensions (I don't have).
The code on github can be compiled using XCode, but a pre-compiled kext
is there as well. I strongly recommend to buy "Loopback", since Apple's security
protection is not a bad idea and it is not recommended to switch it off.
Using VirtualAudioCable for Digimode with piHPSDR
Within the piHPSDR application,
select "SDR-RX" as audio output device in the RX menu, and "SDR-TX" as
input (microphone) device in the "TX" menu. Be sure to check the "Local
Audio" check-boxes. Then, for example in WSJTX, use "SDR-RX" as the
audio input device and "SDR TX" as the audio output device. That's it.
Now the audio that is produced within piHPSDR is transported fully
digital to WSJTX and back.
DL1YCF, July 2018.