Linksys WRT1900AC

From DD-WRT Wiki

Jump to: navigation, search


[edit] Introduction

These instructions have only been tested on the Linksys WRT1900AC v1.

The WRT1200AC, WRT1900ACS, and WRT3200ACM and other versions are so similar that these instructions will probably also apply to the other versions, but it's not guaranteed.

[edit] How to Flash

Read the standard GUI Installation wiki and Marvell forum Cliff Notes.

  1. See Where do I download firmware? for download links and details.
  2. Go to the appropriate model build directory:
  1. There are two firmware files to download and install. Do them both in this order:
    1. Initial installation firmware (not needed for later upgrades): factory-to-ddwrt.img
    2. Upgrade firmware: ddwrt-linksys-wrt1900ac-webflash.bin

To see historically available packages, see File Versions. As this is a Marvell unit, builds are customized and do not necessarily correspond to the Broadcom file versions.

[edit] Setup

Since the WRTxx00 family uses Marvell chips, the "ifconfig ath0 up" command is used to toggle the wireless. "wl radio on" is only for Broadcom.

[edit] Wireless setup

The WRT1900AC is a dual band router, each band with discrete physical interfaces in the Wireless/Basic Settings webpage.

Follow the Atheros/Qualcomm guide for wireless setup.

For ath0, my settings are:

Wireless Mode: AP
Wireless Network Mode: Mixed
Channel Width: wide (40MHz)
Wireless Channel: 9
Extension Channel: Lower

Choose a non-overlapping channel after scanning with a wireless analyzer.

[edit] Advanced WiFi Settings

  • Don't bother changing the TX power. Increasing it from 30dBm doesn't seem to have any effect.
  • If you do not plan to use the 5GHz wifi band, turn it off by adding the command ifconfig ath1 down to the startup commands (webpage: Administration/Commands "Save Startup". Thus less power will be consumed and less heat generated.

[edit] 5 GHz wifi setup

In order to get the 5 GHz band working, all of the following must be set

  • SSID: the two interfaces (ath0, ath1) must have different SSIDs
  • Channel: even though there are a number of channels that can be used for the 5GHz band, many do not work, as this DFS page explains. Basically, the only usable ones are channels 36-48 and 149-165.
  • Wireless Network Mode: the webpage GUI lists various possibilities, but some may not work such as "N-only". The "AC/N-mixed" mode has been tested to work.
  • Channel Width: The smallest width is 20MHz. Increasing this can increase the speed, but may also increase noise. The DFS page linked above explains channel width well. You'll have to see how many other 5 GHz routers are nearby and experiment. The Extension Channel of Upper/Lower is also important based on where the DFS/radar channels are with respect to the channel that you have selected.

[edit] Guest WiFi setup

See Guest Network for details and options.

Backup the NVRAM beforehand in case something goes wrong, to restore working settings.

  1. ADD a virtual interface. then SAVE.
  2. Configure the virtual interface, then SAVE again.

Example Settings:

  • set private network to (completely different subnet from 192.168.x.x)
  • use OpenDNS dns server

Example NAT/QOS settings:

Start QoS:  Enable
Port: WAN
Packet Scheduler: HTB
Queueing Discipline: SFQ 
Downlink (kbps): 27000
Uplink (kbps): 4500

As explained in the link above, the downlink and uplink speeds must NOT be more than 95% of your ISPs speeds. My ISP provides 30Mbps down and 5 Mpbs up. Thus my QOS speed settings are

Downlink speed = .9 * 30,000 kbps = 27000
Uplink speed = .9 * 5000 kbps = 4500
  • Set bandwidth limiting to maximum for private network and bulk for guest.
  • I have not had a lot of traffic to test the QOS for the guest network. If there are problems change change SFQ to FQ_CODEL
  • I have not implemented any abuse control yet.

[edit] Hardware

[edit] USB LEDs

The LEDS for USB1 and USB2 do not seem to work as advertised. This may be a bug in DD-WRT. They both turn on when USB ports are enabled (see services) and turn off when they are disabled, regardless of whether something is plugged in or not.

[edit] LED brightness

The LEDs seem to lose brightness over time according to this. My router is second-hand and it's quite evident that the frequently used LEDs are dimmer than the others.

[edit] Changing LED brightness

To see the list of LEDs, run the command:

root@ddwrt:~#  ls -l /sys/class/leds

NOTE: mamba is the codename for the 1900AC v1, while cobra is v2. The 4 ethernet ports have two LEDs each but do not show up here.

The brightness of the LEDs can be adjusted with this command:

 echo 255 > /sys/class/leds/mamba\:white\:wan/{brightness}

Where the {brightness} value ranges from 0 to 255 (minimum to maximum).

[edit] LEDs and GPIO pins

Most of the LEDs above are connected to / controlled by GPIO pins. The command /sbin/gpio allows one to examine and manipulate the GPIO pin status.

  • /sbin/gpio poll 9 (this tells if pin 9 is 00 = off or 01 = on)
  • /sbin/gpio enable 9 (this enables pin 9, ie. sets it to 1)
  • /sbin/gpio disable 9 (this disables pin 9, ie, sets it to 0)


  1. The /sbin/gpio command works better over wifi than from a computer connected via ethernet cable. I don't know why. In the latter case, CTRL-C does not work to end the poll command.
  2. Even doing a poll will often mess up the router so much that it just freezes. You'll have to reboot it after experimenting with the /sbin/gpio commands.

The LEDs with accessible GPIO pins are mapped as follows:

0 = Power
4 = USB2
5 = USB1
6 = White internet
7 = Amber internet
8 = USB2 dot
9 = WPS (white - the far right LED with an Up/Down arrow)
10= WPS (amber)

Pins 1-3 are currently unknown, although it seems logical they would be wlan_2g, wlan_5g and eSATA.

Pins 9 and 10 are available and most easily used as customizable indicator lights. See LED Scripts.