An open API service indexing awesome lists of open source software.

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

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