I recently bought a VGC VR-N76 HT from Vero Telecom mainly because it supports KISS TNC over Bluetooth, which is something very appealing because I really wanted to experiment with packet radio.

The first thing I wanted to do when I got the VR-N76 was to program the channels of the repeaters from my area. Unlike the other handhelds I have (Baofeng UV-5R and Quansheng UV-K5), the VR-N76 cannot be programmed with CHIRP; and it turns out I have a bunch of CHIRP files that I use to keep re-programming my handhelds when I am travelling between areas with access to different repeaters.

The VR-N76 has a companion Android app that can be used to control and configure the radio. The app allows you to import a CSV file with all the channels for a specific memory bank. Yes, this HT has several memory banks of 32 channels each.

Overall this HT can store more channels than my previous HTs but, they will be segregated, which is ok because I rarely have more than 10 repeaters reachable wherever I go.

I created chirp-vrn76 to convert my existing CHIRP exports into CSV files that can be imported directly into the VR-N76 app.

How to use it#

  1. In CHIRP, I open any of the images I have from my other HTs. I can now see all the repeaters programmed.
  2. File -> Export to CSV
  3. Use chirp-vrn76
    git clone https://github.com/chelmiki/chirp-vrn76
    cargo build --release
    ./target/release/chirp-vrn76 --input chirp_export.csv --output vgc_import.csv
    
  4. Copy the exported CSV file to the phone.
  5. In the HT App, Import CSV file.

What does the tool actually do?#

chirp-vrn76 is fairly simple. Most of the work is converting from one CSV format to another. Some fields in the CHIRP export do not have a counterpart in the VR-N76 CSV format, and similarly, some of the fields in the VR-N76 have to be set to their defaults because they do not have a CHIRP counterpart.

CHIRP:
frequency = 145.600 MHz
duplex    = -
offset    = 0.600 MHz

VR-N76:
RX = 145600000 Hz
TX = 145000000 Hz

Receive and transmit frequencies are represented differently. In CHIRP these are in MHz, and only the receive frequency is present; in the VR-N76 frequencies are represented in Hz and both receive and transmit frequencies need to be provided as absolute values, which chirp-vrn76 computes from CHIRP’s receive frequency, duplex (+, -, split) and the offset.

The VR-N76 CSV file has only 2 channel modes AM and FM, it does not have the narrow modes NFM and NAM, however, it has an additional bandwidth field that can be set to 12.5 kHz for narrow modes or 25 kHz for normal ones.

Regarding the receive and transmit subtones, this is slightly more complex. CHIRP uses several fields to represent this information (tone, r_tone_freq, c_tone_frequency, dtcs_code, dtcs_polarity, rx_dtcs_code, and cross_mode) while VR-N76 encodes the same information using only 2 fields. More details in the README file in the Tone Handling section.

Finally, although the CHIRP UI shows power as High, Med and Low, the value is exported in watts. chirp-vrn76 buckets and converts those values to H, M, L which is the format expected by the VR-N76.

This means I can keep using CHIRP as my main tool for managing my list of repeaters and use chirp-vrn76 whenever I need to move that configuration to the VR-N76.