Giter Site home page Giter Site logo

codecserver-mbelib-module's Introduction

mbelib module for OpenWebRX Codec Server

A module for OpenWebRX Codec Server that adds support for mbelib to allow Digital Voice decoding in software

  • more info about OpenWebRX Codec Server can be found here
  • more info about mbelib can be found here

This module currently supports the following Digital Voice protocols:

  • D-STAR
  • DMR
  • YSF (both DN and VW mode)

How to build

NOTE: for detailed instructios on on how to build and install this Codec Server module on the OpenWebRX Raspberry Pi images, please see the section How to build - OpenWebRX Raspberry Pi images below.

Prerequisites for building this module are a successful build and install of both OpenWebRX Codec Server and mbelib. Please follow the instructions in the links provided above to build and install both dependencies.

IMPORTANT: OpenWebRX Code Server requires the system account 'codecserver' in order to run; that account is very likely not on your system the first time you run codecserver. To create that system account you can use a command like this:

sudo useradd -r -d /nonexistent -c 'OpenWebRX Codec Server' codecserver

Once all the prerequisites are built, installed, and running as expected, these are the steps to build and install 'codecserver-build-module':

git clone https://github.com/fventuri/codecserver-mbelib-module.git
cd codecserver-mbelib-module
mkdir build
cd build
cmake ..
make
sudo make install
cd ..

You will also need the Codec Server configuration file (typically located at '/usr/local/etc/codecserver/codecserver.conf'): if you do not have that directory and file already, you can copy it with the commands:

sudo mkdir -p /usr/local/etc/codecserver
sudo cp conf/codecserver.conf /usr/local/etc/codecserver

If you already have a Codec Server configuration file, just append the '[device:mbelib]' section to the existing configuration file.

Finally restart OpenWebRX Codec Server service:

sudo systemctl restart codecserver

How to build - OpenWebRX Raspberry Pi images

Since the OpenWebRX Raspberry Pi images already contain Codec Server, some of the steps above are not needed (and other steps are slightly different).

For those who want to add this module to an existing OpenWebRX Raspberry Pi image, these are the exact steps and commands I used on mine:

(assign IP address)
(enable SSH)
(remote login as user pi)

sudo apt update
sudo apt full-upgrade
sudo reboot

(after reboot)

git clone https://github.com/szechyjs/mbelib.git
cd mbelib
mkdir build
cd build
cmake ..
make
sudo make install
cd
sudo ldconfig

sudo apt install libcodecserver-dev libprotobuf-dev protobuf-compiler

git clone https://github.com/fventuri/codecserver-mbelib-module.git
cd codecserver-mbelib-module
mkdir build
cd build
cmake -DCMAKE_INSTALL_LIBDIR='/usr/lib/arm-linux-gnueabihf' ..
make
sudo make install
cd
sudo ldconfig

{ echo; echo '[device:mbelib]'; echo 'driver=mbelib'; echo 'unvoiced_quality=3'; } | sudo tee -a /etc/codecserver/codecserver.conf
sudo systemctl restart codecserver

Related work

Another piece of software very similar to this one developed by knatterfunker is codecserver-softmbe.

Credits

  • Many thanks to Jakob Ketterl, DD5JFK for all his hard work on OpenWebRX and Codec Server, and especially for digiham version 0.4 (https://github.com/jketterl/digiham/tree/release-0.4); all the parameters for deinterleaving and descrambling the various Digital Voice protocols come from that version of digiham.
  • Also many thanks to the anonymous author(s) of mbelib for all their work researching, implementing, and testing the codecs used in these Digital Voice protocols.

Copyright

(C) 2021 Franco Venturi - Licensed under the GNU GPL V3 (see LICENSE)

codecserver-mbelib-module's People

Contributors

fventuri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

codecserver-mbelib-module's Issues

All compiles ok with no errors but codecserver_ambe is showing as NO in Features

Using all recommended settings and followed instructions exactly. No errors in compliation, etc. but OpenwebRX doesn't "enable" the codecserver.

Feb 04 09:17:33 openwebrx codecserver[374]: Hello, I'm the codecserver.
Feb 04 09:17:33 openwebrx codecserver[374]: now scanning for modules...
Feb 04 09:17:33 openwebrx codecserver[374]: registering new driver: "ambe3k"
Feb 04 09:17:33 openwebrx codecserver[374]: registering new driver: "mbelib"
Feb 04 09:17:33 openwebrx codecserver[374]: loading devices from configuration...
Feb 04 09:17:33 openwebrx codecserver[374]: registering new device for codecs: ambe,
Feb 04 09:17:33 openwebrx codecserver[374]: auto-detecing devices...
Feb 04 09:17:33 openwebrx codecserver[374]: scanning for "ambe3k" devices...
Feb 04 09:17:33 openwebrx codecserver[374]: scanning for "mbelib" devices...
Feb 04 09:17:33 openwebrx codecserver[374]: device scan complete.
Feb 04 09:17:33 openwebrx codecserver[374]: received signal: 15

cmake fails at line 13

CMake Error at CMakeLists.txt:13 (find_package):
By not providing "FindCodecServer.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"CodecServer", but CMake did not find one.

Could not find a package configuration file provided by "CodecServer" with
any of the following names:

CodecServerConfig.cmake
codecserver-config.cmake

Add the installation prefix of "CodecServer" to CMAKE_PREFIX_PATH or set
"CodecServer_DIR" to a directory containing one of the above files. If
"CodecServer" provides a separate development package or SDK, be sure it
has been installed.

-- Configuring incomplete, errors occurred!

Compiling problem

I have a problem like below, do you have any idea?

In file included from /codecserver-mbelib-module/src/mbelibdevice.cpp:3:
/codecserver-mbelib-module/src/mbelibsession.hpp:44:13: error: ‘mbe_parms’ does not name a type
mbe_parms *curr_mp;
^~~~~~~~~
/codecserver-mbelib-module/src/mbelibsession.hpp:45:13: error: ‘mbe_parms’ does not name a type
mbe_parms *prev_mp;
^~~~~~~~~
/codecserver-mbelib-module/src/mbelibsession.hpp:46:13: error: ‘mbe_parms’ does not name a type
mbe_parms *prev_mp_enhanced;
^~~~~~~~~
make[2]: *** [src/CMakeFiles/mbelib.dir/build.make:76: src/CMakeFiles/mbelib.dir/mbelibdevice.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:94: src/CMakeFiles/mbelib.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.