M17 radio (and radio-over-IP) protocol implementation. https://github.com/M17-project/
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.
This package has full Python support for handling M17 addresses, framing and parsing, and including a full Python native VoIP client (for developers).
python -m m17.address <callsign>- print the encoded M17 base40 representation of the callsigns given
framer.pyin the source for M17 frame classes and example usage.
python -m m17.audio_test 3200where 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.
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
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
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
On systems that separate development headers, you need those too for
Codec2, i.e. both
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.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size m17-0.0.15.tar.gz (24.9 kB)||File type Source||Python version None||Upload date||Hashes View|