Skip to main content...

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 pistar-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.

8027412287 - (8 hours ago) * Minor: fix m17 SID spacing issue - Chipster (HEAD -> master)
admin/configure.php | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

bdea877e92 - (13 hours ago) Minor: fixed the service typo many noticed, but could not/did not want to fix - Chipster
includes/system.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

5224b7798c - (25 hours ago) * Minor: combine YSF/DG-ID status to one panel in side bar when DG-ID Gw is enabled. Also, fix typo in profile manager page - Chipster
mmdvmhost/repeaterinfo.php | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)

4d7c0df987 - (26 hours ago) * Minor: combine YSF/DG-ID status to one panel in side bar when DG-ID Gw is enabled. Also, fix typo in profile manager page - Chipster
admin/advanced/config_manager.php | 2 +-
mmdvmhost/repeaterinfo.php | 20 ++++++++++++--------
2 files changed, 13 insertions(+), 9 deletions(-)

b110902fa9 - (2 days ago) Minor: fix link in config page - Chipster
admin/configure.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

ef9eeb0d27 - (2 days ago) * Minor: tweak config page admonition notes - Chipster
admin/configure.php | 12 +++++++-----
lang/dutch_nl.php | 2 +-
lang/english_uk.php | 2 +-
lang/english_us.php | 2 +-
lang/german_de.php | 2 +-
lang/italian_it.php | 2 +-
lang/norwegian_no.php | 2 +-
lang/polish_pl.php | 4 ++--
lang/portuguese_br.php | 2 +-
lang/portuguese_pt.php | 2 +-
lang/romanian_ro.php | 2 +-
lang/slovenian_sl.php | 2 +-
lang/spanish_es.php | 2 +-
lang/spanish_mx.php | 2 +-
lang/swedish_se.php | 4 ++--
lang/thai_th.php | 2 +-
16 files changed, 24 insertions(+), 22 deletions(-)

38c9bca8be - (2 days ago) * Minor: tweak navbar a bit - Chipster
admin/advanced/ | 4 ----
admin/advanced/ | 3 ---
admin/advanced/ssh_access.php | 3 ---
admin/config_backup.php | 3 ---
admin/power.php | 3 ---
admin/sysinfo.php | 3 ---
admin/update.php | 3 ---
config/changelog.php | 3 ---
css/pistar-css-mini.php | 13 ++-----------
css/pistar-css.php | 13 ++-----------
10 files changed, 4 insertions(+), 47 deletions(-)

e547e57852 - (3 days ago) * Minor: small UI improvements to config page...again - Chipster
admin/configure.php | 155 ++++++++++++++++++++++++++--------------------------
1 file changed, 78 insertions(+), 77 deletions(-)

64c19e57d8 - (3 days ago) * Minor: small UI improvements to config page - Chipster
admin/configure.php | 3 +++
css/pistar-css.php | 18 +++++++++++-------
2 files changed, 14 insertions(+), 7 deletions(-)

fd0acd3e6d - (3 days ago) * Intermediate: Always show DMR/NXDN ID fields in config page (eliminates an extra form post/apply step). Also, if the user has an NXDN and/or DMR ID as they enter their callsign in the config page, the NXDN and DMR fields will auto-populate with their information found in the local DBs. - Chipster
admin/configure.php | 110 ++++++++++++++++++++++++++++++++++++++++++++----
includes/CSV_README.txt | 3 ++
includes/NXDN.csv | 1 +
includes/user.csv | 1 +
4 files changed, 106 insertions(+), 9 deletions(-)

5a6355f4e7 - (3 days ago) * Minor: tweak mobile view/style to accomodate profile button - Chipster
css/pistar-css-mini.php | 84 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 84 insertions(+)

67c47e55b3 - (3 days ago) * Minor: add user manual link to footer; update "Profile" button icon in navbar - Chipster
admin/configure.php | 8 ++++----
css/pistar-css-mini.php | 39 ++++++++++++++++++++-------------------
css/pistar-css.php | 6 +++---
index.php | 2 +-
4 files changed, 28 insertions(+), 27 deletions(-)

f9f771b2b4 - (3 days ago) * Minor: cleanup and clarify verbiage on Profile Manager page - Chipster
admin/advanced/config_manager.php | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

7dcb03fd33 - (3 days ago) * Intermediate: "Configuration" button no longer in main dashboard navigation bar: is is now visible only in `Admin` page nabivation bar (one must go into admin page first). `Profile` button added to main dashboard navigation bar to allow users quick access to their profile management. Also, when in Admin page, navigation bar cleaned up to display only Admin-centric functions. - Chipster
admin/configure.php | 2 +-
css/pistar-css-mini.php | 9 +++++----
css/pistar-css.php | 19 +++++++++++++++----
includes/execute-background-tasks.php | 4 ++--
index.php | 18 +++++++++---------
5 files changed, 32 insertions(+), 20 deletions(-)

f3d7053560 - (4 days ago) * Minor: more legacy backend code cleanups. - Chipster
mmdvmhost/bm_links.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

025357f196 - (4 days ago) * Minor: update backend hostfile update calls to use new sbin util - Chipster
admin/advanced/fulledit_template.php | 2 +-
admin/advanced/services_exec.php | 2 +-
admin/config_backup.php | 2 +-
admin/system_api.php | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)

3a6b733baf - (5 days ago) * Minor: update config page backend logic - Chipster
admin/configure.php | 52 ++++++++++++++++++++++++++++++++--------------------
1 file changed, 32 insertions(+), 20 deletions(-)

398b5c75c0 - (7 days ago) * Minor: fix amall bug for M17 station ID literals in config form - Chipster
admin/configure.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

ab1fefd364 - (7 days ago) * Minor: small tweaks to updater frontend & backend - Chipster
admin/update.php | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

98550d833d - (8 days ago) * Minor: UI and functionality imporovements to Admin/System Manager Page - Chipster
admin/system-manager.php | 31 +++++++++++++++++--------------
includes/system.php | 4 ++--
2 files changed, 19 insertions(+), 16 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. # 8fed1a2 - Document last revised: 12/1/2023
[ Permanent Link ]