OpenWrt  [OpenWrtDocs] [TitleIndex] [WordIndex]

OpenWrtDocs/Hardware/Buffalo/WHR-G54S/SD-MMC.hack

Buffalo WHR-G54S SD/MMC Hack


Here are some photos of this hack, these comes from my device, quality is poor but i think these could be useful for you to see something.
Covered information are provided on an "as is" basis, without warranty of any kind, either expressed or implied, if you create your own web page please refer to me as original author but don't worry i don't want to charge you money :)

Step 1: Disassemble your access point


Power off your device, open your access point, remove case, antenna, and get your motherboard on a table
Locate on the back 6 points where you should solder some wires, you'll need to locate these points:

Do not use GPIO 4 as i've already explained on WHR-G54S wiki page (Buffalo uses it for reset)
Please see mine already hacked (quite good hack quality, poor photo). note: please see the bottom of this page for alternative solder points

See this table for connection details:

Signal             Type        SD Card Slot Pin
Chip Select (CS)   GPIO 7      1
Data In            GPIO 5      2
Ground             AP Ground   3
Vcc                AP Vcc      4
Clock              GPIO 3      5
SD Sleep Mode      AP Ground   6
Data Out           GPIO 6      7


you don't need to connect other SD pins
See SD Card Slot Picture

Step 2: Connecting VCC, GND, Data In


Now you need to solder VCC and GND,
Ground is available quite everywhere, no matter where you take it, i've taken close to power supply input because is very easy
...but is better to get VCC where i've taken, on rear of power supply input because i've got some troubles with some SD cards and somewhere on board when AP is powered on you get 3.1...3.2V and sometimes is not enough (very strict tolerance), it's better to take 3.3...3.4V as they comes from DC input.
Connect VCC to pin 4 on SD card slot, connect GND to pins 3 and 6 of SD card slot (with one or two wires as you prefer, no matter); now you can power your SD slot.
Data IN signal is labeled as "2" on photo, you need to connect this to Pin 2 on sd card slot
See photo below for details

Step 3: Connecting Data Out, Clock, Chip Select


These three guys are taken on rear of AP Leds, they're quite easy to find but solder points are very thin, take care on them, see photo for details


Solder Point 1 is Chip Select (CS, Pin 1 on SD)
Solder Point 5 is Clock (Pin 5 on SD)
Solder Point 7 is Data Out (Pin 7 on SD)

Step 4: Soldering SD Card Slot


Now you need to connect all your wires to an SD Card Slot, i've used an old connector brutally extracted from an old piece of hardware, connector is very bad but photo shows you where pins are (like previous one)

*ispike 11/25/2007: A simple solution for obtaining a socket is to just purchase a mini or micro sd card which comes with the sd adapter host. Solder to the sd adapter pads, cut a slice in the front of the case with a dremel (or similar) follow these instructions and whalla you have a clean sd mod.

Step 5: Assembling all together


Now mod is finished, you only need to test it with current mmc.o module (with Buffalo Hack), look at forum if you need an updated one or drop me an email if you need source code or a compiled version, please it's important to note the right pinout as mentioned before:

Signal             Type        SD Card Slot Pin
-----------------------------------------------
Chip Select (CS)   GPIO 7      1
Data In            GPIO 5      2
Ground             AP Ground   3
Vcc                AP Vcc      4
Clock              GPIO 3      5
SD Sleep Mode      AP Ground   6
Data Out           GPIO 6      7

Now turn your motherboard and gently position your SD card slot on top of it, use an insulated material between them and attach it


Step 6: Other hacks and result


If you need to make other hacks or evaluate your board is now time to do it, from my photos you can see also the serial port modification, WHR-G54S has one inside
I've made a small PCB with a MAX232 chip to get proper input from AP and convert it to a true RS232 Serial interface, flipped and used some insulation material between motherboard and Max so i can close the AP and have a good result, i've also placed an heat sink on top of CPU for safety (and overclocking as well)



Step 7: Final


Now place your modded AP inside its lower case, gently cut the case to have space for inserting SD cards

Cut front panel

And insert SD to test it properly, as you can see you've SD out on the right side so it's very easy to insert and extract it

In this detail you can also see serial port connector on top of WHR, use a cross over cable to connect to a PC





And here's final result :-)


Hope information provided can help you, this AP is very cheap but powerful, you can have SD, Serial and even I2C on spare GPIO.
Reach me on openwrt forum for details or drop me an email on my account: (user: andreabenini domain: gmail D o t com)

Have Fun

Andrea (Ben) Benini


Practical Experience of a Less Skillful Modder

Having done modded my WHR-G54S, I thought I'd add a few things. First I'll start out with some theory, which will be useful for finding GPIO points, but if you like, you can skip to the next paragraph. The LEDs are not directly driven from the CPU; rather, their positive input comes through a resistor (which we always need for an LED), through the LED, then into a GPIO. I suspect this is because the GPIOs don't provide enough current to drive the LED directly. As a result, when the GPIO is high, the LED is off, and when the GPIO is low, the LED is on. Each LED has a "+" marking, where Vcc comes in, and a drain (which isn't marked), which is connected to the appropriate GPIO pin.

The upshot of this is that the solder points described above are too skillful for me, and I found some points more appropriate for (I accidentally used GPIO 1 (bridge) instead of GPIO 7 (diag), but the solder points are similar, and the functionality is identical). Here are my Vcc, Ground, and GPIO 5 solder points (there's also a TP1 pad on the same side of the board closer to the CPU, which is what I'm actually using now, but I don't think it makes a difference). Yes, there are three wires to ground; I soldered a test lead.

Here are the GPIO 1 and 3 points. (I used 1 instead of 7).

The GPIO 6 is similar (sorry, I don't have a good picture). Finally, I was lazy and didn't want to Dremel, so here's how I mounted my SD card, since I don't really need regular access to it anyways:

If you're wondering, the cables are from a disassembled floppy cable.


2009-03-29 22:43