One more happy wl500gP with 128M ram upgrade!
Big thanks to Oleg and all the contributors!
I’ve been looking around for a small form factor computer to use as the main computer of a mobile robot, when it occurred to me that routers are actually becoming some very good examples of physically small computers.
Linux is my OS of choice for such projects, so I was very happy to learn about the wl500gP + Oleg's firmware combo.
Spec's-wise the wl500gP it's nearly all-ready out of the box, but then again, one can never have enough memory!
Then I landed on that 128M memory upgrade post by Oleg, and this is the story:
Components:
After a week long search some NANYA NT5DS32M16BS-5T were located. So why not give it a try? There was no confirmation for these back then, though according to the datasheet they were pin compatible and organised as 32x16. But when I was about to acquire them, I got a call from a second-hand store, about some SO-DIMM with Samsung K4H511638C-UCB3 gathering dust on their shelves, so that was it! These were confirmed by trucki and way cheaper too.
(Thanks to particleman we now have a confirmation for NANYA NT5DS32M16BS-5T)
33 Ohm smd 0402 resistors were kindly donated from an old dvd player, (one for A12 line, one more to replace an accidentally desoldered and lost one)
Method:
- Used a hot-air gun (the paint-stripping gender) to preheat the pcb and then desolder the (fluxed) memory chips, while protecting the rest of the pcb with multiple layers of aluminium foil as a heat screen, both from the SO-DIMM and the wl500gP.
- Applied no-clean flux on the pads, then removed the solder from the pcb pads with desoldering braid (wick).
- Cleaned around with some alcohol and some cotton buds.
- Positioned the chip, then kept it in place with some scotch tape (it *really* helps).
- Used a fine tip, low wattage soldering iron with tiny amounts of solder applied on the tip.
- soldered pins under optical aid.
- cleaned around some more.
- Scanned and hi-res macro-photographed the result from various angles to visually inspect on screen.
- checked for sort / open circuits with a multi-meter.
- reworked a few stubborn pins. :p
And voila! It didn't work :confused: no power led on :eek: disappointment :(
At the time it was already very late at night, so I slept over it, many nights, and when I found the time, armed with multimeters, optical aids, pencil and paper for an improvised schematic, datasheets, previous pic's of the tracks under the chips and quite some patience I checked again every single track and pin on the first chip (U3). Pins 18 (Vdd) and 4 (DQ1) were found to be loose, giving false positives when pressed on their pads with the multi-meter probe. They were resoldered while I pressed down on them with a pointed tool and voila, router finally up and running! :) U4 was not much of an issue and soon I had all 128M of ram activated! :D:D:D
At first strong vibration would freeze the router (more loose pins) but then the soldering iron came again in to play, and everything worked just fine!
The router went through twelve runs of memtest and all is fine! Router is happy, I am happy, big Thanks Oleg!
Here is a reference list compiled from this forum with all chips known to work so far for wl500gP:
Code:
Chip: By: On memory module: Type: Form: By: Confirmed by: Note:
HY5DU121622CTP-D43 HYNIX HYMD532646CP6J-D43 PC3200 DIMM HYNIX Oleg 1
K4H511638B-TCB3 SAMSUNG M470L6524BT0-CB3 PC2700 SO-DIMM SAMSUNG Oleg .
K4H511638D-UCB3 SAMSUNG M470L6524DU0-CB3 PC2700 SO-DIMM SAMSUNG Oleg .
D5116AFTA-5B-E ELPIDA TS32MSD64V3M PC2700 SO-DIMM TRANSCEND Oleg .
K4H511638F-TCB3 SAMSUNG newbiefan .
K4H511638D-UCB3 SAMSUNG newbiefan .
K4H511638C-UCB3 SAMSUNG KVR333X64SC25/512 PC2700 SO-DIMM KINGSTON trucki .
MT46V32M16-6T MICRON mitek 1
NT5DS32M16BS-5T NANYA particleman .
K4H511638B-TCB3 SAMSUNG oyabun .
K4H511638C-UCB3 SAMSUNG M470L6524CUO-CB3 PC2700 SO-DIMM SAMSUNG inertial .
HY5DU121622CTP-D43 HYNIX NotebookKiller 1
Note 1: Capacitor between pin 51 and ground / Clock lines employed.
Note 2: Infineon chips are reported as not collaborating with wl500gP pcb.
Be warned that the pcb pads are really easy to damage, static electricity could fry the chips, thermal shock could destroy them as well as the pcb and other components, flux/solder fumes are usually toxic, etc.
Before attempting such a mod it would be useful to search for "SMD desoldering" on the net, since there are many informative how-to's and even videos on the subject, get familiar with the "reflow thermal curve" and "ESD damage", practice desoldering and soldering on some scrap pcb's first and make sure you won't miss your router too much if things go wrong.
Admittedly, coming from an H/W background I have quite extensive soldering/desoldering experience but I still believe it's possible to perform the mod when having some soldering experience and rehearsing the steps on some scrap first.
@breizh76:
I am pretty sure your asus is recoverable, have a look at what these people from http://www.circuitmedic.com are doing.
Agreed it requires lots of tools and even more skill, but still it is possible!
Got four partially lifted pads myself, when desoldering U3 but finally everything works fine.
Had a 60G HD too with many cut and lifted tracks 'few years ago, but managed to functionally restore it (visual aesthetic aspect though... ouch!)
If you don't feel confident, you could find some hardware-tech / mobile-phone repair-tech guy that could do it, or even I could try and have a go at it, if you post me your unit.
@All:
Could any one direct me to some wl500gP schematics, if such thing is available? I’d like to try some extensive wl500gP hard-hacking :)
Inertial
5 Attachment(s)
Expansion possibilities inspirations for wl500gP routers
Hello!
Quote:
Originally Posted by Oyabun
What kind of hard hacking are you thinking about?
Most of my inspiration came by looking at these pieces of information: (attached below)
* BCM4704 Block Diagram
* BCM4704 System Diagram
Well besides the gpio pins, I2C bus, SPI bus, SD card, etc type hacks, (directly off wl500gp pcb tracks), the most promising thing, may be the ability of BCM4704 processor to handle three mini-PCI 2.3 peripherals.
Quote:
From Broadcom's BCM4704 Product Brief:
The PCI 2.3 host interface allows enumeration of three external PCI peripherals (more with external arbiter)
Another way to explore would be the EBI (Expansion Bus Interface) route. Signals for this bus are presented to the flash memory chip (SPANSION S29GL064M), of course stealing them from the chip's pads seems extremely hard, but it might still be an option for just a couple of lines. And since extremely hard is still possible ;) , one could even try an IDE connection if all necessary signals are found to be present and the firmware side of things in understood as well (that already sounds pretty complex to me).
Other interesting things are the modem and audio codec’s as well as the two-port USB 1.1 host. Interesting these are, however, only if their respective signal/data lines are present somewhere on the pcb, since un-burying them from under the BGA :eek: seems highly unlikely, to stay optimistic. :cool:
Software-wise, access to the MAC (Multiply Accumulate) unit on-chip would be very useful to people who wish to hook up some sensors on the wl500gp and then use it to perform some DSP (digital signal processing) on the collected data.
Also software-wise, access to the IPSec Core and related hard-wired functions available in the BCM4704 (IPSec 3DES, SSL MAC, TLS HMAC, SSL/TLS DES/3DES, MD5/SHA-1 HASH, IPSec AES), would be very useful for some types of network applications.
All of the above require, inside knowledge of the processor core, usually found in a Programmer's Guide type document and in datasheets, for the software part, whereas for the hardware part, processor datasheets and router schematics would be needed. Without any of these documents in sight, it's gonna be pretty hard to attempt most of these modifications.
That's why I believe mini-PCI peripheral expansion is the most viable approach, given the available documentation.
PCI's, let's sum it up, we have: One for the PCI-to-USB bridge (VIA VT6212L), one more for the actual mini-PCI connector harbouring the wi-fi card, that's two, leaving room for (hopefully) one more! Plus all the signals for the PCI bus should be presented to the mini-PCI connector. That's only a guess however, I haven't actually checked to verify that, but still. The specifications for PCI and mini-PCI bus are at hand, so it will be a matter of (spare) time to verify it.
After verifying that all necessary signals are present and that the firmware (as is or modified) could handle such an addition, it might be possible to try and solder one more mini-PCI card connector on the existing pcb pads.
Many mini-PCI cards are available which could be used to offer additional functionality, provided the suitable driver exists, that is.
* mini-PCI to IDE and/or SATA controllers + Compact Flash (CF) Socket, (no USB bottleneck)
* mini-PCI to (a multitude of) serial ports extension cards
* mini-PCI GPS receiver module with extra serial ports
* mini-PCI 801.11a/b/g 400mW card
* more examples welcomed
A simple idea would be to add an extra dual band wi-fi card, transforming the router to a link, or even backbone node for wireless metropolitan networks. A GPS card would suit locative (location-aware) applications. The extra serial ports would be good for robotics or home automation and a direct mini-PCI to IDE/SATA/CF card would allow for file transfers at full speed, overcoming the USB bottleneck. I could go on daydreaming about possibilities for long... :)
Take a wl500gP, hook up some temp, humidity, pressure, wind-speed, rainfall, etc sensors over USB or serial ports and you get a remote, networked, weather-station. Or add some motors and motor drivers assortments, vision, GPS, batteries, sensors (speed, distance, temp, inertial, rotational, magnetic, etc) a few microcontrolers, quite some code, and voila: you have a networked mobile robot...
For the moment my preferred (and much more realistic) approach is to interface microcontrollers to the RS-232 and USB ports of the router. I'm planning to work with some PIC18F4550 with USB connection while some other PIC boards with rs-232 are already available and have plenty of things interfaced to them. Now I only need to set up a cross compiler for the wl500gP and write some code to get them to communicate with the router (and, hopefully, one day, attempt even native compilation). Some more code writting/porting will be needed to have the router perform some processing on the data collected through the uC's and plan some actions to execute on the devices interfaced to them in response, all while sending part of the data over lan/wi-fi. The birth of a simple robotics platform, indeed.
Following the various posts about the RS-232 console connection, and parper's post "Additional USB ports and Internal HD!", I performed the corresponding mod's, and now I have a very happy wl500gP with Oleg's firmware, 128MB ram, four onboard USB 2.0 ports and two RS-232 signal level serial ports. :D
I will post methods and findings soon!
Ideas, comments, suggestions are welcomed :)
Greetings to all and thanks for all the info's you are sharing,
inertial
Below are some very inspiring BCM4704 Diagrams from Broadcom's Product Brief, a picture of wl500gP's case following modification to house the extra two USB connectors, and a couple of pictures of the actual post mod pcb.