Warning: this note describes an experimental hack, which as far as I know is not officially documented anywhere. Try it at your own risk!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 Nor
adsl configure --snr NSome firmwares use adsl, some use adslctl. I will use adslctl for the rest of this note.where N should be between 1 and 200. The default value is 100. Lower values reduce the target noise margin, and a value of 1 reduces it by about 5.5 dB. To reduce it further you would need to use negative values of N, but the command rejects negative values. This is where the hack comes in: internally, the value of N is stored as a 16-bit signed integer (supports values between -32768 and +32767) and we can trick the command into accepting negative values by using high positive values. Values between about 65400 and 65535 would be possible; this is equivalent to a range between -136 and -1.
To give a specific example. My current router is a D-Link 2740B which has been converted to a DG834N using
this method. My target noise margin is 15 dB (again) as a result of an intermittent line fault, and using the DGTeam web interface I had tweaked it down to 9.5 dB. In telnet I issued this command:
adslctl configure --snr 65480The router immediately dropped the connection and reconnected with a noise margin of 5.6 dB, and a correspondingly higher connection speed. This pretty well matched up to expectation. So we can give a rough table of noise margin change against values of N:
N Change in target noise margin (dB)100 0
50 -3
1 -5.5
65500 -9
65450 -12
If you go too far, the connection will become unstable, and this may have other undesirable consequences, so do this with great care, and a little at a time.
CreditsI didn't discover this hack myself. There are several references to it on the net (try searching for
adslctl tweak ) and it's not clear who found it first. So, whoever it was, I duly acknowledge them.
[Edit, thanks to b4dger comment below: this hack won't work with recent Thomson/Speedtouch firmware, because the adslctl command has been disabled.]
[Edit 2, Added reference to the fact that some firmwares use the command 'adsl', not 'adslctl'. Thanks to Solstice for drawing my attention to this.]