I have a mind boggling problem which I have been trying to solve for the last few weeks. I am new to Android and recently bought Huawei Ideos X5 (Android 2.2.1). I haven't found anyone else having this problem.
Problem:
My Android phone will be able to connect to my wireless network, get an IP address from my DHCP server, but when trying to reach anything over the network it won't work. Although it will work sometimes (i.e. some data will get through).
Debugging:
My Android phone is able to connect and use other wireless networks, although I have only tried two (at my university and at a friend). This would indicate that my phone is not broken.
With closer inspection with the Terminal Emulator App when I ping my server I will get a 80% packet loss ratio. This of course makes it impossible to use the wireless network, but it means some packets do get through (even to the Internet) so it is not a DNS problem.
My laptop can connect and use my wireless network flawlessly (in fact, it can download from Internet at 18 Mbps and upload at 10 Mbps with 802.11g, which I presume is good). My USB wireless adapter works well with it as well. One of my friend's Android phone (LG Optimus One) and iPod works with my wireless network as well, and most strangely, another friend's Android phone who have the very same model (Huawei Ideos X5) works with my wireless network. This would indicate that my access point is not faulty.
There are tons of wireless networks in my area. My phone can see 21 including my own. I have no idea whether this can affect anything. I cannot try any of these because they are protected.
It is worth mentioning that I do not have your average wireless network setup. I have a server (stationary computer) that runs DHCP server, and so on. Only recently I added wireless network to my apartment by buying D-Link DIR-300 and flashing it with DD-WRT. I have no idea if it worked or not with the original firmware. The router acts as an access point.
I have tried to change channel, protocol (B, G, N) , security settings from open to encrypted (WPA2 AES), etc. on the AP to no avail.
Even if the phone is just a few centimeters away from the AP it will still have a 80% packet loss. DD-WRT reports 92-98% signal strength. I think there is a software/setting problem and not a hardware one.
And of course, I have tried to both reset my AP and my phone. Neither helped. Android phone's WiFi does not work when the router is using the factory default or AP settings. I am however concerned that some faulty settings for my wireless network are stored on the phone and it seems they might be synchronized to my Google account, and possibly they might still be there even after I "forget" my wireless network or reset the phone (is there a way to be sure everything is wiped?).
At this point, I am out of ideas. I hope I explained my situation sufficiently. Do you have any ideas? Thanks in advance.
Edit:
I have done some further testing. I reset the DD-WRT router once again to see if it would work and per Ryan's suggestion try to strip it down to the most basic setup. It did not work even if I tried only b/g mode. Interestingly enough the first two seconds of pinging after changing mode works without any packet loss but after that, it will go back to bad again.
I also tried something I wouldn't believe would work -- flashing the original firmware back. To my surprise it did work and my phone doesn't have any packet loss when pinging. (I actually missed that the original firmware does support AP mode). However, I still cannot understand why it didn't work in DD-WRT and would be very interested in any possible explanation.
As stubborn as I am, I might try to flash back to DD-WRT again tomorrow to see if it works (if it does, I cannot explain why! Blaming it on bad flash seems naïve in my opinion).