How to set up a Yaesu System Fusion reflector (YSFReflector)

Over the last four or five years I’ve been a regular user of two digital voice modes, D-STAR and DMR. I don’t particularly like to use them to work ‘DX’ but they both have their advantages regarding linking repeaters together and allowing me to keep in touch with people when I’m away from home.

Both have a relatively steep learning curve but over time, I’ve got my head around them and am quite happy configuring radios, building ‘code plugs’ (*shudder*) and operating them.

That left one digital voice mode that I’ve not yet tried; Yaesu System Fusion, often abbreviated to just Fusion or YSF. A few weeks ago I bought myself a Yaesu FTM-100DE and it’s sitting in my shack now. There are no Fusion repeaters nearby so I set up a cheap hotspot to allow me to access the network.
The first thing I’ll say is that the speaker in the FTM-100DE is rubbish! It’s tinny and the audio out of it is dreadful. I plugged an external speaker in and it’s so much better. In fact, I would say that the audio on Fusion is by far the best out of any of the digital modes.

Fusion is just as complicated as the other modes to a newcomer but I’m not going to go into that here. I’m assuming you’re here because you want to set up a reflector. I had a good reason to do that last week and I couldn’t find a complete (and accurate) guide to doing it. It was so frustrating that once I’d got one working, I decided to put together what I hoped would be a decent and easily followable guide.

I must point out that I’m not an expert. I’ve barely touched Fusion and I have a lot to learn. I just wanted to share a detailed solution to something which gave me a lot of frustration. I don’t claim to have written any of the scripts or packages used in this guide, I’m just putting everything together in one place in hopefully easy to follow steps. I have linked to the source pages I used as starting points at the bottom of this entry.

I did this on a Raspberry Pi and so my instructions are written specifically for that device. I’ve tested this on a Pi Zero W, a PiB2, Pi3A+, a Pi3B and a Pi3B+. It will not work on a Pi4 as I’m using Raspbian Stretch which is not supported on a Pi4. I’m using Stretch rather than Buster because some parts of this have been removed from Buster.

First, download Raspbian Stretch Lite and write it to an SD card. I highly recommend balanaEtcher to write the image out to an SD card. Note that we’re using the ‘Lite’ version of Raspbian so you won’t have any graphical user interface and all the work will be done from the terminal.

You will need to either give your Raspberry Pi a static IP address or set up a reservation in your router. I do this by looking at my router and checking what devices have connected and then set up a DHCP reservation so each particular Raspberry Pi I own will always have the same address each time it reboots.

Open up a terminal/dos prompt or whatever client software you’re going to use to connect to the Raspberry Pi and log in.  In my case, the Raspberry Pi is on so I use the command
ssh pi@

You’ll be prompted for a password – It’s currently set to raspberry.
Use the following command to enter the Raspberry Pi config utility:

sudo raspi-config

First of all, expand the filesystem.  You do this by selecting option 7 Advanced Options, then A1 Expand Filesystem, then select OK and you’ll be returned to the main screen.

Now select the first option Change User Password and press enter.  Press enter again and you will be prompted to Enter new UNIX password.  Type a new password, press enter and re-type your new password again.  You will get a message telling you your password has been changed successfully.  Make a note of this new password.

Use the arrow keys again to move down to 4 Localisation Options and press enter.  Use the arrow keys again to select I2 Change Timezone and press enter.  First select your Geographical area and press enter and then select your Time zone and press enter.

Now you should set your Wi-Fi country – By default, this image is set to GB (Great Britain) so if you’re in a different country you should change this to ensure that the Pi uses the correct frequencies.  Select 4 Localisation Options and press enter.  Scroll down to I4 Change Wi-fi Country and press enter. Find your country, press enter and then press enter again to return to the main screen.

Finally, select 2 Network Options and press enter.  Press enter again on N1 Hostname and give your Raspberry Pi a suitable name.

You will now be returned to the main Raspberry Pi Software Configuration Tool main screen.  Use the tab key to select <Finish> and press enter.  You will be asked if you would like to reboot now.  Press enter to reboot and once your Pi has rebooted, log back in using the new password you set earlier.  Make a note of this password because if you forget it, you’ll need to start from scratch.

If you’re using a Mac and connecting to your Raspberry Pi via the terminal you may notice the screen flashes badly.  You can fix this easily and quickly by going into the terminal Preferences/Profiles and make sure the box “Allow blinking text” is not ticked.

Assuming your Raspberry Pi now has either a static or reserved address, you can start with the actual setup.

Log in to your Pi with the new password you set above and type the following commands.

sudo apt update
sudo apt upgrade -y

This is making sure that Raspbian Stretch is fully patched as far as it will go. The first will go through quickly, the second command may take a little longer and if you’re using an older Pi or a Pi Zero, it will take a good few minutes. When it has completed, reboot the Pi.

Log back in and enter these two commands which are loading pre-requisites for the actual installation.

sudo apt install git -y
sudo apt
 install insserv -y

With those done, it’s time to download the install script and run it using these two commands.

sudo wget
sudo bash

When the install completes, it will ask you for the name and the description of your reflector. The name should always start with your two letter country code, have one space and then the rest of the reflector name. You can use a maximum of sixteen characters. For my reflector, I chose GB QSO365. The description is free text and is a maximum of fourteen characters. For my reflector, I put in the description.

Don’t start the reflector just yet though as there are some things you need to do first.

Log into your router and set up port forwarding to the Pi. This is a great site with guides to many different routers. By default the reflector needs port 42000 forwarded to it although you may find that port is already in use on your system. In my case, ports 42000 and 42001 were already being used by my Fusion hotspot so I used 42002. If you’re not using 42000 then you need to edit a configuration file on your Pi.

sudo nano /etc/YSFReflector.ini

Scroll down and change the following section:


In my case, I changed 42000 to 42002.

Save the file by pressing ctrl-x, then hit the Y key and then press enter.

Now you’re ready to start the reflector using the command given at the end of the installation.

sudo /etc/init.d/ start

The next step is to register the reflector. Head over to the Reflector Registry site and click on Register Reflector. Enter the name and the description you used earlier but leave off the two character country code from the name. You need to put in the Host/IP-Address of your internet connection (NOT your Raspberry Pi). If you have a static external IP address, enter it here otherwise you will need to configure a dynamic DNS service.

The Port is the port you configured earlier and the rest should be obvious. You haven’t set up a dashboard yet so you can’t enter that. Click Submit and you’ll get an email telling you it’s been registered with a link to click to accept the privacy agreement.

Setting up a dashboard

You could stop here but it’s not so much fun without a dashboard because you can’t see what’s going on. You can see my reflector dashboard by clicking here. Let’s install a dashboard.
Enter the following commands:

sudo apt update
sudo apt install apache2 -y
sudo usermod -G www-data -a pi
sudo usermod -G www-data -a root
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 775 /var/www/html
sudo apt install php7.0-common php7.0-cgi php7.0 -y
sudo apt install libapache2-mod-php7.0 -y
cd ~
sudo git clone
sudo cp -R ./YSFReflector-Dashboard/* /var/www/html/

If the above commands fail when installing php, it may be because version the listed version is no longer available.  Change all instances of 7.0 for 7.1 (or 7.2, 7.3 etc) and try again.

With those commands entered, open a web browser and go to where is the IP address of your Raspberry Pi and you’ll get the following screen:

All fields on this configuration page need to be filled in, the defaults are all correct but you have to overtype them yourself. To help you out, here are all the top options, you can just copy/paste these.

The same applies for the Global Configuration section. Even if there is text in the boxes, you need to overtype it. The Timezone is obvious, the URL to Logo field can be left blank and the rest are your personal preference.

When you click the ‘Save configuration’ button, you are presented with a screen telling you to remove setup.php. Sadly it doesn’t tell you where that file is saved so here’s the command to delete it. You should also remove index.html so that doesn’t get served by default:

sudo rm /var/www/html/setup.php
sudo rm /var/www/html/index.html

If you need to edit this configuration in the future, you can do it by editing a file.  Once you’re in the file, the options are obvious.

sudo nano /var/www/html/config/config.php

In your web browser now, just enter, substituting all those xxx for your own IP address. You should be presented with the dashboard for your reflector. If you want to make this available to the outside world, you need to forward port 80 in your router to the Pi and add the dashboard link to your entry on the Reflector Registry.

Everything is done. Now you just have to wait for your reflector to appear on the list of active reflectors here which can take up to two hours. You can also search for it on the Reflector Registry as it should now show active.

By default, your Pi-Star won’t know about the new reflector until it has automatically updated overnight but once it shows in the active reflector list, you can force an update. At the top of the Pi-Star dashboard you’ll find a button called ‘Update’. Click it.

When that has finished, click on Configuration and your new reflector will appear in the YSF Startup Host: drop down box. Select it and click the Apply Changes button.

And that’s it. Although it looks complicated, it’s quite straightforward. When I ran through the complete setup to write this guide, the process took about half an hour.

The reflector I created is called GB QSO365 and the YSF DTMF code is #26368. I will leave it online if anyone wants to use it but please don’t bridge it anywhere. The dashboard can be seen by clicking here.

Finally, here’s the reflector itself. It’s running on a Pi Zero with an external USB ethernet interface. It’s not exactly high-tech.

Creating a YSFReflector
How to install a YSFReflector
YSFReflector dashboard


Add a Comment
  1. After reading some other tutorials and finding bits missing, I landed on this one – thanks to Keith for such a detailed breakdown which (after some brief intervention from Kim at had my YSF reflector online and up and running in a very short time.

    Always nice to actually do something yourself but have a good tutorial to help you along.

    1. Thanks Mick, I’m pleased it works well for you. It’s all very well to write these guides but until someone else actually tries it, I’m never 100% sure I’ve caught everything.

      73 Keith.

  2. Hi keith,

    The only problem i am having is connecting to it externally.. What would be the URL from external?


    1. Hi Nick,
      I assume you mean the dashboard? You need to forward port 80 through your router to the Raspberry Pi and then connect either directly to your IP address ( or to the dynamic DNS name you set up.
      73 Keith.

    2. sorted. Thanks very much for your help.

  3. Hi Keith your instruction are flawless Just make sure you select the right Keyboard layout for your country A UK keyboard layout doesn’t work well on a US keyboard LOL


    Randy KK4OVW

  4. Burnham Radio Club G4RGY

    Very good thanks , had to run script as a service so it runs on reboot and using later 7.3 php and kernel at 88473
    See there is bridge option on reflector site to talk group- is this a simple TG in website or MMDVM_Bridge required as well for DMR bridge?


  5. Thanks! YSF95375 US Steel City – Pittsburgh, PA is on the air!

  6. Keith your instruction are flawless, bud is there are instruction about 2 YSF Ref on 1 server?

  7. Thanks a lot 73 God bless you always

  8. Thanks for the great writeup. It works perfectly and now AZ_DIGIHAM is live running from a 3B+. Do you know if it would be possible to use Buster? do you know what is missing to make it work?

    1. I’m sorry, I don’t. I can’t remember what had changed on Buster which stopped it working but I might revisit that. My priority at the time was to get a working reflector that we could use straight away.
      I built this one originally on a zero and it worked perfectly but the CPU was sitting a little higher than I liked so I moved it to a 3A+ where it ticks along nicely. It doesn’t need a Pi4 although it would be nice to run under Buster.
      73 Keith.

  9. Hello, first of all thanks for your work. I wonder if this is possible to do on the Raspberry Pi zero W in my MMDVM hotspot for it to act both as a YSF Reflector and Hotspot?

    73 de TA2API

    1. Hi,
      If your MMDVM hotspot is based on Pi-Star then no, I don’t think this is going to work because the Pi-Star image makes the operating system read-only and I suspect that won’t be good for a reflector.

  10. I must be doing something wrong. I have my reflector up but won’t stay linked and does not seem to pass any traffic. The reflector is US WolfRiverCoil. I have my router port forward at 43000 and changed the PI in the configuration. Using a Raspberry PI3 B+. I’m listed and I can link to it but drops out after about a minute. What am I missing or do I need something else set in the router?

    1. I bet your ISP is blocking the port. Try 43001 or something like that. I ended up using port 42003.

  11. reflector ID is assigned automatically?

    thank for tutorial

    1. Yes, the reflector ID is assigned automatically when you register it.

  12. Keith
    Thanks for the tutorial, I hope I can find a way of tying it down to just one target repeater. Basically, Initially at least we want to give our local club members a “Way in to their local repeater”.


  13. Is there anyway to change the temperature on the dash board to read in Fahrenheit instead of Celsius?

    1. That’s a really good question – I have no idea.

  14. Thank you for a great step by step instruction on getting the reflector installed and online. I can get to the dashboard, and my reflector shows up on a hotspot, but it does not seem to be bridged to my Wires-X room. And while connected via the hotspot, nothing shows up on the dashboard. I have port 42000 TCP/UDP open on both my router and modem.
    How does the reflector connect back to the room? I have not found any posts anywhere describing the link from to Wires-X… Any help would be greatly appreciated!

    1. Hi Chris,
      I can’t help you when it comes to bridging a reflector to a Wires-X room, I’ve not attempted to do it, sorry. Perhaps someone else reading this is able to offer some advice on bridging a YSF Reflector over to Wire-X.

      1. Thank you for the reply. I guess I shall continue experimenting 😉

Leave a Reply to Cristian CE2UMH Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.