The ICS Repeater Boards as used in the USA currently used with the ORP version of SVXLink.

As it stands at the moment, the OpenRepeaterSoftware for these boards cannot be used in the same way as the current and latest versions 24 and 25 of SVXLink, as the ORP software was developed from Version 17.

It has no ReflectorLogic as this was a later development. So if you would like to network your repeater through an SvxReflector with Analog Talkgroups, then you will need to start from scratch. Read On.

I have this week successfully installed the new version of Svxlink Version 25, remotely on a GMRS Repeater in Wyoming for the keeper. Naturally this repeater has no operational networking as it is forbidden for this band.

However for those of you familiar with this board it is very well engineered but building the newer svxlink software is a little bit of a challenge because of the onboard sound card and the extended GPIO bus ports.

As Raspberry OS Trixie has been released only recently, I am personally reluctant to use it due to the uncertainty of some of the additional packages having no release under Debian 13 or the versions have to be changed in various scripts.

So for the purposes of a stable build I highly recommend the legacy Raspberry OS Bookworm Lite 32 bit as installed by the RaspberryImage Builder. Please do not use Balena Etcher it has some other challenges.

Stick with user ‘pi’ when installing the OS to the SD Card of at least 16 Gb, to avoid failing the software install later.
With the OS installed, ssh into the terminal of the Rpi, already installed and connected to the repeater. Place the repeater on a dummy load until you are ready for installation.

Please do the sudo apt update && sudo apt upgrade -y && sudo apt install git -y so it’s ready for the next stages. Bookworm does not need expanding, it has been done automatically when you run it, especially when installed with the Raspberry Pi Image Builder.

After examining the manuals for the ICS repeaters, there will be noticeable differences to point out. Watch for these as we proceed.
Our first task is to sudo raspi-config and enable the iC2 port in the peripherals menu.
Our second task is to enable the mcp23017 chipset in the ICS card so that it can be used with the Raspberry Pi.
We create a file in terminal, preferable one of the locations readily accessible such as the /etc/ folder.
sudo nano /etc/mcp23017-named-overlay.dts and introduce the following content into it, then saving the file and exiting nano.

/dts-v1/;
/plugin/;

/ {
compatible = "brcm,bcm2835";
fragment@0 {
    target = <&i2c1>;
    __overlay__ {
        #address-cells = <1>;
        #size-cells = <0>;
        mcp23017@20 {
            compatible = "microchip,mcp23017";
            reg = <0x20>;
            gpio-controller;
            #gpio-cells = <2>;
            gpio-line-names = 
                "GPIO496", "GPIO497", "GPIO498", "GPIO499",
                "GPIO500", "GPIO501", "GPIO502", "GPIO503",
                "GPIO504", "GPIO505", "GPIO506", "GPIO507",
                "GPIO508", "GPIO509", "GPIO510", "GPIO511";
        };
    };
  };
};

now compile this file in the command line:

sudo dtc -@ -I dts -O dtb -o /boot/overlays/mcp23017-named.dtbo /etc/mcp23017-named-overlay.dts

Now we have to enable all the other aspects of the software.

sudo nano /boot/firmware/config.txt

Older versions had this file at /boot/config.txt, but bookworm doesn’t – just be aware.

Scroll to the bottom of the existing contents of this file and add the following lines.

# ICS Required Drivers/Overlays
#
dtoverlay=fe-pi-audio
dtoverlay=12s-mmap
# Enable mcp23017 Overlay
dtoverlay=mcp23017,addr=0x20,gpiopin=12
# Enable mcp3208 adc overlay
dtoverlay=mcp3208:spi0-0-present,spi0-0-speed=1000000
# Enable the new gpiod numbers
dtoverlay=mcp23017-named

Now would be as good a time as any to reboot the Raspberry Pi and logging back into the terminal.
To check the connection to the ICS card you can do two things.

  1. aplay -l will show the addition of the sound card.
  2. sudo gpioinfo will display the content of the GPIO interface at gpiochip0 and gpiochip1 with the newly named gpio ports on the extended GPIO interface.

The next stage is to prepare the sound card. Type sudo nano /etc/asound.conf and paste the following settings.

ctl.!default {
type hw
card 0
}

pcm.dmixed {
type dmix
ipc_key 1024
ipc_key_add_uid 0
slave.pcm "hw:0,0"
}

pcm.dsnooped {
type dsnoop
ipc_key 1025
slave.pcm "hw:0,0"
}

pcm.duplex {
type asym
playback.pcm "dmixed"
capture.pcm "dsnooped"
}

pcm.shared_left {
type plug
slave.pcm "hw:0"
slave.channels 2
ttable.0.0 1
}

pcm.shared_right {
type plug
slave.pcm "hw:0"
slave.channels 2
ttable.1.1 1
}

pcm.left {
type asym
playback.pcm "shared_left"
capture.pcm "dsnooped"
}

pcm.right {
type asym
playback.pcm "shared_right"
capture.pcm "dsnooped"
}

pcm.hw_loopback {
type hw
card "Loopback"
device 1
subdevice 2
}

pcm.plug_loopback {
type plug
slave.pcm "hw_loopback"
ttable {
0.0 1
0.1 1
}
}

pcm.!default {
type plug
slave.pcm "duplex"
}

Save the file and exit nano.
sudo alsactl nrestore followed by aplay -L will show all the modules – ignore any errors that might appear, there is a slight bug in alsa.

Next set the following amixer settings or use sudo alsamixer. At the completion of these commands sudo alsactl store will keep them in place after a reboot at any time. Make sure all the setting in Alsamixer are enabled.

amixer set 'Headphone' 86%;
amixer set 'PCM' 75%;
amixer set 'Lineout' 58%;
amixer set 'Mic' 59%;
amixer set 'Capture Mux' LINE_IN;

Now we are ready for the svxlink software. Because the master from the github.com/sm0svx requires some manipulation and compilation to work as intended, I have taken the opportunity to speed things up in a way for you with a menu build with a script that will pull a .deb package already precompiled.

In the terminal simply type the following or copy and paste:
sudo git clone https://github.com/f5vmr/svxlinkbuilder
follow this with the bash command without sudo:
./svxlinkbuilder/preinstall.sh
This will confirm in place the sound card, install the svxlink.deb (version 25) and reboots the card for the next stage.
Log back in to the terminal and type the next command again without sudo:
./svxlinkbuilder/install.sh
This starts the menu where you make your selections for the build. We are building a repeater of course, so you will be presented with a choice of ‘with or without’ svxreflector. If you choose ‘with’ it will install the UK reflector. However when you have another svxreflector to which to connect, the field will be editable, together with the port number (5300 by default) later. Callsigns and Authorisation Keys are also editable as required. If you want to test the UK reflector send me an email with your callsign, and I’ll send you an authorisation key.
Menus:

  1. Choice of Language. If you choose USA, all the options will install USA voice samples and airports.
  2. The next choice will be for the SA818 cards where the answer is NO.
  3. You next choice will be over the USB soundcard, you will choose number 3 – Unmodified, you will get your choice of GPIO port next. You may need to edit them anyway but hit that button.
  4. Choose your node type – simplex or repeater with or without reflector
  5. Enter the node callsign – then wait for your chosen language samples to be loaded, it may take a while.
  6. Next Enter the user name for the upcoming dashboard, and a password for editing it later.
  7. Next Enter the Authorisation Key provided by your svxreflector manager. Under normal circumstances Version 25 would use X509 certification with a protocol 3 reflector, however this build is set for simplicity and a protocol 2 reflector. If you want to change, you can change later.
  8. Your PTT is next Normally active low.
  9. Choose Custom then type in GPIO506 in the next box
  10. The Squelch/COS will be active high then select Custom on the next menu then type 26 in the next menu
  11. Choose your time format 12 or 24 hours.
  12. the next value you type MUST be a Minus value so type -10 (minus 10 or minus 12) but it must be minus. If you don’t it will prevent the svxlink from running, but you can edit it in the [RepeaterLogic] in the svxlink.conf later….. but it must be -10 or less (-11,-12,-13).
  13. Next type in the pitch of any CW if you choose to use it. Put 650 in here. That’s the standard tone in hertz on HF.
  14. In the next box put something in the range of 95-120 here – it will be the speed in characters per minute.
  15. Svxlink as standard has two Ident periods – Short – like every 5-10-15-20 minutes and Long – 30-60-120 minutes. You can set them to 0, to avoid too much beaconing.
  16. The next menu is how the idents are sent either in CW, in voice, in both, or not at all.
  17. The Roger Beep section – make your own choice. Pip, K, T, or none.
  18. The next menu is for the idle time after last transmission. What would you like to hear? Bell/chime/pip/silence. The pip is quite nice.
  19. The Idle_timeout is that period after last transmission before the repeater shuts off, How short do you want it ? – 7 seconds is long enough, I think. The default is 30 – far too long in my opinion.
  20. MetarInfo is next – select any number of airports for the list you can play by number later when the module is activated by 5#.
  21. Then on the next page select a default airport near you when the module is activated by that 5#.
  22. Get ready to install EchoLink if you want it. Do not forget your programmed callsign and password from EchoLink.org. It won’t work without it. Later you will need to edit your location limited to 17 characters. This was the last menu so get ready to play.
  23. When you’ve done that, go to an internet browser on your network, enter your repeaters IP address and play with the dashboard. Your repeater SHOULD be functional.
    Don’t forget you have submitted a user and password for editing the different pages.

The Dashboard can be the public face of your repeater if you publish it on a public IP, otherwise you can keep it to yourself.

This is an example dashboard for a simplex node, but the principle is identical. Working DTMF buttons that can be edited, together with a DTMF Patch Panel. The configuration files for Svxlink, EchoLink, ModuleMetar and Node_Info can be edited on screen. Active lines have a tick, and commented out entries are unticked. In the terminal, the unused sections such as SimplexLogic if a repeater is in use can be removed entirely.

To assist with the DTMF sequences, here is a help sheet.

When devising Talkgroups, consider using an existing scheme as no doubt you might want to interact with Digital modes in the future. For example there is an existing link from the UK Reflector to Wyoming on Talkgroup 3156, a talkgroup in use on DMR already, although at this time there is not a physical link between the networks. I have tended to use the talkgroup sequences issued by BrandMeister DMR based upon the MCC. The only deviations from this are where I have used the AllStarLink Node Number.