Duplex Hotspot Reliability Solution

So you’ve bought a new duplex MMDVM hotspot such as the one from N5BOC. You want to experiment with different DMR networks on each of the timeslots. You’ve set the recommended offset values in the MMDVM Expert settings. Yet every third or fourth PTT press results in a lost transmission. You’re so frustrated you want to throw your radio and hotspot across the room. Sound familiar?

I’ve spent a couple of months chasing down this issue, reading post after article on this subject. The consensus so far has been:

1) Update to the latest firmware.
2) Run the MMDVMcal procedure to minimize the BER.
3) Set the DMR preamble time on your radio to 960 ms.

After weeks of poor results, I came upon the solution that has worked for me (and for others) in a manual for the Anytone 878 produced by Bridgecom. Bridgecom recommends a DMR preamble duration of 100 ms.

1) Update to the latest firmware.
2) Run the MMDVMcal procedure (or enter the sticker offset
values for RXOffset and TXOffset).
3) Set the DMR preamble to 100 ms.

Well, I was testing on an Alinco MD-DJ5, a radio very similar to the Anytone 878. So I tried the preamble setting (called Wake Head Period in my software).

I have now achieved the mystical “five 9s” of reliability. I press PTT, I talk, my transmission gets received.

Ah, the sweet smell of success… And kudos to Bridgecom for the level of support that provide for Anytone 878 users.

This solution has worked so far with an Alinco DJ-MD5, a Motorola XPR, and a CS-700 (where I had to use 120 ms because the dropdown increments in steps of 60.). Oddly, my Hytera PD-365 does not support values lower than 360.

73

You Say Protocol, I Say Reflector…

Is XLX a protocol? Is it a type of reflector? Why are we asking these questions?

There is a bit of a debate going on now in D-Star circles as to how the end user (you OM or YL) of a hotspot or repeater should connect to an XLX reflector. I’ve exchanged emails with some notable folks in amateur radio software development circles (Luc LX1IQ, Andy MW0MWZ, and Tom N7TAE) on the subject. The software developers are all in agreement. XLX is not a protocol, it is a type of reflector. On that point, they are quite correct.

To varying extents, each have indicated that the preferred way to access a reflector is via the protocol, node and module notation. Using this paradigm, to access XLX020A via DExtra protocol, you’d connect to XRF020A. But there could be an XRF020A that is not XLX020A. We’ll get to that in a couple of paragraphs.

On the other hand, Jonathan Naylor (G4KLX) has implemented the ability for ircDDBGateway to access XLX reflectors by name. Since all XLX reflectors support DCS protocol and DCS is the most modern of the three D-Star reflector protocols, ircddbgateway defaults to DCS connections. This make perfect sense to me. And it works!

Note: In case you did not know, ircDDBGateway is part of the software suite that comprises the exceedingly popular Pi-Star distribution. May of the tools provided as part of Pi-Star were developed by G4KLX.

As an end user of a hotspot or repeater, I just want to connect. There is also the problem of amgibuity. You can have an REF123, an XRF123, a DCS123, and an XLX123. They may or may not be the same destination. But XLX123 is a specific destination, as are the other three. So the best way to connect to an XLX reflector for the end user would be to allow the end user to specify that destination.

To continue to require that XLX connection requests specify a particular protocol, when there is no specific reason to do so, would be as confusing as requiring the end user of a mobile phone to specify what network the called party is connected to. Yes, the option is there, but let’s make this simple.

I’d like to see the various hotspot platforms adopt this aproach. What do you think?

73 de K2DLS


XLX Support Updates

There are a couple of big announcements to make in terms of support for the XLX reflector world this week.

The first development is that Kenwood has released firmware version 1.09 for the popular D74A handheld transceiver. Among the improvements contained in this release is direct support for selecting XLX reflectors by name on the “Link to Reflector” menu.

The second development is that Andy Tayor <MW0MWZ>, developer of the extremely popular Pi-Star hotspot software distribution for the Raspberry Pi, has made a change that allows the radio operator to directly select an XLX reflector. Previously, you would have to make a local host table override entry for an XRF or DCS reflector in order to make this work.

06-28 Alert: After some more testing, it seems that the Pi-Star change to allow connection via the XLX name isn’t working properly. Testers experienced one way audio with the initiator of the connection not hearing the remote end.

07-11 Update: XLX Linking is now working, with some tweaks to the ircddbgateway config. See this thread on the Pi-Star Forum for more info.

XLX reflectors just got a whole lot better thanks to these updates!

73 de K2DLS

Raspberry Pi 4 Available!

The UK based Raspberry Pi Foundation has announced the availability of the latest advancement in the Raspberry Pi single board computer series. The Raspberry Pi 4 Model B offers:

  • 1.5 GHz quad-core 64 bit Arm Cortex-A72 CPU
  • Up to 4 GB RAM
  • Full throughput gigabit ethernet speed
  • Dual band wireless networking
  • 4k video decode in hardware

For the first time, the amount of memory is an option selected at time of purchase.

While some may view this upgrade as incrememental, those with larger memory or dual monitor needs will see this as a transformative improvement. A new release of the Raspian operating system based upon Debian Buster will support the RPi 4 B+ and its new features.

A complete desktop kit is also being offered. Can the Raspberry Pi replace your desktop PC? Perhaps.

N5BOC Duplex Hotspot

I managed to get my hands on one of the hot items in the MMDVM world — an N5BOC Duplex Hotspot. This is really a mini-repeater which uses both timeslots on DMR and has a separate transmit and receive antenna connector. Initial results have been as expected — excellent!

My idea was to have a hotspot where I could configure XLX on TS1 and Brandmeister on TS2. With the N5BOC board and Pi-Star this was a breeze. The key is in the DMR Gateway configuration.

My XLX configuration:

[XLX Network]
Startup=020
Enabled=1
File=/usr/local/etc/XLXHosts.txt
Port=62030
Password=passw0rd
ReloadTime=60
Slot=1
TG=6
Base=64000
Relink=60
Debug=0
Id=1234567
UserControl=1
Module=A

My Brandmeister configuration:

[DMR Network 1]
Enabled=1
Address=107.191.99.14
Port=62031
TGRewrite0=2,9,2,9,1
PCRewrite0=2,94000,2,4000,1001
TypeRewrite0=2,9990,2,9990
SrcRewrite0=2,4000,2,9,1001
PassAllPC=2
PassAllTG=2
Password="passw0rd"
Debug=0
Name=BM_United_States_3101
Id=123456701

If you’re not currently using DMRGateway, make sure that you have activated it by setting the DMR Master on the configuration page to DMR Gateway. This will reveal options to help you manage Brandmeister, DMR+, and XLX, all on the same hotspot.

xlxd and SELinux

TL;DR — If you’re not running an xlxd based reflector using SELinux you can skip this post.

I recently migrated the XLX reflector from Debian Stretch to Fedora FC30. Debian is the platform recommended by the software author, but xlxd runs fine under Fedora as well. However, since I’m running with SELinux enabled, there were a couple of issues to tackle.

SELinux tags filesystem elements with a security context and in some cases, xlxd fails to access certain files for which it does not have authorization. There are three files that will require some special attention.

xlxd.pid -- contains the running process number
xlxd.log -- the XML log file used by the dashboard
callinghome.php -- contains the hash value used for registration

In my system, the files are installed in the following directories:

/var/run/xlxd.pid
/var/log/xlxd.log
/var/lib/httpd/xlxd/callinghome.php

I had to create new rules to put the files in the correct security contexts.

semanage fcontext -a -t httpd_sys_content_t /var/log/xlxd.xml
semanage fcontext -a -t httpd_sys_content_t /var/run/xlxd.pid
semanage fcontext -a -t httpd_sys_rw_content_t \
/var/lib/httpd /xlxd/callinghome.php

One issue I discovered is that the contexts do not handle the creation of a new file. For that, I installed restorecond. This system daemon watches for specified files to be created and relabels the security context.

dnf install restorecon

Then, add the 3 fully pathed file names to /etc/selinux/targeted/contexts/files/file_contexts.local. Restart the restorecond service and you’re ready to start the xlxd, httpd, and php-fpm services.

A very useful command is ls -lZ. On an SELinux enabled system it will list the security context labels for each file.

ls -lZ
total 4
-rwxrwxrwx. 1 apache apache system_u:object_r:httpd_sys_rw_content_t:s0 66 May 16 14:12 callinghome.php

Another useful command is restorecon. RTFM.

73

“Peanut” App Adds USA Master

David <PA7LIM>, the very talented developer of the Peanut app, has added a new master server in the USA. This ought to greatly improve voice stream quality once fully deployed. The “020 Project” has volunteered to be the first reflector to move over the the USA master, which is currently in test mode.

When the move occurs, you’ll have to change the “Master” in the Peanut app to USA-Test. Then, you’ll connect to XRF020C as before. XRF020C is the gateway to the repeaters connected to REF020A.

The move is expected to occur tomorrow, May 1. (Update: We’re already there on the afternoon of April 30.)

Happy May Day!

73 de K2DLS

Pi-Star Configuration for XLX020

Some simple changes must be made to the configuration of a Pi-Star based hotspot before it can access an XLX Reflector. Thanks to our partner in the “020 Project”, Scott <KB2EAR>, who helped with following guidance.

To connect to XLX020 via DMR you must configure your Pi-Star hotspot to use DMRGateway. Before you begin, make sure you hit the update button on the Pi-Star menu.

If you have not yet enabled DMRGateway, you will find the DMR Configuration looking something like this:

To enable DMRGateway change DMR Master to DMRGateway (very top entry).

Click apply changes and wait for the menu to come back up. Next change XLX Master to XLX_020. XLX Startup Module will usually be either A (Central New Jersey) or C (Beyond New Jersey, including REF020A & Peanut users). Turn on the XLX Master Enable slider.

Click apply changes. Once the configuration above has been applied you should be ready to go. Next, program the radio.

To talk via DMR on an XLX reflector, you’ll need to use a channel programmed with TG 6. Also set up a receive group list with TG6 so you will receive signals from the hotspot.

If you want to move your hotspot between reflectors and modules, commands are sent via a private call. These should be entered into your digital contact list.

6 Group Call - Talk on the XLX Reflector
64000 Private Call - Disconnect Channel
64001 Private Call - Switch to Module A
64002 Private Call - Switch to Module B
64003 Private Call - Switch to Module C
64004 Private Call - Switch to Module D
64005 Private Call - Switch to Channel E
64006 Private Call - Switch to Channel F
...
64026 Private Call - Switch to Module Z
65000 Private Call - Query Status
68020 Private Call - Connect to XLX Reflector 020

XLX020A XLX020D is the gateway to the CNJHAM/TG31340 bridge.

XLX020C XLX020A is the gateway to the REF020A/TG31675 bridge.

See you in 020 land.

73

The “020” Reflectors

D-Star users have long known about REF020. Reflector 20, as many call it, is one of the original D-Plus Reflectors. A number of repeaters in the New Jersey/New York/Pennsylvania region link to it, including powerhouse K3PDR in Philadelphia and NJ2DG in Martinsville, NJ. It was recently relocated to the cloud by its operator (Scott KB2EAR) when when the site where the server was housed became unavailable. Historically, the busy channel tends to be REF020A.

During the weeks that Reflector 20 was down, I started exploring D-Star smart groups as a way to get together on the air with some of the folks that I talk to regularly. Smart Group CNJHAM was created on the QuadNet array.

Smart Groups can be a bit confusing on repeaters if you don’t know what group is being used as you come into range. My friend Ray <W2RJR> is playing with a low profile Pi-Star based repeater so we decided that repeater use would be simpler if it could connect to a reflector. Then the only destination route needed is CQCQCQ. So XRF020 was born.

Initially, there were challenges getting XRF020 getting listed in the right directories. You see, there is supposed to be one XRF directory that is authoritative, but not all gateway systems seem to pull data from the same place. Pi-Star uses one list, OpenSpot another, and DV4mini yet another. OpenSpot listed XRF020 right away. DV4mini uses the XLX list and you could have an XRF and XLX using the same number, which is “interesting”. Pi-Star took weeks to list XRF020 until I went to the “top guy”. Then it was handled immediately. Once I learned that XLX reflectors self-register, XLX020 was born.

CNJHAM - Our Central New Jersey smart group conference
REF020 - The original D-Plus Reflector 20 operated by KB2EAR
XRF020 - An XRF Reflector that speaks D-Plus and DCS as well as DExtra
XLX020 - A multiprotocol reflector that bridges digital modes

Here is the lay of our digital land.

Smart Group CNJHAM is where a few of us in the Central NJ area meet up daily. It is more or less our local digital intercom, but you are welcome to stop by and say hello. You can also say hello via XRF020A and XLX020A, as well as REF020D. They are all linked. The NJ2DG-C repeater is linked to REF020D, so you can get in that way too.

         CNJHAM <==> XRF020A <==> XLX020A <==> DMR/YSF
|
REF020D

If you’re an REF020 user, then you’ll want to know that REF020A is linked fulltime to XLX020C. You can connect to the XLX side of things via DMR, D-Star, or YSF. You can also get in via PA7LIM’s Peanut.

             REF020A <==> XLX020C <==> DMR/YSF/Peanut

See you in 020 land.

73