Die Webseite https://ham-digital.org/find_dmr.html wurde für den Hytera Mobiltransceiver MD655 entwickelt.

Hintergrund:
Der MD655 ist ein sehr schönes kleines Gerät, was sich leicht ins Auto einbauen lässt, vor allem wenn man nicht viel Platz hat oder wie ich ein Leasungfahrzeug fährt wo man im sichtbaren Bereich keine Löcher hinterlassen kann.
Das Bedienteil ist komplett im Mikrofon untergebracht.
Das eigentlich Problem ist, das Bedienteil kann man fast nicht gebrauchen.
Es zeigt nur die Zonen von 1-64 und die Kanalnummern von 1-16, ohne jeden Kommentar.
Seit vielen Monaten ist ein Software-Update in Aussicht gestellt, was auch die Zonen- und Kanalnamen anzeigt, aber bis heute ist davon nicht viel zu sehen.

Für kommerzielle Anwendungen oder Benutzer, die hauptsächlich lokal um ihren Kirchturm unterwegs sind, mag das so funktionieren, aber wer wie ich durch ganz DL mit mehr als 100 DMR-Repeatern fährt, kann damit wenig anfangen.
Zunächst hatte ich ein Excel-Sheet auf dem Beifahrersitz liegen, aber das ist mehr als unkomfortabel und während der Fahrt unbrauchbar.

Ich habe nebem dem MD655 noch ein Icom DSTAR-Gerät im Auto, was mit den GPS-basierenden Repeaterlisten wirklich komfortabel und "mobil-geeignet" ist.
Meine Idee war, sowas in der Art als Smartphone-App zu entwickeln.
Ich hatte mit mehreren App-Programmierern gesprochen, aber irgendwie war das Interesse nicht da.
Ich selbst bin kein App-Programmierer und habe genug andere Baustellen rund um DMR, DSTAR, Registrierungssysteme etc..

Nachdem ich mich in den letzten Wochen erneut auf Dienstreisen über das Gerät geärgert hatte, kam mir die Idee eine einfache Webseite zu erstellen, die mir eine Repeaterliste in Abhängigkeit von meiner Position anzeigt.


Überblick:
Die Webseite zeigt in einer Tabelle Call, Zone, Channel, City, Lastheard, DMR-ID und QRG/Shift.
Diese Daten sind nach Entfernung sortiert.

Die Spalten sind so sortiert, dass die wichtigsten Daten auch nach Vergrösserung auf einem kleinen Bildsschirm eines Smartphones erkennbar sind.
Call, Zone, CHannel und Distanz reichen in der Regel aus um sich für einen Repeater zu entscheiden.
Die Webseite zeigt max. 30 Einträge, wodurch sich der Datentransfer in Grenzen hält.
Gelb unterlegte Repeater werden am DMRplus-Netz betrieben (i.d.R. Reflectoren auf TS2), orange unterlegte sind seit mehr als 1 Tag offline.


 
Die Repeaterdaten werden direkt aus der Registrierungsdatenbank geholt, sind damit immer garantiert aktuell.
Der Browser fragt in der Regel beim ersten Aufruf ob die Seite Zugriff auf die eigenen Standortdaten haben darf. Ohne den geht es natürlich nicht.
Die Applikation selektiert die Repeater jeweils +/- 1 Grad Nord/Süd vom eigenen Standort, was +/- 133km bedeutet, und +/- 1 Grad Ost/West, was bei uns etwas +/-75km entspricht.
Die Ost/West-Entferung variiert, sie ist am Äquator am größten und 0 am Pol. Die App ist auf DL / Mitteleuropa ausgelegt.

Der zugehörige Codeplug ist anders aufgebaut als man es gewohnt ist.
Er beinhaltet keine Kanäle für jeden einzelnen Repeater, sondern eine Frequenzliste nach dem aktuellen Bandplan und arbeitet damit eher wie ein "VFO".
Updates sind damit nur notwendig, wenn sich der Bandplan ändert, die Repeater fügen sich auf der Webseite automatisch bei der Registrierung selbst hinzu.

Auf einen Nachteil, der für einige sicher ein K.O-Kriterium ist, möchte ich gleich hinweisen:
Der Codeplug erlaubt keine individuellen Einstellungen pro Repeater.
Jeder Kanal kennt nur eine Einstellung für TS1 und eine für TS2.
Ausnahmen kann man nur ausserhalb dieser Tabellenfunktion erstellen, sie werden nicht in der Webapp berücksichtigt.
Mir persönlich reicht das unterwegs. Ich nutze auf TS1 generell nur die TG262 und auf TS2 nur die TG9.
Ruft jemand auf TS1 aus anderen Regionen kann ich ihn innerhalb der Haltezeit problemlos mit seiner TG antworten.

Verbessungsvorschläge nehme ich gerne auf, jedoch soll es dabei bleiben, dass die Zonen/Kanäle mathematisch berechendbar bleiben (s.u.) und keine individuellen Updates im Bereich der fest belegten Kanäle erforderlich werden.




Einige Erklärungen für die, die es interessiert, ein normaler Nutzer muss es nicht wissen:

Der Speicher des MD655 ist in 64 Zonen aufgeteilt.
Innerhalb jeder Zone können max. 16 Kanäle angelegt werden.
In Summe ergeben sich damit 1024 Kanäle.

Der Bandplan in unserer Region sieht ein 12.5 kHz-Raster für DMR vor (ich spreche von der Regel und dem aktuell gültigen Bandplan, nicht von "lokalen Schicksalen").
Damit gibt es pro 100kHz 8 Kanäle.
Mit je 2 Zeitschlitzen sind dies 16 Känale (also 1 Zone) pro 100kHz.
Unsere Repeater liegen im Bereich 438.000 - 439.9875, erstrecken sich also über 2MHz = 20 mal 100kHz = 20 Zonen

Zum Codeplug:
- Zone 1 halte ich frei für individuelle lokale Kanäle
- Zone 2 bis 22 nutzt die Applikation für berechnete Kanäle nach Bandplan, Änderungen sind hier nicht möglich.
- Zone 23 regelt spezielle Ausnahmefälle mit abweichendem Color-Code
- Zone 24-64 sind frei für eigene Kanäle


Etwas Mathematik für diejenigen, die es nachvollziehen wollen:

Berechnung der Zonen:
Die Berechnung startet bei 438.000 und arbeitet bis 439.9875 MHz.
Die Zone berechnet sich wie folgt:
int(10*frequency) - 4380 + 2

Das Ergebnis für 438.000-438.0875 ist Zone 2 (da wir Zone 1 für lokale Dinge freihalten wollen)
Beispiel 438.0875:

10*438.0875 = 4380.875
4380.875 - 4380 = 0.875
(int)0.875 = 0
0 + 2 = Zone 2

Beispiel 439.8250:

10*439.8250 = 4398.250
4398.250 - 4380 = 18.250
(int)18.250 = 18
18 + 2 = Zone 20


Berechnung der CHannel:
Der Kanal innerhalb einer Zone berechnet sich aus dem Nachkommateil der Frequenz geteilt durch das Kanalraster und multipliziert mit 2, da wir für jeden Kanal 2 Zeitschlitze nutzen wollen.
Am Ende zählen wir noch 1 drauf, weil die Kanäle mit 0 anfangen würden, die Channel-Nummer aber mit 1 startet.

Beim ersten Beispiel ist der Nachkommeteil 0.0875 / 0.0125 = 7
7 * 2 = 14
14 + 1 = 15

Man findet TS1 auf CHannel 15 und TS2 auf CHannel 16.



Die URL der Liste ist:
https://ham-digital.org/find_dmr.html

Bitte die Endung "html" beachten.
Diese html-Seite benutzt ein Javascript um die eigenen Standortdaten zu bekommen und sich selbst regelmässig all 5 Minuten neu zu laden.
Die Seite nutzt ein PHP-Script was die Datenbankabfrage und Entfernungberechnungen auf der Serverseite durchführt.


Für stationäre Nutzer bietet die PHP-Seite weitere Optionen:

Wird ein Rufzeichen übergeben, erfolgt die Berechnung von der letzten bei aprs.fi bekannten Position dieses Rufzeichens.

Beispiel:
https://ham-digital.org/find_dmr.php?call=dl5di-9

Man kann ausserdem eigene Positionsdaten als Berechnungsgrundlage übergeben, wie hier:
https://ham-digital.org/find_dmr.php?lat=50.3905&lon=7.3477


Wer es testen will, viel Spass!
Einen passenden Muster-Codeplug gibt es hier!
Verbesserungsverschläge sind willlkommen!

73
Hans DL5DI


In english language:

The webpage https://ham-digital.org/find_dmr.html was designed to support the Hytera MD655 mobile radio.

History:
It is a nice radio, very small, easy to install to cars with limited space or leasing cars like mine.
The user interface is in the microphone.
... in reality there is no real user interface, you nearly see nothing.
The display only shows the zone 1-64 and the channel 1-16, no zone or channel names.

In commercial applications with only a very few channels, or in local applications in a known area with a limited number of repeaters, it might be OK, but when you travel a lot in a country like Germany with more than 100 repeaters, it is not acceptable.
The display does not show any zone or channel names.
In the past I worked with an Excel sheet to find the correct Zone/Channel setting on my tours, which is uncomfortablee and hard to use when driving.

Influenced by the comfortable DSTAR devices which show repeater lists based on GPS locations, I asked several people if it would be possible to create a smartphone app which provides a list of next repeaters and the Zone/Channel information based on a special codeplug.
Nobody really did it.
I am no app programmer and have a lot of othe rprojects, so I now decided to work with an easy webpage that I can quickly develope myself.


Overview:
The webpage shows a table with callsign, Zone, Channel, City, Lastheard, DMR-ID and QRG/Shift.
By default (without providing a parameter with the URL) the list is sorted by distance to the reported location.
The own browser will ask if the own location may be transfered, without permission it won't work.

The order of the columns allows to zoom the most important information on a small mobile phone display, Call, Zone, CHannel and distance.
The webpage shows max 30 entries.
Repeater on yellow background run at the DMRplus-Network (usually reflectors on TS2), orange color marks repeaters which are more than 1 day offline.

The repeaters are selected from the registration database, which makes sure that it is really always up-to-date.
The web application selects +/-1 degrees North/South from the own location, which is about +/-133km, and +/-1 degrees East/West, which is about +/-75km in our area, more at the aequator and 0 at the poles.
It is a reasonable distance in our area.

The codeplug is different from what we usually know.
It has no channels for repeaters, it is more build like a "VFO", based on the channel which are available in the band plan.
In reality it shows more channels than the band plan, with that it allows to calculate channels mathematically from the frequency.

The adavantage is, that you will never have to update the codeplug to get new repeaters included, this is done by the app.
Updates are required when the bandplan changes.

But to be open and honest, there is one limitation which many users may not want to accept:
The codeplug is not flexible to provide special settings for special repeaters.
You can only use 1 Talkgroup per Timeslot for all repeaters.
For me personally this is acceptable, I always use TG262 in TS1 and TG9 on TS2.
I do not use TS1 for local QSOs and if I want to answer an international call I can do it within the usual delay.

There is some room for improvements and if anybody would likes that system and wants to use it, feel free.
I am open for any good ideas, but I don't want to include too many local rules and definitions which need maintenance.
The big advantage is that it works without updates.



Technical details for specialists only:

The memory of the MD655 allows to define 64 Zones.
Each Zone allows to define 16 CHannels.
In summary we can define 1024 channels.

- Zone 1 is kept free for own local channels
- Zone 2 to 22 are calculated from the band plan
- Zone 23 has some special cases with a different color code
- Zone 24+ are free to store own channels

For DMR we use 12.5 kHz channel spacing on UHF.
This means that we have 8 channels per 100kHz.
If we use 2 timeslots (limited to 1 TG per TS), we have 16 channels per 100kHz.
So 1 Zone may cover 100kHz.

Calculation of the Zone:
The calculations starts at 438.000 and works up to 439.9875.
The Zone is calculated by:
int(10*frequency) - 4380 + 2

The result for 438.000-438.099 is the first Zone, Zone 2, as we want to keep Zone 1 for local definitions.
Example 438.0875:

10*438.0875 = 4380.875
- 4380 = 0.875
(int) = 0
+ 2 = Zone 2

Example 439.8250:

10*439.8250 = 4398.250
4398.250 - 4380 = 18.250
(int)18.250 = 18
18 + 2 = Zone 20


Calculation of the CHannel:
The channel insite of the zone is calculated from the decimal part divided by 12.5kHz and multiplicated by 2 to get space for 2 timeslots + 1 because the frequency range start with 0, but the channel numberung with 1:

In the first sample it is 0.0875 / 0.0125 = 7
7 * 2 = 14
14 + 1 = 15

You will find TS1 of that repeater on CHannel 15, TS2 on CHannel 16.



The URL to get a list based on the own location is:
https://ham-digital.org/find_dmr.html

Note that the extension is "html".
The html-page uses javascript to get your location and reload itself.
It involves a php-script which checks the database and creates the output.


For those you are not mobile the php-page allows a few more options:

If you call the php-script and provide a callsign it will create the list based on the last location which is known to aprs.fi

Example:
https://ham-digital.org/find_dmr.php?call=dl5di-9

You can also provide own geo data and will get the list calculated based on that, like this:
https://ham-digital.org/find_dmr.php?lat=50.3905&lon=7.3477

You may download a sample codeplug here!
Ideas for improvements are welcome!


73 de Hans DL5DI