ToughBook CF-31

For ham radio EmComm field work reconditioning a used Toughbook 31 with Linux Mint Xcfe can be done for under $400.
In 2026 a new Toughbook 40 base unit retails with shipping for around $5,100 out the door. With upgrades the cost exceeds $6,500.
As of June 2026 I offer CF-31 units reconditioned, loaded with emcomm software and tested starting at $350 with a 30 day gaurantee for normal use and care.
These units are an excellant choice for POTA and off grid emergencies. Built for harsh environments, its primary draw for hams is its massive, sunlight-readable screen, built-in serial ports for rig control, and resilience against drops, rain, and freezing temperatures. For SOTA you have to consider the Toughbook CF-31 8 pound weight.

Keys
Screen Brightness - FN->F1 Down, FN->F2 Up
Sound Volume - FN->F5 Down, FN->F6 Up

Distros - good audio, touch screen
Bluetooth
Paired LC-B41 Earbud on Mint 22.3 Xfce

Repo

To get latest source for localhost:
You will need github login/password fron me.
Before you pull from git, wipe your current localhost
Backup /var/www/html
Thunar del html folder
Open terminal. Nav to /var/www/html.
git clone https://github.com/koglvt/toughbook.git .
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

If you prefer I can provide a zip file you can use to update your localhost.

Install

Below script does it all. Skip JS8Call. Set JS8Call-2.5.2-x86_64.AppImage in site bin folder to run as a program(Executable)
git clone https://github.com/km4ack/73Linux.git $HOME/73Linux && bash $HOME/73Linux/73.sh

Change Conky Callsign
Hamradio->Conky Preferences
Enter your callsign->Continue->Select default->Load config
Settings

Callsign
To change to your callsign for this reference localhost web site:
Open terminal: Ctrl->Alt-t
Enter changecallsign
Revise the callsign variable to your callsign.(Be sure to use quotes)
const callsign = "KO6LVT";
Save the file and exit the editor (Ctrl + O, Enter, Ctrl + X in nano).
Close the terminal and clear your browser cache(Ctrl->r) to see your callsign updated in the title and navbar.


Change callsign manually
Edit the const.js file in the js folder.

RTL-SDR

To get your RTL-SDR Blog V4 working on a Panasonic Toughbook CF-31 running Linux Mint, you must purge generic drivers and build the customized Osmocom V4 drivers.
  • You cannot use the default repository drivers.
    The RTL-SDR V4 requires a newer, modified driver branch containing the necessary upconverter and tuner logic.
    Follow this complete step-by-step pipeline to purge conflicting TV drivers, compile the V4 drivers, and get your software running.
  • 1. Purge Old Drivers
    Standard Linux repositories distribute an older driver branch that will cause the V4
    to output only static or fail entirely.Open your terminal.
    Remove any pre-installed RTL-SDR packages.
    sudo apt purge ^librtlsdr
    sudo apt autoremove
  • 2. Install Build Dependencies
    You must compile the official RTL-SDR Blog V4 Drivers from source.
    Install the required build tools first:
    sudo apt update
    sudo apt install libusb-1.0-0-dev git cmake pkg-config build-essential
  • 3. Clone and Build the V4 DriverExecute these commands sequentially to clone the correct driver
    branch, compile it, and install it to your system:
    git clone https://github.com
    cd rtl-sdr-blog
    mkdir build
    cd build
    cmake ../ -DINSTALL_UDEV_RULES=ON
    make
    sudo make install
  • 4. Reload Rules and Blacklist TV DriversLinux Mint will mistake your SDR for a generic USB DVB-T television
    dongle and block access to it.Copy the hardware rules to your system:
    sudo cp ../rtl-sdr.rules /etc/udev/rules.d/
  • 5. Blacklist the default kernel TV module by creating a configuration file:
    echo "blacklist dvb_usb_rtl28xxu" | sudo tee /etc/modprobe.d/blacklist-rtl.conf
  • Reboot your Toughbook CF-31.
  • 5. Verify the Connection
    Plug your RTL-SDR V4 into a USB port. Test if the system
    initializes the hardware correctly by running:
    rtl_test

Sound

configure PipeWire to use a 48 kHz sample rate
and a 32-bit format (S32_LE), as these are the most reliably supported by the CF-31's Intel HDA audio hardware.
The key steps are:
Verify Hardware Support:
Use cat /proc/asound/card*/codec#* or
aplay -D hw:X --dump-hw-params /dev/zero (replace X with your card number) to confirm the supported sample rates and formats.
The CF-31's audio typically supports S16_LE and S32_LE, but not S24_LE.
Set the Profile: Ensure the correct audio profile is active. For full duplex SDR work, use
pactl set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo+input:analog-stereo.

/usr/share/alsa-card-profile/mixer/paths
analog-output.conf | 
GPS
To determine if your Panasonic Toughbook CF-31 has GPS, you can check the BIOS settings.
Check the BIOS:
Restart the Toughbook and press F2 when the Panasonic logo appears.
Navigate to Advanced and select the Network submenu.
Look for a GPS option; if it is listed as "Installed" or "Enabled," the hardware is present.
tty port
dmesg | grep tty
gpsd
gpsd is the standard Linux service for translating raw NMEA GPS coordinates into readable data.
sudo apt update && sudo apt install gpsd gpsd-clients libgps-dev Edit gpsd config
sudo nano /etc/default/gpsd
Values
START_DAEMON="true"
USBAUTO="false"
DEVICES="/dev/ttyUSB0" <-- (Replace this with the correct tty port from dmesg)
GPSD_OPTIONS="-n"
Bias Tee
The primary warning for the RTL-SDR Blog V4 bias tee is that you must not connect it to a DC short-circuited antenna unless an LNA (Low Noise Amplifier) is placed between the antenna and the dongle.
While the circuit includes thermal self-resetting fuses and overcurrent protection, leaving the bias tee on while short-circuited for an extended period (days) can permanently damage the LDO or fuse.
Key safety and usage guidelines

Online Reference
v4 Users Guide
SDR++
Users Guide |  Manual | 

Linux Mint 22.4 Wilma needs the unbuntu noble release, ie - sdrpp_ubuntu_noble_amd64.deb
Copy from Downloads to Tmp to avoid install errors(permissions issue) ..
radio@radio-cf31wbp50lm:/tmp$ sudo apt install ./sdrpp_ubuntu_noble_amd64.deb


Initial Steps
  • Increase the RF gain from zero to a higher value in the configure menu.
  • Reduce the range slider on the right of the SDR# window to about -70 (for RTL-SDR dongles).
  • Enable the “Correct IQ” setting to remove the center spike if using an R820T/R820T2, or enable “Offset Tuning” in the configure menu if using an E4000/FC0012/13.
  • Turn off the “Snap to grid” setting, or adjust the PPM offset accordingly.
  • Set the 'Mode' to the correct setting for the signal that you are listing to.
Screen Layout


Dependancy Problems
Install fails
dpkg: dependency problems prevent configuration of sdrpp:
sdrpp depends on libfftw3-dev; however:
Package libfftw3-dev is not installed.
sdrpp depends on libglfw3-dev; however:
Package libglfw3-dev is not installed.
sdrpp depends on libvolk-dev; however:
Package libvolk-dev is not installed.
sdrpp depends on librtaudio-dev; however:
Package librtaudio-dev is not installed.
Fix
sudo apt install -y libfftw3-dev libglfw3-dev libvolk-dev librtaudio-dev
apt --fix-broken install

Online Vids
Quick Start | 
Manual
Panasonic CF-31 Operating Manual |