Skip to main content...


Dashboard Screenshot

This is my very highly modified and customized fork of MW0MWZ’s Pi-Star software, and I call it “W0CHP-PiStar-Dash”. 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 W0CHP-PiStar-Dash image is now bullseye-based and is now its own beast, so to speak.

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.
  • Getting Help/Support:
    • Do NOT ask for support for W0CHP-PiStar-Dash on any official or unofficial Pi-Star support page/forum/medium/etc. This is not Andy’s (MW0MWZ) Pi-Star software!
    • 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.
    • XLX-493 ; Module E is the W0CHP-PiStar-Dash Chat Module. A direct DMR conference to this module/room is bridged with BrandMeister and TGIF Networks; BM: simply call TalkGroup 3170603, and TGIF: simply call TalkGroup 493.
  • Issue / Bug Tracker and Pull Requests / Patches:
    • DO NOT ASK FOR SUPPORT. Repo and issue tracker access is for developers/hackers and contributors only!
    • The issue tracker is NOT for:
      1. Support requests
      2. Feature requests
      3. Other topics not germane to bugs, issues, etc.
  • Read The FAQs again!

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

There are two methods of installation…

  1. Installation on an existing Pi-Star hotspot
  2. Installation via a disk image

Installing W0CHP-PiStar-Dash on an Existing Pi-Star Hotspot

You need to have a Pi-Star hotspot running at least v4.1.6!1

  1. Make a backup of your configuration if you wish – just in case.

  2. Open an SSH session to your Pi-Star instance.

  3. Run this to familiarize yourself with the available options/arguments:2

    curl -Ls | sudo env NO_SELF_UPDATE=1 bash -s -- -h

    You will be presented with…

    [i] W0CHP PiStar-Dash Installer Command Usage:
      -h,   --help                  :  Display this help text
      -id,  --install-dashboard     :  Install W0CHP dashboard
      -idc  --install-dashboard-css :  Install W0CHP dashboard
                                   	   WITH custom stylesheet
      -rd,  --restore-dashboard     :  Restore original dashboard
      -s,   --status                :  Display version status/info
  4. When ready to install, run the above command again with the option/argument you wish…e.g:

    curl -Ls | sudo env NO_SELF_UPDATE=1 bash -s -- -id

    (…to install the dashboard without the W0CHP custom CSS)

  5. When the installer completes, refresh your dashboard home page to see the changes.

You must run the aforementioned commands with the exact syntax. Note the spaces and extra -- (dashes), etc. Otherwise, the commands will fail.

Installing W0CHP-PiStar-Dash from a Bullseye-based Disk Image

Yes, you read that correctly; the W0CHP-PiStar-Dash disk image uses “Bullseye” as the core operating system; far newer and better than the legacy “Buster”-based OS that Pi-Star uses.

However, you had better be damn-well familiar working with xz decompression, disk imaging, and setting up Pi-Star from scratch; because I will not cover any of that here; as it is all very well-redundantly-documented all over the ’net.

The Bullseye disk image is ready-to-go; with Pi-Star 4.1.6 and W0CHP-PiStar-Dash installed.

Note that this disk image is for RaspberryPi-based platforms.

You will need an SD card of at least 4GB to install this disk image.


  1. When first booting from the Bullseye-based disk image, go grab a coffee, drink, etc., perhaps even with friends (if you have any), and let the file-system auto-expand and the rest of the system initialize. Be patient.
  2. When installing from the Bullseye-based 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 Pi-Star updating process.3

You can also manually invoke the update process via the dashboard admin section (Admin -> Update), or by command line:

sudo pistar-update

Uninstalling W0CHP-PiStar-Dash


  1. Run:

    sudo WPSD-Installer -rd

    …And the original Pi-Star Dashboard will be restored.

Features, Enhancements and Omissions (not an exhaustive list)

Functionality Features

  • Full M17 Protocol Support. (See M17 Notes below…)
  • Full APRSGateway Support: Selectable APRS Data Sharing with specific modes.
  • Full DGId Support.
  • Selectable DMR Roaming Beacon Support: Network or Interval Mode (or disabled).
  • “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 link managers gives the ability to change links/rooms on-the-fly, rather than going through the large (and slow) 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.
  • Searchable drop-downs for massive host lists in configuration/admin pages. E.g. D-Star Refs., YSF Hosts, XLX Hosts, DMR Hosts, etc.
  • 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 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.

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 activiy 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

  • 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.
  • 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 (courtesy of F1RMB’s excellent code).

Notes about CSS, and custom CSS you may have previously applied

  1. When using the -id option, the “normal” Pi-Star colors are used, and no CSS is installed. Any custom CSS you may have had, is removed but backed up. See bullet #4 below.

  2. When using the -idc option, the W0CHP CSS is installed, and any of your custom CSS settings before installing the W0CHP dashboard, are backed up in the event you want to restore the official dashboard (see bullet #4). This is done because the CSS in the official Pi-Star is incompatible. You can still manually map/change your CSS back when running W0CHP-PiStar-Dash (see bullet #4 for details).

  3. If you are already running W0CHP-PiStar-Dash, AND you have custom or W0CHP-PiStar-Dash CSS, no CSS changes, no matter which option you run this command with.

  4. When using the -id option, your custom CSS settings are backed up (in the event you want to revert back to the official dashboard – see bullet #6), and the W0CHP dashboard uses the standard Pi-Star colors. This means that if you want your previous custom CSS applied to the W0CHP dashboard, you will need to manually customize your colors; You can reference the color values you had previously used, by viewing the backup file of your custom CSS…

  5. …the reason for bullets #4 and #1, is because the W0CHP dashboard is vastly different than the official upstream version (completely different CSS mappings). Since this is for my personal use, I haven’t added any logic to suck-in the user CSS values to the new mappings.

  6. If you had customized CSS settings before installing the W0CHP dashboard, they will be restored when using the -rd option.

  7. You can at any time start over and reset to the “normal” Pi-Star colors, by performing a CSS Factory Reset (Configuration -> Advanced -> Tools -> CSS Tool).

  8. If you’d like to start over with the custom W0CHP colors/CSS, you can copy/paste the following values into your /etc/pistar-css.ini.

Notes about M17 Protocol Support

M17 protocol support requires updated MMDVM Modem Firmware or MMDVM HotSpot Firmware of at least v1.6.0. Ergo, you will need to download, compile and install the MMDVM modem firmware or the MMDVM hotspot firmware yourself in order to gain full M17 protocol support.

Please note, that if you uninstall W0CHP-PiStar-Dash, you will need to downgrade the MMDVM modem or hotspot firmware back to its original firmware. For MMDVM HS HAT users, you can simply run the following command:

sudo pistar-mmdvmhshatdowngrade

Failure to downgrade the modem firmware when uninstalling W0CHP-PiStar-Dash will result in a non-functional hot spot, since the official current Pi-Star MMDVMHost binary is not compatible with newer MMDVM firmware.


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

Installation Demo Video


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.

a703332c14 - (4 days ago) * Minor: footer cleanups - Chipster (HEAD -> master)
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/log_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 +-
index.php | 3 +--
simple/index.php | 3 +--
27 files changed, 38 insertions(+), 40 deletions(-)

207c8d229a - (5 days ago) * Minor: add UI/UX logic in configuration page for conflicting DMR2*** modes. - Chipster
admin/configure.php | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

4d5b2a520c - (6 days ago) * Minor: config page backend code tweak - Chipster
admin/configure.php | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

9e83e8b8d7 - (7 days ago) * Minor: when TG names are slected, show XLX refl. in target if XLX is used in DMR mode - Chipster
mmdvmhost/functions.php | 7 +++++++
1 file changed, 7 insertions(+)

3abaea38e1 - (8 days ago) * Minor: display M17 RF-side BER on dashboard. - Chipster
mmdvmhost/functions.php | 6 ++++--
mmdvmhost/lh.php | 1 +
mmdvmhost/localtx.php | 8 ++++++++
3 files changed, 13 insertions(+), 2 deletions(-)

6ee3a01113 - (9 days ago) * Minor: configpage UI logic - Chipster
admin/configure.php | 82 ++++++++++++++++++++++++++++++++++-------------------
1 file changed, 53 insertions(+), 29 deletions(-)

3f2dbc1aef - (9 days ago) * Minor: add warning to config areas if user has no saved configs/profiles. APRSGateway config logic improvements. - Chipster
admin/advanced/index.php | 13 +++++++++++++
admin/configure.php | 31 ++++++++++++++++++++++---------
2 files changed, 35 insertions(+), 9 deletions(-)

c5a76778a5 - (10 days ago) * Minor: improve log download logic - Chipster
admin/live_log.php | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

816074c425 - (10 days ago) * Minor: update clean configs for config reset func - Chipster
admin/configure.php | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

0d6fdba9d2 - (10 days ago) * Minor: live log viewer verbiage tweak - Chipster
admin/live_log.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

5b959864a9 - (10 days ago) * Minor: Live Log Viewer revamp and added *all* logs to view/inspect/download - Chipster
admin/advanced/jitter_test.php | 4 +-
admin/{download_modem_log.php => download_log.php} | 37 ++++--
admin/{live_modem_log.php => live_log.php} | 136 ++++++++++++++++-----
index.php | 2 +-
4 files changed, 137 insertions(+), 42 deletions(-)

c9e73ba337 - (12 days ago) * Minor: improve OS Update status output. - Chipster
admin/advanced/security_upgrades_exec.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

e91f61fa73 - (13 days ago) * Minor: split out location/info section in configuration page - Chipster
admin/configure.php | 206 +++++++++++++++++++++++++++-------------------------
1 file changed, 109 insertions(+), 97 deletions(-)

c0a5418ee5 - (2 weeks ago) * Minor: add "Simple" dashboard view to navigation - Chipster
css/pistar-css.php | 15 ++++++++++++---
includes/datetime.php | 4 ++--
index.php | 3 ++-
simple/index.php | 2 +-
4 files changed, 17 insertions(+), 7 deletions(-)

76b3074861 - (3 weeks ago) * Minor: for DM2YSF, when using YSF Manager to link/unlink/change YSF/FCS hosts, this commit ensures the that DMR TG # matches the seelected YSF/FCS host # when selected. - Chipster
mmdvmhost/ysf_manager.php | 9 +++++++++
1 file changed, 9 insertions(+)

b4b2a086d5 - (3 weeks ago) * Minor: code cleanups - Chipster
mmdvmhost/functions.php | 12 ++++++------
mmdvmhost/m17_manager.php | 1 +
2 files changed, 7 insertions(+), 6 deletions(-)

d1dc4358f3 - (3 weeks ago) * Minor: fix typo - Chipster
admin/sysinfo.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

b842093601 - (3 weeks ago) * Minor: fix-up config page verboage a bit; improve time sync status (refresh) on Admin->System Details page - Chipster
admin/configure.php | 6 +++---
admin/sysinfo.php | 11 ++++++++++-
2 files changed, 13 insertions(+), 4 deletions(-)

961579bda7 - (4 weeks ago) * Minor: improve and centralize custom font loading. Update Readme. - 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 | 2 +-
admin/advanced/jitter_test.php | 2 +-
admin/advanced/log_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/live_modem_log.php | 2 +-
admin/power.php | 2 +-
admin/sysinfo.php | 2 +-
admin/update.php | 2 +-
admin/wifi.php | 6 +++---
config/browserdetect.php | 3 +++
config/changelog.php | 2 +-
css/pistar-css.php | 2 --
27 files changed, 30 insertions(+), 29 deletions(-)

e6ec99356a - (4 weeks ago) * Minor: remove legacy funcs in DMR Network Manager - Chipster
mmdvmhost/dmr_manager.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)


Of course, most of the 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.

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. Piping to bash/shells/etc. from an online source is controversial (do a google search about it). However it’s convenient, and one can view & inspect the full & actual source code of the installer prior to piping to bash or installing. 

  3. W0CHP-PiStar-Dash occasionally queries the git repository server 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 purposes. 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. # d428785 - Document last updated: 3/9/2023
[ Permanent Link ]