Giter VIP home page Giter VIP logo

ambeserver-install's Introduction

ambeserver-install

Files, scripts and documentation for installing AMBEserver with the official NW Digital Radio ThumbDV™.

Assumptions and Defaults

This install assumes you have a recent generation ThumbDV™ which runs at 460800 bauds. If you have a very early generation ThumbDV™ you will need to edit ambeserver-ThumbDV.conf in the downloaded code before running install.sh or in /etc/opendv after running install.sh and change the speed to 230400 by commenting out the line AMBESERVER_FLAGS="-s 460800"

If you have a PiDV™ or an AMBE-3000 device from another company, you will need to use the alternate files from /etc/opendv in conjunction with systemctl to start, stop, enable, disable, and check status on AMBEserver. This install starts AMBEserver for ThumbDV™, and enables it for automatic restart on boot, so you will need to disable it using systemctl if you don't want that behavior.

If these assumptions and defaults meet your system, then you can proceed with the simple install.

Simple Install

From the command line in a terminal:

sudo apt-get install git
cd
git clone https://github.com/nwdigitalradio/ambeserver-install.git
cd ambeserver-install
sudo chmod +x install.sh
sudo ./install.sh

If your AMBEserver fails to start

After these steps, if your AMBEserver doesn't start, try removing and replacing the ThumbDV™ from it's USB port, then check for /dev/ThumbDV with ls -l /dev/ThumbDV and then restart the AMBEserver for ThumbDV™.

sudo systemctl restart ambeserver@ThumbDV 

Theory of Operation

AMBEserver is a pretty simple application, it is composed of a single executable that is compiled from the source AMBEserver.c the install.sh copies this source to /usr/local/src/AMBEserver where it is compiled and placed in /usr/local/sbin as AMBEserver.

The AMBEserver simply makes access to the ThumbDV™ (or equivalent) available on a network port for client applications to access. It supports one application stream at a time, taking as input PCM encoded audio and returning AMBE encoded data, and conversely takes in AMBE encoded data and returns PCM encoded audio. So long as it performs that function, AMBEserver is operating properly, all other functions are handled by the application. If you are experiencing interface, audio, or network issues, troubleshoot the application.

The AMBEserver can be initiated from the command line, but it is preferred to use the systemd daemon manager. Using the systemctl command. To see all of the subcommands of systemctl, please view the manual page, by running

man systemctl

Using the included service file, the operating parameters are taken from configuration files located in /etc/opendv. You may edit these files to use a different network port and device file. If you need to create a new configuration, simply copy a configuration file and name it with ambeserver-devicename.conf where devicename is the device file in /dev such as

sudo cp /etc/opendv/ambeserver-ttyUSB0.conf /etc/opendv/ambeserver-ttyUSB1.conf

A special device is created by udev for the ThumbDV™ by the file 99-thumbdv.rules as part of this install. When a ThumbDV™ is plugged into a USB port, this rule causes udevd to detect it and create a link between /dev/ThumbDV and the enumerated USB port, e.g. /dev/ttyUSB0. If the ThumbDV™ lands on a different USB port such as /dev/ttyUSB2, the link moves to that port.

Support for the ThumbDV™ and PiDV™

For sales, returns, engineering, and hardware warranty please use the contact information.

For support of AMBEserver, please post your questions on NW Digital Radio's AMBE Support Forum where you will also find test programs in it's associated file section.

Concerning the PiDV™

The PiDV™ is no longer in production. However, you can use this install to operate AMBEserver with the PiDV™.

sudo systemctl disable ambeserver@ThumbDV
sudo systemctl stop ambeserver@ThumbDV
sudo systemctl enable ambeserver@ttyAMA0
sudo systemctl start ambeserver@ttyAMA0
sudo systemctl status ambeserver@ttyAMA0

Further information on the wiki.

Test Scripts

To test the ThumbDV™ or PiDV™ use the included Python script AMBEtest3.py. You will need to install Python using apt-get first. Turn off ambeserver using systemctl stop ambeserver@device and then run the script.

To test the AMBEserver, use the program ambesocktest.py. AMBEserver should be running for this test. If your AMBEserver is not on port 2460 on localhost (127.0.0.1), you will need to edit the script.

ambeserver-install's People

Contributors

johnhays avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

ambeserver-install's Issues

Issue to recognize Ambe DV30 Stick

We have 2 DV30 Sticks.

  1. FTDI_FT230X_Basic_UART
  2. FTDI_DVstick-30

The 2nd stick is not recognized by the ambeserver or is not working.

System Debian 13
Server DL360

Any help needed or something wrong
Thanks 73 de Stefan HB9GFX

Python3 AMBEtest3.py

Hi

AMBEtest3.py is not compatible with Python3
exemple print without ()
and
Traceback (most recent call last):
File "/usr/src/ambeserver-install/AMBEtest3.py", line 7, in
import thread
ModuleNotFoundError: No module named 'thread'

I can find the module thread in Python3

Thank you

udev rule not detecting my ThumbDV DV3000U

I made the following change to my udev file to get the symlink working on my system. Not sure if this only affects some hardware. The device was purchased in 2018 from Radioworld Canada, though it came with an instructions from FlexRadio Systems dated 2015.

SUBSYSTEM=="tty", ATTRS{product}=="FT230X Basic UART", SYMLINK+="ThumbDV"

Below is the output of udevadm info -a -n /dev/ttyUSB0

  looking at device '/devices/pci0000:00/0000:00:04.0/usb2/2-3/2-3:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:04.0/usb2/2-3/2-3:1.0/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="ftdi_sio"
    ATTRS{latency_timer}=="16"
    ATTRS{port_number}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:04.0/usb2/2-3/2-3:1.0':
    KERNELS=="2-3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ftdi_sio"
    ATTRS{bInterfaceSubClass}=="ff"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{interface}=="FT230X Basic UART"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bInterfaceProtocol}=="ff"

  looking at parent device '/devices/pci0000:00/0000:00:04.0/usb2/2-3':
    KERNELS=="2-3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bMaxPower}=="90mA"
    ATTRS{serial}=="DN00WILM"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{configuration}==""
    ATTRS{version}==" 2.00"
    ATTRS{authorized}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{devnum}=="8"
    ATTRS{urbnum}=="5913"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{removable}=="removable"
    ATTRS{devpath}=="3"
    ATTRS{bcdDevice}=="1000"
    ATTRS{rx_lanes}=="1"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{manufacturer}=="FTDI"
    ATTRS{product}=="FT230X Basic UART"
    ATTRS{bmAttributes}=="80"
    ATTRS{speed}=="12"
    ATTRS{idVendor}=="0403"
    ATTRS{tx_lanes}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{ltm_capable}=="no"
    ATTRS{busnum}=="2"
    ATTRS{idProduct}=="6015"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{quirks}=="0x0"
    ATTRS{maxchild}=="0"

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.