Feeling interest for a WiFi shield

The example sketch loads fine and the red light is on, but I cannot ping it (192.168.1.2) or access the web page. Any suggestions for a noob on a MAC?

@pauly. open system preferences, click on network .. whats your machines IP address?

192.168.1.103.

Our mac's are addressed 10.1.1.1 upward so that means we'll be changing

unsigned long local_ip = IP_ADDR(192,168,1,2);

to

unsigned long local_ip = IP_ADDR(10,1,1,99);

I asked on the "off chance" yours was the same.

I checked the library and IP_ADDR appears to be the only pointer to IP address, so I'm assuming its ok to change in WebServer.pde

Got mine in today. Pretty easy setup. I was able to connect to my WPA Personal network, and I can ping it. I can see the request come in through the serial debug connection in the Arduino IDE, but I'm getting inconsistent results in browsers. Firefox sometimes displays the resulting page, and sometimes not. Safari doesn't. Its almost like the request isn't being finished off somehow, and is just left spinning. Will continue to play with it. As far as I can tell, the red light comes on when the shield is successfully connected to the network.

All in all, very impressed with the 'out of the bag' experience. Good job. :smiley:

As far as I can tell, the red light comes on when the shield is successfully connected to the network.

If you turn on or off the serial monitor in the Ardunio IDE, does your light go out ?

I've been having problems testing with Firefox, but I used a port tester I wrote a while ago and if I send it just "GET / HTTP/1.1" followed by a CR+LF I get a response every time. Its strange, but I'm still tinkering.

Ok, I have some bug fixes that hopefully will fix some of the issues people might be seeing. Part of the problem also seems to be that in some cases, multiple requests are coming in, which is somehow confusing the code.

The red light is supposed to come on when connected to the network.

Let me get the code packaged up and ready for consumption.

Ok, I have some bug fixes that hopefully will fix some of the issues people might be seeing. Part of the problem also seems to be that in some cases, multiple requests are coming in, which is somehow confusing the code.

I think this is correct. Most browsers seem to ask for / and /favicon.ico in quick succession. The first request seems to work correctly, and returns the page. The second request seems to mess it up, and no future requests seem to work. Resetting the arduino allows me to start over, but again only getting the first request properly.

Do you have security enabled? Oddly, the setup I use most of the time doesn't have security on, and seems to work more solidly. It's strange...

I have WPA Personal security turned on, and a MAC address filter. I will have to wait for the wife to finish with some stuff before she will let me start tinkering with the network settings. She hates it when I 'fix' things.

Ok, I put new code drops up on our wiki. This still might not fix the multiple request problem, but at least we can all rebase on a common image.

Sorry about all the issues in the stack. I've enlisted additional help on my side to try and resolve the issue.

I've loaded the new version with wireless_mode defined. Still only getting the first request successfully. Subsequent requests fail. For what it's worth, here's what is being reported by the serial.print()s:

GET / HTTP/1.1
Host: 10.0.1.50
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

GET / HTTP/1.1
Host: 10.0.1.50
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.1 200 OK
Content-Type: text/html

Hello World!! I am WiShield

.9.0.3) Gecko/2008092414 Firefox/3.0.3 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive

I will play some more with it tomorrow. Woot, always fun being an early adopter. :smiley:

I know IP and MAC adresses normally hasn't anything to do with eachother, but at my home it has (also like estranged - he is also using the MAC filter)
I'm using the MAC adress to check if the computer is know, and then the computer gets the same IP adress everytime!

So... I would like to know, if the MAC in the WiShield is unique, so it can't be changed? As it isn't unique in the Arduino Ethernet Shield (Wiznet)

The MAC address is programmed unique from the factory of my Wi-Fi module supplier. So MAC filtering should work fine, however, since the out of the box solution is only using static IP addresses, this is less of a concern since the address you supply in the sketch will be the address used.

As an exercise to the user later, the function zg_get_mac() should give you the info you need. :sunglasses:

Ahh good :slight_smile:
Also, my next question would have been: "Then where can I find it's MAC?" - But you answered it, even before I've asked :stuck_out_tongue:

Ok, new code drop (just stack code changes from my last message about new code). The code can handle multiple GET requests without causing the lockup. I was able to test it with both an unsecured and WPA2 secured network on Firefox. Safari on my Mac still is giving me issues.
One of the fixes we put in is temporary until we understand TCP a bit more.
Anyway, give it a shot. It should be more stable now. :slight_smile:

Time for some shut eye now.

Awesome, got mine working. I am able to ping it now and see the webpage with Firefox. Great work!

Ahh good :slight_smile:
Also, my next question would have been: "Then where can I find it's MAC?" - But you answered it, even before I've asked :stuck_out_tongue:

The MAC is also printed on top of the actual wifi module. Took me a while to find that too.

The code can handle multiple GET requests without causing the lockup. I was able to test it with both an unsecured and WPA2 secured network on Firefox. Safari on my Mac still is giving me issues.

Confirmed that the new code allows for multiple requests / reloads on Firefox. However 1 request from Safari works, then subsequent requests fail from anything.

Tested on a WPA Personal network.

Keep up the good work, and yes get some sleep. :slight_smile:

Safari might be a bit particular about the html served, try this in WebServer.pde

const prog_char webpage[] PROGMEM = {"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<body><center><h1>Hello World!! I am WiShield</h1>"};
const prog_char webpage1[] PROGMEM = {"<h2>This is line 2</h2></center></body>"};

in between a

tag isn't valid html. I don't have a shield yet to test it but its worth a try if you run out of other ideas = )