Skip to main content

Python package for M17 radio and radio-over-IP protocols

M17 is a new, experimental radio protocol similar to DMR/MotoTRBO, P25, D-STAR, and others. It uses the Codec2 vocoder by David Rowe.

See M17 Project for more details.

This code will be pushed up to the M17 project's newly created Github eventually. As for now, it's all by yours truly.

Build Status

This package has full Python support for handling M17 addresses, framing and parsing, and including a full Python native VoIP client (for developers).

Features

Base

  • python -m m17.address <callsign> - print the encoded M17 base40 representation of the callsigns given
  • see frames.py and framer.py in the source for M17 frame classes and example usage.

[Codec2]

  • python -m m17.audio_test 3200 where 3200 can also be 1600, 1200, or other supported Codec2 bitrate. Takes your microphone, encodes and decodes it into Codec2, and plays it back. Useful for getting your microphone input tuned properly for Codec2.

Installation

Pip

You can install with pip install m17, and get a basic feature set including framing and M17 address translation.

However, to get all features that use Codec2, including the full M17 VoIP node and audio_test, you must first have Codec2 installed on your system, including the Codec2 development headers, and Cython. Once that's complete, you can then pip install m17[Codec2] to install all features.

Note that installing Cython separately before pycodec2 seems to be required in order to make sure it's available for pycodec2's setup process.

Here's an example for Arch Linux.

pacman -Syu base-devel codec2 python python-pip python-setuptools
pip install --upgrade pip numpy Cython wheel setuptools
pip install m17[Codec2]

Naturally you need the typical compilation tools, which on Arch are base-devel.

On systems that separate development headers, you need those too for Codec2, i.e. both codec2 and codec2-dev, or whatever the appropriate names are for your distro.

On many Ubuntu and Debian systems, the codec2 packages in the distro repositories is too out of date for use with pycodec2, so you may need to follow the upstream Codec2 instructions and the upstream pycodec2 instructions to get a fully working installation of both.

You may email me with clearly described problems regarding installation and I will do my best to help.

TODO: https://github.com/joerick/cibuildwheel

Metadata

Release files for m17 0.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for m17 0.0.11
File Size Uploaded
m17-0.0.11.tar.gz 17.9 kB Details

Release files / m17-0.0.11.tar.gz

Download URL m17-0.0.11.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4eb060b81406769012b5a16ccaeeaa6d17a16ac333f5f615bb943df0db38a6fa
BLAKE2b-256 checksum
How to use checksums
624d07789d7cc94a5472b044fab249a04bb0eebd5c98d8830a3364a6a77adc4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

Release history Release notifications | RSS feed

0.1.0

2 release files

0.0.15

1 release file

0.0.14

1 release file

0.0.13

1 release file

0.0.12

1 release file

This release

0.0.11 This release

1 release file

0.0.10

1 release file

0.0.9

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page