WHR-HP-G54

From DD-WRT Wiki

Revision as of 20:16, 29 June 2009 by S2s2 (Talk | contribs)
Jump to: navigation, search


Contents


Preface

Please, only add information to the Wiki if you actually own or operate a WHR-HP-G54, and can completely test settings. Add any background information of the specific environment. See Forum threads referenced throughout this Wiki page for discussions.

  • Please include - antenna type, environment (indoor, outdoor, obstructions), SNR, throughput, and any relevant settings.

Installation of DD-WRT

See DD-WRT Wiki article: Installation#WHR-G54S.2C_WHR-HP-G54.2C_WZR-HP-G54.

Inside the WHR-HP-G54

See Inside_the_WHR-HP-G54 (Large Images).

Internal and External Antennas

The WHR-HP-G54 has two antennas. An obvious external one which can be replaced, and an internal one on the board. The two antennas are for 'diversity', in indoor environments (multipath), or when either AP or wireless clients are moving. When using a high-gain antenna (a better antenna than the stock antenna), or a single directional antenna, use the Right antenna setting, for both TX and RX. Using only one high-gain antenna has shown to improve the quality of the connection. This is true especially when the WHR-HP-G54 and clients are in static locations, or outdoors. Wikipedia has an article on antenna diversity.

A way of increasing the diversity of your WHR-HP-G54 is to bring the internal antenna out to an external.

These next steps void any warranty on the Buffalo radio!

Method 1 of bringing the 2nd antenna/internal antenna, outside

Image:WHR-HP-G54_2nd_antenna_Method1_1.JPG Just scratch away the signal trace where the black box is. Sorry I don't have my own photograph handy. Image:WHR-HP-G54_2nd_antenna_Method1_2.JPG This is what it looks like with an antenna connected.

This is an easy mod, which requires adding a single part to the board, and cutting away some of the case plastic to make room for the new, 2nd antenna connector. If one can do basic soldering and can modify plastic, one can do this modification.

  • One needs one part CONREVSMA003.062 from www.connectorcity.com (LINX TECHNOLOGIES):

http://www.connectorcity.com/index.php?section=products&subcategory=RP-SMA

  • One needs some solder. Typical small-electronics, low-temp solder. The stuff for pipes tends to be impossible to heat-up with a 15w solder iron.
  • Some acid-free flux. This is in a white paste usually, sometimes in a tooth-paste-tube type container. Regular plumbers paste works. Whatever is used for small electronics will work fine also.
  • A 15w soldering iron. About 10$ or 8€ at your local hobby-shop. Any small-electronics iron should work.
  • One needs only be minimally proficient at soldering when using the LINX part. The Method 2 below requires more skill, I think.

Simply open up the Buffalo, there are directions in the wiki and it takes a few minutes and one torx screwdriver. Then modify the board as shown in Photo 1.

Line up the CONREVSMA003.62 part on the board to see what to remove and scrape: One cuts away (removes) a few millimeters of the 'signal' trace where the black box is drawn on the photo.

Using the flat tip of a sharp knife, gently scrap off a little of the green protective covering so the bare copper shows a little copper on the 'signal' and the 'ground'.

Line up the CONREVSMA003.62 part on the board: One can solder then the outside 'ground' legs of the CONREVx connector, to circuit 'ground' on the Buffalo board. One CONREVx pin does mate exactly with the Buffalo antenna-ground board trace.

Then solder the 'signal' pin, the inside pin of the CONREVx part to the 'signal' trace on the board.

It takes about 5 minutes to solder and an amateur with little or no HF-experience can do it this way very well.

Some epoxy can be applied later to the CONREVx part legs, although you will find the connection is stable enough to hold a normal antenna or pigtail.

Be sure to apply heat for long enough and some flux paste to get the solder to flow, but not so much you melt the white isolation plastic inside the CONREVx part. With a 15w soldering iron and low-temp solder it is not a problem.

Normally, because of the specifics of high-frequency radio signals, I don't recommend wireless DIY because of the chance of introducing noise is high, or grounding the signal, or damaging the radio. This modification is so simple, though, if you use exactly the part and methods documented, and are reasonably fit, you can't go wrong.

It is not advised to put, say, two nine-db antennas within a few inches or centimeters of each other. This is how the antennas would be arranged if one would simply screw them into to the original 1st antenna (right) and 'new' 2nd antenna (left) connectors. Also the stress of such large antennas on the PCB is not good. 1-meter RP-SMA extension cables with a substantial magnetic base can be had for around 10$ or 8€ on eBay and online stores. Besides giving you a substantial base for larger antennas, they can be separated by several more centimeters or inches to give the desired diversity benefits.

Method 2 of bringing the internal antenna outside

You can do this by cutting the internal antenna out of the circuit and adding a bit of hardline to an external connector like a reverse SMA (same as the connector that came with your Buffalo). Do not attempt this mod if you are not proficient at soldering and the use of good static handling procedures. I use a workbench that is static grounded and a static wist strap at all times while handling the board. I know I don't need to tell you that this will void your warranty and you assume all responsibility if you brick your device.

The first step is to disable your router and remove the board. Remove the coating around the strip line that runs up to the etched antenna (see photos below). Once you have remove the coating cut the strip line where it bends to go toward the stripline antenna. Use a bit of UT141 hardline (or any small diameter high quality coax rated up to 2.5GHz) and a reverse SMA connector to make up a coax jumper. I used flex UT141 for this project, because it bends much easier. Make sure you cover the UT141 with a bit of heat shrink so that you do not short out any components on the board. Solder the outer shield of the hardline to the ground section with the center conductor facing the stripline and chip marked R18. Bend the center connector of the hardline down to the center of the stripline just after the small chip R18 making sure that the center conductor does not come in contact with the outer. Make sure you keep the center conductor of the coax as short as you can. Verify that the center connector did not short to the outer, there is a small pad that makes soldering the center conductor very difficult. I removed this pad with an small razor knife. This connection needs to maintain 50 ohms of impedance throughout the path so don't glob the solder on, it should look like there almost isn't any solder at all on the connection. This chip is either a capacitor or a 0 ohm resistor. I've done 2 of these routers and each was different even though it was marked R18 on both boards. Basically the stripline is a 50 ohm ladder line etched on the board, so as long as you use 50 ohm coax like UT141 you won't need to make a matching circuit. Enjoy this mod and be careful not to over heat the components on the board when soldering the outer conductor. Clean up your soldering with 90% or better Isopropyl Alcohol. Before you resemble your router make sure the Alcohol is dry.

NOTE: I cleaned up the connections after I took these pictures. Make sure your connections do not look like these pics. You should be able to see shinny solder connections without and junk clinging to the solder. Image:WHR-HP-G54_add_antenna_a_(Medium).JPG Image:WHR-HP-G54_add_antenna_b (Medium).JPG Image:WHR-HP-G54_add_antenna_c (Medium).JPG

Built-In Amplifier & Enhanced Receive Sensitivity

BroadRange Setting (Enhanced Receive)

The WHR-HP-G54 has an additional amplifier in the unit (the HP stands for High-Power) and increased receiver sensitivity (BroadRange). Buffalo sells this router with the tag line "MIMO Performance" for this reason.

It is necessary to manually set boardflags=0x3758 to activate the built-in amplifier and the increased receive sensitivity on the unit *. Depending on the environment and equipment, owners report different results with different settings.

At the command prompt (telnet or SSH):

To view the current boardflags value:

nvram get boardflags

To set a new boardflags value, 3 easy steps:

nvram set boardflags=0x3758
nvram commit
reboot

0x0758 - no amp and receive sensitivity normal
0x1758 - enhanced receive sensitivity
0x2758 - amp on, normal receive
0x3758 - both amp and BroadRange enhanced receive sensitivity on

Double-check after an install what your flag setting is, and test the difference for yourself. Otherwise you might miss out on a better result with your hardware. Look at SNR and do throughput tests.

For related forum discussion, see these threads: (newer and more specific on 0x2/0x3) [1] and (older) [2] on boardflags. Please put any links to related discussion threads here.

* As of 2007-11-13, the setting has been integrated in Build 8365.
There is an issue in Bugtracker.
This value of this setting has been shown to produce different results depending on the environment. Always do your own throughput (real-world performance) tests. And don't depend exclusively on the Web interface of DD-WRT to show results.

Credits to GeeTek, teclis22, dicksons, sdoboze, JN, a9988cd, and everyone that tested these settings in their environments.

TX Power Setting, Web Interface

Setting TX Power to 12 mW is equivalent to the 100% setting in the original Buffalo firmware (cred: tparris).
Setting TX Power to 23mw is one suggestion for balance between power output (around 200mw) and the broadrange receive sensitivity; although this is tested against typical clients with stock ~2db antennas in a metro environment. With better client equipment, antennas, or different location, a higher or lower setting may be useful.

The radio must be able to receive as well as it can send. Using too high a TX Power setting, in lower settings, can mean the clients can 'hear' the AP, but the AP cannot hear them. Higher settings can add distortion to the signal.

For related forum discussion and background information, see these threads: [3] and [4] on power output. Please put any links to related discussion threads here.

Comparison to the WHR-G54S

The WHR-HP-G54 is able to broadcast farther and receive from farther away than the WHR-G54S due to the on-board amplifier and BCMxxxxE/EL-series Broadcom 'BroadRange Technology' chipset. A post on the forum has more lengthy information and a review.

Mods

Opening (may void warranty)

How_to_open_my_router

Add a memory card reader

See Buffalo_WHR-G54S_and_WHR-HP-G54_SD/MMC_mod

USB-Powered, mobile WHR-HP-G54

Use a common USB-to-barrel connector cable to power the router from a laptop. The same power cable is used commonly in inexpensive laptop 'Cooler Pads'. Check the polarity of the barrel or you may fry your equipment! The outside of the barrel should be -, the + is the inside. The router draws ~600ma, and works from a high-quality laptop USB port. [5]

De-bricking

See Recover_from_a_Bad_Flash#Buffalo_WHR-G54S_and_Buffalo_WHR-HP-G54

Command Outputs

cat /proc/cpuinfo Output

system type             : Broadcom BCM5352 chip rev 0
processor               : 0
cpu model               : BCM3302 V0.8
BogoMIPS                : 199.47
wait instruction        : no
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : no
hardware watchpoint     : no
VCED exceptions         : not available
VCEI exceptions         : not available

dmesg Output

CPU revision is: 00029008
Linux version 2.4.33-pre2 (root@linux) (gcc version 4.1.0) #774 Tue May 16 20:11                                                               :46 CEST 2006
Setting the PFC value as 0x15
Determined physical RAM map:
 memory: 01000000 @ 00000000 (usable)
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd cons                                                               ole=ttyS0,115200
CPU: BCM5352 rev 0 at 200 MHz
Using 100.000 MHz high precision timer.
Calibrating delay loop... 199.47 BogoMIPS
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
Checking for 'wait' instruction...  unavailable.
POSIX conformance testing by UNIFIX
PCI: no core
PCI: Fixing up bus 0
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
squashfs: version 3.0 (2006/03/15) Phillip Lougher
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI en                                                               abled
ttyS00 at 0xb8000300 (irq = 3) is a 16550A
ttyS01 at 0xb8000400 (irq = 3) is a 16550A
PCI: Setting latency timer of device 00:01.0 to 64
imq driver loaded.
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky
Physically mapped flash: Found an alias at 0x400000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x800000 for the chip at 0x0
Physically mapped flash: Found an alias at 0xc00000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1000000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1400000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1800000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1c00000 for the chip at 0x0
 Amd/Fujitsu Extended Query Table v1.1 at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Flash device: 0x400000 at 0x1c000000
Physically mapped flash: squashfs filesystem found at block 824
Creating 5 MTD partitions on "Physically mapped flash":
0x00000000-0x00040000 : "pmon"
0x00040000-0x003f0000 : "linux"
0x000ce170-0x0028c9f6 : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-o                                                               nly
0x003f0000-0x00400000 : "nvram"
0x00290000-0x003f0000 : "ddwrt"
sflash: found no supported devices
Initializing Cryptographic API
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
ip_conntrack version 2.1 (512 buckets, 4096 max) - 336 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
IPP2P v0.8.1_rc1 loading
ipt_random match loaded
netfilter PSD loaded - (c) astaro AG
ipt_osf: Startng OS fingerprint matching module.
ipt_IPV4OPTSSTRIP loaded
arp_tables: (C) 2002 David S. Miller
ip_conntrack_rtsp v0.01 loading
ip_nat_rtsp v0.01 loading
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
diag boardtype: 00000467
PCI: Setting latency timer of device 00:05.0 to 64
eth1: Broadcom BCM4318 802.11 Wireless Controller 3.90.39.0
vlan0: add 01:00:5e:00:00:01 mcast address to master interface
vlan0: dev_set_promiscuity(master, 1)
device eth0 entered promiscuous mode
device vlan0 entered promiscuous mode
device eth1 entered promiscuous mode
HTB init, kernel part version 3.17
HTB init, kernel part version 3.17
vlan1: Setting MAC address to  00 0d 0b 04 ec a1.
vlan1: add 01:00:5e:00:00:01 mcast address to master interface
HTB init, kernel part version 3.17
HTB init, kernel part version 3.17

Note: dmesg performed on DD-WRT v23sp1 mini.

GPIO

The WHR-HP-G54 has the following GPIOs operational:

  • 0 - Input - AOSS button on top - State 00 is down, state 01 is up
  • 1 - Output - Bridge LED - Lights 3rd LED on front panel
  • 2 - Output - WLAN LED
  • 3 - Output - Extra LED between bridge and WLAN (newer routers no longer have this LED)
  • 4 - Input - Reset Button
  • 5 - Input - Bridge/Auto Switch - State 01 is auto, state 00 is brd
  • 6 - Output - AOSS LED - Lights small orange LED on top
  • 7 - Output - DIAG LED - Lights red LED on front below the LED activated by 1
  • 9 - Output - Power LED

Note: nvram show | grep gpio shows 14 available as well. It is unknown what it does. Pin 8 also does not appear to do anything.

It seems that one must reverse enable and disable for the command to work, i.e. if you want to turn on a LED, use disable, off, use enable.

POE

While the device does not natively support Power Over Ethernet, a linksys WAPPOE (5 volt, not the 12 volt kind) will work just fine.

Also easily powered with a simple 7805 (+5VDC) voltage regulator ($1.59 at Radio Shack) and your standard homemade PoE injector feed and tap (using pins 4+5 and 7+8, the blue and brown pairs). Heatsinking of the regulator is suggested due to ~700mA @ 5V max current draw. It doubles as a nice little heater for outdoor installs in locales that have cold weather. Heat dissipation can be reduced to a minimum by adjusting your input voltage at the feed end of the CAT5 cable so that the regulator still supplies a stable 5V when operating under load (router plugged in and turned on), then bump it up a little to account for periods of slightly more draw (CPU load fluctuations, or when flashing or saving nvram settings, etc). Insufficient feed voltage and current does not fry the router, but the Ethernet switch will not initialize (among other oddities) until the supply is enough - overvoltage is not a concern with the 7805 as there is no way for it to ever go above 5V output, and the maximum current output is 1A just like the original power brick. The 7805 regulator will handle up to 35V input, but heat dissipation is relative to the extra input voltage it has to absorb, so tuning your feed voltage to the length of your particular CAT5 cable length is a good idea. Always measure all voltages under load, as they drop quite a bit once things are actually using power.

A good high efficiency alternative to the 7805 is available from Dimension Engineering. It is a switching regulator and can handle up to a 30v input. While more expensive than the 7805, its 90% efficiency keeps the heat dissipation at a minimum.

The power connector is called a "Size M" at Radio Shack, tip size 5.5mm OD x 2.1mm ID, so you don't have to chop off the original if you want to keep the brick supply for bench testing/repairs.

Flash and memory specifications

My router looks identical to this internally. As can be seen, there are two 8 Megabyte SDRAM chips and a 4 Megabyte flash chip. The device has a total of 16Mb RAM and 4Mb Flash.

External Links