As most of you asked to publish this I've finally finished this guide...
The goal of this mod is to increase built in memory up to 128MB to be able run more services on the router without the expense of accessing slow swap, etc. Beware, that this mod requiresvery strong soldering skills! And usual disclaimer: do it on your own risk to brick the router completely.
What do you need to perform a mod?
- Good soldering skills at first (the board is Pb Free!) and equipment
- One 22Ohm (33 Ohm is also ok) resistor to enable A12 address line (not needed for WL-700gE, as it has it already)
- Two TSOP packaged DDR333 or DDR400 SDRAM chips organized as 32Mx16
The easiest way to get chips (and perhaps cheap) is to remove them from the PC2700/PC3200 DIMM or SO-DIMM: at the moment we've checked the following parts:
- Hynix HYMD532646CP6J-D43 PC3200 DIMM: it has Hynix HY5DU121622CTP-D43 chips
- Samsung M470L6524BT0-CB3 PC2700 SO-DIMM: it has Samsung K4H511638B-TCB3 chips
- Samsung M470L6524DU0-CB3 PC2700 SO-DIMM: it has Samsung K4H511638D-UCB3 chips
- Transcend TS32MSD64V3M PC2700 SO-DIMM: it has Elpida D5116AFTA-5B-E chips
Please note, that Hynix is least preferred. Also, avoid using Infineon chips.
The problem is that PCB is not ideally traced and has some noise UDQS line coming to U4, resulting in memory errors (see below).
- Start with flashing latest firmware which is known to support 128MB of RAM. My firmware starting with 188.8.131.52-7g are known to work ok, as they've required patches. But I recomend flashing latest anyway.
- Telnet/ssh to your router and type
This would turn U4 chip off and prevent my firmware from auto enabling it. The router would be halted too, so you could safely remove power from it.Code:nvram set sdram_init=0x000b nvram set sdram_config=0x0032 nvram commit halt
- Disassemble your router now
- Remove shieldings from the back of PCB (it's self-adhesive) and from the top
- Solder 22 Ohm resistor on the free pads labeled R43. Skip this step if you have WL-700gE. Check image below:
- Replace original U3 chip with your new memory chip. Be sure to remove PB free solder completely from the PCB pads before soldering your new chip!
- Power your device on. It should now start normally and report 32MB of RAM (use free to check this).
If it does not: check your soldering work again. Don't even think of pin-9 trick or whatever! FYI: all routers starts
after replacing U3 chip.
- Test RAM using memtest (see below). If it fails, then double check your soldering and try again.
- Given, that your router works with U3 replaced, continue with replacing U4, now it should look like this:
- Replaced? Ok, turn it once again and check, that it still work. If it does not check U4 soldering: perhaps you short-cuted something... Now type the following in the telnet/ssh to enable U4 and 128MB of RAM:
Code:nvram set sdram_init=0x0011 nvram set sdram_config=0x0062 nvram commit reboot
- It should now reboot. If it does, than you're lucky man (Elpida and Samsung chips are reported to be very lucky)
if it does not (Hynix never boots this way) then proceed this way: check your U4 soldering work once again. Try
to power on your device. If everything looks good then you've to try adding 3-7 pF capacitor between U4 pin 51
(UDQS) and ground:
- If it does not boot - check your soldering work once again. If it still does not work - I've no idea then. Don't blame me, this is ASUS PCB fault.
- Test RAM using memtest (see below). Leave it running for a long time to be absolutely sure it works fine. If it does not, then perhaps you should solder a capacitor as described above. Once it's error free, you could tell
memory controller to re-tune some internal timings:
Code:nvram set sdram_ncdl=0 nvram commit reboot
Activating 128MB with known good memory
You need this everytime you perform a reset to defaults...
Testing device memoryCode:nvram set sdram_init=0x0011 nvram set sdram_ncdl=0 nvram commit reboot
Type these lines to start testing:
Note, that memtest at most could only pin half of device memory. Replace 16m with 64m for 128MB of RAM.Code:cd /tmp wget http://oleg.wl500g.info/bin/memtest chmod +x memtest ./memtest 16m
WL-700gE with Samsung chips and 8MB flash
WL-500gP with Samsung and Hynix chips at the same time
Samsung chip does not need caps on this PCB...
Last edited by Oleg; 10-02-2008 at 14:36. Reason: Typos
Simple perfect and outstanding - as usual!
Good luck in upgrading your unit. For the first unit it took for about a two weeks to complete the mod: the problem was a hynix (and we have not figured yet that cap at UDQS could solve a problem) and PB free PCB. But finally, all routers are working fine. Try to find Elpida or Samsung chips. I beleive Transcend should be available in european stores too.
Thanks for the tutorial.
Do you think I could solder the new ram chips on top of the original chips?
That would allow me to select between the old and the new chips by resoldering the CS Pin.
Most likely no: DDR chips are very sensitive to tracing and pin capacitance. You know, they're running at 133 Mhz...
I've no idea.
Thanks for this great tuto.
Unfortunaltly for me, I failed to desolder the U3 chip (some pads has been destroyed).
Before throwing my asus (RIP ), is there a solution for it to boot / work only with the U4 chip?
Your advices are welcome!
my mod is working. I used Samsung ICs. Here you can find some photos.
Maybe you can solder a small cable to the broken pads / pins. Can you post some Photos?
Last edited by trucki; 17-02-2008 at 06:20.
Good job trucki, you had the good method
As for my Asus, I'm giving up, I don't think I could do anything now.
I have played an d I loose, I knew the rules
Last edited by breizh76; 17-02-2008 at 18:00.
I tried to install X-Wrt. With 32MB it works.
With 128MB Ram it doesn't start. I enabled 128MB Ram with
CFE_Output_X-Wrt_128MB:Code:nvram set sdram_init=0x0011 nvram set sdram_config=0x0062 nvram commit reboot
Any ideas?Code:CFE version 1.0.37 for BCM947XX (32bit,SP,LE) init started: Build Date: Ґ| 10¤л 12 22:21:19 CST 2006 (firstname.lastname@example.org) BusyB Copyright (C) 2000,2001,2002,2003 Broadcom Corporation. et0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 184.108.40.206 rndis0: Broadcom USB RNDIS Network Adapter (P-t-P) CPU type 0x29006: 264MHz Total memory: 134217728 KBytes Total memory used by CFE: 0x80800000 - 0x8089AF40 (634688) Initialized Data: 0x808313D0 - 0x80833790 (9152) BSS Area: 0x80833790 - 0x80834F40 (6064) Local Heap: 0x80834F40 - 0x80898F40 (409600) Stack Area: 0x80898F40 - 0x8089AF40 (8192) Text (code) segment: 0x80800000 - 0x808313D0 (201680) Boot area (physical): 0x0089B000 - 0x008DB000 Relocation Factor: I:00000000 - D:00000000 Device eth0: hwaddr 00-1B-FC-57-AB-6E, ipaddr 192.168.178.1, mask 255.255.255.0 gateway not set, nameserver not set Null Rescue Flag. Loader:raw Filesys:raw Dev:flash0.os File: Options:(null) Loading: .. 3704 bytes read Entry at 0x80001000 Closing network. Starting program at 0x80001000
It should be patched to detect 128MB correctly. Does it based on OpenWRT? If so, I've submited this patch to Kaloz for about a year ago.
yes, X-wrt is an Openwrt Image with webif2 Interface.
How can I include this patch? Where can I find more information about it?