Dire Wolf is a sound card based modem for packet radio. It can be downloaded for Windows and Linux here: https://github.com/wb2osz/direwolf

Although there is a reference to MacOS, there are no further build instructions for Mac. Google reveals some info: one site references an outdated version, the other one proposes to install the brew build/port environment to provide the cmake tool. Installing an environment like brew for just one tool, which actually is a build tool by itself, is .. well .. odd.

So I decided to build Dire Wolf on Mac without any hacks or special tools. After using the result for some time, it’s time to share it.

First step, install the proper tools:

  • Xcode with command line utilities, download from the app store.
  • Cmake IDE that includes the cmake tool. Download latest release from cmake.org, install the app and follow the instruction to enable the CLI tools:
    sudo “/Applications/CMake.app/Contents/bin/cmake-gui” –install

Next, build the portaudio library from source. Audio fans will know the squeezelite audio player. That program uses portaudio as well and produces stunning audio on Mac.

Portaudio can be downloaded from http://files.portaudio.com/download.html. Build and install the libraries like this:

tar xvzf pa_stable_v190700_20210406.tgz
cd portaudio
./configure && make
sudo make install
--> libraries are stored in /usr/local/lib.

Now it’s time for Dire Wolf. Just follow the official instructions:

git clone http://github.com/wb2osz/direwolf
cd direwolf
mkdir build && cd build
cmake ..
—> cmake should give two warnings about naming uppercase vs. lowercase.
make
sudo make install
—> installs manuals pages, binaries and docs
make install-conf
—> installs config files in user's home directory !

That’s all there is to it. Edit the config file with proper audio devices to start decoding. I use aggregate device names (explained here) and trigger PTT via RTS on the serial port. The result looks like this (all comments removed):

ADEVICE "9700-RX" "9700-TX"
CHANNEL 0
MYCALL DH4FR
MODEM 1200
PTT /tmp/IC-9700_13003307_A RTS
AGWPORT 8000
KISSPORT 8001

The special device file (/tmp/IC-9700_13003307_A) is explained here.

Many APRS user programs like UIView or PinPoint are Windows only. When using the KISS or AGW protocols via TCP/IP, you can run these programs in Parallels. Just change localhost in the config to your Mac’s IP address and Dire Wolf on Mac starts talking (howling ..) to PinPoint on Windows.

4 Comments

  1. I am running the M1 Mac with OSX 12.4. I do what to install Dierwolf to at a minimum do Winlink email with Pat. Presently I cannot get past installing Cmake. the command failed below.
    sudo: “/Applications/CMake.app/Contents/bin/cmake-gui”: command not found

    Do you know if this be installed on the M1 Mac?

    1. Author

      Hi Tim,

      On my Intel Mac running Catalina, cmake-gui is a link to ../MacOS/CMake. So you could try:
      “sudo /Applications/CMake.app/Contents/MacOS/CMake –install” instead.
      I noticed you wrote “sudo:”, maybe a typo, but it’s sudo without “:”.

      Looks like this command just creates some links so other scripts can find the cmake tools:

      ‘/usr/local/bin/cmake’ -> ‘/Applications/CMake.app/Contents/bin/cmake’
      ‘/usr/local/bin/ctest’ -> ‘/Applications/CMake.app/Contents/bin/ctest’
      ‘/usr/local/bin/cpack’ -> ‘/Applications/CMake.app/Contents/bin/cpack’
      ‘/usr/local/bin/cmake-gui’ -> ‘/Applications/CMake.app/Contents/bin/cmake-gui’
      ‘/usr/local/bin/ccmake’ -> ‘/Applications/CMake.app/Contents/bin/ccmake’

      Hope this helps.
      Best regards,
      Frank

  2. If it’s helpful to anyone, I was getting an error compiling PortAudio. After some perusing of the PortAudio documentation, I tried replacing “./configure” with

    ./configure –disable-mac-universal

    I’m not sure why that fixed the error, but maybe it has something to do with my Mac being an M1 Pro and not having some dependency required for an Intel Mac. Also I’m running MacOS Sonoma 14.1.1.

    Thanks for this guide Frank!

Leave a Reply

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

47 + = 50