|
Post by cohoboy on Jun 29, 2017 18:48:08 GMT -8
I have been unable to access the site to setup the wifi on the complete weather kit. I have tried multiple computers (desktop, laptop, and a raspberry pi) and different makes of web browsers. It times out. The signal and network seem to be working fine. How do I fix this?
|
|
|
Post by SDL on Jun 30, 2017 7:57:09 GMT -8
Hi coho boy,
Tell us exactly where the process is failing. Are you seeing the 192.168.4.1 in your list of WiFi access point?
Please review the manual and tell us exactly (referring to page) where the process is going wrong.
Best regards, BP
|
|
greyknob
New Member
Posts: 4
Raspberry Pi: Yes
Other Device: arduino
|
Post by greyknob on Nov 25, 2017 4:20:39 GMT -8
This may or may not be similar to their experience. We have found that the wifi in the board we just received is unusable. We just purchased the WeatherPlus kit and were preparing to assemble it and work on processing the weather data this weekend. However, it turned into a quest to find out why the wifi didn’t work instead. When it first booted up it bounced to the access point mode and displayed the AP ip address of 0.0.0.0 on the OLED display with no new SSID showing up no matter what device we used to scan for the WeatherPlus device. So we downloaded and installed the latest version using the arduino IDE with the same result. Figuring that there was something messed up in the access point part of the software we figured out how to hardcode the connection to the local network bit the connection call would return instantly without success. See the output from the WeatherPlus sketch below: OurWeather Booting Up Wssid=XXX Wssid Length =3 WPassword=XXX WPLength=3 Reading EEPROM EEPROM readCode:165 SSID:XXX PASS:XXX EnglishOrMetric:0 WeatherDisplayMode:4 Station Name: Altitude:637.00 Admin Password:ad****** WeatherUnderground Station ID:XXXX WeatherUnderground Station KEY:YY****** *WM: *WM: AutoConnect *WM: XXX *WM: OurWeather - 58D *WM: displayMode=8 OurWeather Setup *WM: No Valid SSID *WM: Past the disconnect *WM: Connecting as wifi client... *WM: Connection result: *WM: 1 displayMode=9 displayMode=6 OurWeather Setup *WM: SET AP STA *WM: *WM: Configuring access point... *WM: OurWeather - 58D *WM: AP IP address: *WM: 192.168.4.1 *WM: HTTP server started displayMode=6 OurWeather Setup failed to connect and hit timeout tempAltitude>>8=24 tempAltitud& 0xFFe=226 Writing EEPROM Wssid=XXX Wssid Length =3 WPasswordXXX WPLength=3 SSID:XXX PASS:XXX EnglishOrMetric:0 WeatherDisplayMode:4 Station Name: Altitude:637.00 Admin Password:ad****** WeatherUnderground Station ID:XXXX WeatherUnderground Station KEY:YY******
-------------------- OurWeather ESP8266-12 -------------------- Version: 023 Compiled at:23:21:55 Nov 24 2017 Free Sketch Space on OurWeather:659456 SunAirPlus Not Present WXLink Not Present port number = 80 AirQuality Extension Not Present OurWeather IP Address:0.0.0.0 displayMode=1 No BMP180 detected BMP280 Detected crc =0x9411 crc_res =0x9411 AM2315 Detected... 5 second Loop executed Free heap on ESP8266:30000 --------------- DS3231 Clock --------------- 11/24/2017 23:27:19 --------------- AM2315 --------------- crc =0x5B40 crc_res =0x5B40 Temp: 26.10 Hum: 36.30 DwPt: 13.36 --------------- BMP280 --------------- Pressure: 997.31 hPa Temperature: 25.01 C Altitude: 782.95 m
The sensors were all working and the OLED display would display the weather data so all seemed to be working except the wifi. So we started testing the wifi only with some modified sample sketches that tried to connect to our ssid and enumerate any other networks as well. There was one brief time where it started to work but both the wifi connection and the AP were very unstable and dropped off very shortly. This sketch tries to enumerate any local wifi networks and then connect to our local network. It neither sees that SSID nor any of the others from the neighbors either. #include <ESP8266WiFi.h> #include <EEPROM.h> const String OP_MODE_NAMES[] { "NULL_MODE", "STATION_MODE", "SOFTAP_MODE", "STATIONAP_MODE" }; const String WL_STATUS_NAMES[] { "WL_IDLE_STATUS", // when Wi-Fi is in process of changing between statuses "WL_NO_SSID_AVAIL", //in case configured SSID cannot be reached "2", "WL_CONNECTED", // after successful connection is established "WL_CONNECT_FAILED",//if password is incorrect "5", "WL_DISCONNECTED" //if module is not configured in station mode }; void printScanResult(int networksFound) { Serial.printf("%d network(s) found\n", networksFound); for (int i = 0; i < networksFound; i++) { Serial.printf("%d: %s, Ch:%d (%ddBm) %s\n", i + 1, WiFi.SSID(i).c_str(), WiFi.channel(i), WiFi.RSSI(i), WiFi.encryptionType(i) == ENC_TYPE_NONE ? "open" : ""); } } bool isConnected=false; unsigned long _startBlink;
bool tryConnect() { int status, mode; String ssid="fastegium"; String pass="wifipassword"; Serial.println("Set the mode to STA mode"); bool ret = WiFi.mode(WIFI_STA); if (!ret) Serial.println("Failed to set mode to WIFI_STA"); mode = WiFi.getMode(); status = WiFi.status(); if (!mode == WIFI_STA) Serial.println("Does not indicate that we are in WIFI_STA mode"); Serial.println("Mode actually is (" + String(mode) +") " + OP_MODE_NAMES[mode]); Serial.println("Status actually is (" + String(status)+") " + WL_STATUS_NAMES[status]); WiFi.disconnect(); delay(100); mode = WiFi.getMode(); status = WiFi.status(); Serial.println("Mode actually is (" + String(mode) + ") " + OP_MODE_NAMES[mode]); Serial.println("Status actually is (" + String(status)+") " + WL_STATUS_NAMES[status]); unsigned long start = start=millis(); unsigned long done, elapsed; Serial.println("Enumerate all the wifi networks available"); #if true int numNetworks = WiFi.scanNetworks(false, true); // not async, show hidden done = millis(); elapsed = done - start; Serial.print("Scan Elapsed Time: "); Serial.println(String(elapsed)); printScanResult(numNetworks); #else WiFi.scanNetworksAsync(printScanResult); while (!WiFi.ScanComplete) { delay(100); } #endif Serial.println("Now log into the desired network"); WiFi.begin(ssid.c_str(), pass.c_str()); delay(100); mode = WiFi.getMode(); status = WiFi.status(); Serial.println("Mode actually is (" + String(mode) + ") " + OP_MODE_NAMES[mode]); Serial.println("Status actually is (" + String(status)+") " + WL_STATUS_NAMES[status]);
Serial.println("Connecting"); //int cstat=1; int ccount=0; while ((status = WiFi.status()) != WL_CONNECTED) { String statstring; ccount++; if (ccount > 30) break; switch (status) { default: statstring="Unknown status: " + String(status); break; case WL_IDLE_STATUS:// when Wi-Fi is in process of changing between statuses statstring = "Idle"; break; case WL_NO_SSID_AVAIL: //in case configured SSID cannot be reached statstring="SSID: " + ssid + " NOT AVAILABLE"; break; case WL_CONNECTED: // after successful connection is established statstring= "Success!"; break; case WL_CONNECT_FAILED ://if password is incorrect statstring="password is incorrect"; break; case WL_DISCONNECTED : //if module is not configured in station mode statstring="Disconnected"; break; } Serial.println("Waiting: status="+String(status) + ":" + statstring); delay(500); } Serial.println(); if (status == WL_CONNECTED) { isConnected = true; Serial.print("Connected, IP address: "); Serial.println(WiFi.localIP()); return true; } else { Serial.println("Unable to connect to " + ssid); } return false; }
void setup() { Serial.begin(115200); delay(100); pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output Serial.println("Starting Up"); tryConnect(); _startBlink=millis(); } bool _on=false; void loop() { if (false) if (millis() - _startBlink > 1000) { // Toggle the LED if (false) if (_on) { Serial.println("Turn LED off"); digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level // but actually the LED is on; this is because // it is active low on the ESP-01) _on = false; } else { Serial.println("Turn LED on"); digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH _on = true; } _startBlink = millis(); } // if (!isConnected) while (!tryConnect()) { delay(100); } }
Here is the output from the above script: Starting Up Set the mode to STA mode Mode actually is (1) STATION_MODE Status actually is (6) WL_DISCONNECTED Mode actually is (1) STATION_MODE Status actually is (0) WL_IDLE_STATUS Enumerate all the wifi networks available Scan Elapsed Time: 2165 0 network(s) found Now log into the desired network Mode actually is (1) STATION_MODE Status actually is (6) WL_DISCONNECTED Connecting Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=6:Disconnected Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE Waiting: status=1:SSID: fastegium NOT AVAILABLE
Unable to connect to fastegium
This may be relevant but if I run this script: void setup() { // put your setup code here, to run once: Serial.begin(115200); Serial.setDebugOutput(true); }
void loop() { // put your main code here, to run repeatedly: }
This is the output: error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!! error: pll_cal exceeds 2ms!!!
I cannot find any information on this but I don’t expect it is normal. At this point I have lost any confidence in this board and the wifi chip in particular. I suspect that either the wifi module itself is defective or it is not integrated well.
|
|
|
Post by SDL on Nov 25, 2017 16:44:45 GMT -8
Greyknob, It sounds like you **mght* have a bad board. Great debugging information you have provided. Understand that we have sold hundreds and hundreds of these so it is not really as software problem or a general hardware problem. Two possibilities: 1) Your AP unit is strange. There are many different brands and not all work very well. Try another AP unit and see if the results are the same. 2) You have a bad hardware board. If #1 doesn't make any difference (and go back to the original software to do this.... , then here is an RMA # for you and we will be happy to replace the WeathePlus. SwitchDoc Labs RMA#112517-01 909 S Shelley Lake Lane Spokane Valley, WA 99037 We will test your board and then either repair or replace your board pronto!
|
|
greyknob
New Member
Posts: 4
Raspberry Pi: Yes
Other Device: arduino
|
Post by greyknob on Nov 26, 2017 1:44:36 GMT -8
Thanks for your reply. I will try it with a couple other APs as well as someplace without any interference to test the chip when it tries tor run in AP mode.
|
|
greyknob
New Member
Posts: 4
Raspberry Pi: Yes
Other Device: arduino
|
Post by greyknob on Dec 6, 2017 4:16:14 GMT -8
After I returned home I tried it again in a different wifi regime with the same result. None of the neighbors who are close enough have wifi so there is not a lot of interference here.
Locally I have a Unifi system which not only logs its own activity but logs the presence of any other APs and even detects the automobile wifi APs that wizz by on the road about 0.1 miles away. When the device went int AP mode neither the Unifi APs or any other devices could see the weather kit access point. Additionally, I also tried it in the large faraday cage in the back yard (aka the metal barn) which blocks all wifi, cell and zwave signals. I shut off the power to eliminate any internal EM interference but the weather kit AP still did not make an appearance.
I think I adequately covered the interference question but stopped short of wandering out into the woods and trying it there.
In general, I am more experienced in the 'application layer' and purchased this kit to use it as an opportunity to delve into the hardware side. While the problems with this device have been frustrating, I did learn a lot more about the hardware layer, while trying to understand what was going wrong with this device, than I would have otherwise.
|
|
|
Post by SDL on Dec 9, 2017 9:56:16 GMT -8
Sounds like you might have a week unit. Please send it in via the RMA # above.
You covered ALL the bases!
BP
|
|