This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Pro2 PLUS] 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.
MeteoCercal - Air Quality Data
Click here to watch at my ThingSpeak channel



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
MeteoCercal - Air Quality Data
Click here to watch at my ThingSpeak channel



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)