Uno + EthernetShield + Wifi AP combo not working

Hi!

Hardware:
Arduino Uno + official EthernetShield
TP-Link TL-WA500G WiFi AP working in Client mode (192.168.1.254), configuration tested with laptop, works OK
Linksys WRT54GL Wifi router (192.168.1.1)

Problem:
Arduino + direct connection to Linksys works flawlessly, either with static IP or DHCP.
Arduino connected with cable to TP-Link not getting DHCP settings from Linksys nor working with static IP.
Already tried with different gateway settings without luck.

Wifi connection between TP-Link and Linksys is tested and OK.
When replacing Arduino for testing purposes with laptop network works as expected.

Ideas?
Limitations in Arduino TCP/IP stack? Route problems or something?
What to test and how to test?

wbr,
Toomas

You may want to post some code :wink:

Hi!

I don't think it's software problem, because even Arduino own WebServer nor WebClient code does'nt work.

Arduino -> cable -> Linksys = OK
Arduino -> cable -> TP-Link -> ... Wifi ... -> Linksys = not working
laptop -> cable -> TP-Link -> ... Wifi ... -> Linksys = OK

Connection between TP-Link (client mode) and Linksys (AP) is OK, they see each other.

When I enabled 2nd DHCP server in TP-Link then Arduino got IP from there, ie physical link is OK.
To me it seems like some kind client side (Arduino) routing problem.

Wbr,
Toomas

My guess is a problem on the TP-Link side. To let it work it would have to transparently bridging the WiFi network to the client. What does client mode on the TP-Link mean? Is that bridging mode or routing mode (in both cases it's a client to the main network)? What IP does the laptop get if connected to the TP-Link? Does the Arduino get an IP per DHCP? Do you see packets from the Arduino on the WiFi network?

If you give the Arduino on the TP-Link a static IP, what values do you use for gateway?

I have a similar configuration working flawlessly.

A Teensy++ with a WIZ812 Ethernet module connected to a TP-Link Tn-W703n pocket WiFi router
The Pocket router comes configured as an AP and connecting to it works out of the box.

Configured in client mode (I guess bridge mode is a better description) sending and reiving OSC commands to and from the Teensy++ through my AirPort Extreme Network Router (AP) worked the first time.

For programming the Arduino IDE is used in conjunction with the Teensyduino plugin. And I am using the Arduino DHCP/Bonjour libraries and ArdOSC in conjunction with TouchOSC.

I would believe if your TP-Link is correctly configured for bridge/ client mode the DHCP client on the Arduino should receive it's configuration from the DHCP server on your Linksys AP and not from the TP-Link. Otherwise the TP-Link is not really working in bridge/client mode but as a router. You could get that to work too by adding an entry for it to the routing table of the TP-Link router.

If you got it to work with a Notebook instead of an Arduino, however, There could be some compatibility issue with the software on the Ardoino and the TP-Link. Perhaps you could try your luck with the mentioned DHCP/Bonjour library http://gkaindl.com/software/arduino-ethernet
IIRC you may have to chage ao few little things to get it to work with the Arduino IDE 1 but that's easy enough to do. One of the sample scripts is a little Web server.

Hi!

Reconfigured both units. And with help from google found that TP-Link needs some extra settings (not mentioned in doc).
Everything then worked... But now after 2 days TP-Link is blind. Again.
Seems to me that TP-Link TL-WA500G is too unstable in client mode. Piece of garbage. Avoid as far as possible.

Arduino works fine. :slight_smile: