Chris Hall bio photo

Chris Hall

Adjusting technology to make it fit my requirements...

Windows, Linux, Virtualisation, Unified Computing & Cloud Offerings Design Engineer.

PolarCloudsUK Chris Google+ LinkedIn Github
Back in May 2009 (blimey... that long ago?!), I posted this guide on how to get faster ADSL broadband for less than £20.

Recap: the deal is to purchase a DG834GT router, install some custom firmware and tweak the Signal to Noise Ratio (SNR) percentage to as low as possible, thus gaining a higher ADSL sync rate, IP Profile and actual throughput.

See this thinkbroadband FAQ article regarding actual connection speed vs IP profile.


So here we are almost eight months later and time for an update.

The Good News
The good news is that my broadband has now stabilised at a connection speed of somewhere in the region between 3000Kbps to 3200Kbps, giving me an IP Profile and throughput speed of 2.5Mbs.  Not bad at all considering I started at 1Mbs!

The Not So Good News
Unfortunately it's not all been plain sailing.

After some problems with instantly dropping signal to noise ratios and a slow depreciation of line quality in late October and November, something had to give and I logged a call with BT.

Luckily there was nothing major wrong with the line and the problem was tracked down to water penetration problems on the line.  The repair was quite simple and the BT engineer also threw in an BT Openreach master socket I-Plate like this into the bargain:
For further reading on I-Plates, see this thinkbroadband article.

For me, the jury is still out on whether the I-Plate has actually made any difference. I'm not saying that they are no good, an in fact I know of several others that have seen speed increases just by fitting them, I'm just stating that here on my line it's not made any noticeable performance difference.  Has it made my line more stable?  Not sure.  Line stability is very subjective and hard to quantify.

All Tweaked Out?
Looking at the thinkbroadband Line Sync vs IP Profile table once again:
Notice that my sync speed of somewhere between 3000Kbps and 3200Kbps is quite close to the next step up in IP Profile; 3424Kbps = 3Mbps throughput.

In fact, I've already had (albeit fleetingly) an IP Profile of 3Mbps as posted here, so I know that 3Mb is potentially possible on my line.

So, being that some tweaking has already gained me a hefty speed increase, is it possible to squeeze that last drop out of the line to get even more speed?

Going For More - The Warm Up
We need a very quick recap here just so that what follows is not total gobbledygook.
Signal to Noise Ratio
Put simply, Signal to Noise Ratio (SNR) compares the level of a desired signal (in my case the ADSL signal) to the level of background noise on the telephone line.  My line is set at the exchange to provide a 15dB signal to noise ratio.  Therefore, when handshaking with the exchange, my router will always synchronise at a speed that will ensure that there is a 15dB SNR. 

This is achieved at the expense of connection speed.


However with a SNR adjustment at the router end, It is possible to override the exchange's preferred SNR which in turn allows the router to synchronise the broadband connection at a faster rate, gaining a higher IP Profile and higher throughput.
The down side is that as the connection speed increases the line stability decreases.  The art is in trading stability for speed - achieving a higher throughput whilst keeping the line stable.

The action of overriding the exchange preferred SNR achievable on ANY ADSL line.  There really are no smoke and mirrors here, my ADSL line is the same as anyone else's.

First off, lets look at my existing stats:
3264Kbps for a SNR of 8.8dB (taken on a pretty good day!)

The 'million dollar question' is how low can the SNR go?  What's the lowest SNR (and hence the highest Sync speed) I can get?

Looking at Kitz's forum FAQ (SNR /SNR Margin section) they believe that a SNR of 3dB is probably as low as you can go.  In the interests of stability I think I'll double that and go for a SNR of 6dB.

But how can I tweak my SNR down further?  I'm already at 1% on my SNR Slider in the DGTeam firmware running on my router:
Well, it just so happens that some additional tweaking is possible.  LOL You guessed it!

Whilst scouting around trying to find out how to drop my SNR further, I found this thread over at Kitz's forums - Tweaking Broadcom based routers.  It turns out that the DGTeam firmware doesn't drive down the SNR as hard as hoped or first thought.

From the forum:
Broadcom-based routers can be tweaked to change the target noise margin set in the exchange, using the adslctl command in telnet. With Netgear routers, the DGTeam firmware makes it possible to perform the same tweak in the web interface. But in either case the tweak is limited to about - 5.5 dB in the downward direction, so if your target noise margin has been increased to 15 dB you won't be able to get it down to less than about 9.5 dB using documented methods. Note that, without the DGTeam firmware, this tweak doesn't survive a re-boot. So if you power down the router or re-boot you'll have to enter the command again.

The normal form of the adslctl noise margin tweak command is

adslctl configure --snr N
Roseway - Kitz forums.

Values for N are as follows:

Change you want in SNRValue for N
No change/reset to default value 100
Lower by 1.5 dB75
Lower by 3 dB50
Lower by 4.5 dB25
Lower by 6 dB65550*
Lower by 7.5 dB65525*
Lower by 9 dB65500*
Lower by 10.5 dB65475*
Lower by 12 dB65450*
Lower by 13.5 dB65425*
Lower by 15 dB65400*

* The command does not accept negative numbers.  However the command can be tricked into accepting negative numbers by entering high positive numbers.

Going for More - Making It Happen
As mentioned earlier, it looks like the target SNR set by the exchange on my line is 15dB.
I want to override this and sync at a SNR of 6dB.

15 - 6 = 9dB

Therefore I need to issue this command to my router: 

adslctl configure --snr 65500

In for a penny, in for a pound, I'm going to go for a drop of 9.5dB (setting my SNR at 5.5dB), so that'll be N = 65480.

Here is how to do it:
  1. Enable debug via the web interface by browsing to http://192.168.0.1/setup.cgi?todo=debug [remember to change the IP address of you are not using 192.168.0.1 for your router]
  2. Open a command prompt
  3. Enter the following command: telnet 192.168.0.1
  4. Login using your usual router username (admin) and password
  5. Issue the command adslctl configure --snr N (in my case: adslctl configure --snr 65480)
  6. Connect to router using browser as normal and check your connections statistics.  
Here are mine:
Spot on!  5.5dB SNR with a sync of 3680!

3680Kbps is nicely above the 3424Kbps minimum connection speed for a 3Mbps IP profile.

I now need to wait for my IP Profile and ISP to wake up to my new sync speed.  This Kitz FAQ has the details on how long I roughly need to wait. 

So here we are four days later. ;o)
Looks good.  Also looks like Plusnet are on board:
Looks like a result to me!

Here's some speed test results:
So that's it then.

MORE SPEED... DONE! 

REMEMBER: The action of overriding the exchange preferred SNR achievable on ANY ADSL line.  There really are no smoke and mirrors here, my ADSL line is the same as anyone else's.

What's stopping you trying this for yourself on your line?

- Chris

## POST SCRIPT ##
According to this digital forums thread, it may be possible to set the adslctl configure --snr value via URL injection.  Using this method, here is the command I would use to configure my router:
http://192.168.0.1/setup.cgi?todo=ping_test&c4_IPAddr=%26/usr/sbin/adslctl+configure+--snr+65480

I've not tried it, but there looks to be no reason why this shouldn't work.

- Chris