PrideDMRAndroid

A Monitor for PrideDMR

PrideDMR Android Monitor

Flutter Android app for monitoring DMR talkgroups on the PrideDMR network.

Features

  • 🔐 User Authentication - Login with your PrideDMR account
  • 📻 Talkgroup Monitoring - Select and monitor any public talkgroup
  • 🎧 Real-time Audio Decoding - Integrated DSD+ AMBE voice decoder
  • 🔄 Smart Subscription Management - Automatic subscribe/unsubscribe when changing talkgroups
  • 🎨 Modern UI - Clean, intuitive interface with visual feedback
  • 🌙 Nightly Builds - Automated APK releases every day

Installation

Download APK

Download the latest nightly build from the Releases page.

From Source

cd pridedmr_monitor
flutter pub get
flutter build apk --release

The APK will be in build/app/outputs/flutter-apk/app-release.apk

Usage

  1. Login with your PrideDMR credentials (register at https://pridedmr.net)
  2. Select a Talkgroup from the list
  3. Connect to the network
  4. Listen to live DMR traffic
  5. Change talkgroups anytime with automatic re-subscription

Project Structure

  • pridedmr_monitor/ - Main Flutter application
  • dsd_flutter/ - DSD-Flutter plugin for AMBE audio decoding
  • .github/workflows/ - Automated build configuration

How it Works

  1. Authenticates to PrideDMR API and retrieves monitor credentials
  2. Connects to pridedmr.net:62031 using Homebrew/MMDVM UDP protocol
  3. Subscribes to selected talkgroups via REST API
  4. Receives DMR data frames and decodes AMBE audio in real-time
  5. Plays audio through device speakers

API Integration

The app integrates with the PrideDMR REST API for:

  • User authentication (JWT tokens)
  • Monitor hotspot credential management
  • Talkgroup listing and subscription
  • Real-time subscription updates

Protocol

Uses the standard Homebrew/MMDVM protocol:

  • RPTL - Repeater login
  • RPTK - Repeater key (authentication)
  • RPTACK/MSTACK - Server acknowledgment
  • MSTP - Master ping (keepalive)
  • RPTPONG - Repeater pong response
  • DMRD - DMR data frames (voice/data)

Development

Requirements

  • Flutter 3.38.1 or higher
  • Dart SDK 3.10.0 or higher
  • Android SDK (for building APK)

Build Locally

# Get dependencies
cd pridedmr_monitor
flutter pub get

# Run on connected device
flutter run

# Build release APK
flutter build apk --release

CI/CD

The project uses GitHub Actions for automated nightly builds:

  • Builds every day at 4:00 AM UTC
  • Creates signed release APKs
  • Publishes to GitHub Releases
  • Keeps last 7 nightly builds

See .github/workflows/nightly-build.yml for details.

License

This project is part of the PrideDMR network ecosystem.

Links