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)