Our home internet connection is provided by Vodafone, via the CityFibre FTTP network. We have an ONT in the wall, then had an Ethernet connection to the free Vodafone-provided router, which provided WiFi and LAN to the rest of the house. I’ve recently replaced that flaky router with a Unifi Dream Router, and to do so I had to combine information from a variety of sources from around the web.I’ve collated them here as a single post in case anyone else is following in my footsteps and finds it.
Initial Setup
I wanted to test that the device worked before directly replacing my router with it, in order to check it worked. I started by connecting the WAN port of the Dream Router to a free WAN port on my existing Vodafone router, effectively making a new sub-network within our existin…
Our home internet connection is provided by Vodafone, via the CityFibre FTTP network. We have an ONT in the wall, then had an Ethernet connection to the free Vodafone-provided router, which provided WiFi and LAN to the rest of the house. I’ve recently replaced that flaky router with a Unifi Dream Router, and to do so I had to combine information from a variety of sources from around the web.I’ve collated them here as a single post in case anyone else is following in my footsteps and finds it.
Initial Setup
I wanted to test that the device worked before directly replacing my router with it, in order to check it worked. I started by connecting the WAN port of the Dream Router to a free WAN port on my existing Vodafone router, effectively making a new sub-network within our existing one. I powered it on, waited for startup, downloaded the app, and it connected straight away.
I then went through the initial guided setup procedure, leaving settings as default at this stage, and ensured the WAN connection was set to DHCPv4. This allowed it to connect to the internet and check that it was working via the old router, avoiding disruption to the household internet connection at this stage. I deliberately left the WiFi network called “Unifi” at this point so I could ensure I was connecting to the right network.
I chose not to set up a Unifi account at this stage, sticking with just a locally-set password, but I did eventually set this up later. I’m not sure it really matters if, or when, you do it.
Having verified that the device worked and could see the internet, I then set about changing its configuration to replace the Vodafone router rather than work through it.
At this point I switched to using a laptop to configure it rather than my phone, for ease of use. With default settings, I was able to join the Unifi WiFi network and access the web interface of the router on https://192.168.0.1, after accepting the browser warning about the security certificate.
WAN Settings
The most important part of replacing the Vodafone router is getting the right PPPoE settings. While most settings are common, the username and password are unique to your account, and you cannot find these out by any means other than asking Vodafone support. I started a text chat with the “Tobi” bot, which at the first mention of “PPPoE” booted me over to a human. After 5 minutes or so, the operator sent me a text with all the details.
In the Dream Router web interface, I went to Settings -> Internet and selected Vodafone UK (it had already determined my ISP even though it wasn’t yet directly connected.) I switched the “Advanced” settings from Auto to Manual and set the following:
-
VLAN ID: 911
-
IPv4 Configuration
-
Connection: PPPoE
-
Username: (from Vodafone text)
-
Password: (from Vodafone text)
-
Auto DNS Server: On
-
IPv6 Configuration
-
Connection: DHCPv6
-
Prefix Delegation Size: 56
-
Auto DNS Server: On
After a few minutes to reconfigure itself, the Dream Router’s internet connection then stopped working (as expected, because it was still plugged in via the Vodafone router).
I then removed the Vodafone router and put the Dream Router in its place, powered up, and internet connectivity was restored.
(Note that while most sources recommend the IPv6 connection type is set to SLAAC, for me this did not result in the router being given an IPv6 address. I’m not sure if the change to require DHCPv6, as I successfully used, is a recent thing.)
LAN & WiFi Settings
The previous Vodafone router used a 192.168.1.0/24 subnet for LAN and WiFi connections, and I had a number of devices using static IPs. These were not visible by default, as the LAN subnet used by default on a Unifi device is 192.168.0.0/24. I changed the Dream Router configuration (under Settings -> Networks) to use an IPv4 address of 192.168.1.1, netmask 24, in order to recreate the previous network setup. This allowed the devices with static IPs to be visible on the network without needing reconfiguration.
Under IPv6 settings for the network, setting Interface Type to “Prefix Delegation” then allowed devices on the LAN to be allocated IPv6 addresses, providing full IPv6 capability to the network.
I then changed the WiFi settings to match the SSID and password of the previous router’s WiFi network, allowing all wireless devices to connect again without having to update their settings.
The Settings -> Overview page then looked like this:
Fan Control
The most immediate and disappointing problem with the new router was the amount of noise it made. Immediately from startup, an internal fan was on what sounded like full power, and there was no obvious way to control it.
The first automatic software update that the Dream Router applied may have improved things slightly, or it may just have been my imagination. However, there are plenty of forum posts out there with people complaining about the noise from these devices, particularly as they are targeted at “enthusiast” consumers who may well want to keep the router in their living room.
Luckily, this has annoyed enough people that there is a work-around, provided you don’t mind a bit of SSH. I’m using this script now, and it seems like my router is coping well and not overheating, but of course you do this part of the procedure at your own risk, and it would be a good idea to keep an eye on the router’s temperature and fan speeds for a while after setting this up.
This requires enabling SSH access to the router. The setting for this can be found in Settings -> Control Plane -> Console -> Advanced. Tick the “SSH” box and set a password—this does not need to be the same as any other password you have set on the device. Save the settings, then SSH into the device as root from your computer. In my case this was ssh root@192.168.1.1 due to me having changed the LAN IP address of the router.
Running the sensors command displays fan speed and system temperatures:
root@Home-Router:~# sensors
lm63-i2c-0-4c
Adapter: i2c-mt65xx
fan1: 2743 RPM (min = 0 RPM)
temp1: +59.0°C (high = +70.0°C)
temp2: +58.1°C (low = +0.0°C, high = +70.0°C)
(crit = +125.0°C, hyst = +115.0°C)
I then created a new file in the default directory with vi fanspeed.sh. I pasted in the following content, which is directly copied from reference 8, below. I’ve reproduced it here in case the gist gets deleted, but all credit goes to GitHub user BeneKenobi for this great and well-commented script.
#!/bin/sh
# Getting current fanspeed setting from pwm1
fanSetting=$(cat /sys/class/hwmon/hwmon0/pwm1)
# Getting current temperature from sensors command
currentTemp=$(sensors -u | grep temp1_input | cut -c 16-)
# Remove the decimals from sensor reading
currentTemp=$(echo ${currentTemp%.*})
# Set threshold temperature to start raising or lowering fan speed at
lowerThresholdTemp=60
upperThresholdTemp=65
# Minimum fan speed to run, from my test any value below 36 causes the fan to oscillate between 0 and 300rpm
minimumFanSpeed=36
# If current temperature is below our threshold reduce the fan speed
if [ "$currentTemp" -lt "$lowerThresholdTemp" ]; then
echo "Temperature of $currentTemp is lower then the threshold of $lowerThresholdTemp."
# Check if we are already at minimum fan speed else adjust it down
if [ "$fanSetting" -gt $minimumFanSpeed ]; then
newFanspeed=$((fanSetting - 10))
# Unlock pwm1 file so we can modify it
chmod 644 "/sys/class/hwmon/hwmon0/pwm1"
# If this adjustment would bring us below minimumFanSpeed, we set the speed to minimumFanSpeed instead
if [ "$newFanspeed" -lt $minimumFanSpeed ]; then
newFanspeed=$minimumFanSpeed
fi
echo "Decreasing fan speed to $newFanspeed."
echo $newFanspeed > /sys/class/hwmon/hwmon0/pwm1
# Lock pwm1 file so system can't change our values back again
chmod 444 "/sys/class/hwmon/hwmon0/pwm1"
else
echo "Fan is already at minimum."
fi
elif [ "$currentTemp" -gt "$upperThresholdTemp" ]; then
echo "Temperature of $currentTemp is higher than the threshold of $upperThresholdTemp."
# Temperature is above our threshold, so we increase fan speed
newFanspeed=$((fanSetting + 10))
# If this adjustment would bring us above 255, we set the speed to 255 instead
if [ "$newFanspeed" -gt 255 ]; then
newFanspeed=255
fi
# Unlock pwm1 file so we can modify it
chmod 644 "/sys/class/hwmon/hwmon0/pwm1"
echo "Increasing fan speed to $newFanspeed."
echo $newFanspeed > /sys/class/hwmon/hwmon0/pwm1
# Lock pwm1 file so system can't change our values back again
chmod 444 "/sys/class/hwmon/hwmon0/pwm1"
else
echo "Temperature of $currentTemp is between $lowerThresholdTemp and $upperThresholdTemp. Nothing to do."
fi
exit 0
I then saved the file, made it executable (chmod +x fanspeed.sh), and added it to cron to run every minute (crontab -e, then adding the line 1 * * * * /root/fanspeed.sh >/dev/null 2>&1.)
On first run, this immediately took the fan speed down to a bearable level for living room use.
References
Information in this post was sourced from:
- Reddit: Help connecting to Cityfibre Vodafone UK (PPPoA full fibre)
- SNB Forums: INFO: Word of warning about Vodafone UK FTTH/FTTP
- Reddit: UniFi - IPv6 on Vodafone UK WAN connection
- ISP Review: Vodafone ipv6
- Reddit: My Dream Router arrived today, and I can’t believe how loud it is!
- Tim’s Substack: Ubiquiti Ultimate Dream Router Teardown, Analysis, and Mods
- UI Community: Unifi Dream Router - fan speed
- Github Gist: Unifi Dream Router fan speed adjustment by BeneKenobi