Table of Contents
User guide
git clone https://jenda.hrach.eu/p/kukuruku
We test the client on Debian 9 and the server on Debian 8, Debian 9 and Ubuntu 14.04. Howeverer, it should run on any distribution and probably on other UNIX systems too.
Server
Requirements:
- protobuf-c-compiler (it is probably in your distribution repository)
- libprotobuf-c-dev in Debian 9 and newer
cd server make ./init.sh rtl=0 2048000 10 127.0.0.1 # osmosdr args, samplerate, ppm, listen address
There is no security in the protocol. Use ipsec, ssh tunneling, openvpn, etc.
Client
Requirements:
- python-gtk2
- GnuRadio
- protobuf-compiler
- python-protobuf
- python-pygame
grcc was broken in 3.7.10, and was fixed recently.
Build it and install it:
cp -a .kukuruku ~ # edit path to modes directory in ~/.kukuruku/modes cd client make ./kukuruku-gui.py your-server:4444
FM demodulator is builtin, for other modes, you will need to install additional packages:
Tetra
You need “tetra-rx” in your $PATH. Install tetra.
It dumps traffic data to /tmp/tetra-dumpdir. You can decode the channel with
codec/c-code/cdecoder traffic_666_1.out cdata
and then create a .cdata.bz2 with
cat cdata | gr-pack | bzip2 > cdata.bz2
You can play the resulting file with cdp.
Tetrapol
You need “tetrapol_dump” in your $PATH. Install tetrapol.
RS92-SGPL Weather sonde
You need “rs92ecc” (for old RS92 sondes) and/or “rs41ecc” (for modern RS41 sondes) in your $PATH. Install https://github.com/rs1729/RS.
Additionally, you need a fresh GPS almanac in /tmp/alma.bin to decode satellite data. You can download it here. The site denies usage of wget; use empty or Firefox user-agent to get around it.
Usage
- Right click on frequency to pick a demodulator.
- Ctrl+right click to demodulate from history buffer
- Left click on a running demodulator to fine-tune, drag and drop to retune.
- Scroll on a running demodulator to change filter to narrower/wider.
- Press the “Scale waterfall” button to adjust the dynamic range.
libclient
You can easily roll out your own client!
import libclient cl = libclient.client() cl.connect("machine.example.com", 4444) cl.set_auto_enable_xlater(True) cl.create_xlater(frequency, decimation, my_filter, my_demodulator, -1)
See the example in cli.py.