TETRA Decoding on Windows with Telive

TETRA is a type of digital voice and trunked radio communications system that stands for “Terrestrial Trunked Radio”. It is used heavily in many parts of the world, except for the USA. Telive is a decoder for TETRA which is compatible with RTL-SDR dongles, and has been around and in use for almost 2 years now. If you have unencrypted TETRA signals available in your area it can be used to listen in on them.

Telive is dependent on GNU Radio, so it is normally installed and used on a Linux system. Previously we wrote a tutorial on it’s installation and use, and other users have also made bootable Linux images of telive available.

However, now a TETRA experimenter by the handle of “cURLy bOi” has released a new prototype of a telive modification that works on Windows systems. It makes use of the GNU Radio for Windows development. The telive Windows file can be downloaded from curly’s webserver. His reademe file shows how to install and use the software and it reads:

This has been put together as lowest-effort configuration
to run telive on Windows system. I have also optimized to process (for example adding the CQPSK block to GRC since the python code in the original telive package is IN FACT some unused part of GNU Radio)

Warning:
———
This package contains pre-compiled binaries that work on my 64-bit system. I have compiled them inside the M-SYS2 package. If you don’t trust me, you can follow the installation guide from telive docs, just be prepared you are going to need a lot of packages for the M-SYS2 (pacman -S gcc automake git wget, etc.)

Install:
———
1) Download GNU Radio for Windows from http://www.gcndevelopment.com/gnuradio/downloads.htm
and install
2) Copy contents of gnuradio_mod to c:\Program Files\GNURadio-3.7\
3) Download and install M-SYS2 from https://sourceforge.net/projects/msys2/ and install
4) Copy contents of msys_root to your M-SYS2 installation directory
5) Download FFmpeg for Windows (64-bit Shared) from https://ffmpeg.zeranoe.com/builds/
and extract everything from bin to usr\bin in your M-SYS2 installation directory
6) In M-SYS2 shell execute “pacman -S socat”
7) Get GNU Radio Companion (GRC) projects from original telive package at
https://github.com/sq5bpf/telive/tree/master/gnuradio-companion
(only udp or xmlrpc, pipes won’t work)
8) Open whatever GRC project you want to use and edit it:
– Delete the link between (all) Fractional Resampler and UDP Sink
– From the modules on the right (ctrl-f to search) drag CQPSK Demod to project
(If you don’t see CQPSK Demod then you have messed up #2)
– Connect Fractional Resampler -> CQPSK Demod -> UDP Sink
– Change UDP Sink Input Type to Float in its properties
– Save

Use:
——
1) Open GRC project of your choice (already with the CQPSK Demod box)
2) Use the Project/Execute to run the project from the GRC
– OR –
If you had headless (without GUI) project, use Project/Generate option
to generate top_block.py file in the GRC project directory.
Then open GNURadio Command Prompt from Start menu, the use this command
c:\Program Files\GNURadio-3.7\gr-python27\python.exe -u c:\path\to\grc\project\top_block.py
This will enhance performance.
3) Open new M-SYS2 shell for every channel in that project and execute
command “receiver1udp X” where X is the number of each channel in GRC project
4) Open new M-SYS2 shell, resize it to 203×60 and execute:
– cd /tetra/bin
– ./rxx OR ./rxx_xmlrpc (if you are using XMLRPC GRC project)
You can edit these files to match your preferences
5) That’s it, should work.

Note that we have not tested this out ourselves yet and can’t guarantee the file safety or that it works, but we have no reason to believe that it wouldn’t be safe or not work.

TETRA Decoding (with telive on Linux)
TETRA Decoding (with telive on Linux)

56 comments

  1. vrman

    when I execute
    c:\Program Files\GNURadio-3.7\gr-python27\python.exe -u c:\path\to\grc\project\top_block.py
    there is messege
    ‘c:\program’ is not recognized as an internal or external command

    how to solve this

    • M.D.

      you need to enclose program Files between ” program Files because any file or folder name with a blank in it will cause windows to “think” that’s the first part of the command line. A good practice is to enclose the entire path between ” so just to avoid any problem. So your command line becomes:
      “c:\Program Files\GNURadio-3.7\gr-python27\python.exe” -u c:\path\to\grc\project\top_block.py
      This should work

  2. robert

    Hi! I´ve installed, and everything is OK, but when I execute the project in GNU, I only can see Chanel 1, but not Full Spectrum. What can we do? Thanks!

    • Robert

      Fixed, just hace to use Spectrum Scanner. The problem right now is that I can´t listen anything… I don´t if I have to use GQRX or another program as Mixer in Linux. Thanks for your help

  3. landry

    Hello,

    I encounter the following error when opening wintelive_10channels.grc would you have a solution?

    <<>>

    Block paths:
    C:\Program Files\GNURadio-3.7\share\gnuradio\grc\blocks

    Loading: “C:\msys64\tetra\projet landry\telive_1ch_simple_gr37_udp cqpsk brubru06.grc”
    >>> Done

    Generating: ‘C:\\msys64\\tetra\\projet landry\\top_block.py’

    Executing: C:\Program Files\GNURadio-3.7\gr-python27\python.exe -u C:\msys64\tetra\projet landry\top_block.py

    Win32; Microsoft Visual C++ version 14.0; Boost_106000; UHD_003.009.003-0-unknown

    gr-osmosdr 164a09fc (0.1.5git) gnuradio 3.7.10.1
    built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf airspy redpitaya
    Using device #0 Realtek RTL2838UHIDIR SN: jenda_F_-25
    Found Rafael Micro R820T tuner
    [R82XX] PLL not locked!
    Exact sample rate is: 2000000.052982 Hz
    [R82XX] PLL not locked!
    Traceback (most recent call last):
    File “C:\msys64\tetra\projet landry\top_block.py”, line 384, in
    main()
    File “C:\msys64\tetra\projet landry\top_block.py”, line 378, in main
    tb = top_block_cls()
    File “C:\msys64\tetra\projet landry\top_block.py”, line 232, in __init__
    self.digital_cqpsk_demod_0 = digital.cqpsk_demod(
    AttributeError: ‘module’ object has no attribute ‘cqpsk_demod’

    >>> Done

    Generating: ‘C:\\msys64\\tetra\\projet landry\\top_block.py’

    Executing: C:\Program Files\GNURadio-3.7\gr-python27\python.exe -u C:\msys64\tetra\projet landry\top_block.py

    Win32; Microsoft Visual C++ version 14.0; Boost_106000; UHD_003.009.003-0-unknown

    gr-osmosdr 164a09fc (0.1.5git) gnuradio 3.7.10.1
    built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf airspy redpitaya
    Using device #0 Realtek RTL2838UHIDIR SN: jenda_F_-25
    Found Rafael Micro R820T tuner
    [R82XX] PLL not locked!
    Exact sample rate is: 2000000.052982 Hz
    [R82XX] PLL not locked!
    Traceback (most recent call last):
    File “C:\msys64\tetra\projet landry\top_block.py”, line 384, in
    main()
    File “C:\msys64\tetra\projet landry\top_block.py”, line 378, in main
    tb = top_block_cls()
    File “C:\msys64\tetra\projet landry\top_block.py”, line 232, in __init__
    self.digital_cqpsk_demod_0 = digital.cqpsk_demod(
    AttributeError: ‘module’ object has no attribute ‘cqpsk_demod’

    >>> Done

    Generating: ‘C:\\msys64\\tetra\\projet landry\\top_block.py’

    Generating: ‘C:\\msys64\\tetra\\projet landry\\top_block.py’

    Executing: C:\Program Files\GNURadio-3.7\gr-python27\python.exe -u C:\msys64\tetra\projet landry\top_block.py

    Win32; Microsoft Visual C++ version 14.0; Boost_106000; UHD_003.009.003-0-unknown

    gr-osmosdr 164a09fc (0.1.5git) gnuradio 3.7.10.1
    built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf airspy redpitaya
    Using device #0 Realtek RTL2838UHIDIR SN: jenda_F_-25
    Found Rafael Micro R820T tuner
    [R82XX] PLL not locked!
    Exact sample rate is: 2000000.052982 Hz
    [R82XX] PLL not locked!
    Traceback (most recent call last):
    File “C:\msys64\tetra\projet landry\top_block.py”, line 384, in
    main()
    File “C:\msys64\tetra\projet landry\top_block.py”, line 378, in main
    tb = top_block_cls()
    File “C:\msys64\tetra\projet landry\top_block.py”, line 232, in __init__
    self.digital_cqpsk_demod_0 = digital.cqpsk_demod(
    AttributeError: ‘module’ object has no attribute ‘cqpsk_demod’

    >>> Done

  4. Jochen Brandt

    Hi guys again. In my area i receive two kinds of tetra. At 426 Mhz there are netherlands tetra repeater that i receive and decode with success. But here in Germany the tetra most on 390 up to 395 mhz. But they have a bandwith about 25 khz instead of 12,5 khz (426 mhz). I know, they are encrypted, but wintelive shall stop at active channels. Or does it not? Mine never stops at that frequencies. Must i have a change at GRC? I tried, but with no effects. Has anyone an idea?

    • oswald

      Hi
      In one of the Comments Curly told to turn off AGC, which in my understanding means Automatic Gain Control. However all AGC blocks are allready gone in the GRC project provided.
      The xlate_offset1 to xlate_offset10 variables are set to sample_rate, which is 2MHz. Sebastien suggested to turn it from 500 to 0.
      Like you mentioned, I think the problem lies more in the fact that the signals in Germany/Austria are encrypted. So maybe they are not detected by WinTelive?

  5. Anonymous

    Hi I’m getting an error when I try execute “cd /tetra/bin”
    I get “-bash: cd: /tetra/: No such file or directory”

    • Jochen Brandt

      Hi. Same error i got at start. You only must change to root directory and after that change to tetra directory.

        • Jochen Brandt

          You never work with the command window? So you must learn something about, hehehe. type in “dir” and search it by changing the folders with “cd”. Its nearly the same as the windows command-line input.

  6. Jochen Brandt

    Hi Guys! I installed all under Windows 8.1. Gnuradio works fine. Also muxrec starts I try it with only one receiver for begin. But when I start WinTelive, the connect window appears, but i cannot connect! “cannot connect remoteserver” is the message with nearly following Text “gnuradio 127.0.0.0:42000 not alowded” Whats going wrong? I am german and i cannot correctly translate the error message from wintelive. What shall i do now?

      • Jochen Brandt

        Thank you Phil. Now it is working. Found only one tetra repeater in this area, its from Netherlands. but i don’t know, if this is an issue: It tunes the active repeater. when scan stops I tuned to this repeater but after a few seconds status is off and frequency is missing in listing down. Has ist stopped? or does the receiving on this channel goes on?

    • John

      I also have the issue with not being allowed to connect to port 42000 on localhost (and I have no local firewall enabled). It could be some sort of permission issue in Win10. Any hints in the right direction are much appreciated.

  7. LimaZulu

    I’m getting “PLL Not Locked” when execute flow graph.
    I do know what it measn, but does anyone know why is that?

    • LimaZulu

      Hmm, whatever the reason for this mistake is it does not affect normal working. It says that actual frequency is 2000000.005324 but I can tune it whatever frequency I want

  8. Tartare

    Hi all,
    Thank you very much for the help, it works fine on my x64 computer.
    It seems needing a lot of CPU’s but I can work it as well.
    I have a major problem, I do not have audio output of decoded channel in ./rxx.
    OK PLAY is displayed on channel, but I don’t know how can set up the audio output on this program. Maybe I kneed to install the TETRA CODEC in directory, but while??
    I thank you as well if someone can help me to fix it 🙂
    Have a nice day!!

    • Tartare

      Thank you Gustavo, I hope a kindly Radioham will help us to find the issue to setup the audio with m-sys 🙂 !
      I’ll be very helpfull for us!
      Many thanks

  9. Far

    I have done steps 1-7 without any issues but, on opening any of the GRC files (I am using the UDP ones) I get lots of errors withing GnuRadio Companion similar to the following:

    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag meta line 35
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 34
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 33
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 32
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 31
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 30
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 29
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 28
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 27
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 26
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 25
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 24
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag link line 23
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag meta line 20
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag meta line 19
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag meta line 18
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag meta line 8
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag head line 7
    file:/C:/users/John/Downloads/telive_1ch_simple_gr37_slow_udp.grc:10471:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag html line 6
    >>> Failure

    The flowchart doesn’t appear so I cannot alter it. Any idea what might be going wrong here?

      • Far

        Thanks for the pointer. Bizzarely, copying and pasting the code direct from the webpage into a notepad file worked, somehow the formatting was corrupted downloading it.

      • Robin

        Same issue here. And how do we make sure GRC is downloaded correctly?
        GNURadio companion installed correctly and the program is working. But when loading the GRC project files (udp or xmlrpc) a whole list of errors popup and the flowchart doesn’t show.

        • Far

          The .grc files are in Linux text format. Linux just uses LF to end lines, DOS/Windows use CR/LF. You can convert them using a tool like Unix2Dos or, even simpler, do as I do and copy and paste the markup code into Notepad rather than directly downloading it.

  10. sebastien "french"

    “I have a clear Tetra Signal in the GnuRadio FFT, but the receiver1udp window only shows ###AFC: and numbers.”
    I had the same problem and I change the value of xlate_offset1 500 to 0 . keep informed if it works! for me is good !

  11. Christian

    I have a clear Tetra Signal in the GnuRadio FFT, but the receiver1udp window only shows ###AFC: and numbers.

  12. Christian

    Help. When I start “./rxx” comes this: “./rxx: Zeile 129: ./telive: No such file or directory”

    Why? I have all downloaded and installed…

Leave a Reply to Christian Cancel reply

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>