Some recent videos

dmrshark updates

I’ve been working on dmrshark in the past few months. Most of the improvements can be seen online at the Hungarian network’s live status page, or you can check the project’s GitHub page.

The new features are:

  • The info column shows decoded SMS messages and GPS coordinates.
  • dmrshark decodes voice calls and calculates their current and average RMS volumes. There’s a circle which varies it’s color according to the volume and helps setting the correct mic gain.
  • Several new columns added to the repeater table.
  • dmrshark can record decoded voice data to .mp3 files. Recorded files of the Hungarian network can be downloaded from the archive page.
  • Live streaming via WebSockets or HTTP are now supported.
  • DMR messages can be sent from an external SQL database table (see the Hungarian live status page). Both Hytera and Motorola formats are supported.
  • Data packet sending and receiving with full FEC encoding/decoding and selective retransmission.
  • SMS format conversion is supported. If you send an SMS from a Hytera transceiver to a Motorola (or Chinese one), dmrshark detects that the message send was unsuccessful and retries sending your message in the opposite (in this case, Motorola) format.
  • If you send the message “help” (without quotation marks) to dmrshark’s DMR ID (7777), you can get the supported command list in SMS.
  • If the first word of a message to 7777 is an email address, and the other words are the message, dmrshark will send the message as an email to the given destination address.
  • If you send the word “ping” to 7777, it will answer with “pong”.
  • If you send the word “info” to 7777 with a callsign or DMR ID as the second word, it will give you info back about the given callsign/ID from the callsign book database.
  • If you send a message to 7777 with the first word being a callsign and the rest are the message, it will be sent to the APRS-IS system as an APRS message.
  • APRS message sending/receiving to and from APRS-IS
  • GPS position decoding and sending to the APRS network. Both time and button triggered Hytera GPS position packets can be decoded. DMR data ack is sent after a successful GPS position packet has been decoded, so the transceivers won’t send duplicate position packets unnecessarily.
  • Echo service is available on 7777, in both timeslots and both private and group calls. After the echo test ends, dmrshark will send you back your average RSSI and RMS volume values during the echo test. This echo test SMS gets sent also after a normal DMRplus echo test sent to TS2/9990.
  • Most of the FEC algorithms are used not only for error checking but for error correction too. Most of the DMR protocol’s packets can be decoded and displayed in the log.

Raspberry Pi Sensors

Another great book from PacktPub. The subtitle is great to give a short description on what this book is about: “Integrate sensors into your Raspberry Pi projects and let your powerful microcomputer interact with the physical world“.

It begins with an introduction to Linux, basic electronics, communication protocols, so everyone who is interested in the topic can begin tinkering, you don’t need to be an embedded Linux expert. The chapters cover very interesting topics like measuring distance using ultrasonic sensors, measuring temperature, air pressure, humidity, using a photoresistor, an A/D converter, how to process and store gathered data, and lastly how to use OpenCV for simple image processing.

I recommend this book for everyone who want to learn building something with sensors connected to the Raspberry Pi.


In the last 2 weeks I’ve been working on a software called dmrshark in my free time. It uses libpcap to analyse the traffic of a Hytera IPSC network.

It can be used for:

  • Tracking calls, logging to a text file, and/or inserting them to a remote MySQL-compatible database.
  • Automatic and periodic reading of repeater timeslot RSSI values during calls and also inserting them to the remote database.
  • Updating a remote database table with currently active repeaters and their info (ul/dl freqs, type, fw version etc.).
  • I’m planning other features as well, development hasn’t stopped of course :)

More info can be found on dmrshark’s GitHub page. A working example can be found here.

Here’s a video of an early preview version which only supported DMR packet structure decoding and logging to the text console:

I’ve translated my recent blogpost on, so here’s some info about the Hytera RD625 DMR repeater and about setting up VoIP communications.

We’ve measured the bandwidth required for the repeater to communicate with the DMR master software to transfer one timeslot. The result is 15-17 kbit/s for both up and download directions, so the bandwidth required is about 35 kbit/sec, if there’s someone talking on one timeslot. We’ve conducted the tests using a 3G internet connection with an 8 slot length jitter buffer. The latency of our 3G connection is quite high, but the voice communication remained perfect. I’ve made a video about the tests:

Some interesting facts

  • The blue LED under the D sign is on when the repeater is communicating with the master software. When the repeater connects to the master, a voice says on TS2 TG9 that the reflector 4770 got connected.
  • The repeater doesn’t care about an unplugged Ethernet cable, it won’t ask for a new IP address. It doesn’t care about DHCP lease timeouts, it only asks for an IP address in DHCP mode only when we power it on.
  • All 3G connections are NATted in Hungary, so there’s no external address and connection tracking for the UDP packets, so incoming packets can’t find a way to the repeater. We had the repeater plugged into a Routerboard, which had the 3G stick in it, and we created a VPN tunnel to our server and set the default gateway for that VPN connection. This way we had an external IP address and could set up our firewall to pass through UDP packets destined to the repeater.
  • The repeater uses the following UDP ports: 62005 (status, heartbeat, etc.), 62006 (general traffic), 62007 (management info, RDAC)

» …continue reading ‘Hytera RD625 DMR repeater tests, VoIP setup’

Hytera tests

I had two PD785Gs this evening with me so I couldn’t resist to do the glass of water test :)

Today we tested the bandwidth and the VoIP integration of the Hytera RD625. I’ve made a (Hungarian) tutorial on how to set up Asterisk, the repeater and a handheld radio to be able to make and receive VoIP calls.

We’ve got our brand new Hytera RD625 DMR repeater with a Procom filter on this Tuesday. Here’s the unboxing video:

We’ve also looked at a Puxing PX820 DMR HT:

Inserting a 3-band Diamond fiberglass antenna into an industrial antenna’s case:

Packtpub is having a day against DRM on which you can buy their DRM-free content at $10 for 24 hours only on May 6th – that’s all 2000+ eBooks and Videos at


Just a week ago I bought a Hytera PD785G DMR (Digital Mobile Radio) handheld transceiver. Now I’m spending my free time reading about DMR, experimenting with the Hytera CPS software, and writing about DMR to my radio club’s webpage.

DMR works way beyond my expectations compared to analog radio. I can communicate on locations where my analog Yaesu VX8G can’t, and the DMR repeater’s antenna is about 100 meters lower than the analog repeater’s. Sending and receiving text messages is very fun, and I like the compressed voice of DMR’s AMBE+2 codec very much.

Recently I’ve been working on a Red5 webapp called kdrlivestream which authenticates users using a MySQL database. This will be used for live streaming my radio club’s subscription based remote courses.

Red5 has a built-in webapp called live, but it doesn’t use authentication. Everyone will be able to publish and watch streams using your private Red5 server.

kdrlivestream always authenticates publishers using usernames and passwords stored in a MySQL database.

By default, every viewer has to be authenticated too, but publishers can specify that their streams are public. Public streams can be watched without any authentication.

Optionally the webapp can periodically store active publisher and viewer info into the database (who watches and publishes what).

See more info on the project’s GitHub page!

Click for »

About me

I'm Nonoo. This is my blog about music, sounds, filmmaking, amateur radio, computers, programming, electronics and other things I'm obsessed with. ... »


Listening now

My favorite artists