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.
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.
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
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.
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.
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.
As I haven't recieved the module yet, I would like to ask if you can use the browser on an iPod Touch or iPhone (I have seen you have done it, Brad - but without the multiple request problem?)
It's because the iPod Touch and iPhone uses Safari as browser!
As an exercise to the user later, the function zg_get_mac() should give you the info you need
I'm missing something here, I've tried this and cant get it to compile, tried #include <g2100.h> and still it cant see it. I'm sure I'm running into a "trying to remember C/C++" issue but I'm stuck.
As I haven't recieved the module yet, I would like to ask if you can use the browser on an iPod Touch or iPhone (I have seen you have done it, Brad - but without the multiple request problem?)
It's because the iPod Touch and iPhone uses Safari as browser!
Mobile Safari does not seem to have the problem that desktop Safari does. I'm able to reload the page multiple times just fine on my iPhone.
So we took a wireless sniffer to the module when the Safari client comes in to access the arduino, and it seems that the client is doing something that it shouldn't be doing. We're still debugging.
I'm missing something here, I've tried this and cant get it to compile, tried #include <g2100.h> and still it cant see it. I'm sure I'm running into a "trying to remember C/C++" issue but I'm stuck.
g2100.h is not a library header file and the Arduino IDE will not be able to find it. You can print out the MAC address on the terminal by inserting #include "g2100.h" in the WiShield.h file and inserting the following code in the while(1) loop in the WebServer sketch.
if (zg_get_conn_status()) {
// read MAC address from device
my_mac = zg_get_mac();
Serial.print("MAC : ");
for (i = 0; i < 6; i++) {
Serial.print(my_mac[i], HEX);
}
Serial.println();
}
This shows how you can use the other functions defined in stack(stack.c) and driver(g2100.c) files. If you are just trying to find out the MAC address, it is also printed on the label on the WiFi module.