Tag Archives: Step-By-Step

DMR In Amateur Radio: Programming a Code Plug

Read the rest of the series in the DMR in Amateur Radio series category.


You picked up a new DMR radio! Congratulations! You maybe thinking, what have I gotten myself into? Good question. DMR is the first commercial mode adopted for ham radio use. Terminology and radio setup are familiar to those who program commercial gear. If you’re coming across this programming example and have not read the first part on terminology, please do so as this will build upon it. Passing around a code plug makes DMR seem plug-and-play and it’s a great way to get started. Doing so tends to leave most of us unable to change the configuration of our own radios. My goal is to demonstrate how to program a DMR ham radio code plug from scratch. This will lead to understanding how code plugs work and how to modify them. I will demonstrate programming a code plug for an example repeater, hotspot, and simplex operation.

In addition to this example, I recommend looking at available code plugs online to get an idea of different ways to improve yours. This is how I learned to program code plugs. There is no central database or repository. Code plugs are scattered around the Internet and shared online. This makes sense because local users would know where to get a code plug. Ask others in the area with similar DMR radios where to find code plugs. The ARRL Ohio site has ones for Ohio’s DMR repeaters: http://arrl-ohio.org/digital/digital.html. Where this works for local hams, a scavenger hunt is required to find working code plugs for an area they’re visiting.

Screen shots and settings referenced in this tutorial are from the TYT MD-380 CPS and radio. Similar settings can be found in other programmers and radios. Functions of not-so-obvious radio settings are described in the appropriate sections.

Software (TYT & Connect Systems)

Updating settings and memories in all DMR radios requires a computer, programming cable, and CPS. Check radio packaging because some include the cable and software, others consider it an additional accessory. Most stock CPSes can’t rearrange entries or import from other sources. If you entered a new contact and wanted to rearrange the order, you can’t. If you want to import thousands of users, you can’t. Third-party code plug editors provide this additional functionality. All are freeware.

Tytera (TYT) MD-380/390/2017 CPS and firmware: http://www.tyt888.com/?mod=download

Connect Systems documentation, CPS, and firmware: http://www.connectsystems.com/software/

MD380 Tools: https://github.com/travisgoodspeed/md380tools
Alternative firmware for the TYT MD-380. Use at your own risk.

TYT MD-380 / 390 Code Plug Editor: http://www.miklor.com/DMR/DMR-380-CPEditor.php
Editor for importing/exporting settings, importing from the DMR-MARC user database, and rearranging entries. The TYT CPS is still needed to write the code plug to the radio. This is my preferred MD-380 editor.

N0GSG’s DMR Contact Manager: http://n0gsg.com/contact-manager/
Works for most models of Connect Systems, Tytera, Retevis, and AnyTone radios. Editor can import/export settings and import contacts from the DMR-MARC user database, comma separated file (CSV), or existing code plug. Sorting is accomplished by clicking the header columns. Radio CPS is still needed to write the code plug to the radio.

The last three are free to use but please consider a donation to the developer if you find their work useful.

Radio ID, general settings, and FPP

After installing the CPS, in “Basic Information,” first check the “Frequency Range” is correct for the radio.

First thing to program is your “Radio ID.” You registered for one, right? It is found in the CPS under “General Settings.” Enter your assigned CCS7 ID. When passing around a code plug or loading someone else’s, update the CCS7 ID otherwise you will appear as someone else.

The “Radio Name” can be whatever name you want to give the radio.

I like to have a notification when the transmission is complete and the channel is free. This is known as the ‘CH Free Indication Tone.’ NOTE: this tone did not work with the DV4Mini for some reason.

Enable FPP so the programming can be modified from the radio’s keypad. Remember to read the radio or update changes made through FPP into the CPS. Changes will be overwritten when the code plug is downloaded again to the radio. In the CPS, FPP can be enabled in “Menu Item,” under “Utilities,” check “Program Radio.”

To enter FPP mode on the radio, go to the menu, select “Settings,” and “Program Radio.” The “Radio Program Password” in “General Settings” of the CPS is used when entering FPP on the radio. This is a commercial carryover to keep users from screwing with the radio. Enter the program password, if needed, and voila.

Hang-time, delays, and other adjustments can be made and experimented with at your leisure.

Programming example

In order to successfully program a code plug for a repeater, Color Code, talk group, and time slot configuration must be known. This information can be obtained from RepeaterBook, RFinder, owner/club website, asking another user or the repeater owner. Also ask if the repeater has access to reflectors, if desired. Brandmeister and DMR-MARC repeaters have reflector access.

A configuration example of a factitious repeater is outlined below. I’ve picked common U.S. talk groups for each time slot and will use the “Area 8” reflector as examples. When you become more comfortable, substitute the local repeater’s information.

Private calls to individuals are never a mandatory part of repeater configuration. They are possible and will be shown as an example. I include private call channels for frequent contacts as part of my hotspot code plug.

The “type” column in the table below is for informational/clarification purposes only and would not necessarily be provided by the owner (see the previous terminology write-up).

Labeling and organization of the code plug is user preference. RX Group lists and channels will need an abbreviation or prefix noting to which system it applies. When programming even 10 repeaters, some distinction must be made for clarity. Prefixes help programming because similar items are grouped together in the CPS. Rationale behind this will become clearer as you add repeaters to a code plug. Some might like to have the city spelled out (Cleveland, Dayton, Columbus, Cincinnati, Toledo) while having the talk groups abbreviated (WW, NA, Lcl 9, TAC-311, Statewide). Others like to have the city abbreviated (Cle, Day, Col, Cin, Tol) while the talk group is spelled out (World-Wide, North America, Local 9, TAC-311, Ohio). No two items may have the same exact name in any one area: Contacts, RX Groups, Channels, Zones, or Scan Lists. “SC” will be the prefix used for this example to indicate “Some City.”

Call: K8XXX City: Some City, OH Output: 444.300
Input: 449.300
Color Code: 1
Label Type ID Time Slot
World-Wide Talk group 91 1
North America Talk group 93 1
USA – Nationwide Talk group 3100 1
Local 9 (or Reflector) Talk group 9 2
TAC-310 Talk group 310 2
TAC-311 Talk group 311 2
TAC-312 Talk group 312 2
Midwest (regional) Talk group 3169 2
Ohio (statewide) Talk group 3139 2
USA – Area 8 Talk group 4648 2

Individual contact

Scott N8SY User 3139437 N/A

Contacts

Digital contacts are required to be setup first. These drives the ability to build RX Lists and channels. Every talk group, reflector, or user gets a contact. Relevant information in the table above: Label, Type, and ID.

It’s best to follow the labeling/naming provided by the c-Bridge. Some radios don’t have a lot of display real estate and names must be shortened to something like “WW” for talk group 91, “NA” for 93.

There are four fields per “Digital Contact” record in the CPS:

  • Contact Name
  • Call Type
  • Call ID
  • Call Receive Tone

“Contact Name” is simply the name you give each contact and is the label seen on the radio while receiving a call from that ID. “Call Type” is group/private/all-call setting. “Group” is for talk groups and “Private” is used for radio-to-radio calls or commands. “Call ID” is the numeric talk group, reflector, radio ID, or command number. “Receive Tone” is a per-call setting where a tone is emitted from the radio prior to unmuting the audio. This can be used as notification prior to receiving a call from a contact of interest.

There cannot be two contacts with the same “Call ID” or the same “Contact Name.” When programming different repeaters, potentially on different networks, all talk groups for all c-Bridges are entered as contacts. If two networks label talk group 3333 differently, a generic display name will have to be chosen, such as “3333” or “Group 3333.” On the other hand, “Example talk group” is talk group ID 3333 on one network and ID 3344 on another, then two differently named contacts have to be created for the same talk group (ie: “ExTG 3333” with ID 3333, “ExTG 3344” with ID 3344).

If the repeater owner says they follow K4USD’s talk group layout for example, they have nearly 70 available talk groups on their c-Bridge. Though it seems like a lot of work at the time, I recommend creating contacts for all 70 available talk groups. Having all talk groups programmed will result in less effort changing the code plug later. Brandmeister on the other hand, good luck. You really have to decide which talk groups are of interest because all talk groups are available to all repeaters and hotspots. To keeps things simple, stick with the repeater owner’s suggested Brandmeister groups.

For this programming example, contacts are pre-sorted by ID number. In the CPS software, create Digital Contacts with the listed settings:

  • Contact #1
    • Contact name: Local 9
    • Call type: Group call
    • Call ID: 9
    • Receive tone: No
  • Contact #2
    • Contact name: World-Wide
    • Call type: Group call
    • Call ID: 91
    • Receive tone: No
  • Contact #3
    • Contact name: North America
    • Call type: Group call
    • Call ID: 93
    • Receive tone: No
  • Contact #4
    • Contact name: TAC-310
    • Call type: Group call
    • Call ID: 310
    • Receive tone: No
  • Contact #5
    • Contact name: TAC-311
    • Call type: Group call
    • Call ID: 311
    • Receive tone: No
  • Contact #6
    • Contact name: TAC-312
    • Call type: Group call
    • Call ID: 312
    • Receive tone: No
  • Contact #7
    • Contact name: USA Nationwide
    • Call type: Group call
    • Call ID: 3100
    • Receive tone: No
  • Contact #8
    • Contact name: Ohio
    • Call type: Group call
    • Call ID: 3139
    • Receive tone: No
  • Contact #9
    • Contact name: Midwest
    • Call type: Group call
    • Call ID: 3169
    • Receive tone: No
  • Contact #10
    • Contact name: Ref Disconnect
    • Call type: Private call
    • Call ID: 4000
    • Receive tone: No
  • Contact #11
    • Contact name: USA – Area 8
    • Call type: Private call
    • Call ID: 4648
    • Receive tone: No
  • Contact #12
    • Contact name: Ref Info
    • Call type: Private call
    • Call ID: 5000
    • Receive tone: No
  • Contact #13
    • Contact name: Scott N8SY
    • Call type: Private call
    • Call ID: 3139437
    • Receive tone: No

Notice contacts #10 and #12 are not listed in the example table. These are standard reflector commands. A private call to ID 4000 is required to disconnect the repeater, 5000 checks link status. Talk group 9 is also required for reflector use. See the Reflector section for usage.

(Digital) RX Group lists

Once Contacts are entered, RX Group lists can be created. Relevant information from the example table: Label and Time Slot. RX Group lists are limited to a maximum of 32 talk groups per list. The intent was to monitor all talk group activity on a time slot. Only contacts set to “Group Call” can be added.

There are generally two ways of creating RX Groups. The first uses a one-to-one relationship where each talk group has its own RX Group List. The second includes all available talk groups on a repeater’s time slot into a single list. The latter creates lists unique to a repeater that cannot be reused on another repeater, unless the configuration is exactly the same. If the repeater has less than 32 talk groups on a time slot, put them all in one RX Group list. If there are more than 32, then create one RX list per talk group.

To keep repeater specific group lists unique, name the list: repeater location followed by “TS1/2” for the time slot designation. Example: “Some City TS1,” “Some City TS2.”

RX Group lists and the RX list selected for a channel are the first places to look when there is a suspected radio programming issue or nothing is being heard.

A repeater specific example is provided later. For this programming example, the one-to-one relationship is demonstrated. RX Groups are created in the same order as the repeater listing. In the CPS software, create RX Group lists and include the listed contact(s):

  • Digital RX Group List #1
    • Group List Name: World-Wide
    • Available Contact, select and add: World-Wide
  • Digital RX Group List #2
    • Group List Name: North America
    • Available Contact, select and add: North America
  • Digital RX Group List #3
    • Group List Name: USA Nationwide
    • Available Contact, select and add: USA Nationwide
  • Digital RX Group List #4
    • Group List Name: Local 9
    • Available Contact, select and add: Local 9
  • Digital RX Group List #5
    • Group List Name: TAC-310
    • Available Contact, select and add: TAC-310
  • Digital RX Group List #6
    • Group List Name: TAC-311
    • Available Contact, select and add: TAC-311
  • Digital RX Group List #7
    • Group List Name: TAC-312
    • Available Contact, select and add: TAC-312
  • Digital RX Group List #8
    • Group List Name: Midwest
    • Available Contact, select and add: Midwest
  • Digital RX Group List #9
    • Group List Name: Ohio
    • Available Contact, select and add: Ohio

Notice contacts #10-13 cannot be included because they are set to private call.

 

Repeater specific, all talk groups per time slot example:

  • Digital RX Group List #1
    • Group List Name: Some City TS1
    • Available Contact, select and add (position 1): World-Wide
    • Available Contact, select and add (position 2): North America
    • Available Contact, select and add (position 3): USA Nationwide
  • Digital RX Group List #2
    • Group List Name: Some City TS2
    • Available Contact, select and add (position 1): Local 9
    • Available Contact, select and add (position 2): TAC-310
    • Available Contact, select and add (position 3): TAC-311
    • Available Contact, select and add (position 4): TAC-312
    • Available Contact, select and add (position 5): Midwest
    • Available Contact, select and add (position 6): Ohio

Channels

This is where it all comes together. To create channels, Contacts and RX Group lists need to have been established.

Analog channels are straight forward if you’ve programmed any other analog ham radio. They will not be covered here.

Channels for the same repeater are easier to copy and paste. This depends on the software but usually involves setting up a channel, copying that channel, creating a blank channel, and pasting over the blank channel.

Some settings definitions:

  • Admit Criteria: determines when the radio is allowed to transmit.
    • Always: allows the radio to transmit any time PTT is pressed. This is the most disruptive option and may interrupt another QSO in progress.
    • Channel Free: the radio will only transmit when there is no transmission in progress on the time slot.
    • Color Code (Free): the radio will only transmit when the time slot is free on the repeater matching the color code. This mode pings the repeater at the beginning of each transmission to find a matching color code. This pinging is also an indicator if you’re making the repeater or if it is in use.
    • “Color Code” is recommended for a repeater, “Channel Free” for hotspot & simplex use.
  • In Call Criteria: action taken while receiving a call and the PTT button is pressed. This can be thought of as the ‘interrupt a call’ setting.
    • Follow Admit Criteria: follow the setting defined in “Admit Criteria.”
    • Always: always transmit, even while receiving a call.
    • “Follow Admit Criteria” is recommended for a repeater, “Always” for hotspot & simplex use.
  • Auto Scan: when the channel is selected, the radio begins scanning channels defined in the selected “Scan List.” For this option to function: create channels, add the channels to a Scan List, then create another new channel with the newly created Scan List selected and “Auto Scan” checked.
  • Lone Worker: the user receives an alert from the radio after a specified amount of time and must acknowledge by pressing any button on the radio. If the user does not respond to the alert, it is assumed the user is injured or incapacitated. The radio switches to an emergency mode so the user can be located and assisted. I have not seen this used in ham radio.
  • Allow Talkaround: this allows the radio to operate simplex mode when a repeater is not available or out-of-range. TX and RX frequencies must be different for this option to function. Talkaround is enabled/disabled manually via the radio’s “Utilities” menu, select “Radio Settings,” select “Talkaround,” then select “Turn On/Off.”
  • Emergency System: settings for an emergency alarm. I have not seen this used in ham radio.
  • Privacy: DMR includes the ability to “scramble” transmissions. This is a form of encryption and not allowed in the US.

A clear definition of “RX/TX Ref Frequency” has not been found and understood the default setting is sufficient.

Provided by Rich – G3ZIY:

These two drop-down selections are provided to change the radio’s basic oscillator frequency in the receive or transmit side. Because the radio covers such a wide frequency range, on some specific receive or transmit frequencies there can be a birdie generated internally which interferes with reception or transmission. If this occurs, by simply trying a different setting from the current setting, it should be possible to get clear reception and a clean transmission.

Leave “TX/RX Ref Frequency” at the default unless you experience problems transmitting or receiving and tack the problem down to the radio itself.

These settings will be applied to every digital channel created for this example and is a good template for actual programming:

  • Channel Mode: Digital
  • Band Width: 12.5kHz
  • TOT[s]: 180s (3 min) max for repeater & hotspot, 600s (10 min) max for simplex channels.
  • Power: “High” for repeaters & simplex – unless really close, “Low” for hotspots.
  • Admit Criteria: “Color Code” for repeater, “Channel Free” for hotspot & simplex.
  • Allow Talkaround: yes
  • Emergency System: None
  • Privacy: None
  • In Call Criteria: “Follow Admit Criteria” for repeater, “Always” for hotspot & simplex.

For this programming example, channels are created in the same order as the repeater listing. In the CPS software, create channels with the listed settings including universal settings above. SC = Some City, Ohio:

  • Channel #1
    • Channel Name: SC World-Wide
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: World-Wide
    • Group List: World-Wide (or Some City TS1)
    • Color Code: 1
    • Repeater Slot: 1
  • Channel #2
    • Channel Name: SC North America
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: North America
    • Group List: North America (or Some City TS1)
    • Color Code: 1
    • Repeater Slot: 1
  • Channel #3
    • Channel Name: SC USA Nationw
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: USA Nationwide
    • Group List: USA Nationwide (or Some City TS1)
    • Color Code: 1
    • Repeater Slot: 1
  • Channel #4
    • Channel Name: SC Local 9
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: Local 9
    • Group List: Local 9 (or Some City TS2)
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #5
    • Channel Name: SC TAC-310
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: TAC-310
    • Group List: TAC-310 (or Some City TS2)
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #6
    • Channel Name: SC TAC-311
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: TAC-311
    • Group List: TAC-311 (or Some City TS2)
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #7
    • Channel Name: SC TAC-312
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: TAC-312
    • Group List: TAC-312 (or Some City TS2)
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #8
    • Channel Name: SC Midwest
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: Midwest
    • Group List: Midwest (or Some City TS2)
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #9
    • Channel Name: SC Ohio
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: Ohio
    • Group List: Ohio (or Some City TS2)
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #10
    • Channel Name: SC Ref Disconn
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: Ref Disconnect
    • Group List: None
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #11
    • Channel Name: SC Ref USA – 8
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: USA – Area 8
    • Group List: None
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #12
    • Channel Name: SC Ref Info
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: Ref Info
    • Group List: None
    • Color Code: 1
    • Repeater Slot: 2
  • Channel #13
    • Channel Name: SC Scott N8SY
    • RX Frequency: 444.300
    • TX Frequency: 449.300
    • Contact Name: Scott N8SY
    • Group List: None
    • Color Code: 1
    • Repeater Slot: 2 – though really depends which is available on the repeater.

Zones

To use a Channel on the radio, it needs to be added to a Zone. Zones can contain analog channels too.

Some repeater and c-Bridge owners only made 16 talk groups available on their systems. That’s easy. All 16 go into one zone. Repeaters with more than 16 talk groups must have channels grouped.

Order of channels added to a zone will correspond with the dial position: first added will be position 1, second added will be 2, and so on.

Most use the zone to indicate where the repeater is located. Call signs are not often used because the city provides more detail when selecting an appropriate zone, especially when traveling.

For this programming example, only one zone is utilized. In the CPS software, create a zone with the listed channels:

  • Zone Information #1
    • Zone Name: Some City, OH
    • Available Channel, select and add (position 1): SC World-Wide
    • Available Channel, select and add (position 2): SC North America
    • Available Channel, select and add (position 3): SC USA Nationw
    • Available Channel, select and add (position 4): SC Local 9
    • Available Channel, select and add (position 5): SC TAC-310
    • Available Channel, select and add (position 6): SC TAC-311
    • Available Channel, select and add (position 7): SC TAC-312
    • Available Channel, select and add (position 8): SC Midwest
    • Available Channel, select and add (position 9): SC Ohio
    • Available Channel, select and add (position 10): SC Ref Disconn
    • Available Channel, select and add (position 11): SC Ref USA – 8
    • Available Channel, select and add (position 12): SC Ref Status
    • Available Channel, select and add (position 13): SC Scott N8SY

Scan Lists

Scan Lists are not required for radio operation but are nice for scanner like functionality across repeater time slots and frequencies. Channels have to be established first before it can be added. Scan Lists can contain analog channels too.

Order of channels added to a Scan List will correspond with the scan order. Private Call channels are unnecessary in scan lists because they are infrequent, short, and unnecessarily take up available list entries.

Activating the selected Scan List on the active channel requires assigning the “Scan On/Off” functionality to a programmable button universally in the radio. This is done in “Button Definitions” of the CPS. Another way is to create a channel with the “Auto Scan” feature enabled (see Channels section).

For this programming example, only one Scan List is utilized. In the CPS software, create a Scan List with the listed channels:

  • Scan List #1
    • Scan List name: Some City, OH
    • Available Channel, select and add (position 1): SC World-Wide
    • Available Channel, select and add (position 2): SC North America
    • Available Channel, select and add (position 3): SC USA Nationw
    • Available Channel, select and add (position 4): SC Local 9
    • Available Channel, select and add (position 5): SC TAC-310
    • Available Channel, select and add (position 6): SC TAC-311
    • Available Channel, select and add (position 7): SC TAC-312
    • Available Channel, select and add (position 8): SC Midwest
    • Available Channel, select and add (position 9): SC Ohio

Once a Scan List is created, Channels to which a Scan List applies must be updated. All of the “SC” channels.

 

That’s it! You have successfully programmed a ham radio DMR code plug from scratch! Now, substitute the local repeater’s information and begin having fun!

Suggested talk groups

Here is a suggested list of talk groups to get started on a Brandmeister network U.S. repeater or hotspot. Each bullet can be a separate zone.

  • Wide area groups (World-Wide: 91, North America: 93, USA – Nationwide: 3100)
  • Regional (Midwest: 3169, Southern Plains: 3175, Northeast: 3172, Mountain: 3177, etc.)
  • Ohio & surrounding states (Ohio: 3139, Indiana: 3118, Michigan: 3126, Pennsylvania: 3142, West Virginia: 3154, Kentucky: 3121)
  • Local & tactical (TAC) (1, 2, Local 9, TAC-310, TAC-311, TAC-312, TAC 1: 8951, TAC 2: 8952, …, TAC 9: 8959)
  • Reflectors & commands (Disconnect: 4000, USA – Nationwide: 4639, USA – Area 0: 4640, USA Area 1: 4641, …, USA – Area 9: 4649, Ref Info: 5000)
  • Special use (Parrot: 9990, audio test: 9999)

Reflectors

Update 2/2021: Brandmeister has dropped reflector support at the end of 2020.  This information would still be applicable to other networks that use reflectors.

Reflectors are different than talk groups. With a talk group, keying automatically establishes the connection and is dropped after 15 minutes. Reflectors must be manually linked and unlinked. Time slot 2 is always used for reflectors and associated commands.

At user discretion, programming can include reflectors of interest. It’s a good idea to program the control commands into a code plug regardless of the desire to use reflectors. A repeater maybe connected to a reflector and left abandoned. Having those commands programmed are good for knocking down an abandoned link.

To establish reflector connection, a private call is made to the reflector ID. Some radios can make on-the-fly private calls by entering the ID on the keypad. Others need a channel programmed with the reflector ID in the “Call ID” field with “Call Type” set to “Private Call.”

A “Group Call” channel programmed to time slot 2, talk group 9 is required to carry on the QSO. This is known as “Local 9” on many repeaters.

When the QSO is finished, another “Private Call” is made to ID 4000 to disconnect the reflector. Private Call to ID 5000 will check the status at any time.

For two stations to establish communication on the “USA – Area 8” reflector (4648), both stations initiate a “Private Call” to ID 4648 on time slot 2, for 2 seconds. Switch their radios to “Local 9” for the QSO. When done, both initiate a private call to 4000 to disconnect their nodes.

Simplex

Like any good communication system, DMR doesn’t have to be operated using a repeater.

Standard DMR simplex configuration and frequencies in the U.S.:

  • Talk group (contact ID and RX Group): 99
  • Color Code (channel): 1
  • Time slot (channel): 1
  • Admit Criteria (channel): Always (though I like to use “Channel Free”).
  • In Call Criteria (if applicable, channel): TX or Always.
  • UHF
    • 441.000
    • 446.500
    • 446.075
    • 433.450
  • VHF
    • 145.790
    • 145.510

 

Simplex code plug programming template:

  • Contact
    • Contact name: Simplex
    • Call type: Group call
    • Call ID: 99
    • Receive tone: No
  • Digital RX Group List
    • Group List Name: Simplex
    • Available Contact, select and add: Simplex
  • Channel, common:
    • Channel Mode: Digital
    • Band Width: 12.5kHz
    • TOT[s]: 600s (10 min) max.
    • Power: High
    • Admit Criteria: Always
    • Allow Talkaround: yes
    • Emergency System: None
    • Privacy: None
    • In Call Criteria: Always
    • Contact Name: Simplex
    • Group List: Simplex
    • Color Code: 1
    • Repeater Slot: 1
  • Channel 1
    • Channel Name: Simplex 441.000
    • RX Frequency: 441.000
    • TX Frequency: 441.000
  • Channel 2
    • Channel Name: Simplex 446.500
    • RX Frequency: 446.500
    • TX Frequency: 446.500
  • Channel 3
    • Channel Name: Simplex 446.075
    • RX Frequency: 446.075
    • TX Frequency: 446.075
  • Channel 4
    • Channel Name: Simplex 433.450
    • RX Frequency: 433.450
    • TX Frequency: 433.450

Hotspots

Many hotspots follow very similar programming to that of a repeater. Others offer a ‘simple’ mode utilizing a single talk group in the radio to make programming easier. I prefer my hotspot to function like a repeater.

Hotspot devices like the SharkRF OpenSpot and DVMega act similar to a repeater in terms of the programming. Follow the programming tutorial above with differences being the TX frequency would match the RX frequency (simplex) and time slot is always 2 (though the OpenSpot can use either).

For the OpenSpot, every RX Group will need to include “Local 9” to hear the voice announcements from the OpenSpot. These are the ‘connected’ and ‘profile’ announcements. There are additional control commands that can be used with the OpenSpot, like changing profiles, which are outlined in the manual: https://www.sharkrf.com/products/openspot/manual/

The OpenSpot can alternatively operate in a simple mode where transmissions to and from the Internet are routed to and from talk group 9 for the radio. Example: hotspot is connected to talk group 3139, the radio receives and transmits using talk group 9; connected to talk group 3100, radio still uses 9. Using this method, talk group changes have to be made through the OpenSpot web interface including changing the ‘Reroute ID.’

The DV4Mini will ONLY operate using talk group 9. For this reason, programming talk group 3139 into the radio for the DV4Mini will NOT work. No other talk group configuration will work with the DV4Mini EXCEPT talk group 9!

Brandmeister Extended Routing (XTG) is needed for talk groups not listed in the DV4Mini DV4MF2 application (eg: TAC-310, TAC-311, or TAC-312).

A programming example for OpenSpot in ‘simple’ mode or the DV4Mini. 446.900 is the simplex frequency chosen for the hotspot:

  • Contact (does not need to be created if “Local 9” already exits.)
    • Contact name: OpenSpot/DV4Mini
    • Call type: Group call
    • Call ID: 9
    • Receive tone: No
  • Digital RX Group List (does not need to be created if “Local 9” already exits.)
    • Group List Name: OpenSpot/DV4Mini
    • Available Contact, select and add: OpenSpot/DV4Mini
  • Channel
    • Channel Mode: Digital
    • Band Width: 12.5kHz
    • TOT[s]: 180s (3 min) max.
    • Power: Low
    • Admit Criteria: Always (though I like to use “Channel Free”).
    • Allow Talkaround: yes
    • Emergency System: None
    • Privacy: None
    • In Call Criteria: Always
    • Channel Name: OpenSpot/DV4Mini
    • RX Frequency: 446.900
    • TX Frequency: 446.900
    • Contact Name: OpenSpot/DV4Mini (or Local 9)
    • Group List: OpenSpot/DV4Mini (or Local 9)
    • Color Code: 1
    • Repeater Slot: 2

You’re now setup to use OpenSpot in simple mode or DV4Mini!

APRS RX IGate with RTL-SDR and Raspberry Pi

For sometime I wanted to experiment with an APRS IGate. Coverage was spotty at best in my area. There is an IGate in my city but it doesn’t receive so well. Recently there have been more IGates blanketing the area.

APRS stands for Automatic Packet Reporting System and has been developed since the late 1980s by Bob Bruninga – WB4APR. It’s a digital communication mode amateur radio operators use to primarily broadcast location information, though this wasn’t the intended use. It handles text messages, alerts, announcements, bulletins, and information of interest like weather station reports. APRS operates typically on a single frequency.  A system of relay stations and digipeaters repeat messages over a wide area. APRS Internet System (APRS-IS) are Internet connected receivers (IGates).

Any ham can add an icon or information to the APRS map.  The information is available on the Internet or to users on the local RF network.  Data is automatically tracked over time. APRS is frequently used to track mobile stations in a public service event or volunteers in a search and rescue event to visualize locations and track progress.

This project will utilize the Raspberry Pi and RTL-SDR dongle. The Raspberry Pi is a credit-card sized micro-computer intended for teaching computer science to students but became popular with the makers. RTL-SDR dongles are DVB-T (European standard) TV tuner dongles. It was found the signal data could be accessed directly which allowed them to be converted into wide band software defined radio receivers. The Pi costs about $35 and RTL-SDR about $20.

Since the RTL-SDR dongles are meant to receive high power wide bandwidth TV signals, they are not as as sensitive or frequency stable as a ham radio or scanner. Receiver performance will be a little less than an equivalent radio performing the same task but depends on the usual variables: amount of APRS activity, antenna height, antenna gain, propagation, etc, etc. With my antenna about 15 feet high, I get about 5+ miles of coverage. With band openings I’ve heard stations on the opposite side of town and across Lake Erie into Canada.

Even though this IGate will be non-transmitting (cannot relay packets from the Internet), packets are forwarded to APRS-IS. The higher profile – higher power Digitpeaters in the area will relay packets received by your IGate to the local RF network.

Assumptions

This guide is step-by-step in nature, meant for beginners, with brief explanations of the steps. It will help to have an understanding of Linux commands and scripting. Capitalization is important in Linux!

My setup is on my home LAN. The IGate could be installed at a remote site using a shared Internet connection. Be aware that firewalls that might block connection to the APRS-IS network on a shared connection. You may want to request or have port 22 open on your router for SSH to establish a remote connection.

If all wired options fall through, look for a cellular hotspot device such as a MiFi to install along with the Pi. Use the built in WiFi on the Pi 3 or approved WiFi dongles for earlier Pi devices. Associate the MiFi with your Pi (turning on WPA2 so no one else piggybacks on your connection). Test the setup before installing it. Don’t find out after leaving the site that the MiFi times out after a few hours.

Program versions

Applications and versions used in this writeup:

  • Windows 10 64 bit
  • Raspbian Jessie 2016-05-27
  • Win32 Disk Imager 0.9.5
  • PuTTY 0.67
  • SDR Sharp 1.0.0.1444
  • RTL-SDR 0.5.3
  • Multimon-NG ?
  • Pymultimonaprs 1.3.0

Parts list

Listed below are all the parts needed to get this project working. It is noted when items can be left out or substituted.

That’s all the parts needed for this project. Check out the AdaFruit Raspberry Pi page for other hardware that might be useful, like the USB to PS/2 adapter for example. Many of these parts are included in the Raspberry Pi Starter Pack.

Ohio Section Journal – The Technical Coordinator – November 2015 edition

One of the responsibilities of the Technical Coordinator in the Ohio Section is to submit something for the Section Journal. The Section Journal covers Amateur Radio related things happening in and around the ARRL Ohio Section. It is published by the Section Manager Scott – N8SY and articles are submitted by cabinet members.

Once my article is published in the Journal, I will also make it available on my site with a link to the published edition.

You can receive the Journal and other Ohio Section news by joining the mailing list Scott has setup. You do not need to be a member of the ARRL, Ohio Section, or even a ham to join the mailing list. Please sign up!

If you are an ARRL member and reside in the Ohio Section, update your mailing preferences to receive Ohio Section news in your inbox.  Those residing outside the section will need to use the mailing list link above.
Updating your ARRL profile will deliver news from the section where you reside (if the leadership chooses to use this method).
Go to www.arrl.org and logon.
Click Edit your Profile.
You will be taken to the Edit Your Profile page. On the first tab Edit Info, verify your Email address is correct.
Click the Edit Email Subscriptions tab.
Check the News and information from your Division Director and Section Manager box.
Click Save.

Now without further ado…


Read the full edition at: http://n8sy2.blogspot.com/2015/11/november-edition-of-ohio-section-journal.html

THE TECHNICAL COORDINATOR
Jeff Kopcak – TC
k8jtk@arrl.net

DSCF5081 K8JTKHey Gang,

During the State Emergency Test (SET), the Medina ARES group had some issues getting Fldigi working correctly. Not because they didn’t know what they were doing but because when you use Fldigi once or twice a year, you forget what to do. I got an email wanting to know if I would develop a training session on NBEMS standards using Flgidi and Flmsg.

NBEMS stands for Narrow Band Emergency Messaging System (or Software, depending who you ask). It is a set of standards developed to define passing email and text-based traffic over Amateur Radio. We have many digital modes available to us. The VHF/UHF standard is MT63. MT63 is a sufficiently robust mode to deal with background noise and poor band conditions. This doesn’t mean you can have a party at your station and still send MT63 messages but it does well with ambient noise. In contrast, HF NBEMS uses Olivia.

This request was right up my alley as I love to operate digital, educate other hams, and help them get on the air. Much of my time this month was dedicated to putting together a presentation covering: digital communication, use case in Emcomm situations, interfacing options, talking about the Fldigi and Flmsg programs used, setting them up, and workflow.

We though this training might be useful to the section so we invited the leadership. Stan N8BHL and Scott N8SY came. There were County Emergency Coordinators (ECs) who were also in attendance. No pressure. We had a lot of people who wanted to learn about NBEMS, Fldigi, and the capabilities we have. After the presentation, we did hands-on demonstrations with Dave NF8O, Bob K8MD, and Fred K8FH as instructors and transmitting stations so students could see transmitting and receiving all in one place. A lot of great questions and discussion was had. Thank you to the instructors and everyone for coming out! The presentation is available: http://www.k8jtk.org/2015/11/10/vhfuhf-nbems-an-introduction-using-fldigi-and-flmsg-presentations/.

DoboyOne of my points during the presentation was always practice with these technologies BEFORE you need use them. Do a class for beginners. Have the students bring their setup –laptops, go-boxes, radio interfaces, and radios. Find some space to hold the class –EOC/EMA building, restaurant, or library. Then walk through the whole nine yards –installing the applications, setting up Windows audio, setting up the applications, and demonstrate the various tasks they would need to perform. Additional instructors who can assist students or send example transmissions (prepare these ahead of time) should be available. Have the students participate by transmitting messages. This will get them more comfortable and it’s easier to troubleshoot on-site than over-the-air. Make plans for some on-the-air meetings to practice ahead of a test or drill. Meet for an hour or so for a couple weeks until everyone is comfortable.

In Cleveland on Thursday nights, I assist with the LEARA Digital Practice Net on the 146.880/R at 9PM (you don’t have to be a member to participate). The net will operate Fldigi for a number of weeks and switch to SSTV for a time. Our net even ran a simulation drill with ICS forms and everything! Turned out to be a HUGE hit. I wrote up some tutorials for our net. They include: getting your radio interface setup with optimal settings, how to use MMSSTV, Fldigi, Flmsg, and Flwrap. The Fldigi suite tutorials are mostly written to FM NBEMS standards. Links are at the end of this article.

signalinkThe OHDEN (Ohio Digital Emergency Net) is on Tuesdays at 8:00pm. 3.585 USB. The net uses OLIVIA 8/500 with PSK31 as an alternate. They do not run voice on this net which might be unusual for some. All checkins and announcements are done using Olivia. More info: www.ohden.org

I encourage groups throughout the Section to start their own digital practice nets on FM, HF, or both! The tutorials are available to modify to fit your net. These are great opportunities to help hams become familiar and knowledgeable about their digital equipment. Do make sure you obtain permission from the repeater Trustee if you plan to use any repeater. If you do have a digital practice net that originates from the Ohio Section, let me know and I’ll put plug in the future.

Earlier, I mentioned Bob K8MD. Bob is the latest addition to the Technical Specialists. Welcome! He has a lot of experience with networking and has been utilizing MESH. Ottawa County is certainly aware of this as he helped their EMA build out a VOIP (Voice over Internet Protocol) system to use during their incidents.

Tutorials:
Sound card setup: http://www.k8jtk.org/2015/04/16/radio-interface-setup-for-getting-started-with-ham-radio-sound-card-digital-modes/

Fldigi, Flmsg, Flwrap: http://www.k8jtk.org/2015/04/16/getting-started-with-fldigi-including-flmsg-and-flwrap/

MMSSTV: http://www.k8jtk.org/2015/04/16/getting-started-with-mmsstv/

Thanks for reading

73… de Jeff – K8JTK

NBEMS/FLDIGI Sound Card Calibration

9/26/2017 update: This is a less effective way of calibrating Fldigi.

The officially recommended calibration method is to use a time standard such as WWV and WWVB.  Details are in the Fldigi manual.

I’ll update or create a post as time permits with more details.  This post and instructions below will be left for reference and should be considered archived.


Archived from: pa-sitrep [dot] com

Archive reason: domain expired, server shutdown, or otherwise unaccessible.

Notes: I had a copy of both the program and the text, I am re-posting both.  Unfortunately it only is available for Windows.

Check the Fldigi tag for my posts running it on the Raspberry Pi or how to use Fldigi.

If you’re concerned about downloading the exe, it was analyzed by VirusTotal and showed 0 detections. The hashes are below and the SHA256 can be compared against the VirusTotal link.

SHA1

396A6ADB43BC76CB48E72A532B2E2E8FE9834551

396a6adb43bc76cb48e72a532b2e2e8fe9834551

SHA256

EE8BA2B907CBCF2551899808ECF717BE61CA76971499CD9EF63F53413114F494

ee8ba2b907cbcf2551899808ecf717be61ca76971499cd9ef63f53413114f494

I do not take any credit for the content or make any claim of accuracy.


1) Download and save CheckSR.exe to your desktop. This is a small, standalone, application that consist of a single exe file. When you double click on it, once it’s saved to your desktop, it provides the capability of analyzing your sound card offsets and gives you the corrections in parts per million (ppm):

http://www.k8jtk.org/drive/ham_radio/digital_modes/checksr/CheckSR.exe

checksr-01-fldigi_audio_devices

2) Open NBEMS/FLDIGI, go to configure, defaults, sound card, audio devices tab and make sure you have the sound card you use for your interface properly selected from the capture and playback drop down choices. Then click the audio settings tab.

checksr-02-fldigi_audio_settings_native

3) Under the audio settings tab, you should see a sample rate drop down box for capture and playback. Under each drop down box, select the sample rate that has (native) listed after it and take note of this figure. Click save config, then click save. Close FLDIGI.

Note: the ‘capture’ sample rate is the only one that seems to have the ‘native’ designation. The playback and capture should be the same.

checksr-04-checksr_input_output_sample_rate

4) Going back to CheckSR, open the application (if it’s not already open, double click on the desktop icon now) and from the drop down boxes for sound card settings, Input and Output, choose the sound card you are using with FLDIGI. Next, select the sample rate from the drop down box in CheckSR for the sample rate that FLDIGI showed as “Native” then click start.

checksr-05-checksr_stop

5) Let the application run for about 15-20 minutes. You will notice that the numbers will progressively stabilize. After about 15-20 minutes, click stop then write down the resulting figures on input and output for the measurements in Hz and PPM. Keep this record.

checksr-06-fldigi_audio_devices_corrections

6) Open FLDIGI, go to configure, defaults, sound card and click on the audio settings tab. Enter the PPM figures for RX ppm (CheckSR ppm Input figure) and TX ppm (CheckSR ppm Output figure). If you had a figure that resulted in a minus from CheckSR, enter the PPM setting with the minus symbol followed directly by the figure with no space. Then click save config, then close.

Although this procedure does not seem to be necessary for MT63 2k long on FM, it is advisable that anyone using FLDIGI, regardless of modes used, should perform this procedure immediately following setup. Once these calibrations are applied to the software, no changes should ever have to be made again, unless you change your software to radio interface sound card.

Running Fldigi Flmsg and Flwrap on the Raspberry Pi 2

With the popularity of the Raspberry Pi and the growing need of NBEMS, I wondered if it was possible to run NBEMS programs on the Pi. This maybe of interest to those who want to make a Go Kit (box) with digital or a club wants to replace older computers in their operations center with more efficient devices.

Fldigi is the program used and developed for Narrow Band Emergency Messaging System, but it does so much more. It’s also the standard for many Ham Radio operators because of the number of modes the software will operate.

Fldigi stands for Fast Light Digital modem application created by W1HKJ (David Freese, Jr.) and associates. Flmsg is a forms manager with standardized forms like MARS, plaintext messages, Radiograms, Red Cross, and Weather report forms. Flwrap is a file encapsulation and compression tool allowing for reception of a file exactly like the original.

The Fldigi application is open source, public license software meaning it’s free and available for auditing. With the source code available for Linux, I wondered if it was possible to compile the application on the Raspberry Pi.

At first I had some problems with the project. After (wasting) alot of time on it, I had given up. Only to find out the power supply I had been using was the cause of the issues.

Requirements

Work with my SignaLink USB. As a standard with my projects, the Pi can administered through SSH and VNC if needed. On Windows, I use PuTTY and TightVNC.

Assumptions

This guide is step-by-step in nature, meant for beginners, with brief explanations of the steps. It will help to have an understanding of Linux commands and scripting. Capitalization is important in Linux!

Check my other posts for setup guides on using your radio interface (though written for Windows) and Fldigi, Flmsg, and Flwrap.

Program versions

Applications and versions used in this writeup:

  • Windows 7 64 bit
  • Raspbian Jessie 2015-09-24
  • Win32DiskImager 0.9.5
  • PuTTY 0.65
  • TightVNC 2.7.10 64 bit
  • Fldigi 3.23.04
  • Flmsg 2.0.12
  • Flwrap 1.3.4

Build times

I did a face off for build times between the later model Pi versions: B+, 2, and 3. Later iterations will be faster. The results are in the format of the Linux command time, which contrary to it’s name does not set the time. It gives statistics about this program run. They consist of the elapsed real time between invocation and termination, the user CPU time, and the system CPU time. Later versions than listed above were used in this face off: Raspbian Jessie 2016-05-27, Fldigi 3.23.10, Flmsg 3.0.0, Flwrap is the same at 1.3.4.

Raspberry Pi B+

Failed. Apparently there is an issue running the Make command for Fldigi with versions later than the ones I originally used in this writeup. By the error messages this is an internal g++ compiler error. Make does not fail on the Pi 2 and 3 which probably means it’s a hardware issue (out of memory).

The error is “Warning: partial line at end of file ignored” for dialogs/fldigi-confdialog.o.

Raspberry Pi 2

real 21m49.783s
user 72m9.970s
sys 2m39.290s

Raspberry Pi 3

real 12m50.129s
user 42m8.980s
sys 1m19.160s

Parts list

Listed below are all the parts needed to get this project working. It is noted when items can be left out or substituted.

That’s all the parts needed for this project. Check out the AdaFruit Raspberry Pi page for other hardware that might be useful, like the USB to PS/2 adapter for example. Many of these parts are included in the Raspberry Pi Starter Pack.

If the Pi is setup where there may not be Internet, want to consider purchasing a Real Time Clock (RTC) addon. The Pi will keep time after power has been removed. Of course the time would just have to be set each time.

Flmsg custom forms

In order for custom forms to be used in Flmsg, version 2.0.17 or later must be used. There was a bug in previous versions that didn’t allow the forms to be parsed correctly. In addition, another browser needs to be installed as the default is unable to connect to the webserver created by Flmsg. Thanks to Ken – W0KAH for determining this issue and getting it resolved with the program author.

Linux package installer

The version available from the package manager could be installed but that version is several revisions behind which won’t have the latest enhancements. Some repositories don’t have Flmsg and Flwrap which makes it hard for NBEMS operation.

sudo apt-get -y install fldigi

sudo apt-get -y install flmsg flwrap
If it doesn’t work, you’ll get a message like:

E: Unable to locate package flmsg

P25 Trunked Tracking and Decoding with RTL-SDR, Unitrunker, and DSDPlus

The project that got me really into experimenting with the RTL-SDR dongles is using them to decode P25 digital trunked public service radio systems.  I have been a casual scanner listener for years and like to listen to emergency calls nearby.  In college it was great to listen in on a party weekend hearing fights, disturbances, or why my street suddenly filled with cars at 3 AM.

Narrowbanding

That was when most agencies were analog.  To get more use out of the radio spectrum, the FCC decreed a narrowbanding mandate requiring a “maximum of 12.5 kHz bandwidth across the private land mobile bands between 150-174 and 421-512 MHz.”  This means going digital for much of that radio spectrum because traditional FM transmissions are 15 KHz.  Ironically they will “go digital” but move to 700/800 MHz.

As a casual listener, I wasn’t exactly thrilled with spending at least $500 for a scanner capable of digital (P25 mostly) and trunked system tracking (also Radio Reference wiki).

$40 RTL-SDR trunked scanner

Lurking around the Radio Reference forums, I saw references to being able to use the RTL-SDR dongles for trunked digital decoding.  I had to try it.  I had played around with these dongles and read about the many projects people were doing with them.  In actuality this project cost me $65.

About the project

You will need at least two RTL-SDR dongles ($20/each) and a copy of Virtual Audio Cable ($26).  I already had a premium Radio Reference account.  You can do the project with one dongle but you loose many features in Unitrunker like talkgroup priority.  Theoretically, the single dongle listens to the system control channel and then tunes to voice calls, then back to the control channel.  You will miss calls because that notification comes across the control channel while the dongle was tuned to a voice transmission.  I will cover a two dongle setup and do not plan to cover a single dongle setup.

This project is still very complicated but it is MUCH easier than it used to be.  This manly thanks to Rick, the developer of Unitrunker who implemented support for the RTL-SDR chipset in his program.  Previously, there needed to be a plug-in for both Unitrunker and SDRSharp, there were all kinds of “moving parts.”  In one respect, being able to see the signal waveform on a spectrum analyzer made it much easier to fine tune the PPM correction on-the-fly as opposed to guessing on a modulation scope.  This setup is much cleaner and the Unitrunker developer has implemented advanced features like drift correction.  It will take some time and patience to understand, research, and know the types of systems and system specifics.

There are some advantages like cost and being software based.  Changing modulation types is often as easy as changing programs.  As an example, DSDPlus will decode MotoTrbo as opposed to no standalone scanner being able to do so currently.  However, portability of this setup is limited as you have to have many pieces of equipment with you.  You’ll need an Internet connection to find sites to program and a PC to tweak settings.

Two very specific and key things to note about trunked radio systems in general:

  • You cannot tell the tower your’re listening to which talkgroup you want to monitor.  Doing so would require the ability to transmit and IS ILLEGAL because you are not authorized to do so.  If the talkgroup is not transmitted by the tower, you’re out of luck.  You can’t be in Dayton and tell the system you want to listen to a talkgroup originating from Cleveland.
  • Nothing here (and no program I know of) will defeat encryption, even if you own the keys.  Decoding encrypted transmissions is not implemented in any of these programs.  On the flip side, be aware that using this tutorial and feeding the audio to Radio Reference and Broadcastify may not make agencies happy.  You could get a take-down notice or even worse, it is trivial to turn on encryption at the system level and you just blocked reception for all scanner listeners.

Thanks to those whose tutorials I first used getting this setup working: $20 trunking police scanner and RTL-SDR Tutorial: Following Trunked Radio With Unitrunker.

Program versions

I used a Windows 7 64 bit PC. Applications and versions used in this writeup:

  • SDRSharp: 1.0.0.1330
  • Virtual Audio Cable: 4.14
  • DSDPlus: 1.51
  • UniTrunker: 1.0.30.10

Parts list

Listed below are all the parts needed to get this project working.

  • Computer with some processing and memory horse power.  It is recommended to have a computer with a recent Intel Core i5 processor and 8GB of RAM, or better.
  • Receive antenna that covers 700 & 800 MHz where P25 trunked usually resides. For an external antenna, splitters and coax runs maybe needed.  The stock RTL-SDR dongle antennas worked fine for me.
  • Two RTL-SDR Dongles.  To decode more than one voice transmission, increase the number of dongles needed.
  • Virtual Audio Cable.  Not free but trial version available.
  • Radio Reference account.  Premium account.  If you don’t want to fork over the money, become an audio feed provider.
  • Recommend a USB hub.  Couple years ago I picked up a Rosewill RHUB-300 USB 2.0 Hub 7-Port HUB.  I recommend this hub because when the dongle is plugged in, the antenna connector is pointed up.  This makes it easier to connect an adapter and a Pryme RD-98.  If available, connect the hub to an Intel USB chipset on your motherboard.  I’ve had far less issues using Intel based hardware.

ADS-B Decoding with RTL-SDR, ADSBSharp, and Virtual Radar Server

Update: ADSBSharp (ADSB#) is no longer available and has been deprecated.  Copies can be found by doing some searching.  It is not available from the authors site as described in this post for the RTL-SDR. A program like RTL1090 or Dump1090 (or any of its forks) can be substituted.  The author is focusing on AirSpy devices and ADSBSpy is available from the same site as SDR#.


An interesting project I came across using the RTL-SDR dongle is to decode ADS-B data.  ADS-B stands for Automatic dependent surveillance – broadcast allowing aircraft to be tracked by ground stations and provide situational awareness to nearby aircraft.  It is part of the FAA’s NextGen project and mandated by agencies across the globe.  ADS-B uses a frequency of 1090 MHz.

Thanks goes out to Robert Nickels – W9RAN and his article in the January 2014 edition of QST which covers this project and how to make a Collinear Array for 1090.  HAK5 also did a couple episodes showing how to make an antenna and configure Virtual Radar Server.

adsb-hub-diagram
Block diagram of the ADS-B Hub setup. From: QST, January 2014.

Program versions

I used a Windows 7 64 bit PC.  Applications and versions used in this writeup…

SDRSharp: 1.0.0.1330
ADSBSharp: 1.0.11.1
Zadig: 2.1.0.658
Virtual Radar Server: 2.0.2
SBS Resources: 6.7

Parts list

Listed below are all the parts needed to get this project working.

Antenna with receive coverage of 1090 MHz.
RTL-SDR dongle.

I had a ham radio antenna that I used.  It is the MP Antenna 08-ANT-0860 Ultra Mobile Antenna if you’re interested.  To build an antenna, see the QST article above.  The one that comes with the dongle will work but at short range.

DVAP Pi Hotspot

DVAPDongleOne of my interests is digital modes, so I’m a D-STAR fan.  My first project with the Raspberry Pi would be the DVAP Pi Hotspot.  The DVAP normally connects to a computer and has a low power, 10 mW 2m or 440 transceiver that works with a D-STAR radio.  It passes the bits from the Internet & D-STAR network over the air to your D-STAR radio and vice versa.  The radio does the encoding and decoding.

Thanks goes out to the guys over at AmateurLogic.TV.  Tommy, N5ZNO, did a DVAP Pi segment in episode 57 that I used to build mine.

Requirements

Much like Tommy, my DVAP Pi had to be portable (battery operated), headless (no monitor, autostart), use a cellphone WiFi hotspot, and administered through SSH and VNC if needed.  On Windows, I use PuTTY and TightVNC.  On Android, I use JuiceSSH and PocketCloud.

Assumptions

With this tutorial, I’m assuming anyone setting this up is already familiar with D-STAR, registered on the D-STAR network, and familiar with using the DVAP on a PC.

This guide is step-by-step in nature, meant for beginners, with brief explanations of the steps.  It will help to have an understanding of Linux commands and scripting.  Capitalization is important in Linux!

DPRS problem

I was hoping to use the DVAP Pi as a portable DPRS (D-STAR APRS) iGate to report location data to the APRS network.  It currently does not.  It only reports D-PRS data to the gateway system you’re connected to.  No further.  It will show up on the gateway’s DPlus Dashboard but the DVAP Tool nor the gateway/reflector/repeater will not pass location data to the APRS network.

If you come over the RF side of a repeater with a GPS enabled radio, it will pass the location data to the APRS network.  The repeater will not pass location data to the APRS network when transmitting through a DVAP linked to the system.

This is true when the DVAP is connected to a PC or the Pi.

Program versions

I used a Windows 7 64 bit PC. Applications and versions used in this writeup:

  • Wheezy Raspbian 2014-01-07
  • Win32 Disk Imager 0.9
  • PuTTY  0.63
  • TightVNC 2.7.10 64 bit
  • DVAPTool 1.04
  • Mobile Hotspot ? (added after publishing)
  • JuiceSSH ? (added after publishing)
  • PocketCloud ? (added after publishing)

Parts list

Listed below are all the parts needed to get this project working.  It is noted when items can be left out or substituted.

That’s all the parts needed for this project.  Check out the AdaFruit Raspberry Pi page for other hardware that might be useful, like the USB to PS/2 adapter for example.  Many of these parts are included in the Raspberry Pi Starter Pack.

Downloads

01_raspberry_pi_downloads

Go to http://www.raspberrypi.org/downloads and find the “Raw Images” section.

Download the Win32DiskImager and Raspbian image (800 MB).  Save them in your Downloads folder.