Enabling NW Digital's DRAWS on Raspbian 'Buster' (or later releases)

Posted in ham, tech; tagged with howto

This HOWTO provides basic Raspberry Pi / Raspbian OS installation and configuration information to assist amateur radio operators unfamiliar with Linux or Raspberry Pi in enabling the NW Digital DRAWS (Digial Radio Amateur WorkStation) hat device on a Raspbian “Buster” (or later) operating system.

Note: This guide only takes you through preparing your Raspberry Pi and DRAWS device at a basic level. If you want a turnkey solution that configures a myriad suite of software more or less automatically, you should stick to the currently (Summer 2019) supported Compass Linux distribution (links found within the NW Digital page linked above).

Last update: August 30 2019, Mike Watkins VE7WV

Who might want to read this guide?

  • Those wanting to run Buster, today, before NW Digital releases updated information and scripts to support Raspbian Buster (or later) OS releases.
  • Those who want a more limited installation of drivers and software and/or are familiar with Linux and Raspberry Pi 3 or 4 and like to drive rather than have install scripts configure their OS.
  • Complete newbies to Linux / Raspberry Pi that have a sense of adventure.

This guide is to help you get a Raspbian OS installed (very high level guidance) and the device recognized; the rest is up to you.

Follow-up articles will document how I’m using DRAWS and provide configuration information.

Assumptions - tools and Linux familiarity

This guide assumes you have the tools available to you to make a SSH terminal connection to your newly running Raspberry Pi. If you don’t already know what SSH is, starting to work with Linux may feel daunting. That said, a Raspberry is a perfect Linux device to spend some time with to learn. Small, useful and cheap - what could be better?

Hams are experimenters - don’t hestiate to dive in if you enjoy adventure and learning.

If your usual computing environment is Windows and you don’t yet have a terminal emulator that can make connections via ssh, grab a tool like Putty and become familiar with it using a guide like this one.

An alternative for Windows 10 users worth considering: Windows Subsystem for Linux, the discussion of which is out of scope for this HOWTO. That said, I highly recommend spending the time to install it - choose a stock Debian WSL and you’ll be using a “system” that feels a lot like your Pi.

  • WSL - the original WSL will easily serve the needs of most hams who simply want a handy Linux environment to work with and provide terminal services to connect to our other Linux machines, Raspberry Pis.

  • WSL2 provides meaningful updates but you’ll know if you need them. Accessing WSL2 means accepting Windows Insider Builds which can introduce system instability in your regular Windows life. Don’t want that? Stick with original WSL for now.

Preparation

  • Obtain a good quality SD / microSDXC card. I use anything from 16GB - 64GB depending on what’s on sale; the larger cards I also use for photography.

  • Start downloading Buster (this guide is written in summer 2019) or a Raspbian OS newer than Buster. Raspbian downloads page - you can use “Lite” or either of the full desktop images.

Downloading any of the images will take awhile.

Other tools you’ll need:

  1. SD Memory Card Formatter - get this one from the SD Card association. Don’t allow the native Windows format dialog to format your SD card - use this tool. Please.

  2. Image writer - get a modern one such as balenaEtcher (free and available for Windows, Mac and Linux).

Prepare your SD / microSDXC Card

Warning: After you’ve formatted the card using the correct tool and/or written the Buster image and/or when you reinsert the SD card containing Buster into your computer it’s likely your OS (Windows or Mac at least) will automatically raise a prompt suggesting you format it. Don’t. Really, don’t.

  1. Format the SD card using the SD Memory Card Formatter. I give the volume the name of the OS, in this case, BUSTER.

  2. Using balenaEtcher, write the Buster .zip file image you downloaded to the SD. You can drag and drop the file on to Step 1 of balenaEtcher, or click the button and navigate to your downloaded image.

  3. Eject the card (it’s safe to do so), and then re-insert it. After dismissing any prompts from Windows (or Mac) to format the card, you should see a boot directory in your file explorer - this is a small FAT32 partition created on the SD card such that it can be “seen” and edited on Windows and compatible operating systems.

Enable Wireless networking and SSH

Note: The two files we are creating in boot will be automatically moved into the Raspbian (Linux) file system when the device boots up. Don’t be surprised when they are missing should you need to try again (wrong password?).

  1. Enable sshd: Navigate to boot on the SD card and create a file called ssh with no file extension or contents. Creating this empty text file will enable the sshd service when we boot up the Raspberry Pi; we need sshd running in order to login over the network using our terminal.

  2. Configure access to your wireless network for the Pi3 / Pi4: Optional, if you are using an Ethernet connection intead. Raspberrypi.org documentation on “headless” installation. To enable wireless access for your Pi, in the boot create a file called wpa_supplicant.conf with the following contents, edits as appropriate. Your country might be “us”; mine is “ca”; replace, without the <>, the appropriate values for your wireless SSID and password (psk):

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=<YOUR TWO LETTER COUNTRY CODE>
    
    network={
        ssid="<YOUR NETWORK NAME>"
        psk="<YOUR NETWORK PASSWORD>"
        key_mgmt=WPA-PSK
    }
  3. Update config.txt to enable the DRAWS driver. We’re making a few changes to config.txt, also found in boot, to enable the DRAWS device. These changes disable your Pi’s on-board audio device (skip if you know you need it for another purpose). Disabling the on-board device also happens to make getting to the udrc settings in alsamixer more convenient.

The dtoverlay=draws,alsaname=udrc line in [all] includes the appropriate driver for the DRAWS Hat on boot.

    # Enable audio (loads snd_bcm2835)
    # DRAWS: May as well disable if you don't need this
    # dtparam=audio=on

    # ... at the end of the file

    [all]
    #dtoverlay=vc4-fkms-v3d
    # DRAWS related:
    # this adds the udrc driver to the device tree
    dtoverlay=draws,alsaname=udrc
    # https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md
    force_turbo=1

Safely eject the SD card and install it in your Pi 3 / Pi4.

Install the DRAWS Hat on your Pi & Boot

  • Install the DRAWS Hat; if you power it via the 12V plug you do not need to seperately power the Pi.
  • Boot (apply power) the Pi

Identify the Raspberry Pi on your network & connect

Your wireless hub likely has an administrative tool that gives you a listing of all the devices on your network. Look for the Raspberry Pi you’ve just configured. The default hostname is raspberrypi; you’ll probably find the device most easily by looking at the MAC address, searching for a vendor prefix b8:27:eb.

  1. Connect to the Pi with your terminal or from the command line within a terminal

    ssh pi@your.ip.address
  2. Change the default password (raspberry) now.

    passwd

Check the DRAWS Hat has been detected

If your edits to boot/config.txt were done correctly the OS will have loaded the appropriate drivers for the device. Run aplay -l which should return:

    **** List of PLAYBACK Hardware Devices ****  
    card 0: udrc [udrc], device 0: bcm2835-i2s-tlv320aic32x4-hifi  tlv320aic32x4-hifi-0 []  
      Subdevices: 1 / 1  
      Subdevice #0: subdevice #0

Upgrade the pi (this will take awhile)

    sudo apt-get update && sudo apt-get -y dist-upgrade

Reboot after it completes successfully;

    sudo reboot

That’s the end of this guide; at this point you have a usable OS and a working DRAWS card. Next up - installing applications to make use of the DRAWS device.

Stay tuned for application specific HOWTOs, the first will be configuring Direwolf as an APRS internet gateway and digipeater.