Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Version 4.1 RX reboot loop
#1

I have just tried to upgrade my RX pro plus system from ver 2.1 to ver 4.1 and it just stops in the reboot loop.
I successfully upgraded my TX to 4.1 and my RX worked while it was still on 2.1.
If I put it into test mode, it still just sits on the reboot screen, although it stops there without any further reboots.
My RX board is ver 1.3 and I am using ver 1.8.5 of the arduino IDE.
I completely replaced my library's with the supplied ones and carefully checked all the configs.
I can successfully return to ver 2.1, but I never got around to downloading ver3.xx
Any ideas? Sad
Reply
#2

Hi,

Can you please post here the content of your Config_RX_Pro2PLUS.h
In the meanwhile, please run the I2C_Scanner utility, and check if it detects the on-board eeprom at address 0x50

An upgrade from v2.1 to v4.x is a big jump, there is a setting on the RX software that perhaps need to be changed, but first I will wait for your reply.

Reply
#3

(20-10-2017, 12:26)Werk_AG Wrote:  Hi,

Can you please post here the content of your Config_RX_Pro2PLUS.h
In the meanwhile, please run the I2C_Scanner utility, and check if it detects the on-board eeprom at address 0x50

An upgrade from v2.1 to v4.x is a big jump, there is a setting on the RX software that perhaps need to be changed, but first I will wait for your reply.

Here is my config file:

Code:
// -------------------------------------------------------------------------------------- //  WeatherDuino Pro2 PLUS RF Receiver - Version: 4.10 b006 //          Start of user configurable options // -------------------------------------------------------------------------------------- // If you need help about any of the user configurable settings, please first do a search // at the WeatherDuino Pro2 support forum. If you don't find any relevant info, then post // a new thread. // // -------------------------------------------------------------------------------------- //   Define Name and ID's for this weather station // -------------------------------------------------------------------------------------- const String WeatherStation_Name = "Nangkita"; #define Station_ID            0xA1    // Station_ID, use the same value in all TX units #define Relay_ID              0xA3    // Relay_ID,   use the same value in all WD units // -------------------------------------------------------------------------------------- //   Define your Weather Station location. Use decimal format for Latitude and Longitude // -------------------------------------------------------------------------------------- #define LATITUDE      -315.000    // Put here your Station latitude in degrees North (always use 3 decimal places) #define LONGITUDE     1161.000    // Put here your Station longitude in degrees - minus for West (always use 3 decimal places) #define ELEVATION     268       // Put here your Station height above sea level in Meters (no decimal places) // -------------------------------------------------------------------------------------- //   Define rules for Auto Summer Time Display, and clock adjustment // -------------------------------------------------------------------------------------- #include <Timezone.h> // Example for Australia Eastern Time Zone (Sydney, Melbourne) // TimeChangeRule aEDT = {"AEDT", First, Sun, Oct, 2, 660};    //UTC + 11 hours // TimeChangeRule aEST = {"AEST", First, Sun, Apr, 3, 600};    //UTC + 10 hours // Timezone myTZ(aEDT, aEST); //TimeChangeRule PST = {"PST", Last, Sun, Mar, 1, 60};   //Portuguese Summer Time -  "UTC + 1" or GMT + 1 //TimeChangeRule GMT = {"GMT", Last, Sun, Oct, 2, 0};    //Portuguese Winter Time -  "UTC + 0" or GMT //Timezone myTZ(PST, GMT); TimeChangeRule aWST = {"AWST", Last, Sun, Oct, 2, 480};    //WA Winter Time -  "UTC + 8" or GMT + 8 Timezone myTZ(aWST, aWST); // -------------------------------------------------------------------------------------- //   Define Roll Over Hour for Meteorological Day // -------------------------------------------------------------------------------------- #define MeteoDay_HStart 9    // Use values from 0 to 23 // -------------------------------------------------------------------------------------- //   Define Interface Language // -------------------------------------------------------------------------------------- //                   Currently available languages: en_GB, cs_CZ, de_DE, fr_FR, nl_NL, pt_PT   #define en_GB      // Put here language code   // -------------------------------------------------------------------------------------- //   Define Display Backlight TimeOut // -------------------------------------------------------------------------------------- const byte  BackLight_Timeout = 2;   // Timeout for display backlight in minutes (1 to 255). 0 = Always ON #define Use_ScreenSaver          0    // Instead of turn off TFT backlight show a big clock screen. 0= No, 1= Yes // -------------------------------------------------------------------------------------- //   Define data display units // -------------------------------------------------------------------------------------- #define Date_Time_Format  0    // 0 for dd-mm-yyyy, 1 for yyyy/mm/dd #define Temp_Display_Unit 0    // 0 for ºC, 1 for ºF #define ATM_Display_Unit  0    // 0 for mBar, 1 for inHg #define Rain_Display_Unit 0    // 0 for mm, 1 for inches #define Wind_Display_Unit 0    // 0 for Km/h, 1 for mph, 2 for m/s, 3 for Knots // -------------------------------------------------------------------------------------- //   Define the type of your Barometric Pressure Sensor // -------------------------------------------------------------------------------------- #define Barometric_Sensor  0   // 0= BME280, 1= BMP280 2= BMP085 / BMP180 // -------------------------------------------------------------------------------------- //   Define the type of your inside Temperature / Humidity Sensor // -------------------------------------------------------------------------------------- #define InsideTH_Sensor  0   // 0= BME280, 1= HTU21D, 2= SHT21, 3= SHT31 // -------------------------------------------------------------------------------------- //   Fine adjusts for Inside Temperature and Barometer // -------------------------------------------------------------------------------------- const int   TemperaturaInt_offset =   -18;   // Inside Temperature Fine Adjust in Tenths of Degree (-4 = -0,4ºC) const float pressure_offset       =   0;   // Pressure Fine Adjust in mB // -------------------------------------------------------------------------------------- //   Define the type of your outside Temperature / Humidity Sensor // -------------------------------------------------------------------------------------- #define MainOutTH_Sensor 1   // 0 for sensor type SHT31, SHT21 or HTU21D, 1 for sensor type SHT1x or DHT22 // -------------------------------------------------------------------------------------- //   Define Wind Speed and Wind Gust resolution // -------------------------------------------------------------------------------------- // This setting only have effect when the software is used in Davis VP emulation mode #define VP2_WindRes     2    // If set to 2, set Cumulus Wind Speed and Wind Gust multipliers to 0.448. Wind Resolution 0.72 Km/h                              // If set to 1, set Cumulus Wind Speed and Wind Gust multipliers to 0.224. Wind Resolution 0.36 Km/h                              // WARNING !!! Setting this variable to 1 allows a better wind speed and gust resolution,                              // but also limits both of them, to a maximum reading of just 91.8 Km/h                              // If set to 0, system uses Standard Davis wind resolution (1 mph or 0.1mph with LOOP2).                              // Weather Display users should set this option to 0 - Standard Davis wind resolution    // -------------------------------------------------------------------------------------- //   Define use of Wind Gust Spike prevention routines (mostly for FO anemometers) // -------------------------------------------------------------------------------------- #define WindSpikeControl 0   // 0= Disable, 1= Enable // -------------------------------------------------------------------------------------- //   Define the source of your main outside sensors // -------------------------------------------------------------------------------------- // ---- If you are using just one TX board, the source for all items should be equal to your single TX Unit ID (most likely zero). // ---- Define the source of your main Temperature / Humidity sensor #define TH_OutUnit       0   // 0= Temp/Hum sensor connected to TX_Unit 0, 1= Temp/Hum sensor connected to TX_Unit 1, ... // ---- Define the source of your Main Wind sensor #define WIND_OutUnit     0   // 0= Wind instruments connected to TX_Unit 0, 1= for TX_Unit 1, ... // ---- Define the source of your main Rain Gauge #define RAIN_OutUnit     0   // 0= Rain Gauge connected to TX_Unit 0, 1= for TX_Unit 1, 3 for Auriol RF Rain Gauge // ---- Define the source of your main Solar / UV sensores #define SRUV_OutUnit     9   // 0= Solar Rad / UV sensors connected to TX_Unit 0, 1= connected to TX_Unit1, 9 for not used // ---- Define type of Solar Radiation / UV Sensors // ---- Support for sensor type 4 (it is a PAR sensor not a Solar Radiation sensor) its experimental #define Solar_Sensor     0   // 0 not used, 1= Solar Cell "Pyranometer", 2= Apogee SP-110 Pyranometer, 3= Reserved, 4= Apogee SQ-110: Photosynthetically Active Radiation Sensor #define UV_Sensor        0   // 0 not used, 1= UVM-30A, 2= VEML6075, 3= Reserved #define UV_Transmission 70   // UV Transmission percentage of UV sensor cover material // -------------------------------------------------------------------------------------- //   Extra Sensors Settings and Mapping // -------------------------------------------------------------------------------------- // ---- Define the source and sensor type (number) for each of the seven extra sensors, insert 9 if not used. //      Sensors SHT31, SHT21 or HTU21D are type 0, sensors SHT1x or DHT22 are type 1 // // ---- Source 0 means TX unit0, 1 means TX unit1... // ---- Source 6 (Reserved) // ---- Source 7 is for BIOS Sensor (Only Temperature is shown) // ---- Source 8 is for Air Quality Monitor. 0= Temperature/Humidity, 1= Dust Density/AQI // ---- (AQI sensors can be mapped to any position, but should be mapped in sequence, Temperature/Humidity always first) // // ---- First field = Sensor source, Second field = Sensor type (0 or 1 for TX units) // ---- Example: // ----                          ES0   ES1   ES2   ES3   ES4   ES5   ES6      //#define ExtraSensors_Source { {0,1},{1,1},{9,9},{6,3},{9,9},{8,0},{8,1} } //               {9,9} - First extra sensor (ES0), will be sensor 0 from TX unit0 //               {9,9} - Second extra sensor (ES1), will be sensor 1 from TX unit0 //               {9,9} - Third extra sensor (ES2), will be sensor 0 from TX unit1 //               {9,9} - Fourth extra sensor (ES3), not used - not mapped //               {9,9} - Fifth extra sensor (ES4), not use - not mapped //               {9,9} - Sixth extra sensor (ES5), will be Temperature / Humidity from the Air Quality Monitor //               {9,9} - Seventh extra sensor (ES6), will be Dust Density / AQI index from the Air Quality Monitor // //-----                        ES0   ES1   ES2   ES3   ES4   ES5   ES6      #define ExtraSensors_Source { {9,9},{9,9},{9,9},{9,9},{9,9},{9,9},{9,9} } // ---- Define personalized names for each Extra sensor. Attention, 8 chars maximum // ---- There is no need to define a name for the Extra Sensor mapped to the Dust Density / AQI index data //                   Max. Size  [--------] const char ESname_1[] PROGMEM = "-";           // 8 chars max const char ESname_2[] PROGMEM = "-";           // 8 chars max const char ESname_3[] PROGMEM = "-";           // 8 chars max const char ESname_4[] PROGMEM = "-";           // 8 chars max const char ESname_5[] PROGMEM = "-";           // 8 chars max const char ESname_6[] PROGMEM = "Dust TH";     // 8 chars max const char ESname_7[] PROGMEM = "-";           // 8 chars max // -------------------------------------------------------------------------------------- //   BIOS soil moisture sensor settings // -------------------------------------------------------------------------------------- // ---- Please use the included BIOS_ID_Scanner sketch to find you BIOS Device ID #define BiosSensor_ID 0   // Device ID in HEX format, or 0 not used // -------------------------------------------------------------------------------------- //   Soil / Leaf Interface Settings and Sensors Mapping //   (The mapping logic is the same than used with the Extra Sensors) // -------------------------------------------------------------------------------------- // 0 = Soil Leaf Interface not used // 1 = Soil Leaf Interface connected to a TX unit #define SoilLeaf_Interface  0   // 0, 1, // ---- For Soil & Leaf data from SoilLeaf_Interface wired to a TX unit, use TX Unit number as source // ---- For BIOS Soil Temp / Moisture use 7 as source // ---- To disable use 9 in both fields //                                 S1    S2    S3    S4 #define SoilTempSensors_Source  { {9,9},{9,9},{9,9},{9,9} } #define LeafTempSensors_Source  { {9,9},{9,9},{9,9},{9,9} } #define SoilMoistSensors_Source { {9,9},{9,9},{9,9},{9,9} } #define LeafWetSensors_Source   { {9,9},{9,9},{9,9},{9,9} } // ---- Define personalized names for each Soil and Leaf sensor. Attention, 8 chars maximum //              Soil Max. Size  [--------] const char SSname_1[] PROGMEM = "-";            // 8 chars max const char SSname_2[] PROGMEM = "-";            // 8 chars max const char SSname_3[] PROGMEM = "-";            // 8 chars max const char SSname_4[] PROGMEM = "-";            // 8 chars max //              Leaf Max. Size  [--------] const char LSname_1[] PROGMEM = "1";            // 8 chars max const char LSname_2[] PROGMEM = "2";            // 8 chars max const char LSname_3[] PROGMEM = "3";            // 8 chars max const char LSname_4[] PROGMEM = "4";            // 8 chars max // Define VWC calculation method // Method 1 applies only for VH400 soil moisture sensor // // METHOD 1 - Conversion from voltage to VWC (volumetric water content) is done using the piecewise regressions provided by the manufacturer // at http://www.vegetronix.com/Products/VH400/VH400-Piecewise-Curve.phtml // // METHOD 2 - Used for any sensor which have a linear output between voltage and VWC (0V=0VWC, maxV=100VWC) . #define VWC_CalcMethod 1 // Max and Min output voltage of the analog sensors connected to Soil / Leaf Interface // Default value for Decagon Devices LWS Leaf Wetness Sensor (3.3V power): Max. Output Voltage - 1395mV (max wetness), Min Output Voltage - 530mV (dry) //                                                  ADC1  ADC2  ADC3  ADC4   const uint16_t AnalogSensor_MaxVoltOut[4]   = { 3000, 1395, 5000, 5000 };    // Values in miliVolts const uint16_t AnalogSensor_MinVoltOut[4]   = {    0,  530,    0,    0 }; // -------------------------------------------------------------------------------------- //   Broadacasting settings for Wireless Display Units // -------------------------------------------------------------------------------------- #define Relay_Data       0   // 0= Disables Data Relay, 1= Enables Data Relay // -------------------------------------------------------------------------------------- //   Davis compatible Data Logger Settings // -------------------------------------------------------------------------------------- #define Logger_Enable    1   // 0= Disable 1= Enable byte ARCHIVE_PERIOD  =   5;  // Default Archive Period in Minutes (Usable values: 1, 5, 10, 15, 30) // -------------------------------------------------------------------------------------- //   Define type of your Weather Software // -------------------------------------------------------------------------------------- #define WeatherSoft      0   // 0= CumulusMX, 1= Any other (Cumulus 1, WeewX, Weather Display, etc.) // -------------------------------------------------------------------------------------- //   Easyweather format data Output // -------------------------------------------------------------------------------------- #define Easyweather_Out  0   // 0= Disable (defaut) 1= Enable // -------------------------------------------------------------------------------------- //   Internet Settings // -------------------------------------------------------------------------------------- #define Enable_Internet     1                       // 1= Enable Internet connection, 0= Disable // ---- NTP Settings ---- #define Enable_NTP          1                       // 1= Enable Sync time with NTP servers, 0= Disable // NTP Servers: #define timeServer "104.156.232.174"                // One of the NTP servers within au.pool.ntp.org //#define timeServer "pool.ntp.org" //#define timeServer "time.nist.gov"                 // ntp1.nl.net NTP server //#define timeServer "80.96.196.58"                  // timp.mcsi.ro //#define timeServer "193.79.237.14"                 // ntp1.nl.net NTP server // ---- Weather Wunderground Settings ---- #define Enable_WUupload     0                        // 1= Enable upload to Wunderground, 0= Disable #define WUupload_period     4                        // Period in minutes between uploads to WU (Should be >= 3 minutes, if less defaults to 4 minutes) #define WUupload_InTemp     0                        // 1= Enable upload of Inside Temperature / Humidity, 0= Disable // ---- Air Quality Monitor - Upload to ThingSpeak Settings ---- #define Enable_AQMtoThingSpeak   0                   // 1= Enable, 0= Disable // ---- Web Server Settings ---- #define Enable_WebServer          1                  // 1= Enable 0= Disable #define WebServer_port           80                  // WebServer port (default 80) // -------------------------------------------------------------------------------------- //   Enable / Disable GPIO routines - General Purpose Input / Output ports // -------------------------------------------------------------------------------------- #define UseGPIO  0   // 0=Disable, 1= Enable // -------------------------------------------------------------------------------------- //   Define display order of data screens on the TFT //   Use sequentially numbers from 1 to 4. Use 9 to prevent a particular data screen to be shown // -------------------------------------------------------------------------------------- #define ExtraSensors_Data 9 #define SoilLeaf_Data     9 #define AirQuality_Data   9 #define TXinfo_Data       1 // -------------------------------------------------------------------------------------- //   Test Mode : Never run a live system in test mode // -------------------------------------------------------------------------------------- #define TestMode    false    // false= Normal working mode, true= Test mode only (no logger, no usb connection) /*************************************************************************************      Hardware Settings *************************************************************************************/ // -------------------------------------------------------------------------------------- //   Define PCB Version Number // -------------------------------------------------------------------------------------- //                              Take particular attention to this setting. //                              Your system may not work properly if you define a wrong pcb version number. //                              In case of doubt check what is printed in your pcb.- 1.3 #define Board_Version   13   // PCB version number, without the decimal point Ex: 1.3 = 13 (integer number) // -------------------------------------------------------------------------------------- //   Define your Display type // -------------------------------------------------------------------------------------- #define DisplayType     3    // 1= LCD 20x4, 3= TFT 320x240 ILI9341 // -------------------------------------------------------------------------------------- //   Define LCD I2C address // -------------------------------------------------------------------------------------- // Only change this if your LCD don't display any data. I2C_Scanner utility may help you to find the address of your LCD display // Default address will work most of the times! #define LCD_I2C_Address     0x27    // -------------------------------------------------------------------------------------- //   SHT31 I2C Address - Default address will work most of the times! // -------------------------------------------------------------------------------------- #define SHT31_address       0x44       // Default value is 0x44, but it can be changed to 0x45 // -------------------------------------------------------------------------------------- //   Presure Sensor Address (no need to change) // -------------------------------------------------------------------------------------- //#define BMP085_ADDRESS    0x77       // I2C address of BMP085 or BMP180 // -------------------------------------------------------------------------------------- //   Debug helper // -------------------------------------------------------------------------------------- //#define PRINT_DEBUG_NTP_UPDATE    // Prints to serial monitor messages related to sync time with NTP server //#define PRINT_DEBUG_WU_UPLOAD     // Prints to serial monitor messages related to Weather Underground upload. //#define PRINT_DEBUG_TS_UPLOAD //#define PRINT_DEBUG_VCHECK //#define PRINT_DEBUG_TCP_SERVER //#define PRINT_DEBUG_AURIOL //#define PRINT_DEBUG_BIOS // --------------------------------------------------------------------------------------------------- //     End of user configurable options // ---------------------------------------------------------------------------------------------------
Reply
#4

Hi,
just ran the scanner with this result

Scanning...
I2C device found at address 0x68 !
I2C device found at address 0x76 !
done

Dosn't seem to detect anything at address 0x50.Chris.
Reply
#5

(21-10-2017, 13:43)chrisww Wrote:  Dosn't seem to detect anything at address 0x50.Chris.

Hi,

This is the cause of the permanent boot loops.
It seems the system cannot find the on-board eeprom, which is vital for the system to work.

All WeatherDuino Pro2 PLUS software versions, since first one, depend on data stored at boot time on the on-board eeprom, but the v3.x and v4.x depends even more.

Even v2.1 will not work satisfactorily, if can't write data to the on-board eeprom. v4.x will not work at all.
Please try to discover why the on-board eeprom isn't being detected.


Regarding your config file, check the Latitude and Longitude data

Code:
// -------------------------------------------------------------------------------------- // Define your Weather Station location. Use decimal format for Latitude and Longitude // -------------------------------------------------------------------------------------- #define LATITUDE -315.000 // Put here your Station latitude in degrees North (always use 3 decimal places) #define LONGITUDE 1161.000 // Put here your Station longitude in degrees - minus for West (always use 3 decimal places)

Latitude is from -90.000 to 90.000
Longitude is from -180.000 to 180.000

Reply
#6

(21-10-2017, 15:55)Werk_AG Wrote:  
(21-10-2017, 13:43)chrisww Wrote:  Dosn't seem to detect anything at address 0x50.Chris.

Hi,

This is the cause of the permanent boot loops.
It seems the system cannot find the on-board eeprom, which is vital for the system to work.

All WeatherDuino Pro2 PLUS software versions, since first one, depend on data stored at boot time on the on-board eeprom, but the v3.x and v4.x depends even more.

Even v2.1 will not work satisfactorily, if can't write data to the on-board eeprom. v4.x will not work at all.
Please try to discover why the on-board eeprom isn't being detected.


Regarding your config file, check the Latitude and Longitude data

Code:
// -------------------------------------------------------------------------------------- //   Define your Weather Station location. Use decimal format for Latitude and Longitude // -------------------------------------------------------------------------------------- #define LATITUDE      -315.000    // Put here your Station latitude in degrees North (always use 3 decimal places) #define LONGITUDE     1161.000    // Put here your Station longitude in degrees - minus for West (always use 3 decimal places)

Latitude is from -90.000 to 90.000
Longitude is from -180.000 to 180.000

I found an open circuit on the SCL line from the eeprom. You might recall my RX board had a few gaps in the PCB tracks that I had to repair, well my repair failed on the SCL line.
It's seems to be working fine now, thanks for your help.
Chris.
Reply




Users browsing this thread: 1 Guest(s)