Arduino WiFi Shield not working after Firmware update

Hi!

I'm really new to Arduino so excuse-me if there are some things that I should have known about what I'm going to explain here.

So, I'm working on an IoT project for my Bachelor, and I ordered an official Arduino WiFi Shield. I plugged it on my Uno and ran the example files, everything worked really fine.

As reading the documentation I saw that I should upgrade the Firmware of my WiFi Shield, which I did.

And from this point, I try to use the example files, changing the things that need to be in order to work, but I can't access no webpage! I tried on various networks, all the examples, nothing works.

As an exemple, when I try the WiFiWebClient, here is what I get in the Serial:

AtAttempting to connect to SSID: pxperia
Connected to wifi
SSID: pxperia
IP Address: 192.168.43.116
signal strength (RSSI):-24 dBm

Starting connection to server...

disconnecting from server.

Nothing shows between "Starting connection to server..." and "disconnecting from server." as it is supposed to.

and in the WifiWebClientRepeat, I get:

AtAttempting to connect to SSID: pxperia
SSID: pxperia
IP Address: 192.168.43.116
signal strength (RSSI):-25 dBm
connection failed
disconnecting.
connection failed
disconnecting.
connection failed
disconnecting.
connection failed
disconnecting.

etc...

All my paths are correct, I really don't get it, and as I said, everything worked before the FirmWare update...

I am really in a hurry because the Deadline for my project is on June 12th...

Can anyone help me please?

Thanks in advance,

PXP

If you did the upgrade, then you must use IDE v1.0.4 or newer.

If you didn't do the upgrade, or the upgrade failed, you must use IDE v1.0.3 or earlier.

The symptom is what you are experiencing. It will show the connection failed.

Downloaded the last IDE, tried again... still getting the exact same result:

AtAttempting to connect to SSID: pxperia
SSID: pxperia
IP Address: 192.168.43.116
signal strength (RSSI):-25 dBm
connection failed
disconnecting.
connection failed
disconnecting.
connection failed
disconnecting.
connection failed
disconnecting.

So now I'm using IDE 1.6.4, and when I Serial.println(WiFi.firmwareVersion()); it returns 1.1.0

What can I do?

Then you should post your code.

Here you are:

///////////////

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "pxperia"; // your network SSID (name)
char pass[] = "l0lj4mb3"; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

// Initialize the Wifi client library
WiFiClient client;

// server address:
char server[] = "www.pxpvisual.com";

unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
boolean lastConnected = false; // state of the connection last time through the main loop
const unsigned long postingInterval = 10*1000; // delay between updates, in milliseconds

void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);

// attempt to connect to Wifi network:
while ( status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);

// wait 10 seconds for connection:
delay(10000);
}
// you're connected now, so print out the status:
printWifiStatus();
}

void loop() {
// if there's incoming data from the net connection.
// send it out the serial port. This is for debugging
// purposes only:
while (client.available()) {
char c = client.read();
Serial.write(c);
}

// if there's no net connection, but there was one last time
// through the loop, then stop the client:
if (!client.connected() && lastConnected) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
}

// if you're not connected, and ten seconds have passed since
// your last connection, then connect again and send data:
if(!client.connected() && (millis() - lastConnectionTime > postingInterval)) {
httpRequest();
}
// store the state of the connection for next time through
// the loop:
lastConnected = client.connected();
}

// this method makes a HTTP connection to the server:
void httpRequest() {
// if there's a successful connection:
if (client.connect(server, 80)) {
Serial.println("connecting...");
// send the HTTP PUT request:
client.println("GET /tests/test2.php HTTP/1.1");
client.println("Host: www.pxpvisual.com");
client.println("User-Agent: arduino-ethernet");
client.println("Connection: close");
client.println();

// note the time that the connection was made:
lastConnectionTime = millis();
}
else {
// if you couldn't make a connection:
Serial.println("connection failed");
Serial.println("disconnecting.");
client.stop();
}
}

void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());

// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);

// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}

///////////////

I really don't get it...

Can anyone help me?

Tried to re-update the firmware again, still getting those errors! What am I supposed to do?!

Troubleshoot it!

Have you tried to connect to another server? Have you tried connecting to a server using an IP rather than a domain name?

edit: Have you tried an earlier version of the IDE? Try IDE v1.0.3.

I've been having the same, or similar, problem for the last couple of years with five different shields bought throughout this period.

As the latest one arrived this morning from a reputable supplier, I'm fairly confident that the firmware will be the newest version and I'm using a R3 UNO with IDE 1.6.4. For what its worth, I have tried (and failed miserably) updating one shield's firmware, with the added 'benefit' of the installer leaving a PC infected by trojanware with unwanted adware.

The controlling sketch is based on Tom Igoe's promoted hereabouts with modifications.

On running the uploaded server sketch, the device links (showing the green LED) to my wireless network and reports a DHCP issued IP but the blue LED does not turn on indicating no traffic over the connection. No sign of detecting a new incomming client is shown in the serial monitor window and the calling browser displaying either a 'page not found' or 'could not connect' error message.

A point to note, this problem has been manifesting itself over a few versions of the IDE, three hosting PCs and several UNO boards so the problem seems to be in either the promulgated sketch, the distributed libraries or somebody not properly divulging the solution to this problem.

When I first reported this to a supplier the given answer was "you can get a connection but as to after [the green light] - good luck!"

Rgds

Neil.

Maybe this post will help you
http://forum.arduino.cc/index.php?topic=327241.0

Thanks.

Rgds,

Neil

Have just tried the procedure specified in Arduino Your Home & Environment: Upgrading Arduino WiFi Shield Firmware which seems to provide a useful answer.

However, just encountered a further problem in that a required dll (jvm.dll) is not on my machine.

(FWIW, it is not in the Amtel FLIP distribution)

GRRR!!!!

Rgds,

Neil.

Well the good news is that I have managed to get the data light to work and established a network connection after upgrading one shield (four more to do :)).

Firstly, the resolution to the Java problem above was to install it from Oracle.

I found these two sites very helpful that got me through the learning curve:

http://blog.jongallant.com/2014/12/arduino-wifi-shield-firmware-upgrade.html

The second link was probably more useful as it highlighted another problem (and gave the answer).

Thanks for the original pointer Tim.

Rgds,

Neil