Bountiful WiFi BWRG500/dd-wrt

The BWRG500 and BWRG1000 are nearly identical, and these instructions should work for both.

=Flashing Instructions=

These instructions are based off generic Atheros instructions (by other authors). They are tested to be working from Windows XP to a Bountiful BWRG500 with firmware DD-WRT v24-sp2 std SVN 14896.

--Alexszc 16 September 2010

Make sure to use the files that are named in the instructions: ap51.bin, ap51.rom, linux.bin

Preparation
Before flashing you want to establish a clean environment to reduce the risk of problems, and make problem resolution easier.


 * 1) Reset your unit to factory defaults: Depress and hold the Reset Switch for approximately 30 seconds (until the System Status light turns off). Wait at least 30 more seconds after releasing before doing anything else.
 * 2) Isolate your workstation and the router together. Turn off / Disconnect any wireless or extra wired connections on the workstation, and use a single wired connection to a LAN port on the router. Don't have anything but your computer connected to the router while flashing.

TFTP Server
Windows doesn't have a TFTP server running by default. You need one in order for the router to be able to load the files from your computer during flashing. TFTPD32 is a good lightweight TFTP server.


 * 1) Download the standard ZIP version of TFTPD32
 * 2) Extract to a known folder (in a folder on your Desktop, or in a folder branched off C:\)
 * 3) Run and configure so that the current directory is where your downloaded .bin and .rom files are. Make sure a firewall isn't interfering (it is best to turn it off completely for flashing).

Temporary bootloader

 * 1) Set a static IP address in the router's default 192.168.0.x  subnet (ex. 192.168.0.254)
 * 2) Connect the LAN cable to your computer
 * 3) Connect via a browser to the router's web interface at 192.168.0.1 (Default Username and Password is admin/admin)
 * 4) Flash ap51.bin as a firmware update. Reboot via the GUI button when prompted.

Flashing DD-WRT

 * 1) Set your static IP address as 192.168.1.2
 * 2) Open a console and attempt to telnet to 192.168.1.1 on port 9000 you may need to wait for the bootloader to finish initializing (1-3 minutes). Once connected, do not disconnect or unplug your computer, or unplug the router.
 * 3) Type the following commands in the order presented. You should get similar returns from them. Sent commands are bold. Annotations are italics.

fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System ... Erase from 0xbffe0000-0xbfff0000:. ... Program from 0x807f0000-0x80800000 at 0xbffe0000:. ip_address -h 192.168.1.2 IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0 Default server: 192.168.1.2 load -r -b %{FREEMEMLO} ap51.rom ''**Note**This command may return an error about FREEMEMLO being invalid, ''in that case, use the last memory address in the range returned after entering the command fis init, 0x80800000, it may be different for you. Use the following command if the last failed, as per this annotation. load -r -b 0x80080000 ap51.rom Using default protocol (TFTP) Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000 fis create -l 0x20000 -e 0xbfc00000 RedBoot An image named 'RedBoot' exists - continue (y/n)? y ... Erase from 0xbfc00000-0xbfc30000: ... ... Program from 0x80080000-0x800a8718 at 0xbfc00000: ... ... Erase from 0xbffe0000-0xbfff0000:. ... Program from 0x807f0000-0x80800000 at 0xbffe0000:. reset


 * 1) The router will reboot. Type Ctrl-[ to escape from the telnet session.
 * 2) Once the router is online again, connect through telnet as before.
 * 3) Type the following commands in the order presented. The operations may take some time to finish. Sent commands are bold. Annotations are italics.

ip_address -h 192.168.1.2 IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0 Default server: 192.168.1.2 load -r -b 0x80041000 linux.bin fis create linux fconfig boot_script true fconfig boot_script_timeout 4 fconfig ''**Note** You will be presented with a series of options.  When asked for a boot script enter following lines then press enter to cycle though the options to the end.'' Commit the settings when asked. fis load -l linux exec ''**Note** The script is terminated with one enter stroke to create a blank line, then enter again. reset

The router will reboot again. Type Ctrl-[ to escape from the telnet session, close the console.

DD-WRT should now boot and work like it does on other Atheros based platforms.

=Troubleshooting=

Relevant Forum Posts

 * 1) Bountiful BWRG-500
 * 2) Bountiful 1000mw Bricked
 * 3) Bad Bountiful BWRG500 Flash
 * 4) Bountiful WiFi

Redboot Access Script
Use this to regain a Redboot session. Only will work if the router has Redboot flashed successfully on it.

Make Your Own
Download putty.exe to a known folder. create a file in the folder called redboot.bat with the following content:

@echo off echo Waiting for boot cycle on 192.168.1.1 :start rem ping 192.168.1.1 -n 1 -w 1 > NUL IF ERRORLEVEL 1 goto start echo 192.168.1.1 is live, running putty. rem putty rem break start putty.exe telnet://192.168.1.1:9000 -m redboot.txt exit

Create a file in the folder called redboot.txt with the following content (copy paste it):

^C

Start the .bat file and power on the router.....here comes redboot.

Premade
A premade script is available from here.