Skip to main content...

The WPSD Project

Welcome to the official web page of the WPSD Project.

Main Dashboard Screenshot

WPSD (“WPSD Plausibly Stands for Divergence”) is a next-generation, digital voice software suite for amateur radio use. It is used for personal hotspots and repeaters alike. It supports M17, DMR, D-Star, Yaesu System Fusion (YSF/C4FM), P25, NXDN digital voice modes & POCSAG data/paging.

WPSD began as a derivative (“fork”) of, and has greatly-diverged from, the very popular Pi-Star software; and WPSD has evolved into its very own software suite and distribution. It is available as an installable disk image(s), and multiple platforms are supported. The WPSD Project is free and open-source software (FOSS).

Table of Contents:

Getting Help/Support

Download WPSD

Choose the disk installation image that was created for your hardware…

Raspberry Pi Disk Image (for RPi Zero, Zero 2 and Models 2, 3, 4, etc.):


Orange Pi Zero Disk Image:


Nano Pi Neo Disk Image:


ZUMSpot Mini 1.3 Disk Image:

This is the official and custom-built disk image specific to the ZUMspot Mini 1.3 Hotspot.

ZUMSpot Elite 3.5 Disk Image:

This is the official and custom-built disk image specific to the ZUMspot Elite 3.5 Hotspot.

ZUMSpot USB Stick Disk Image:

This is the official and custom-built disk image specific to the ZUMspot USB Stick Hotspot for use on a Raspberry Pi. A Raspberry Pi computer is required.

DVMEGA EuroNode Disk Image:

This is the official and custom-built disk image specific to the DVMEGA EuroNode Hotspot.

BridgeCom SkyBridge MAX/Plus Disk Image:

This is the official and custom-built disk image specific to the newer SkyBridge MAX and older SkyBridge Plus Hotspots.

You will need an SD card of at least 8GB to install these disk images.

SHA-256 Checksums for the Disk Image Files: WPSD_SHA256-SUMS.txt

Installing WPSD

The setup of the WPSD disk image is similar to that of Pi-Star’s:

  1. Download the disk image.

  2. Use a tool such as Raspberry Pi Imager or Balena Etcher, to write the disk image to your SD-Card. These tools will automatically decompress the .xz file as well.

  3. Optional: Use my WPA Config File Generator to automatically connect the dashboard to your WiFi…

  4. Otherwise: After about 5+ minutes post-bootup, you can connect to the “Pi-Star-Setup” WiFi network to login to the dashboard and configure your hotspot after it’s booted…

  5. Insert the SD-Card into your hotspot and bootup!

  6. The default login is;

    User: pi-star

    Password: raspberry

Important Info for First Bootup:

  1. When first booting from the WPSD disk image, go grab a coffee, drink, etc. and let the file-system auto-expand and the rest of the system initialize. Be patient. Full details on this can be found in a dedicated article.
  2. When installing from the WPSD disk image, it’s a best practice (and better) to run an update before setting up or making configuration changes to your hotspot. This ensures that setup/configuration changes you make are the most tested and up-to-date.

Updating WPSD

Once you install WPSD, it will automatically be kept up-to-date with any new features/versions/etc. This is made possible via the native, nightly updating process.1

If you do not leave your hotspot powered on during the night, you can also manually invoke the update process via the dashboard admin section (Admin -> Update).

It is highly recommended that you simply leave your hotspot(s) powered on at night, since WPSD is rolling release/continuous delivery software - updates are rapid and frequent!

Features, Enhancements and Omissions

Although WPSD began as a derivative of the original Pi-Star software and shares some minor similarities, WPSD is vastly different and is its own software. Expect to learn about these differences and nuances to become familiar with WPSD…

The following lists describe the features, enhancements and omissions as compared to the original Pi-Star software…

Note that this is not an exhaustive list.

Functionality Features

  • Full APRSGateway Support: Selectable APRS Data Sharing with specific modes.
  • Full DGId Support.
  • “Live Caller” screen; similar to a “virtual Nextion screen”; displays current caller information in real-time.
  • Current/Last Caller Details on Main Dashboard (name/location, when available).
  • Talkgroup Names display in target fields (Brandmeister DMR, NXDN and P25 support only).
  • YSF/NXDN/P25/M17 link managers gives the ability to change links/rooms/reflectors/TGs on-the-fly, rather than going through the configuration page.
  • DMR Network Manager allows instant disabling/enabling of configured DMR networks/masters; and fast switching of XLX reflectors and modules. Handy for “pausing” busy networks, talkgroups, timeslots, etc.
  • Full M17 Protocol Support. (See M17 Notes below…)
  • BrandMeister Manager revamps galore:
    • Now displays connected actual talk group names.
    • Connected dynamic talk groups now display idle-timeout time (due to no TX).
    • Added ability to mass-drop your static talk groups; and mass re-add the previously linked static talk groups.
    • Added ability to batch add/delete up to 10 static talk groups at a time.
  • “Instant Mode Manager” added to admin page; allows you to instantly pause or resume selected radio modes. Handy for attending nets, quieting a busy mode, to temporarily eliminate “mode monopolization”, etc.
  • “System Manager” added to admin page; allows you to instantly:
    • Disable / Enable OS Firewall (habdy if you are already behind a good one).
    • Disable / Enable Cron, in order to prevent updates and WPSD services restarting during middle-of-the-night/early AM operation.
  • Ability to configure POCSAG hang-time from the config page.
  • Native Nextion screen support built-in; no futzing around with Nextion drivers/scripts.
  • Selectable DMR Roaming Beacon Support: Network or Interval Mode (or disabled) - for actual repeaters only.

User Interface / Design Features

  • Updated user interface elements galore, styling, wider, bigger, updated fonts, etc.
  • Optional “Simple View”; shows only activity: no mode status, hardware status, etc. Just activity data. Accessed via http://your-hotspot-url/simple/
  • Country-of-origin flags for callsigns.
  • Improved and graphical CSS/color styling configuration page; easily change the look and feel of the dashboard.
  • User-Configurable number of displayed Last Heard dashboard rows (defaults to 40, and 100 is the maximum).
  • User-Configurable font size for most of the pertinent dashboard information.
  • Reorganized and sectioned configuration page for better usability.
  • System process status reorganized into clean grid pattern, with more core service status being displayed.
  • User-Configurable 24 or 12 hour time display across the dashboard.
  • Connected FCS and YSF reflector names and numerical ID both displayed in dashboard left panel.
  • Additional hardware, radio and system information displayed in top header; which can be toggled.
  • Admin page split up into logical sub-sections/sub-pages, in order to present better feedback messages when making changes.
    • Note: Last-Heard and other dynamic tables are hidden in the admin sections by default, allowing users to focus on the tasks-at-hand and their outputs. The Last-Heard data can be toggled in these areas, however.

Features in Official Pi-Star Which are Intentionally Omitted in WPSD

  • DSTARrepeater mode/controller type removed: WPSD operates in the more modern and updated/supported MMDVM mode only, and the legacy DSTARrepeater functionality is gone. You can still run WPSD as a D-Star hotspot/repeater, of course.
  • Upgrade notice/nag in header (unnecessary and a hacky implementation). This has been replaced by my own unobtrusive and configurable dashboard update notifier; displayed in the upper-right hand side of the top header.
  • “Upgrade” feature via the dashboard and command line (pistar-upgrade) is removed. The “Update” feature via the dashboard and command line (wpsd-update) takes care of all upgrades/updates.
  • Custom BannerH2 (etc.) text options have been removed (added clutter and I never used it). Instead, the hostname is displayed in the browser title.
  • “GPS” link in Call Sign column of dashboard (superfluous and unreliable).
  • CPU Temp. in header; when CPU is running “cool” or “normal” recommended temps, the cell background is no longer colored green. Only when the CPU is running beyond recommended temps, is the cell colored orange or red.
  • No reboot/shutdown nag screen/warning from admin page (Superfluous; you click it, it will reboot/shutdown without warning.).
  • Yellow DMR Mode cell in left panel when there’s a DMR network password/login issue (poor/inaccurate and taxing implementation, and can confuse power users that utilize my Instant Mode Manager, where the default cell is amber colored for paused modes [color is user-configurable].). Instead, the actual network name is highlighted in red when there’s a login issue.


Not all pages shown here. Note, that you can customize the colors to your preferences…

Main Dashboard

Admin Landing Page

DMR Network Manager

BrandMeister Manager

M17 Manager

D-Star Manager

Instant Mode Manager

Profile Manager

Look & Feel Manager

Live Caller Screen

Moblie Device View

Notes about M17 Protocol Support

M17 protocol support requires updated MMDVM Modem Firmware or MMDVM_HS HotSpot Firmware of at least v1.6. Ergo, you may need to update your firmware using the included MMDVM_HS (etc.) firmware flash/update programs in WPSD.

Here are the relevant device firmware upgrade commands.

Known Issues & Incompatibilities

Raspberry Pi Zero-W, v1.x (1st Gen., single-core CPU)

If you have a first-generation Raspberry Pi Zero2 (Pi Zero (W) Rev.1.1 armv6l) with the single-core processor*, and have installed the RPi WPSD disk image, you need to do a couple of things before you can access it:

  1. Install a WiFi config file before you boot the image, or connect it to Ethernet. Network connectivity is required for first boot-up.
  2. Let the image boot and configure for about 30 minutes, otherwise you will not be able to access the dashboard.

If you fail to do these things, you will get a “502 Bad Gateway” error when attempting to access the dashboard.

If 30 minutes passes, and you still cannot access the dashboard, simply SSH into the hotspot and run:

sudo wpsd-update

* Note: The official ZUMSpot Mini 1.3 Disk Image (below) does not have this issue, since I built the disk image for that specific hardware.

TGIF Spots with Nextion Displays

WPSD disk image installations do work, however, you may lose some of the superfluous TGIF Spot Nextion Display functionality. If you install WPSD on TGIF Spots with Nextion displays, and the displays don’t work the way you want, don’t complain about it or ask us about it; as their strange software hacks3 are not a part of WPSD.

You can always load a different and stable Nextion layout file which requires no software hacks, however. But you’re on your own with these hotspot displays.

Restoring and/or Using Configurations/Settings from “OG” Pi-Star Software

Because WPSD uses much more modern and updated backend software, configuration backup/restores from the original Pi-Star software is incompatible for the most part, and is unsupported. It is always recommended that you use an appropriate WPSD disk image for your hardware, and setup/configure from scratch.


Displayed below, is a live ChangeLog, pulled from the source code repository upon page load. Displayed are the last 20 changes. For the full change history, you will want to browse the entire commit/change history.

e6c92d0a4d - (9 hours ago) * Minor: fix link to PM in advanced if no profiles exist - Chipster (HEAD -> master)
admin/advanced/index.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

7b98cdc3f0 - (9 hours ago) Merge branch "kc1awv-pm-fix" - Chipster
1d54900693 - (9 hours ago) * Minor: fix url for profile manager in warning banner - KC1AWV - kc1awv (kc1awv-pm-fix)
admin/configure.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

cc49d75b28 - (11 hours ago) * Intermediate: refactror and redesign of Profile Manager; with new "quick save" function. Navigation bar update: Profiles is now first, and removed redundant "dashboard" menu link when already in the main dashboard page. Updated modem firmware update page a bit for better readability - Chipster
admin/advanced/config_manager.php | 272 ----------------------------
admin/advanced/fw_upgrade.php | 12 +-
admin/advanced/ | 1 -
admin/profile_manager.php | 366 ++++++++++++++++++++++++++++++++++++++
css/pistar-css.php | 8 +
index.php | 4 +-
6 files changed, 381 insertions(+), 282 deletions(-)

b44930a461 - (18 hours ago) * Minor: tweak service mgmt. status verbiage - Chipster
admin/advanced/services.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

3d5e648c7c - (2 days ago) * Minor: update modem strs. - Chipster
mmdvmhost/functions.php | 3 +++
1 file changed, 3 insertions(+)

afe7ceca24 - (2 days ago) * Minor: fix typo on modem calibration page - Chipster
admin/advanced/calibration.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

34ac4869c3 - (2 days ago) * Minor: improve mobile view font size/style - Chipster
css/css-base.php | 4 ++--
css/fonts.css | 1 -
css/live-caller.css | 1 -
css/pistar-css-mini.php | 10 ----------
live/index.php | 1 +
5 files changed, 3 insertions(+), 14 deletions(-)

92db384ce0 - (2 days ago) * Minor: fix small JS error in config page [although the func() still worked...oddly] - Chipster
admin/configure.php | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

60c18a2980 - (2 days ago) * Minor: update fonts in dashboard views, sans for most things, and monospace only for callsigns; was-a-long-time-a-cummin - Chipster
css/pistar-css.php | 6 +++++-
mmdvmhost/lh.php | 28 ++++++++++++++--------------
mmdvmhost/live_caller_table.php | 2 +-
mmdvmhost/localtx.php | 4 ++--
4 files changed, 22 insertions(+), 18 deletions(-)

3fdd081548 - (3 days ago) * Minor: tighten up data table css logic - Chipster
index.php | 7 +++++--
mmdvmhost/localtx.php | 4 ++--
2 files changed, 7 insertions(+), 4 deletions(-)

a23ce294b2 - (3 days ago) * Minor: DMR status panel with cross modes enabled with now show "Cross-Mode" vs, "Cross-over". - Chipster
admin/configure.php | 6 +++---
mmdvmhost/functions.php | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)

315b417774 - (3 days ago) * Minor: improve form logic on Configuration page for APRSgatwway and GPSd sections. - Chipster
admin/configure.php | 44 ++++++++++++++++++++++++++++++++++----------
1 file changed, 34 insertions(+), 10 deletions(-)

23bf20c008 - (3 days ago) * Minor: update icons - Chipster
css/pistar-css.php | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

db6a50455a - (3 days ago) * Minor: code cleanup - Chipster
mmdvmhost/localtx.php | 1 -
1 file changed, 1 deletion(-)

d3825782c3 - (3 days ago) * Minor: slightly improve mobile view; hide empty Local RF TX table on index pages unless there are actual logged Local RF transmissions. - Chipster
index.php | 2 +-
mmdvmhost/localtx.php | 27 +++++++++++++--------------
mmdvmhost/radioinfo.php | 2 +-
simple/index.php | 4 ++--
4 files changed, 17 insertions(+), 18 deletions(-)

ff61b1629a - (3 days ago) * Minor: incr. timeouts a tad in API calls - Chipster
mmdvmhost/bm_manager.php | 4 ++--
mmdvmhost/tgif_manager.php | 11 ++++-------
2 files changed, 6 insertions(+), 9 deletions(-)

eddcf33279 - (4 days ago) * Minor: incr. http(s) timeout in BM Magager API lookup - Chipster
mmdvmhost/bm_links.php | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

a1dd77952e - (4 days ago) * Minor: fix YSP status panel verbiage when paused - Chipster
mmdvmhost/repeaterinfo.php | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

dd36b17b20 - (4 days ago) * Minor: Instant Mode Manager backend tweaks - Chipster
admin/instant-mode-manager.php | 221 +++++++++++++++++++++++------------------
1 file changed, 125 insertions(+), 96 deletions(-)

How to Contribute

There is a dedicated document explaining how to contribute to the WPSD project.


WPSD used to be a one-man show (me), but many people have contributed code, etc. to the project, and we now have an official core dev. team. Thank you all! With the exponential growth, doing this alone would have sucked. I am grateful for all of you!

Of course, lots of credit goes to the venerable and skilled, Andy Taylor, MW0MWZ, for creating the wonderful Pi-Star software in the first place.

The USA callsign lookup fallback function uses a terrific API,, provided by Josh Dick, W1JDD.

The callsign-to-country flag GeoLookup code was adopted from xlxd… authored by Jean-Luc Deltombe, LX3JL; and Luc Engelmann, LX1IQ. I run an XLX(d) reflector, plus, I was able to adopt some of its code for WPSD, ergo, I am very grateful. The excellent country flag images are courtesy of Hampus Joakim Borgos.

A big “thank you” goes to the amazing people/devs/sysadmins from the wonderful M17 Project for hosting the WPSD disk image mirror server!

Credit must also be given to to Kim Heinz Hübel; DG9VH, and Hans-Juergen Barthen; DL5DI, both of whom arguably created the very first MMDVM and ircDDBGateway dashboards (respectively); of which, spawned the entire Pi-Star concept.

So much credit goes toward the venerable José Uribe (“Andy”), CA6JAU, for his amazing work and providing the game-changing MMDVM_HS hotspot firmware suite, as well as his MMDVM_CM cross-mode suite.

Lastly, but certainly not least; I owe an enormous amount of gratitude toward a true gentleman, scholar and incredibly talented hacker…Jonathan Naylor, G4KLX; for the suite of MMDVM and related client tools. WPSD would have no reason to exist, without Jonathan’s incredible and prolific contributions and gifts to the ham community.

Project Name & Etymology

When WPSD was first released in late 2020, I named it “W0CHP-PiStar-Dash”, since it was a major fork to the popular Pi-Star software (the “OG Red Software”).

Over time, the project diverged and evolved exponentially from its humble beginnings. During this time, I, as well as other users simply called the software “WPSD” as an acronym, or shorthand for “W0CHP-PiStar-Dash”.

However, more time had passed, and the popularity plus the user install base had increased exponentially. This growth in popularity also garnered WPSD contributors, developers, volunteers and fans. By this time, many were already calling the software “WPSD”, so it stuck.

At the same token, the developers/volunteers and I had agreed that since the software is now truly its own; and that removing “Pi-Star” references from code, “branding”, etc. would behoove the project (and the users). By removing the old Pi-Star references, we thought that it would be fair to the original Pi-Star project, and help users understand that WPSD is in fact, very, very different.

Of course. WPSD is a now a recursive acronym! 😆

So, here we are today - WPSD is the name of the software suite and project. And WPSD is a completely and deliberately different acronym from what it started as; it is now a much-adorned recursive acronym:

WPSD = WPSD Plausibly Stands for Divergence

That’s right; WPSD stands for “WPSD Plausibly Stands for Divergence”. With the Keyword being ‘divergence’, because the project has, and continues to diverge, improve, and evolve from the “OG Red Software”.


  1. WPSD occasionally queries our servers in order to determine if updates are available. Additionally, every WPSD installation has a unique UUID for each device; used for web/repo-traffic capacity planning/analytics, as well as for troubleshooting user issues and bugs. This data is used internally, exclusively; and is not shared. If you do not want this data collected, simply do not install or use WPSD. The UUID is derived from the devices’ unique processor serial number found in /proc/cpuinfo

  2. WPSD was not created for single-core and low-powered hardware; such as the first generation RPi Zero, etc. (armv6l). The dashboard will run slowly on under-powered hardware at times. Please consider yourself warned. Also, please ignore all of the hams on various support mediums saying, “anything more than a Pi Zero is overkill”. These ignoramuses have no idea what goes on under the hood in order to display meaningful info on the dashboard. Hint: it’s a lot, and it’s very resource-intensive. Ignore them…they have no idea what they are talking about. 

  3. TGIFspots with Nextion displays are shipped with customizations; and this custom code is what makes some of the superflous functions of the TGIFspot displays operate the way they do. These customizations are not a part of, nor are they supported with WPSD; as some of it replaces and/or modifies core and crucial system software. 

Ver. # ca9f077 - Document last revised: 12/9/2023
[ Permanent Link ]