https://github.com/sarahroselives/pridedmrandroid
A Monitor for PrideDMR
https://github.com/sarahroselives/pridedmrandroid
dmr dsd
Last synced: about 1 month ago
JSON representation
A Monitor for PrideDMR
- Host: GitHub
- URL: https://github.com/sarahroselives/pridedmrandroid
- Owner: SarahRoseLives
- Created: 2026-02-10T00:46:23.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2026-04-13T05:06:35.000Z (2 months ago)
- Last Synced: 2026-04-13T07:28:42.920Z (2 months ago)
- Topics: dmr, dsd
- Language: C
- Homepage: https://pridedmr.net
- Size: 3.4 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://github.com/SarahRoseLives/PrideDMRAndroid/releases) page.
### From Source
```bash
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
```bash
# 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
- **PrideDMR Network**: https://pridedmr.net
- **Issues**: https://github.com/SarahRoseLives/PrideDMRAndroid/issues
- **Releases**: https://github.com/SarahRoseLives/PrideDMRAndroid/releases