Buffalo WZR-HP-AG300H

The easiest way to install OpenWrt is by using the firmware utility of the OEM web interface:

  1. Connect to the WebInterface at and go to “Administration”“Firmware Upgrade”
  2. Upload the OpenWrt factory image you want to install
  3. Make your PC obtain a new IP address from OpenWrt (dhclient eth0 or pump -i eth0 or ipconfig /renew)
  4. proceed with checks_and_troubleshooting to complete installation

NOTE: It may happen, that the squashfs-factory.bin does not work for this device, if the factory image is based on DD-WRT. See this thread. Please update the thread with your experience or file a bug if you run into a problem. According to the user, for installation from DD-WRT the instructions on the WZR-600DHP page worked for him.

Specific values you need

Bootloader tftp server IPv4 address
Bootloader MAC address (special) 02:aa:bb:cc:dd:20
Latest firmware tftp image https://downloads.openwrt.org/releases/21.02.0/targets/ath79/generic/openwrt-21.02.0-ath79-generic-buffalo_wzr-hp-ag300h-squashfs-tftp.bin (NOTE: Name must contain “tftp”)
TFTP Transfer Window 4 seconds
TFTP Window Start approximately 10-20 seconds after power on
TFTP Client Required IP Address

Here is a link to the console output of the boot process, with all led's in view for reference http://www.youtube.com/watch?v=mAZNTKhpHig

Flashing Notes

  • If your router has two red flashes of the DIAG LED followed by no flash and repeats then the flash failed or the image given is corrupt.
    • You can still recover with tftp. Start over and try again.
  • The red “DIAG”-LED begins to flash rapidly when the router has received the image and is currently booting the new firmware.
  • Successful flashes via tftp using Windows 7 directly plugged into the router have been done. It helps to add arp entries and disable media sensing as per the generic tftp instructions.
  • Flash should have reset all settings as well. The IP address of the router should be now since is only for the bootloader at boot-time

TFTP advice, wrong region

Click to display ⇲

Click to hide ⇱

There are apparently several regional versions of the OEM firmware. You may have to adjust the region in u-boot first. Below is example of a successful region change and flash procedure. Source: forum article

This is how to do it from serial console:

  1. Power on the router and wait until you see “Load address” appear shortly after the tftp message:
    tftp server(receive) go, waiting:4[sec]
    Load address: 0x84000000
  2. Immediately press Control+c
  3. After prompt apears do:
    • setenv accept_open_rt_fmt 1
    • setenv region EU
    • saveenv
    • reset
    • (it reboots now)
  4. After Reboot Power your Device down!
  5. Set Your LAN IP to
  6. In a linux terminal use these commands
  7. In Windows cmd put that Line:
    • arp -s 02-AA-BB-CC-DD-20
    • tftp -i PUT wzrhpag300h-pro-v24sp2-19154.enc (don't hit enter, yet)
  8. Power on the Device and 10 Seconds after that hit enter in Windows CMD to start the TFTP. (it tooks about ten Minutes to Complete the flash procedure)

Network Manager Issues on Linux

Doing a power cycle may trigger a disconnect of the Ethernet which causes a reset the ARP info. Workaround:

  • In one terminal have (but do not yet execute)
  • ip address add dev enps20; arp -s 02:aa:bb:cc:dd:20; curl -T openwrt-tftp.bin tftp//:
    • Change enps20 out for your eth name ip address show
    • Change openwrt-tftp.bin for the version you downloaded
  • Power on the router
  • Count to 3
  • Press enter on the terminal command from before
  • Wait

Alternatively, use a switch in between your PC and the router, to prevent the link from going down while rebooting the router.

Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.

Press the 'USB/eject' button while the red 'DIAG' LED is blinking to enter Failsafe mode.


If you want to trigger a LED as soon as an USB-Device is connected to your USB-Port, add this to /etc/config/system:

config 'led' option 'default' '0' option 'name' 'USB' option 'sysfs' 'buffalo:red:diag' option 'trigger' 'usbdev' option 'dev' '1-1'

This switches on the little red circle of the DIAG-LED everytime you connect something to your USB-Port.

  • It's very unlikely that you completely bricked the device, so first try the TFTP Method above. Note that a red diagnostics light blinking twice means your flash failed, but the device is ok and tftp will work (keep trying). If you still get nowhere, more drastic measures:


Architecture MIPS
Vendor Qualcomm Atheros
bootloader crippled U-Boot
System-On-Chip AR7161 rev 2 (MIPS 24Kc V7.4)
CPU/Speed 24Kc V7.4 680 MHz
Flash-Chip ?
Flash size 32 MiB
RAM 128 MiB
Wireless Atheros AR9223 (2.4GHz) and AR9220 (5.0GHz) 802.11abgn
Ethernet AR8316
Internet n/a
USB Yes 1 x 2.0
Serial Yes
root@OpenWrt:~# lspci -vv
00:11.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)
	Subsystem: Atheros Communications Inc. Device a097
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 168, Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 72
	Region 0: Memory at 10000000 (32-bit, non-prefetchable) [size=64K]
	Capabilities: [44] <chain broken>
	Kernel driver in use: ath9k

00:12.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)
	Subsystem: Atheros Communications Inc. Device a096
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 168, Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 73
	Region 0: Memory at 10010000 (32-bit, non-prefetchable) [size=64K]
	Capabilities: [44] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=100mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: ath9k

flash.layout has an example flash layout and all explanations required to understand this. Here the naked hex-values for the WZR-HP-AG300H:

root@DD-WRT:~# cat /proc/mtd dev: size erasesize name mtd0: 00050000 00010000 “RedBoot” mtd1: 01f80000 00010000 “linux” mtd2: 00b11000 00010000 “rootfs” mtd3: 01380000 00010000 “ddwrt” mtd4: 00010000 00010000 “nvram” mtd5: 00010000 00010000 “FIS directory” mtd6: 00010000 00010000 “board_config” mtd7: 02000000 00010000 “fullflash” mtd8: 00010000 00010000 “uboot-env” root@OpenWrt:~# cat /proc/mtd dev: size erasesize name mtd0: 01000000 00001000 “spi0.0” mtd1: 01000000 00001000 “spi0.1” mtd2: 00040000 00001000 “u-boot” mtd3: 00010000 00001000 “u-boot-env” mtd4: 00010000 00001000 “art” mtd5: 00100000 00001000 “kernel” mtd6: 01e90000 00001000 “rootfs” mtd7: 01d2c000 00001000 “rootfs_data” mtd8: 00010000 00001000 “user_property” mtd9: 01f90000 00001000 “firmware”

A collection of photos on how to open the case, of the PCB and the serial port can be found on https://picasaweb.google.com/111743287730172647732/BuffaloWZRHPAG300HHardwarePhotos .

port.serial general information about the serial port, serial port cable, etc.

How to connect to the Serial Port of this specific device:

Correct serial pinout:

  1. Open case
  2. Locate serial port pads next to the Movie Engine switch
  3. Pinouts beginning from the square pad: vcc, gnd, tx, rx
  4. Sends at 115200 8N1 as shipped
  5. Voltage is 3.3 V

For USB/Serial I used a B&B Electronics TTL convertor with a ATEN UC232A. The VCC is not needed. Don't forget TX on the TTL goes to RX on the PCB etc. CuteCom on Linux works great (if you chmod 777 /dev/ttyUSB0)

port.jtag general information about the JTAG port, JTAG cable, etc.

How to connect to the JTAG Port of this specific device:
Insert photo of PCB with markings for JTAG port

port 0 CPU
port 1 LAN 4
port 2 LAN 3
port 3 LAN 2
port 4 LAN 1

hardware.button on how to use and configure the hardware buttons.

Button Event
Reset reset/BTN_0 (pressed, released)
AOSS wps/BTN_1 (pressed, released)
USB Eject BTN_2 (pressed, released)
Movie Engine (on) BTN_3 released, BTN_4 pressed
Movie Engine (off) BTN_3 pressed, BTN_4 released
Router (on) BTN_5 released, BTN_6 released
Router (off) BTN_5 pressed, BTN_6 released
Router (auto) BTN_5 released, BTN_6 pressed
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2024/02/12 08:58
  • by