Skip to main content...

W0CHP-PiStar-Dash (WPSD)

Dashboard Screenshot

This is my very highly modified and customized fork of MW0MWZ’s Pi-Star software, and I call it “W0CHP-PiStar-Dash” (abbreviated as WPSD). There are so many large changes, divergences and new features, it merited my own fork/version.

In fact, it’s pretty much its own distribution at this point; especially now that the WPSD disk/OS images are now based on newer operating systems and software.

Table of Contents:

Warnings, Caveats and FAQs

  • Read The FAQs!
  • This code/project is a moving target, has bugs (like any code does) and can be unstable. It also consumes more system resources due to the myriad improvements.
  • If you plan on running my software on a single-core Pi-Zero 1st gen. or very old hardware,1 be prepared for my software to run slowly sometimes. I created this software specifically for modern, multi-core CPU hardware.
  • Read The FAQs again!

Getting Help/Support

  • Do NOT ask for for W0CHP-PiStar-Dash support in any official or unofficial Pi-Star support page/forum/medium/etc. This is not Andy’s (MW0MWZ) original Pi-Star software!
  • Before you ask for help, read how to properly ask for help.
  • Some really great users, fans and contributors of W0CHP-PiStar-Dash have setup a Facebook Group and a Discord Server to get community support, etc. These are the only official online support mediums for my software.
  • XLX-493 ; Module E is the W0CHP-PiStar-Dash Chat Module. A direct DMR conference to this module/room is bridged with BrandMeister; simply call TalkGroup 3170603.
  • Issue / Bug Tracker and Pull Requests / Patches:
    • DO NOT ASK FOR SUPPORT. Repo and issue tracker access is for developers/hackers and contributors only, as well as verified bugs.
    • The issue tracker is NOT for:
      1. Support requests
      2. Feature requests
      3. Other topics not germane to bugs, issues, etc.
    • You may be directed to file an issue report here by developers when necessary.

Known Issues & Incompatibilities

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

If you have a first-generation Raspberry Pi Zero (Pi Zero (W) Rev.1.1 armv6l) with the single-core processor*, and have downloaded my 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.


If you have a DVmega EuroNode or the like, and install my NanoPi NEO WPSD disk image on it, you will likely lose all wireless functionality (Ethernet still works, however). This is because the DVmega folks create their own older Buster image, tailored to their custom hardware.

However, USB-type WiFi dongles/adaptors that are Debian/Raspbian compatible do work.

TGIF Spots with Nextion Screens

WPSD disk image installations are supported, however, you may lose some of the superfluous TGIF Spot Nextion screen functionality.

If you install WPSD on TGIF Spots with Nextion screens, and the screens don’t work the way you want, don’t complain about it or ask us about it; as their strange hacks are not a part of WPSD.

Restoring and/or Using Configurations from “OG” Pi-Star Software May Not Always Work

Sometimes, configurations from the original Pi-Star software are not compatible with WPSD. This is because WPSD always uses the latest versions of upstream software, like MMDVHhost and its related ancillary gateway programs; and these newer versions are not always backward-compatible with old configurations. The best ways to deal with this, it to use an appropriate disk image and setup/configure from scratch, or perform a “Factory Reset” and configure from scratch.

Download W0CHP-PiStar-Dash

Now that you’ve been adequately informed of the rules, caveats and the risks, keep reading to learn how to install W0CHP-PiStar-Dash.

First, you will want to 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.):

Raspberry Pi Disk Image Download: WPSD_RPi_Latest.img.xz

Orange Pi Zero Disk Image:

Orange Pi Zero Disk Image Download: WPSD_OrangePiZero_Latest.img.xz

Nano Pi Neo Disk Image:

Nano Pi Neo Disk Image Download: WPSD_NanoPiNeo_Latest.img.xz

ZUMSpot Mini 1.3 Disk Image:

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

ZUMSpot Mini Disk Image Download: WPSD_ZUMspot-Mini_Latest.img.xz

ZUMSpot Elite 3.5 Disk Image:

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

ZUMSpot Elite Disk Image Download: WPSD_ZUMspot-Elite_Latest.img.xz

ZUMSpot USB Stick Disk Image:

This is an 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.

ZUMSpot USB Stick Hotspot Disk Image Download: WPSD_ZUMspot-USB_Latest.xz

BridgeCom SkyBridge Max/Plus Disk Image:

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

SkyBridge Max/Plus Hotspot Disk Image Download: WPSD_SkyBridge-Max_Latest.img.xz

SHA-256 Checksums for Disk Image Files:


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

Installing W0CHP-PiStar-Dash

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

  1. Download the image.

  2. Use a tool such as Balena Etcher to write the image to your SD-Card. This tool 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.
  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 W0CHP-PiStar-Dash

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

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), or by command line:

sudo pistar-update

It is 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 (not an exhaustive list)

The following lists describe the features, enhancements and omissions as compared to the original Pi-Star software. It’s important to learn about and explore these differences.

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.
  • TGIF Manager; now displays connected actual talk group names. (NOTE: Since TGIF has moved to a new platform with no complete API available, this currently does not work until TGIF’s API is made available.)
  • “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 the intrusive and slow Pi-Star Firewall.
    • Disable / Enable Cron, in order to prevent updates and Pi-Star 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 W0CHP-PiStar-Dash

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

Notes about M17 Protocol Support

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

If you have an obscure modem or an MMDVM repeater board, you will need to download, compile and install the MMDVM modem firmware or the MMDVM_HS hotspot firmware yourself in order to gain full M17 protocol support.

Please note, that we are not firmware developers, and we offer no support for firmware. We simply provide scripts to update the firmware. For actual firmware support, you will need to utilize other support resources from the firmware developers/maintainers.

The relevant MMDVM_HS etc. device firmware upgrade scripts are as follows:

  • Common MMDVM_HS_HAT devices:

  • ZUMspot devices:

  • BridgeCom SkyBridge devices:

  • NANO_DV devices:



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

D-Star Manager

Instant Mode Manager

Live Caller Screen

Moblie Device View


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.

70ae10ee68 - (9 hours ago) * Minor: add CPU temp to OLED displays, and add OLED invert option to Config Page - Chipster (HEAD -> master)
admin/configure.php | 63 ++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 43 insertions(+), 20 deletions(-)

69f73ac4d4 - (2 days ago) * Minor: improve YSF statis panel linking reliability - Chipster
mmdvmhost/functions.php | 32 ++++++++++++++------------------
1 file changed, 14 insertions(+), 18 deletions(-)

07d5c4dc04 - (2 days ago) * Minor: improve POCSAG last heard status - Chipster
mmdvmhost/lh.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

69f71369d4 - (2 days ago) * Minor: Hop on the POCSAG log text sanity bandwagon - Chipster
mmdvmhost/pages.php | 6 ++++++
1 file changed, 6 insertions(+)

a2df0d2648 - (2 days ago) * Minor: code cleanup (removed legacy/unused funcs.) - Chipster
mmdvmhost/bm_links.php | 19 ++++++-------------
mmdvmhost/functions.php | 2 --
2 files changed, 6 insertions(+), 15 deletions(-)

c40d081346 - (3 days ago) * Minor: fix dymanic title bug - Chipster
index.php | 145 ++++++++++++++++++++++++++++++++------------------------------
1 file changed, 75 insertions(+), 70 deletions(-)

aaa94f8dcc - (3 days ago) * Minor: with APRS-IS having server issues, I added the APRDGateway log ro the Live Log viewer so users can see the APRS-IS infrastructire failing mererably :-( - Chipster
admin/live_log.php | 5 +++++
1 file changed, 5 insertions(+)

f86548be9e - (3 days ago) * Minor: improve config backup/restore function - Chipster
admin/config_backup.php | 32 +++++++++++++++++---------------
admin/configure.php | 15 ---------------
2 files changed, 17 insertions(+), 30 deletions(-)

3e1c94d3df - (3 days ago) * Minor: cleanup config page headers and footer - Chipster
admin/configure.php | 55 +++++++++++++++++++++++++++++++----------------------
css/pistar-css.php | 3 ++-
2 files changed, 34 insertions(+), 24 deletions(-)

2987493a60 - (3 days ago) * Minor: fixup footer - Chipster
admin/advanced/calibration.php | 2 +-
admin/advanced/config_manager.php | 2 +-
admin/advanced/edit_dashboard.php | 2 +-
admin/advanced/edit_mmdvmhost.php | 2 +-
admin/advanced/edit_starnetserver.php | 2 +-
admin/advanced/edit_template.php | 2 +-
admin/advanced/edit_template_nosections.php | 2 +-
admin/advanced/fulledit_bmapikey.php | 2 +-
admin/advanced/fulledit_cron.php | 2 +-
admin/advanced/fulledit_template.php | 2 +-
admin/advanced/fulledit_template_nosections.php | 2 +-
admin/advanced/index.php | 4 ++--
admin/advanced/jitter_test.php | 4 ++--
admin/advanced/lh_manager.php | 2 +-
admin/advanced/security_upgrades.php | 2 +-
admin/advanced/services.php | 2 +-
admin/advanced/ssh_access.php | 2 +-
admin/advanced/upgrade.php | 2 +-
admin/config_backup.php | 2 +-
admin/configure.php | 18 +++++++++---------
admin/live_log.php | 4 ++--
admin/power.php | 2 +-
admin/sysinfo.php | 2 +-
admin/update.php | 2 +-
config/changelog.php | 2 +-
simple/index.php | 2 +-
26 files changed, 37 insertions(+), 37 deletions(-)

a5c88e966f - (3 days ago) * Minor: fixup footer - Chipster
admin/advanced/calibration.php | 2 +-
admin/advanced/config_manager.php | 2 +-
admin/advanced/edit_dashboard.php | 2 +-
admin/advanced/edit_mmdvmhost.php | 2 +-
admin/advanced/edit_starnetserver.php | 2 +-
admin/advanced/edit_template.php | 2 +-
admin/advanced/edit_template_nosections.php | 2 +-
admin/advanced/fulledit_bmapikey.php | 2 +-
admin/advanced/fulledit_cron.php | 2 +-
admin/advanced/fulledit_template.php | 2 +-
admin/advanced/fulledit_template_nosections.php | 2 +-
admin/advanced/index.php | 4 ++--
admin/advanced/jitter_test.php | 4 ++--
admin/advanced/lh_manager.php | 2 +-
admin/advanced/security_upgrades.php | 2 +-
admin/advanced/services.php | 2 +-
admin/advanced/ssh_access.php | 2 +-
admin/advanced/upgrade.php | 2 +-
admin/config_backup.php | 2 +-
admin/configure.php | 18 +++++++++---------
admin/live_log.php | 4 ++--
admin/power.php | 2 +-
admin/sysinfo.php | 2 +-
admin/update.php | 2 +-
config/changelog.php | 2 +-
25 files changed, 36 insertions(+), 36 deletions(-)

e556fc60f1 - (4 days ago) * Minor: clanup admin page layout a bit - Chipster
index.php | 194 ++++++++++++++++++++++++++------------------------------------
1 file changed, 82 insertions(+), 112 deletions(-)

48f929dfee - (4 days ago) * Minor: tweak output of Power page - Chipster
admin/power.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

7d82f52a20 - (4 days ago) * Minor: added 180-deg. OLED screen rotation option to config page. - Chipster
admin/configure.php | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)

6665469490 - (5 days ago) * Minor: add ZUM MMDVM-Pi GPIO board to 460.8k baud modem speed array - Chipster
admin/configure.php | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

dfd87ddce4 - (5 days ago) * Minor: tweak radio status cell width - Chipster
mmdvmhost/radioinfo.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

fcdb31b3ba - (5 days ago) * Intermediate: admin page tweaked so that admin section buttons are now above the service/process status grid. Also made the mobile layout/view better - Chipster
css/pistar-css-mini.php | 14 +++++++++----
includes/system.php | 3 +--
index.php | 52 ++++++++++++++++++++++++-------------------------
mmdvmhost/lh.php | 10 +++++-----
mmdvmhost/localtx.php | 4 ++--
mmdvmhost/radioinfo.php | 32 +++++++++++++++---------------
6 files changed, 60 insertions(+), 55 deletions(-)

99c14bf387 - (6 days ago) * Minor: add "." to parsed SSID chars. for WiFi configurator - Chipster
admin/wifi.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

cfd8fea011 - (6 days ago) * Minor: BM manager reliability tweaks, and remove legacy APIv1 references - Chipster
admin/configure.php | 2 +-
index.php | 13 ++++----
mmdvmhost/bm_links.php | 9 +-----
mmdvmhost/bm_manager.php | 82 ++++++------------------------------------------
4 files changed, 19 insertions(+), 87 deletions(-)

eec72dc335 - (7 days ago) Minor: update readme - Chipster | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)


W0CHP-PiStar-Dash (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.

Credit also goes to the awesome Daniel Caujolle-Bert, F1RMB, for creating his personal and customized fork of Pi-Star; as his fork was foundational and inspirational to my W0CHP-PiStar-Dash.

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 W0CHP-PiStar-Dash, 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.

The very cool and welcome MMDVMhost log backup/restore and re-application on reboot code, is courtesy of Mark, KN2TOD.

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. Pi-Star would have no reason to exist, without Jonathan’s incredible and prolific contributions and gifts to the ham community.

  1. W0CHP-PiStar-Dash was not created for single-core and low-powered hardware; such as the first generation RPi Zero, etc. (armv6l). This software will run very slow on under-powered hardware. 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. 

  2. W0CHP-PiStar-Dash occasionally queries our servers in order to determine if updates are available. In the spirit of full-disclosure, I wanted to mention this. This is no different than how the official Pi-Star software functions (but doesn’t make this well-known). Additionally, every W0CHP-PiStar-Dash installation has a unique UUID generated for it; 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 W0CHP-PiStar-Dash. You can find the unique UUID within the /etc/pistar-release file. The UUID is derived from the devices’ unique processor serial number:

    $ cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2

Ver. # 88ac547 - Document last revised: 9/25/2023
[ Permanent Link ]