Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Automatically checks for new Meshtastic firmware releases and sends notifications to your mesh network

License

Notifications You must be signed in to change notification settings

bengiddins/VersionBroadcast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Meshtastic Firmware Update Notifier

Automatically monitors GitHub for new Meshtastic firmware releases and sends notifications to your mesh network. No custom firmware required!

Python Version License

Features

  • πŸ”” Automatic notifications - Sends messages to your mesh when new firmware is released
  • 🎯 Alpha or Stable - Choose to monitor Alpha (pre-release) or Stable releases
  • πŸ”Œ Flexible connectivity - Supports both Serial/USB and Bluetooth connections
  • ⏰ Configurable intervals - Check as often or as rarely as you like
  • πŸ’» Windows optimized - Easy setup with Task Scheduler or Startup folder
  • 🚫 No custom firmware - Works with stock Meshtastic firmware

Requirements

  • Windows, macOS, or Linux (instructions below are Windows-focused)
  • Python 3.7 or newer
  • Meshtastic node connected via Serial/USB or Bluetooth
  • Internet connection to check GitHub

Quick Start

1. Install Python

Download and install Python from python.org

Important: During installation, check "Add Python to PATH"

Verify installation:

python --version

2. Clone or Download This Repository

git clone https://github.com/yourusername/meshtastic-firmware-notifier.git
cd meshtastic-firmware-notifier

Or download the ZIP and extract it to a folder like:

C:\Projects\Meshtastic\Scripts\VersionBroadcast\

3. Install Dependencies

pip install -r requirements.txt

Or manually:

pip install meshtastic requests

4. Find Your COM Port (Serial/USB only)

  1. Connect your Meshtastic device via USB
  2. Open Device Manager (Windows + X β†’ Device Manager)
  3. Expand "Ports (COM & LPT)"
  4. Note your device's COM port (e.g., COM3, COM4, COM5)

Tip: Unplug/replug the device to see which port appears/disappears

5. Run Setup Wizard

python meshtastic_firmware_checker.py --setup

You'll be asked to configure:

  • Connection type: Serial/USB or Bluetooth
  • Port/Address: Your COM port or Bluetooth MAC address
  • Release type: Alpha (pre-releases) or Stable only
  • Check interval: How often to check (default: 12 hours)

6. Test It

Run a single check to verify everything works:

python meshtastic_firmware_checker.py --check-once

First run output:

[2026-01-12 14:43:22] Checking for updates...
Found Alpha release: v2.5.0.abc123d
Latest version: v2.5.0.abc123d
Last known version: None
First run - saving current version as baseline
βœ“ Saved v2.5.0.abc123d as baseline

The first run establishes a baseline - no notification is sent. Subsequent runs will notify when a new version is detected.

Deployment Options

Option 1: Windows Startup Folder (Recommended)

The script will start automatically when you log in:

  1. Press Windows + R
  2. Type: shell:startup and press Enter
  3. Right-click in the folder β†’ New β†’ Shortcut
  4. Browse to run_checker.bat in your installation folder
  5. Name it "Meshtastic Firmware Checker"
  6. Click Finish

βœ… Script now runs automatically on login!

Option 2: Windows Task Scheduler

For more control (e.g., run even when not logged in):

  1. Open Task Scheduler (search in Start menu)
  2. Click "Create Basic Task"
  3. Name: Meshtastic Firmware Checker
  4. Trigger: "When I log on" (or "Daily" for scheduled checks)
  5. Action: "Start a program"
  6. Program/script: Browse to run_checker.bat
  7. Start in: Your installation folder
  8. Finish

To run when not logged in:

  • Right-click task β†’ Properties
  • Check "Run whether user is logged on or not"
  • Enter your password when prompted

Option 3: Run Manually

Start the continuous checker whenever convenient:

python meshtastic_firmware_checker.py

Press Ctrl+C to stop.

Or run single checks on-demand:

python meshtastic_firmware_checker.py --check-once

Option 4: Scheduled Task (Check Once Per Day)

If your laptop isn't always on, set up a daily check:

  1. Create Task Scheduler task as above
  2. Trigger: "Daily" at a time your laptop is typically on
  3. Action:
    • Program: python
    • Arguments: meshtastic_firmware_checker.py --check-once
    • Start in: Your installation folder

Configuration

Settings are stored in firmware_checker_config.json:

{
  "github_repo": "meshtastic/firmware",
  "last_version": "v2.5.0.abc123d",
  "connection_type": "serial",
  "serial_port": "COM4",
  "bluetooth_address": null,
  "check_interval_hours": 12,
  "release_type": "alpha",
  "message_prefix": "πŸ”” New Meshtastic firmware available: "
}

Configuration Options

Option Values Description
connection_type "serial" or "bluetooth" How to connect to your device
serial_port "COM3", "COM4", etc. Serial port (Windows) or /dev/ttyUSB0 (Linux)
bluetooth_address MAC address Bluetooth address if using BLE
release_type "alpha" or "stable" Monitor pre-releases or stable only
check_interval_hours Number Hours between checks
message_prefix Text Message sent before version number

Edit Configuration

You can either:

  • Edit firmware_checker_config.json directly
  • Re-run setup: python meshtastic_firmware_checker.py --setup

Switch Between Alpha and Stable

Edit the config file and change:

"release_type": "stable"

Then reset the baseline by setting:

"last_version": null

Run --check-once to establish new baseline.

Command Line Options

python meshtastic_firmware_checker.py [OPTIONS]
Option Description
(no options) Run continuously with configured interval
--check-once Run a single check and exit
--setup Run interactive setup wizard
--config FILE Use alternate config file
--help Show help message

How It Works

  1. First Run: Queries GitHub for latest release matching your release_type (alpha/stable)
  2. Baseline: Saves version as baseline in config file
  3. Subsequent Checks: Compares GitHub's latest release to saved baseline
  4. New Version: Sends notification to mesh network via your connected node
  5. Update Baseline: Saves new version to avoid duplicate notifications

Troubleshooting

"Module not found" errors

Install dependencies:

pip install meshtastic requests

Or if you have multiple Python versions:

python -m pip install meshtastic requests

"Failed to connect to Meshtastic"

Serial/USB:

  • Verify device is connected
  • Check COM port in Device Manager
  • Close other programs using the device (Meshtastic app, serial terminals)
  • Try different USB cable or port

Bluetooth:

  • Verify device is paired in system Bluetooth settings
  • Check Bluetooth address is correct
  • Ensure device is in range and powered on

"Port already in use"

Another program is using your device. Close:

  • Meshtastic mobile/desktop app
  • Serial terminal programs
  • Other instances of this script

Python PATH issues (Windows)

If python command not found:

  1. Settings β†’ Apps β†’ Advanced app settings β†’ App execution aliases
  2. Turn OFF "App Installer python.exe"
  3. Close and reopen Command Prompt

Or reinstall Python and check "Add Python to PATH"

Script not running at startup

  • Verify shortcut/task path is correct
  • Run run_checker.bat manually to see errors
  • Check Task Scheduler History for error details

Advanced Usage

Multiple Configurations

Monitor different release types or use different devices:

python meshtastic_firmware_checker.py --config alpha_config.json
python meshtastic_firmware_checker.py --config stable_config.json

Custom Notification Messages

Edit message_prefix in config:

"message_prefix": "⚑ FIRMWARE UPDATE: "

Run on Linux/macOS

Find your serial device:

# Linux
ls /dev/ttyUSB* /dev/ttyACM*

# macOS
ls /dev/tty.usb*

Use this path as your serial port (e.g., /dev/ttyUSB0)

Setup and usage commands are the same as Windows.

Project Structure

meshtastic-firmware-notifier/
β”œβ”€β”€ meshtastic_firmware_checker.py    # Main script
β”œβ”€β”€ run_checker.bat                   # Windows launcher
β”œβ”€β”€ requirements.txt                  # Python dependencies
β”œβ”€β”€ README.md                         # This file
β”œβ”€β”€ LICENSE                           # MIT License
└── .gitignore                        # Git ignore rules

Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest features
  • Submit pull requests

Support

License

MIT License - See LICENSE file for details

Acknowledgments

Changelog

v1.0.0 (2026-01-12)

  • Initial release
  • Support for Alpha and Stable release monitoring
  • Serial/USB and Bluetooth connectivity
  • Windows Task Scheduler integration
  • Configurable check intervals

Made with ❀️ for the Meshtastic community

About

Automatically checks for new Meshtastic firmware releases and sends notifications to your mesh network

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors