(Editor’s note: This is the third installment of our series of posts on the Motorola MTR2000 repeater and MMDVM board. All articles in this series can be found by searching the “MTR2K” category.)— Justin, NV8Q
It’s something that I hear a lot. I just cannot bring up building MMDVM repeaters without being asked, “Can it still do analog too?” And the answer includes a caveat, “Yes, but what’s it worth to you? Because it’s not easy.”
In this, my third installment on the MTR2000 and our own STM32-DVM-MTR2K plug-in MODEM+Host combo, I’m going to cover a drop-dead simple way to have MMDVM and analog with a Motorola MTR2000. And the best part? It might not cost a thing. The only additional hardware required is an MTR2000 Auxiliary I/O card – many MTRs have this card already in them, and if they don’t, as of this writing, used cards are about $30 online.
To be fair, this article isn’t just about the STM32-DVM-MTR2K, but this handy board from WA0EDA makes it even easier to do. The same approach can be used with any MMDVM system and an MTR2000.
A bit of background on the MTR2000: Like any commercial repeater of this era and newer, it includes an internal control system adequate for basic analog repeater use. It has hangup, timeout and ID timers, CTCSS/DCS access (encode/decode), and even a ham-friendly 10 minute ID and the ability to use a “/” in the callsign. I’m going to discuss using the built-in analog controller because, typically, including analog is about providing a transition path for existing users of existing repeaters or a way to still allow emergency communications with analog – neither of which require a “fancy” analog system.
Contrary to some posts I’ve seen online, there’s no problem at all configuring an MTR2000 to use the built-in, internal analog controller while interfacing an MMDVM. The problem is that the transmit connection from the MMDVM will always take priority over the in-chassis repeat function. This means that MMDVM will take control in the middle of an analog transmission unless we do something additional to stop it. Enter: The “Wildcard” features that become available when you install an Auxiliary I/O card into the MTR2000.
I’ll need to do a little programming and utilize two hardware pins that the I/O card enables. GPO2 (General Purpose Output #2) will be connected to the “lockout” (COR) pin of the MMDVM Modem, and GPI3 (General Purpose Input #3) will be connected to the External PTT of the MTR2000. Ok, that second part sounds weird. Why am I connecting two MTR2000 inputs together? I need the Wildcard program to know when the MMDVM is keying the station, but the Wildcard doesn’t have the ability to poll the Ext. PTT input of the station. We’re going to use GPI3 to signal the MTR2000 wildcard that MMDVM is holding the PTT active.
I’m almost ready to write the wildcard program (known as “tables”) to make this work, but first, I’ll need to close 0.1″ jumpers JP5 and GP6 on the STM32-DVM-MTR2K. See the photos below:
Now all that is left is a little programming. If the station did not already have an Auxiliary I/O card installed, I will need to configure it in the RSS.
After reading the station, a “Station Configuration” window (see above) will automatically open. Click the “Edit Config” button to configure station options. Make sure to select “Wildcard enable” and select “CLN6698 Aux. I/O” from the “Option Board Type” drop-down. Note, there are two option board slots and one wireline board in the card cage. The option board slots are identical, the wireline board slot is different. Refer to the MTR2000 Installation and Operation Manual for more information.
After this is done, click the “OK” button and the Station Configuration window will close. As long as the Station Configuration window is active, there will be a “Personality” menu between “Edit” and “Service”. Click the “Personality” drop-down menu and select “Wildcard” as shown below.
Once selected, a new window for Wildcard table programming will appear. Select edit tables.
If the MTR already has existing Wildcard programming, there will be previously defined tables which need to be deleted. At this point the following window will appear:
This window is a bit confusing. Note that “Edit” is grayed out. I will first create two new Wildcard tables, typing the name in the single-line text box at the top of the window (above the window with <New> in it). Table #1 named “LOCKOUT” uses GPO2 to lockout the MMDVM during analog operation, and table #2 named “KNOCKDOWN” that uses the PTT signal from MMDVM to knockdown/setup the analog repeat function of the MTR2000 station.
Wildcard programming is hard to describe in text, so I will show the screens for each and explain what is happening. In each Wildcard table, I will select a single “System State” and then describe a group of actions, in order, that will take place when the System State becomes true (Action Table) and a separate list for when the state becomes false (In-Action Table).
For the LOCKOUT table, the system state I am setting “clearing” GPO2 (MMDVM lockout) when the in-chassis repeat PTT is active. Clearing it takes the output low, and since the lockout/COR input of the MMDVM is active low it locks out the MODEM. You will also notice a timer in the mix as well. If there were no timer, then as soon as an analog user unkeys, the repeater would again be available for MMDVM which would allow MMDVM to hijack the repeater in mid-QSO. Thus, I use a 10 second timer (10,000ms). This is an important part of action table programming: Items in any action table are executed sequentially and are fully blocking. That means that the in-action table item “SET OUTPUT GPIO2” does not happen until timer 1 is finished. This is also why the first action of the action table is “ABORT TIMER 1”. This ensures that timer 1 is aborted if there is a re-key in under 10s, otherwise, when timer 1 expired, GPO2 would be set high (unlocking the modem).
Ok, that’s a lot to take in. If you don’t want to reason it out, that’s cool, just duplicate what I put in above and you should be fine.
My KNOCKDOWN table is considerably simpler. I use a very long hangup time for MMDVM – on the order of 15s, so I don’t really need a timer in addition to the MMDVM PTT. In this case, when “INPUT GPI3” is “NOT” active, the in-chassis repeat function is put in knockdown (Motorola terminology for ‘disabled’). When the PTT goes back high (remember, it’s active low) the repeat function is enabled, or in Motorola speak, “setup”.
Thats it! It’s done. Just make sure and “OK” and/or “Save” out of each window when you close it, and make sure to remember to write the codeplug back into your radio so this changes are programmed in.