β Optimized for Debian 12 & 13 on 64-bit ARM (Raspberry Pi 4, 5)
AllTune2 is a modern control panel for AllStarLink 3 + DVSwitch.
It gives you one place to work with:
- BrandMeister
- TGIF
- YSF
- D-Star
- P25
- NXDN
- AllStarLink
- EchoLink
- Local Monitor
- Transceiver
- Favorites
- Live status and activity
Simple. Clean. Powerful.
AllTune2 is meant to be a one-screen radio control center.
With it, you can:
- connect to BrandMeister talkgroups
- connect to TGIF talkgroups
- connect to YSF reflectors / rooms
- connect to D-Star reflectors when D-Star is configured
- connect to P25 reflectors / talkgroups when P25 is configured
- connect to NXDN reflectors / talkgroups when NXDN is configured
- connect to AllStarLink nodes
- connect to EchoLink nodes
- use Local Monitor
- use Transceiver
- save and use Favorites
- use manual entry
- watch live status and activity
- use audio alerts if enabled
Some local functions can also be used alongside BM, TGIF, YSF, D-Star, P25, or NXDN operation depending on your setup and workflow.
AllTune2 now shows live keyed/activity highlighting for linked AllStarLink / EchoLink node rows and supported managed DVSwitch modes.
What it does:
- highlights the active linked node row when live activity is detected
- shows keyed/activity feedback for supported managed modes such as D-Star, P25, and NXDN when configured
- uses a softer amber accent so the active row stands out without overpowering the dashboard
- keeps the existing connection logic unchanged
Notes:
- this is a visual/status enhancement
- it does not change TGIF, BrandMeister, YSF, D-Star, P25, NXDN, AllStarLink, or EchoLink connect/disconnect behavior
- active row highlighting depends on live activity/status data being available from the node
You MUST already have:
- Working AllStarLink 3 (ASL3)
- Working DVSwitch
- Analog_Bridge running
- MMDVM_Bridge running
Optional modes such as D-Star, P25, and NXDN require those modes to already work in your ASL3 / DVSwitch / MMDVM_Bridge setup before enabling them in AllTune2.
If your node is not already working, fix that first.
AllTune2 sits on top of a working base system.
It is not meant to repair a broken base install.
Use these commands only for a brand-new install:
cd /var/www/html
git clone https://github.com/TerryClaiborne/alltune2.git
cd alltune2
sudo ./setup_alltune2.shNote: setup_alltune2.sh may pause for a short time during dependency checks and TGIF/HBLink environment setup, especially on slower systems such as a Pi3. This is normal. Wait for the final setup summary before assuming the installer is stuck or stopping it early.
The setup script helps by:
- setting permissions
- building the TGIF / HBLink backend
- installing requirements
- creating config files if missing
- preserving existing config files
- refreshing helper files
The setup script is mainly for install/setup/system-level refresh work.
It is not required for every code-only GitHub update.
There are now two different update paths.
Use this when the GitHub update only changes app code, helper scripts, Python files, PHP files, CSS/JS, or README content.
cd /var/www/html/alltune2
git pull origin mainIn many cases, that is enough.
Use this when the update includes install/setup changes such as:
setup_alltune2.shchanges- new sudoers requirements
- new permissions requirements
- new service / system integration changes
- new config template handling
cd /var/www/html/alltune2
git pull origin main
sudo ./setup_alltune2.shSome updates change a runtime process that may already be running in memory.
Examples:
- HBLink
bridge.pychanges - logging behavior changes
- long-running helper/runtime behavior
For those updates, rebooting once after the update is recommended so the old running process is fully cleared and the new code starts clean.
Do not assume every update needs setup_alltune2.sh.
For normal code-only updates, git pull may be enough.
Run setup_alltune2.sh when the update includes install, permissions, sudoers, service, or other system-level setup changes.
If the update changes a long-running TGIF / HBLink runtime process, a reboot once after updating is recommended.
/var/www/html/alltune2/config.ini
Example:
MYNODE="YOUR NODE"
DVSWITCH_NODE="YOUR DVSWITCH NODE"
BM_SelfcarePassword="CHANGE_ME"
TGIF_HotspotSecurityKey="CHANGE_ME"
DSTAR_ENABLED=0
P25_ENABLED=0
NXDN_ENABLED=0MYNODE
Your AllStar node number.
Example:
MYNODE=67040
DVSWITCH_NODE
Your DVSwitch node number.
Most systems use 1999 or 1998.
Example:
DVSWITCH_NODE=1999
BM_SelfcarePassword
Your BrandMeister SelfCare password.
TGIF_HotspotSecurityKey
Your TGIF Hotspot Security Key.
This is NOT your TGIF website login password.
DSTAR_ENABLED
Controls whether D-Star appears as a usable mode in AllTune2.
Use:
DSTAR_ENABLED=0to keep D-Star disabled.
Use:
DSTAR_ENABLED=1only after D-Star already works on your ASL3 / DVSwitch / MMDVM_Bridge system.
When D-Star is disabled or not configured, the D-Star Live Status box remains idle, and D-Star is not available in the main dropdown or Favorites.
P25_ENABLED and NXDN_ENABLED
Control whether P25 and NXDN appear as usable modes in AllTune2.
Leave them disabled unless those modes already work on your ASL3 / DVSwitch / MMDVM_Bridge system:
P25_ENABLED=0
NXDN_ENABLED=0Enable them only after testing the underlying DVSwitch mode from the terminal:
P25_ENABLED=1
NXDN_ENABLED=1When P25 or NXDN is disabled or not configured, that mode is not available in the main dropdown or Favorites. The Live Status box can remain visible, but it will stay Idle.
D-Star is optional.
Before enabling D-Star in AllTune2, D-Star should already work from the ASL3 / DVSwitch / MMDVM_Bridge side.
A basic manual test looks like this:
/opt/MMDVM_Bridge/dvswitch.sh mode DSTAR
/opt/MMDVM_Bridge/dvswitch.sh tune REF030ELTo disconnect D-Star manually:
/opt/MMDVM_Bridge/dvswitch.sh tune 4000#AllTune2 does not create your D-Star account, registration, reflector setup, or system-level MMDVM_Bridge D-Star configuration.
Enable D-Star in AllTune2 only after your system D-Star path is already working:
DSTAR_ENABLED=1If D-Star is not configured, leave it disabled:
DSTAR_ENABLED=0P25 and NXDN are optional.
Before enabling P25 or NXDN in AllTune2, each mode should already work from the ASL3 / DVSwitch / MMDVM_Bridge side.
Basic manual tests look like this:
/opt/MMDVM_Bridge/dvswitch.sh mode P25
/opt/MMDVM_Bridge/dvswitch.sh tune YOUR_P25_TARGET/opt/MMDVM_Bridge/dvswitch.sh mode NXDN
/opt/MMDVM_Bridge/dvswitch.sh tune YOUR_NXDN_TARGETFor P25 and NXDN, the manual stop / return-to-idle sequence is:
/opt/MMDVM_Bridge/dvswitch.sh tune 0
sleep 2
/opt/MMDVM_Bridge/dvswitch.sh mode DMRAllTune2 uses that same basic cleanup idea for P25 and NXDN disconnect handling.
AllTune2 does not create or repair your P25 or NXDN system-level setup. Enable these modes only after they already work from the terminal:
P25_ENABLED=1
NXDN_ENABLED=1If P25 or NXDN is not configured, leave it disabled:
P25_ENABLED=0
NXDN_ENABLED=0/var/www/html/alltune2/tgif-hblink/hblink.cfg
Look in the [REPEATER-1] section.
Example:
PASSPHRASE: your_tgif_key
CALLSIGN: YOURCALL
RADIO_ID: 330000812
OPTIONS: StartRef=19750;RelinkTime=60PASSPHRASE
Your TGIF Hotspot Security Key.
This is NOT your TGIF login password.
CALLSIGN
Your ham callsign.
Example:
CALLSIGN: KC3KMV
RADIO_ID
Your DMR / BrandMeister Hotspot ID + 1
This part is very important.
Real example:
Your hotspot ID: 330000811
Use: 330000812
Another example:
Your hotspot ID: 3101234
Use: 3101235
Do NOT use your original hotspot ID unchanged.
OPTIONS
Optional startup TGIF talkgroup.
Example:
StartRef=19750;RelinkTime=60
If you want TGIF to start on a certain talkgroup, that is where you set it.
/var/www/html/alltune2/tgif-hblink/MMDVM_Bridge.hblink.ini
Example:
Callsign=YOURCALL
Id=330000812Callsign
Your ham callsign.
Example:
Callsign=KC3KMV
Id
Your DMR / BrandMeister Hotspot ID + 1
Real example:
Your hotspot ID: 330000811
Use: 330000812
Do NOT use your original hotspot ID unchanged.
Most users can leave these as 0:
RXFrequency=0
TXFrequency=0These only matter if you run a repeater.
If you do not run a repeater, leaving them at 0 is fine and has no effect on normal operation.
These files must already be working correctly on your system:
/opt/MMDVM_Bridge/DVSwitch.ini/opt/MMDVM_Bridge/MMDVM_Bridge.ini/opt/Analog_Bridge/Analog_Bridge.ini
If those files are broken, AllTune2 will not work correctly.
For D-Star, P25, and NXDN, the required account / registration / reflector / mode configuration must already be correct in the underlying DVSwitch / MMDVM_Bridge setup before enabling those modes in AllTune2.
Once AllTune2 is installed and configured, open it in your web browser.
Example:
http://192.168.1.120/alltune2/public/
The full path also works:
http://192.168.1.120/alltune2/public/index.php
Replace 192.168.1.120 with the IP address or hostname of your own node.
The shorter /public/ address is usually easier and works fine.
Once AllTune2 is installed and configured, open it in your browser and use the control center.
Basic idea:
- choose the network or mode
- enter a target or choose a Favorite
- press Connect
- watch the status / activity area
- press Disconnect when done
Use BrandMeister when you want to connect to a BM talkgroup.
- choose BrandMeister
- enter the talkgroup number
- press Connect
- wait for the status to show the connection
- use Disconnect when you want to leave
BrandMeister is usually one of the faster paths.
If you want to change from one BM talkgroup to another:
- enter the new talkgroup
- press Connect again
Use TGIF when you want to connect to a TGIF talkgroup.
- choose TGIF
- enter the talkgroup number
- press Connect
- wait for the TGIF path to come up
- watch status / activity for confirmation
- use Disconnect when finished
TGIF may take a little longer to connect than BrandMeister.
That is normal.
You can also stay connected to BM, TGIF, YSF, D-Star, P25, or NXDN and add AllStarLink nodes or EchoLink nodes using Transceive or Local Monitor, depending on your setup and workflow.
Use YSF when you want to connect to a YSF room or reflector.
- choose YSF
- enter the YSF target you want
- press Connect
- watch the status area
- use Disconnect when done
Use D-Star when you want to connect to a D-Star reflector.
D-Star is optional and must already be working in your ASL3 / DVSwitch / MMDVM_Bridge system before AllTune2 can control it.
- make sure
DSTAR_ENABLED=1is set in/var/www/html/alltune2/config.ini - choose D-Star
- enter the D-Star target, such as
REF030EL - press Connect
- watch the status area
- use Disconnect or Disconnect DVSwitch when done
D-Star uses the managed DVSwitch path, similar to YSF.
AllTune2 runs the DVSwitch D-Star mode and tune commands, then uses the configured private DVSwitch audio node.
D-Star disconnect uses:
/opt/MMDVM_Bridge/dvswitch.sh tune 4000#If D-Star is not enabled or not available, it will not appear in the main mode dropdown or Favorites. The D-Star Live Status box may still be visible, but it will remain Idle.
Use P25 when you want to connect to a P25 target supported by your DVSwitch / MMDVM_Bridge setup.
P25 is optional and must already be working in your ASL3 / DVSwitch / MMDVM_Bridge system before AllTune2 can control it.
- make sure
P25_ENABLED=1is set in/var/www/html/alltune2/config.ini - choose P25
- enter the P25 target
- press Connect
- watch the status area
- use Disconnect or Disconnect DVSwitch when done
P25 uses the managed DVSwitch path.
AllTune2 runs the DVSwitch P25 mode and tune commands, then uses the configured private DVSwitch audio node.
P25 disconnect uses a cleanup sequence that tunes to 0, waits briefly, and returns the bridge to DMR mode:
/opt/MMDVM_Bridge/dvswitch.sh tune 0
sleep 2
/opt/MMDVM_Bridge/dvswitch.sh mode DMRIf P25 is not enabled or not available, it will not appear in the main mode dropdown or Favorites. The P25 Live Status box may still be visible, but it will remain Idle.
Use NXDN when you want to connect to an NXDN target supported by your DVSwitch / MMDVM_Bridge setup.
NXDN is optional and must already be working in your ASL3 / DVSwitch / MMDVM_Bridge system before AllTune2 can control it.
- make sure
NXDN_ENABLED=1is set in/var/www/html/alltune2/config.ini - choose NXDN
- enter the NXDN target
- press Connect
- watch the status area
- use Disconnect or Disconnect DVSwitch when done
NXDN uses the managed DVSwitch path.
AllTune2 runs the DVSwitch NXDN mode and tune commands, then uses the configured private DVSwitch audio node.
NXDN disconnect uses a cleanup sequence that tunes to 0, waits briefly, and returns the bridge to DMR mode:
/opt/MMDVM_Bridge/dvswitch.sh tune 0
sleep 2
/opt/MMDVM_Bridge/dvswitch.sh mode DMRIf NXDN is not enabled or not available, it will not appear in the main mode dropdown or Favorites. The NXDN Live Status box may still be visible, but it will remain Idle.
Use AllStarLink when you want to work with AllStar nodes directly.
- choose AllStarLink
- enter the node number you want
- press Connect
- watch the live status / activity
- disconnect when finished
AllStarLink mode is useful for:
- direct node linking
- node monitoring
- local AllStar activity
Use EchoLink when you want to connect to an EchoLink node.
- choose EchoLink
- enter the EchoLink node number
- press Connect
- watch status for confirmation
- disconnect when done
Local Monitor is there for local monitoring use.
That means it can be used when you want to:
- listen locally
- monitor what is happening on the node
- work in a more local / direct way
Transceiver mode is there for direct radio-side operation.
In simple terms:
- Local Monitor is for local listening / monitoring
- Transceiver is for direct local radio operation
These are local functions, not just network destination fields.
Favorites help save time.
Use Favorites when you have:
- a BM talkgroup you use often
- a TGIF talkgroup you use often
- a YSF room you use often
- a D-Star reflector you use often, if D-Star is enabled
- a P25 target you use often, if P25 is enabled
- an NXDN target you use often, if NXDN is enabled
- an AllStarLink node you use often
- an EchoLink target you use often
- choose a Favorite
- let it load the target / mode
- press Connect
Manual entry is there when you want to type something directly instead of using a saved Favorite.
That is useful when:
- you are testing
- you are trying a one-time target
- you do not want to save it yet
The status and activity areas help you see:
- what mode you are in
- whether you are connected
- which target is active
- D-Star, P25, and NXDN status when those modes are configured
- local / node activity
- changes as they happen
Audio alerts can help you notice:
- connects
- disconnects
- activity changes
If you use them, they can make monitoring easier.
Try:
sudo systemctl restart analog_bridgeFirst decide what kind of update it was.
For a normal code-only update:
cd /var/www/html/alltune2
git pull origin mainFor an update that includes install/setup/system-level changes:
cd /var/www/html/alltune2
git pull origin main
sudo ./setup_alltune2.shIf the update changed a long-running TGIF / HBLink process, reboot once after updating so the new runtime fully takes effect.
Check these first:
DSTAR_ENABLED=1,P25_ENABLED=1, orNXDN_ENABLED=1is set in/var/www/html/alltune2/config.ini/opt/MMDVM_Bridge/dvswitch.shexists- your real
MYNODEandDVSWITCH_NODEvalues are set - the mode already works from the terminal
Manual D-Star test:
/opt/MMDVM_Bridge/dvswitch.sh mode DSTAR
/opt/MMDVM_Bridge/dvswitch.sh tune REF030ELManual D-Star disconnect:
/opt/MMDVM_Bridge/dvswitch.sh tune 4000#Manual P25 test:
/opt/MMDVM_Bridge/dvswitch.sh mode P25
/opt/MMDVM_Bridge/dvswitch.sh tune YOUR_P25_TARGETManual NXDN test:
/opt/MMDVM_Bridge/dvswitch.sh mode NXDN
/opt/MMDVM_Bridge/dvswitch.sh tune YOUR_NXDN_TARGETManual P25 / NXDN disconnect:
/opt/MMDVM_Bridge/dvswitch.sh tune 0
sleep 2
/opt/MMDVM_Bridge/dvswitch.sh mode DMRIf these manual commands do not work, fix the base D-Star / P25 / NXDN / DVSwitch / MMDVM_Bridge setup first.
Check these first:
/var/www/html/alltune2/config.ini/var/www/html/alltune2/tgif-hblink/hblink.cfg/var/www/html/alltune2/tgif-hblink/MMDVM_Bridge.hblink.ini
Do not guess values.
/var/www/html/alltune2/config.ini/var/www/html/alltune2/tgif-hblink/hblink.cfg
Set DSTAR_ENABLED=1, P25_ENABLED=1, or NXDN_ENABLED=1 only on systems where those modes are already working. Leave them set to 0 on systems that do not use those modes.
/var/www/html/alltune2/tgif-hblink/MMDVM_Bridge.hblink.ini
/opt/MMDVM_Bridge/DVSwitch.ini/opt/MMDVM_Bridge/MMDVM_Bridge.ini/opt/Analog_Bridge/Analog_Bridge.ini
- do not guess values
- do not assume every update needs
setup_alltune2.sh - reboot once after updates that change long-running TGIF / HBLink runtime behavior
Install β Configure β Open in browser β Connect β Enjoy
Questions? Email: kc3kmv@yahoo.com
Current release notes may include both code-only updates and setup-level updates.
For this release series, important recent changes include:
- Managed D-Star support when enabled in local config
- Managed P25 and NXDN support when enabled in local config
- D-Star, P25, and NXDN Live Status / keyed activity support
- D-Star, P25, and NXDN Favorites support when enabled
- TGIF / HBLink connect speed improvement
- HBLink runtime retune improvement
- HBLink log file growth disabled
For these HBLink runtime/logging updates:
cd /var/www/html/alltune2
git pull origin mainThen reboot once so the old running HBLink bridge process is cleared and the new runtime starts clean.
Only run:
sudo ./setup_alltune2.shwhen the release specifically says setup/system-level changes are included.