Skip to content

ZPTTLink is an open-source, cross-platform utility that connects Zello (running inside BlueStacks or Waydroid) to radio gateway hardware like the AIOC (All-In-One Cable). It enables seamless Push-to-Talk (PTT) control and audio routing between your computer and radio, creating a functional bridge between digital voice and RF communication.

License

Notifications You must be signed in to change notification settings

maxhayim/ZPTTLink

Repository files navigation

ZPTTLink Logo

Python Version License Platform

ZPTTLink

ZPTTLink is an open-source, cross-platform application that bridges Zello (running inside BlueStacks or Waydroid) with radio gateway hardware like the AIOC (All-In-One Cable). It enables seamless Push-to-Talk (PTT) control and audio routing, allowing users to link RF radios to Zello using only a computer.

This tool is ideal for GMRS and ham radio operators, emergency communications volunteers, and hobbyists who want to build a software-based radio gateway.

Features

  • Compatible with AIOC, CM108-based, and other USB serial/audio radio cables
  • Detects PTT signals via USB serial
  • Simulates keypresses or mouse events to trigger Zello’s Push-to-Talk
  • Cross-platform support for Windows, macOS, and Linux
  • Minimal and simple (KISS — no GUI required)
  • Audio routing via VB-Cable (Windows), BlackHole (macOS), or ALSA Loopback (Linux)

Requirements

  • AIOC or compatible USB PTT/audio interface
  • Python 3.8 or newer
  • Zello installed inside BlueStacks or Waydroid

Python Dependencies

Install all dependencies with:

pip install -r requirements.txt
  • Core: pyserial, pynput, sounddevice, numpy, loguru, platformdirs
  • Windows: pycaw
  • macOS: pyobjc
  • Linux: pulsectl, pyalsa

Linux Notes

  • ZPTTLink works with both ALSA and PulseAudio.
  • If your system uses PipeWire, make sure the PulseAudio compatibility layer is enabled so pulsectl can function correctly.
  • ALSA Loopback must be enabled for audio routing. See: ALSA Loopback Device.

Installation and Setup

  1. Install Python:
    • Windows
    • macOS: Use Homebrew:
      brew install python
    • Linux: Use your package manager (example for Debian/Ubuntu):
      sudo apt install python3 python3-venv
  2. Install virtual audio driver (choose your OS above).
  3. Clone the repository:
    git clone https://github.com/maxhayim/ZPTTLink.git
    cd ZPTTLink
  4. Create and activate a virtual environment:
    • Windows:
      python -m venv venv
      venv\Scripts\activate
    • macOS/Linux:
      python3 -m venv venv
      source venv/bin/activate
  5. Install dependencies:
    pip install -r requirements.txt

Usage

  1. Activate your virtual environment:
    source venv/bin/activate
  2. Run ZPTTLink:
    python -m zpttlink
  3. Available commands:
    • help — Displays available commands and usage info
    • q or quit — Safely exits the program
  4. Launch Zello inside BlueStacks or Waydroid:
    • Assign the same hotkey in Zello (e.g., F8 or F9)
    • Select the virtual audio driver as the microphone input
  5. Press the PTT button on your radio cable (e.g., AIOC). ZPTTLink will detect it, simulate a keypress, and Zello will transmit your audio.

How It Works

ZPTTLink listens to the USB serial signal from your radio cable. When activated, it simulates a keypress or mouse event to trigger Zello in BlueStacks or Waydroid. Audio from your radio is routed using the virtual audio driver, creating a seamless RF-to-Zello link.

License

MIT License

Contributing

Pull requests are welcome. Open an issue first to discuss ideas or report bugs.

Related Projects

Acknowledgments

Portions of this project are based on or inspired by the AIOC (All-in-one-Cable).
Zello® for Android is a trademark of Zello Inc., Android™ is a trademark of Google LLC, and both are used here solely for interoperability purposes. All other trademarks are the property of their respective owners.

About

ZPTTLink is an open-source, cross-platform utility that connects Zello (running inside BlueStacks or Waydroid) to radio gateway hardware like the AIOC (All-In-One Cable). It enables seamless Push-to-Talk (PTT) control and audio routing between your computer and radio, creating a functional bridge between digital voice and RF communication.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages