Giter Club home page Giter Club logo

hamtetra's Introduction

HamTetra

This is a repository for an implementation of Terrestrial Trunked Radio (TETRA) using software defined radios. The goal is to implement a direct-mode (DMO) repeater and a trunked-mode (TMO) base station.

The system consists of multiple pieces from different repositories, which are pulled in here as git submodules.

Supported platforms

Supported radios are those providing a SoapySDR module, full duplex capability and timestamp support. This includes at least the LimeSDR, LimeSDR Mini, SXceiver, XTRX, BladeRF and various USRP models. Most experimentation so far has happened on various LimeSDR models, so that's recommended.

Due to the lack of full duplex and/or transmit timestamp support, devices such as ADALM-PLUTO and HackRF are not guaranteed to work properly.

Recommended operating system is Ubuntu Linux running on any laptop, server or desktop computer. Raspberry Pi 3 or 4 running Raspberry Pi OS or other single-board computers running Armbian can be used as well. Several other platforms may work but have not been tested.

Installation for SXceiver on Raspberry Pi OS

Tested on Raspberry Pi OS version 12.

Install the SXceiver driver module (SoapySX). This can be skipped if you have already installed the latest version.

sudo apt-get install -y --no-install-recommends git make g++ cmake libsoapysdr-dev libasound2-dev libgpiod-dev
cd
git clone "https://github.com/tejeez/sxxcvr.git"
cd sxxcvr/SoapySX
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
# Only needed on desktop systems running PipeWire:
systemctl --user restart wireplumber

Install the rest:

cd
git clone https://github.com/OH2NXX/HamTetra.git
cd HamTetra
git submodule init
git submodule update
 
install/suo_dependencies.sh
install/build_liquiddsp.sh
install/build_suo.sh
 
install/osmo_dependencies.sh
install/build_osmocore.sh
install/build_osmotetra.sh

Installation for LimeSDR on Ubuntu

The following steps have been tested to work on a fresh installation or a container based on Ubuntu 18.04.

sudo apt install git
cd
git clone https://github.com/OH2NXX/HamTetra.git
cd HamTetra
git submodule init
git submodule update
 
# Skip install_limesdr.sh if LimeSDR drivers and SoapySDR are installed
# already. Avoid installing a mixture of multiple versions.
install/install_limesdr.sh
 
install/suo_dependencies.sh
install/build_liquiddsp.sh
install/build_suo.sh
 
install/osmo_dependencies.sh
install/build_osmocore.sh
install/build_osmotetra.sh

The installation scripts will occasionally ask for your password in order to use sudo. On distributions other than Ubuntu or Debian, try to find the equivalent packages for the dependencies and install them manually.

If you just installed LimeSuite, it's a good idea to make sure the LimeSDR firmware and gateware versions are up to date. Do:

LimeUtil --update

Running it

To run a DMO repeater, start:

osmo-tetra-dmo/src/hamtetra_main2

It should print a help for command line parameters. Fill in your SDR hardware and TETRA frequency and it should start transmitting. If changes to some other configuration is needed, edit the source code.

Alternative platforms

So, LimeSDR is too expensive or you can't wait for one to arrive? No worries! There's also some experimental support for traditional sound-card based SDRs. Depending on your hardware, it may or may not work properly. ALSA snd_pcm_link call is used to synchronize record and playback streams, which seemed to work well enough on one tested motherboard integrated sound chip, but not so well on one tested USB sound card.

Connect Line Out and Line In to I/Q mixers, use some signal generator as a local oscillator and tune it 12 kHz below the desired center frequency. Start something like ./hamtetra_main2 alsa:hw:0,0 0 and use alsamixer -c 0 to adjust the mixer settings. Replace hw:0,0 and -c 0 with the correct sound card number if needed.

hamtetra's People

Contributors

tejeez avatar

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.