How to adjust ADSL SNR offset?

My Netgear DGN3500 is dropping the connection randomly with default settings, how can I adjust the SNR offset on OpenWrt?

this might be useful Script for ADSL Noise on TP-Link TD-W8970

1 Like

Isn't this just for monitoring the SNR, not for adjusting it?

Could be, I haven't had *DSL for god knows how long, but you could use the info as search terms for what you want to do.

Try the DSL tab somewhere in the network/interface section of the GUI...

Yes my code was for monitoring SNR, specifically on a device with lantiq chipset - so the commands were very specific for that device. Can't remember if you could set SNR via that method - but it was the kind of thing you could do, I'd need to find document with the commands in again!

But anyway unless for have a lantiq chipset - it probably won't help.

In the DSL tab there's only settings for annex mode, tone and firmware file, no SNR adjustment.

Netgear DGN3500 has the Lantiq XWAY ARX168 SoC.

Odd on my DSL tab I have "Downstream SNR offset".

I'll see if I can find the commands for lantiq chip set when I finish work. Google though is your friend.

Mmmh if it is not in luci you could try: locs 0 -20 # this should change the SNR thresohld, probably by 0.2 dB, not sure which sign denotes higher and which denotes lower thresold acs 2 # this will force a resync, as far as I can tell this is required to tweak the SNR threshold

I found this in my old notes, but I am not sure I ever tested whether this works...

1 Like

and just googled this lantiq adsl commands which gives the same "locs" and "acs" command.

Thanks a lot for finding this.

However when I enter the "dsl_cpe_control" I get:

root@OpenWrt:~# dsl_cpe_control
DSL_CPE: Device /dev/dsl_cpe_api opened successfully
DSL_CPE:  open /opt/ifx/firmware/ModemHWE.bin failed.
DSL_CPE:  open /opt/ifx/firmware/ModemHWE.bin failed.
DSL_CPE:  open /opt/ifx/firmware/ModemHWE.bin failed.
DSL_CPE:  open /opt/ifx/firmware/ModemHWE.bin failed.
DSL_CPE:  open /opt/ifx/firmware/ModemHWE.bin failed.
DSL_CPE:  open /opt/ifx/firmware/ModemHWE.bin failed.
DSL_CPE: ERROR - FW download failed on the 5 retry!

I'm assuming it's not going to work (I'm a total OpenWrt noob)?

what does ls /tmp/pipe give?

ls /tmp/pipe/
dsl_cpe0_ack    dsl_cpe0_cmd    dsl_cpe0_event
1 Like
root@OpenWrt:~# ls /tmp/pipe/
dsl_cpe0_ack    dsl_cpe0_event  dsl_cpe1_cmd
dsl_cpe0_cmd    dsl_cpe1_ack    dsl_cpe1_event

Forgot to mention that the DSL cable isn't plugged into the DGN3500 at the moment (because the connection isn't really usable), could that be the source of the errors?

This is the wrong command. dsl_cpe_control is the service which is started by the dsl_control init script. There is no need to start it manually.

To run any modem commands, you need to use But as already mentioned SNR adjustment is a configuration option which is even available in the web interface, so there shouldn't be any need to run the locs command manually. (But it is probably required to restart the modem manually after changing the setting. This should also be possible via the web interface by restarting the dsl_control service under menu option System -> Startup).


SNR for VDSL2 look like this in config network

config dsl 'dsl'
        option annex 'b'
        option tone 'av'
        option ds_snr_offset '-39'

mean -3,9dB from target SNR . Target SNR is 9dB for my line so result 5.1dB
Also resync is required by:

/etc/init.d/dsl_control stop
/etc/init.d/dsl_control start

lantiq is well known to sync below broadcom or even below its max. attainable data rate .Values from -5 to -10 are desirable.


Assuming your link stays stable at the lower SNR margin... :wink:

So I'm guessing I'm SoL then, as there's no option to adjust the SNR offset in the DSL tab.
IIRC the default Netgear firmware didn't have the SNR adjustment either.

See @nicefile's post above showing how it's done in the network config file.

1 Like

After having a closer look, it looks like that option is only available for VDSL devices (and this also applies to the configuration file). So your only option is to try if setting an SNRM offset via command line works (as described by @moeller0 above).