Skip to main content...

W0CHP.net

Large Back-End Changes to W0CHP-PiStar-Dash

Since the birth of W0CHP-PiStar-Dash in ~2019, the “back-end” had historically used (and stuck with) the official Pi-Star binaries (the core third-party programs found in /usr/local/bin) compiled by the Pi-Star author Andy, MW0MWZ. This was deliberate…

Firstly, I really didn’t want to hand-compile all of the upstream binary sources by-hand. And secondly, they were perfectly stable enough for daily usage and didn’t merit any changes.

However, as of 1/26/2022, that has since changed.

If you’re running W0CHP-PiStar-Dash, you may have noticed that the binaries in /usr/local/bin are now sourced and replaced by/with my own custom-compiled binaries.

This is also deliberate, and is now a core part of W0CHP-PiStar-Dash going forward…

Rationale

There are new (and fully open-source!) modes/protocols being developed for digital ham radio, namely, M17. And I wanted to use these new modes and protocols on my W0CHP-PiStar-Dash hotspots, but could not due to the old age of Pi-Star’s binaries (and lack of required binaries).

Additionally, Jon, G4KLX (the author of pretty much EVERY software that makes hotspots actually work) and his contributors were fast-improving upon MMDVMHost and its myriad companion client and gateway programs. A recent and very cool improvement to these programs are the system-wide implementation of RemoteCommands, which allows client and gateway programs to be both queried for status, as well as change reflectors/TGs/links, etc.

I really wanted to leverage these features/modes/improvements because they are so incredibly welcome. So I got to work…

New Binaries from the Upstream Code

I mentioned earlier, that I didn’t want to hand-compile these programs/binaries (and there are a lot of them). So the first thing I did, was develop a custom build and C/I system, with built-in tests and QA checks for stable functionality. I was able to complete that system in my (minimal) spare time within a few days.

Now that I had an automated build/CI/deployment/test system working, it was time to perform some real-world testing on my test hotspots. These hotspots have been using my binaries for a few months now, and my production/daily use hotspots are also using my new binaries since they have proven stable and provide the new features missing from the official Pi-Star distribution.

Around Christmas of 2021, I deemed the new binaries/programs stable enough to integrate natively in W0CHP-PiStar-Dash.

Slip-streaming the New Binaries/Programs Into Existing Instances

Part of my regression tests described earlier, involved developing a mechanism that would automatically switch to my binaries vs. the official Pi-Star binaries. This is not an easy task for a host of reasons:

  • I wanted it to be fully-automated as part of the daily (auto) and manual updating facilities in Pi-Star

  • It needed to introduce the new config statements/files/variables etc. for the new modes/features, etc. which are not part of the current Pi-Star distribution.

  • It needed to work flawlessly with zero user interaction.

  • It needed to be “uninstallable” as part of the native W0CHP-PiStar-Dash restoration facility.

Once I had all of that developed, tested and validated, I updated the W0CHP-PiStar-Dash code, to swap to my own custom binary/program repository.

Overall, the whole process took a few months; simply to ensure stability and perfect automation for deployments.

May the Source Be With You (™)

Unlike Pi-Star itself, and the myriad other forks like mine out there; I provide the actual upstream and modified source code for the W0CHP-PiStar-Dash binaries and programs1. In fact, based on principle alone and the wonderful spirit of F/OSS, this was a requisite. I do not believe anything should be closed-off. It also aligns with the open and experimental spirit of ham radio.

Conclusion

I hope you are enjoying my program, and I hope you’re also enjoying the new features. Switching to my own binaries turned out to be inevitable after all, since I wanted to play with all the new modes and leverage the new features that continuously lag in the official Pi-Star distribution2.

I’d like to invite you to submit problem reports, pull requests, etc. for the respective areas of W0CHP-PiStar-Dash, if you encounter any issues: https://repo.w0chp.net/explore/repos

Also, I, and a few other users are available for issue reports and help on XLX493; Module E. It’s always nice to hear from the W0CHP-PiStar-Dash users out there; and they are always expressing their gratitude, which is awesome!

Ciao! W0CHP


  1. Not all of the Pi-Star binaries have been changed/custom-complied. Only the necessary ones. The rest are a mirror of the official Pi-Star binaries, which are always kept up-to-date with Andy’s (automatically). 

  2. By no means is this a knock on Pi-Star or its author Andy. In fact, Andy is one of the most talented and nicest chaps in the ham radio and software communities. But he’s a busy guy, and unfortunately, there aren’t many of us (talented) ham radio hackers out there (read: hard to find good help). Ergo, features may lag in his software as a result (one-man shows are fucking HARD). But that’s where I come in; I scratch my own personal itches and share them with you. 

Ver. # 3b257bf - Document last updated: 2/4/2022
[ Permanent Link ]