WeatherDuino Forum

Full Version: Troubleshooting RF connectivity
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Looking for some thoughts on where I should go from here.

TX v3.13 Rev B board and RX v 2.00 Rev A both fully assembled and alive.

RX unit is not receiving any data. Boots up and initialises as it should, connects to WiFi and syncs NTP clock etc. I do note that the COM Led is apparently continuously lit. Looking at serial output using the debugging modes, nothing is ever reported beyond "WiFi connection is ON". RX LED never lights. Internal temperature, humidity and barometric pressure are being read from the BME280 with no problems.

The TX board is hooked up to an SHT21 and Davis anemometer + rain collector. Using the debug routines for the TX board I see sane values reported from all the attached instruments. TX LED flashes regularly.

Both TX and RX are set with Station_ID 0xA1, and the TX board has station ID 0. Basically everything other than my specific WiFi and location configurations are at default values or appropriate for the instruments I have used.

As I type, both TX and RX are in the same room with me, with antennae attached.

I am trying to pin down if this is a failure of transmission, reception, or neither. Physically I can see no issues with solder joints on either of the boards. I have reloaded the relevant sketches several times. I have measured voltage across VCC to GND on the TX board module and see 9V. Similarly, for the receiving module on the RX board I see 5V supplied.

I am wondering if I should pull out the 433 Mhz modules and replace one or both, but before going to that length I wanted to see if anyone has suggestions on where to go next.
Hi craigruaux ,

Can you please post here both (TX and RX) Config_Options.h files?
Thank you

Rgs
(18-12-2019, 19:37)Werk_AG Wrote: [ -> ]Hi craigruaux ,

Can you please post here both (TX and RX) Config_Options.h files?
Thank you

Rgs

TX Config.h:
Code:
// --------------------------------------------------------------------------------------
//    WeatherDuino Pro2 Universal TX AT328 - Version: 7.0_b002
//           Start of user configurable options 
// --------------------------------------------------------------------------------------


// --------------------------------------------------------------------------------------
//   Define ID and TX unit number
// --------------------------------------------------------------------------------------
#define Station_ID  0xA1    // Must be equal to your RX Unit (Value from 0x00 to 0xFF)  
#define Unit_ID        0    // If you use only one TX unit define it as Unit_ID = 0
                            // For a second TX unit, define it as Unit_ID = 1

// --------------------------------------------------------------------------------------
//   Define type of Temperature / Humidity sensor used as Sensor 0 and / or Sensor 1
// --------------------------------------------------------------------------------------
#define TH_SENSOR0  0      // [SENSOR 0] - 0 for SHT2x sensor, 1 for SHT31 sensor, 2 for HTU21 sensor, 9 for Not Used
#define TH_SENSOR1  9      // [SENSOR 1] - 0 for SHT1x sensor, 1 for DHT22 sensor, 9 for Not Used


// --------------------------------------------------------------------------------------
//   Define which Temp / Hum sensor controls the fan, and threshold values
// --------------------------------------------------------------------------------------
#define FANCONTROL_SENSOR  0      // 0 for Sensor 0, 1 for Sensor 1 (which sensor is used to control the RS Fan)
const int fanOn_HiTemp  = 25;     // RS Fan turn on when outside temperature is >= than this value (ºC) 
const int fanOn_LowTemp =  2;     // RS Fan turn on when outside temperature is <= than this value (ºC) 
const int fanOn_LowWind =  1;     // RS Fan turn on when Wind Average is <= than this value (m/s)


// --------------------------------------------------------------------------------------
//   Define type of Wind Speed sensor. See below for allowed types
// --------------------------------------------------------------------------------------
/*
 --- Fine Offset Anemometers ---
 Use 1O for standard FO anemometers
 Use 11 for FO anemometer modified with 1 hall effect sensor

 --- Inspeed Anemometers ---
 Use 20 for Inspeed Vortex, digital 8 pulse revolution anemometer
 Use 21 for Inspeed Vortex, hall efect sensor
 Use 22 for Inspeed Vortex, read switch sensor
 
 --- Davis Anemometers ---
 Use 30 for Davis 6410, 7911 anemometer
 
 --- Novalynx Anemometers ---
 Use 40 for Novalynx, model 200-WS-02F

 --- Environmental Measurements Limited ---
 Use 50 for EML, model WSD1

 --- Didcot Instrument Company ---
 Use 60 for DIDCOT, model DWR205

 --- Vector Instruments ---
 Use 70 for Vector Instruments model A100LK
 Use 71 for Vector Instruments model A100L2
 Use 72 for Vector Instruments model A100R 
*/
#define WINDSPEED_SENSORTYPE 30             // SEE INFO ABOVE!!!


// --------------------------------------------------------------------------------------
//   Define type of Wind Direction sensor
// --------------------------------------------------------------------------------------
/*
 --- Fine Offset Wind Vane ---
 Use 1O for standard FO wind vane
 
 --- Analogue Wind Vanes ---
 Use 20 for any 5V analogue wind vane. See bellow for a list of tested models

- Inspeed E-Vane 2
- Davis 6410
- Novalynx, model 200-WS-02F
- Environmental Measurements Limited, model model WSD1
- DIDCOT, model DWD205
- Almost all 5V analogue wind vanes will work

*/
#define WINDDIR_SENSORTYPE  20  // SEE INFO ABOVE!!!


// --------------------------------------------------------------------------------------
//          Analogue Vane Offset Calibration
// --------------------------------------------------------------------------------------
const int WDir_offs  = 0;   // Usually there is no need to change default value (zero)


// --------------------------------------------------------------------------------------
//   Define Rain Gauge tip boucket value (mm)
// --------------------------------------------------------------------------------------
/*
  Use 0.280 for standard FineOfset rain gauges (Datasheet value = 0.2794)
  Use 0.200 for standard metric Davis rain gauges
  Use 0.254 for standard imperial Davis rain gauges
*/  
#define COLLECTOR_TYPE  0.200  // Please note: Values must be in metric units. Max. resolution: 3 decimal digits
   

// --------------------------------------------------------------------------------------
//   Define type of UV Sensor
// --------------------------------------------------------------------------------------
#define UV_SENSOR  9      // 0= UVM-30A, 1= VEML6075, 9= Not used


// --------------------------------------------------------------------------------------
//   Soil / Leaf Interface Enable Disable
// --------------------------------------------------------------------------------------
#define SOILLEAF_INTERFACE        0    // 0 = Soil Leaf Interface not used, 1 = Enable Soil Leaf Interface
const byte Number_AnalogSensors = 2;   // Up to 4 analog sensors


// --------------------------------------------------------------------------------------
//   Define which data this unit will send. 0 = Not send this data, 1= Send this data 
// --------------------------------------------------------------------------------------
#define ID0  1   // Temp/Hum Data 
#define ID1  0   // Not Used
#define ID2  1   // Wind data
#define ID3  1   // Rain data
#define ID4  0   // SolRad / UV data
#define ID5  1   // Hardware Status - System Temp, Battery Voltage etc
#define ID7  0   // Send Soil & Leaf Temperature Data
#define ID9  0   // Send Soil & Leaf Moisture / Wetness Data


// --------------------------------------------------------------------------------------
//   VBat voltage fine tune (values in Volt, positive or negative) 
// --------------------------------------------------------------------------------------
#define VBAT_OFFSET    0                  // Ex: 0.1 or -0.2


// *************************************************************************************
//     Hardware Settings 
// *************************************************************************************
// Define if the TMP36 sensor is instaled
#define USE_TMP36       0          // 0= Not Instaled, 1= Intalled


// --------------------------------------------------------------------------------------
//   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 


// --------------------------------------------------------------------------------------
//   Debug
// --------------------------------------------------------------------------------------
//#define ENABLE_DEBUG 
//#define DEBUG_ID0   
//#define DEBUG_ID2   
//#define DEBUG_ID3   
//#define DEBUG_ID4   
//#define DEBUG_ID5   
//#define DEBUG_SLINTERFACE 
//#define EASYWEATHER_TEST  


// ---------------------------------------------------------------------------------------------------
//     End of user configurable options
// ---------------------------------------------------------------------------------------------------

RX Config.h:
Code:
// --------------------------------------------------------------------------------------
//  WeatherDuino Pro2 PLUS Receiver - Version: P2AT2560_RX_v8.2_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 URL for this weather station
//   This data is used list you in the WeatherDuino Online Weather Station Map
// --------------------------------------------------------------------------------------
const char* WeatherStation_Name = "Marne & Park";    // DON'T LEAVE EMPTY - Put here your Weather Station name or Location name
const char* WeatherStation_URL  = "";    // If you have an URL to your Meteo Website put it here (can be the WU URL). URL should start with http or https


// --------------------------------------------------------------------------------------
//   Define ID's for this weather station
// --------------------------------------------------------------------------------------
#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      39.22350    // Put here your Station latitude in degrees North (with up to 5 decimal places, don't use less than 3 decimal places)
#define LONGITUDE     -8.99650    // Put here your Station longitude in degrees - minus for West (with up to 5 decimal places, don't use less than 3 decimal places)
#define ELEVATION     124         // Put here your Station height above sea level in Meters (no decimal places)


// --------------------------------------------------------------------------------------
//   Define rules for Auto Summer Time Display, and clock adjustment
// --------------------------------------------------------------------------------------
// 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 NZDT = {"NZDT", Last, Sun, Nov, 2, 780}; //New Zealand Daylight Saving Time
TimeChangeRule NZST = {"NZST", First, Sun, Apr, 3, 720}; //New Zealand Standard Time, UTC + 12 hours

//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(NZDT, NZST);


// --------------------------------------------------------------------------------------
//   Define Interface Language
// --------------------------------------------------------------------------------------     
#include "_lang/en_GB.h"      // Change the language code according to your preference. Keep "_lang/" and the ".h" at the end
                              // Currently available languages: en_GB, fr_FR, de_DE, pt_PT, es_ES, cs_CZ, nl_NL, it_IT, pl_PL

// --------------------------------------------------------------------------------------
//   Define Roll Over Hour for Meteorological Day
// --------------------------------------------------------------------------------------
const byte MeteoDay_HStart = 0;    // Use values from 0 to 23


// --------------------------------------------------------------------------------------
//   Define TFT Display Backlight TimeOut
// --------------------------------------------------------------------------------------
#define SCREENSAVER_TIMEOUT  30    // Timeout for display backlight in minutes (1 to 255). 0 = Always ON 
#define USE_BIGCLOCK          1    // Instead of turn off TFT backlight, show a big clock screen. 0= No, 1= Yes


// --------------------------------------------------------------------------------------
//   Blink the colon on the TFT Top Clock (a precious waste of time, but some may like it!) 
//   This setting only has effect when the system is running in normal mode.
// --------------------------------------------------------------------------------------
#define BLINKCOLON      0    // 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 INSIDE_TH_SENSOR   0   // 0= BME280, 1= HTU21D, 2= SHT21, 3= SHT31


// --------------------------------------------------------------------------------------
//   Fine adjusts for Inside Temperature and Barometer
// --------------------------------------------------------------------------------------
const int   TemperaturaInt_offset =   0;   // Inside Temperature Fine Adjust in Tenths of Degree (-4 = -0,4ºC) 
const float pressure_offset       =   0;   // Pressure Fine Adjust in mB


// --------------------------------------------------------------------------------------
//   Define Wind Speed and Wind Gust resolution - Read carefully
// --------------------------------------------------------------------------------------
#define VP2_WIND_RESOLUTION     0    // 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 2 or 1 allows a better wind speed and gust resolution,
                                     // but also limits the maximum readings to 183.6 Km/h and 91.8 Km/h, respectively.
                                     // 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 WIND_SPIKECONTROL 1   // 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_SOURCE       0   // 0= Temp/Hum sensor connected to TX_Unit 0, 1= for TX_Unit 1, ..., 3 for Auriol RF Temp / Hum
// ---- Define the source of your Main Wind sensor
#define WIND_SOURCE     0   // 0= Wind instruments connected to TX_Unit 0, 1= for TX_Unit 1, ..., 3 for Auriol RF Wind Speed & Dir
// ---- Define the source of your main Rain Gauge
#define RAIN_SOURCE     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 Radiation sensor
#define SOLAR_SOURCE    9   // 0= Solar Radiation sensor connected to TX_Unit 0, 1= for TX_Unit1, ..., 9 for not used
// ---- Define the source of your main UV sensor
#define UV_SOURCE       9  // 0= UV sensor connected to TX_Unit 0, 1= for TX_Unit1, ..., 9 for not used


// --------------------------------------------------------------------------------------
//   Each TX unit can send data from two Temp / Hum sensors. 
//   Here you must define which one will be used as your main outside Temperature / Humidity Sensor
//   SENSOR_0 can be any of the supported I2C T/H sensors (SHT31, SHT21 or HTU21D), SENSOR_1 can be an SHT1x or DHT22
// --------------------------------------------------------------------------------------
#define MAINOUT_TH_SENSOR 0   // 0 for SENSOR_0, 1 for SENSOR_1 


// --------------------------------------------------------------------------------------
//   Define the type of your Solar Radiation sensor
// --------------------------------------------------------------------------------------
//                       1= Solar Cell "Pyranometer"
//                       2= Apogee SP-110 Pyranometer
//                       3= Reserved
//                       4= Apogee SQ-110: Photosynthetically Active Radiation Sensor (Support for this sensor is experimental)

#define SOLAR_SENSOR     2   


// --------------------------------------------------------------------------------------
//   Define the type of your UV sensor
// --------------------------------------------------------------------------------------
//                       1= UVM-30A
//                       2= VEML6075
//                       3= Reserved 
//                      20= Rika RK200-04 (MODBUS)

#define UV_SENSOR        1
const byte UV_Transmission = 65;    // UV Transmission percentage of UV sensor cover material. 


//---------------------------------------------------------
//    Enable / Disable getting Temperature / Humidity from WiFI sensors (Usually the local T/H sensor on Wireless Display units)
//---------------------------------------------------------
#define ENABLE_TH_FROM_WIFISENSORS     0                         // 1= Enable, 0= Disable
#define WIFISENSORS_WEBSERVER_PORT    80                         // Should be the same port defined as WebServer port on the WiFi Wireless Display units. 

                                                    // Example: "192.168.1.152"
const char* WIFIunit_address [][4]= { ""            // IP address of first WiFi sensor
                                    , ""            // IP address of second WiFi sensor
                                    , ""            // IP address of third WiFi sensor
                                    , ""            // IP address of fourth WiFi sensor                           
                                    };


// --------------------------------------------------------------------------------------
//   Extra Sensors 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 5 is for Temperature/Humidity from the Wireless Display units
// ---- Source 6 (Reserved)
// ---- Source 7 is for BIOS Sensor (Only Temperature is shown)
// ---- Source 8 is for Temperature/Humidity from the Air Quality Monitor
//
// ---- 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},{5,1},{5,0},{9,9},{9,9},{8,0} }
//               {0,1} - First extra sensor (ES0), will be sensor 1 from TX unit0
//               {1,1} - Second extra sensor (ES1), will be sensor 1 from TX unit1
//               {5,1} - Third extra sensor (ES2), will be T/H data from WiFi Sensor 1 (Wireless Display 1)
//               {5,0} - Fourth extra sensor (ES3), will be T/H data from WiFi Sensor 0 (Wireless Display 0)
//               {9,9} - Fifth extra sensor (ES4), not use - not mapped
//               {9,9} - Sixth extra sensor (ES5), not use - not mapped
//               {8,0} - Seventh extra sensor (ES6), will be Temperature / Humidity 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},{8,0} }


// --------------------------------------------------------------------------------------
//   Define personalized names for each Extra sensor. Attention, 8 chars maximum
// --------------------------------------------------------------------------------------
//                   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 = "";            // 8 chars max
const char ESname_7[] PROGMEM = "Dust TH";     // 8 chars max


// --------------------------------------------------------------------------------------
//   BIOS soil moisture sensor settings
// --------------------------------------------------------------------------------------
// ---- Please use the included BIOS_ID_Scanner sketch to find you BIOS Device ID
#define BIOS_SENSOR_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 SOIL_LEAF_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 = "1";        // 8 chars max
const char SSname_2[] PROGMEM = "2";        // 8 chars max 
const char SSname_3[] PROGMEM = "3";        // 8 chars max
const char SSname_4[] PROGMEM = "4";        // 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  // 1 or 2


// --------------------------------------------------------------------------------------
//   Define 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 };


// --------------------------------------------------------------------------------------
//   Broadcasting Data to Wireless Display Units
// --------------------------------------------------------------------------------------
#define BROADCAST_DATA       2          // 0= Disables Data Broadcast, 1= Broadcast by WiFi, 2= Broadcast by RF
#define UDP_BROADCAST_PORT   9889       // UDP broadcast port - must be the same defined on WiFi Wireless Display units.


// --------------------------------------------------------------------------------------
//   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      1   // 0= CumulusMX, 1= Any other (Cumulus 1, WeewX, Weather Display, etc.)


// --------------------------------------------------------------------------------------
//   Easyweather Mode output 
// --------------------------------------------------------------------------------------
#define EASYWEATHER_OUT  0   // 0= Disable (defaut) 1= Enable


// --------------------------------------------------------------------------------------
//   Enable / Disable WiFi connection
// --------------------------------------------------------------------------------------
#define ENABLE_INTERNET     1                        // 1= Enable Internet connection, 0= Disable


// --------------------------------------------------------------------------------------
//   Enable / Disable time sync with an NTP server
// --------------------------------------------------------------------------------------
#define ENABLE_NTP          1                        // 1= Enable Sync time with NTP servers, 0= Disable


// --------------------------------------------------------------------------------------
//   NTP Servers - Enable only one
// --------------------------------------------------------------------------------------  
#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


// --------------------------------------------------------------------------------------
//   Enable / Disable data transmission to Weather Wunderground
// --------------------------------------------------------------------------------------
#define ENABLE_WU_UPLOAD   0                         // 1= Enable upload to Wunderground, 0= Disable
#define WU_UPLOAD_INTEMP   0                         // 1= Enable upload of Inside Temperature / Humidity, 0= Disable
byte    WU_upload_period = 5;                        // Period in minutes between uploads to WU (Should be >= 3 minutes, if less defaults to 3 minutes) 


// --------------------------------------------------------------------------------------
//   Enable / Disable data transmission to ThingSpeak
// --------------------------------------------------------------------------------------
#define ENABLE_TS_UPLOAD          0                  // 1= Enable, 0= Disable


// --------------------------------------------------------------------------------------
//   Air Quality Monitor - Upload and insert data in a SQL table at your own server ----
//   Be sure you have already created the database and table. See AirQuality_LogToSQL.php script for info
// --------------------------------------------------------------------------------------
#define ENABLE_AQM_TO_MYSERVER    0                  // 1= Enable, 0= Disable


// --------------------------------------------------------------------------------------
//   Enable / Disable internal Web Server 
// --------------------------------------------------------------------------------------
#define ENABLE_WEBSERVER          0                  // 1= Enable 0= Disable
#define WEBSERVER_PORT           80                  // WebServer port (default 80) 


// --------------------------------------------------------------------------------------
//   Enable / Disable GPIO routines - General Purpose Input / Output ports
// --------------------------------------------------------------------------------------
#define USE_GPIO  0   // 0=Disable, 1= Enable


// --------------------------------------------------------------------------------------
//   Define display order of data screens on the TFT
//   Use sequentially numbers from 1 to 4.
// --------------------------------------------------------------------------------------
#define AirQuality_Data    1
#define TXinfo_Data        2
#define ExtraSensors_Data  3
#define SoilLeaf_Data      4


// --------------------------------------------------------------------------------------
//   Test Mode : Never run a live system in test mode 
// --------------------------------------------------------------------------------------
bool Test_Mode = false;    // false= Normal working mode, true= Test mode only (no logger, no usb connection)


// --------------------------------------------------------------------------------------
//   Erase the Data Logger Flash Memory on Factory Reset  
// --------------------------------------------------------------------------------------
#define ERASE_DATALOGGER   0    // 0= NO (default), 1= YES


// --------------------------------------------------------------------------------------
//   Transmitter Software Version 
// --------------------------------------------------------------------------------------
#define TX_SOFTWARE_VERSION  7    // Use main version number only (This setting affects VBat readings)
                                  // Hint: TX software versions released prior to Dec 2018 are all < 7 


// *************************************************************************************
//     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.

#define PCB_VERSION   20     // PCB version number, without the decimal point Ex: PCB v1.3 = 13 (integer number)


// --------------------------------------------------------------------------------------
//   Define your Display type
// --------------------------------------------------------------------------------------
#define DISPLAY_TYPE     3    // 1= LCD 20x4, 3= TFT 320x240 ILI9341


// --------------------------------------------------------------------------------------
//   Define Type of your Touch Panel (Applies only to PCB Versions >= 20)
// --------------------------------------------------------------------------------------
#define TOUCH_TYPE       1    // 3= Default Setting, 1= Setting for displays with the "Yellow Pins"


// --------------------------------------------------------------------------------------
//   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_ADDRESS      0x27   


// --------------------------------------------------------------------------------------
//   SHT31 I2C Address - Default address will work most of the times!
// --------------------------------------------------------------------------------------
#define SHT31_ADDRESS       0x44       // Default value is 0x44 which works with the majority of SHT31 modules, however some unusual modules use 0x45. Change if needed.


// --------------------------------------------------------------------------------------
//   Presure Sensor Address (no need to change)
// --------------------------------------------------------------------------------------
//#define BMP085_ADDRESS    0x77       // I2C address of BMP085 or BMP180


// --------------------------------------------------------------------------------------
//   Debug helper - Print debug messages to serial monitor. For testing purposes ONLY.
//
//   !!! NEVER LEAVE ANY OF THESE DEBUG FUNCTIONS ACTIVE WHEN THE STATION IS CONNECTED BY USB TO ANY WEATHER SOFTWARE !!! 
// --------------------------------------------------------------------------------------
#define PRINT_DEBUG_WIFI
#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_MYSERVER_UPLOAD
#define PRINT_DEBUG_VCHECK
#define PRINT_DEBUG_TCP_SERVER
#define PRINT_DEBUG_AURIOL
#define PRINT_DEBUG_BIOS
#define PRINT_DEBUG_RF_MESSAGES
#define PRINT_DEBUG_WIFI_SENSORS
#define PRINT_GENERALDEBUG

// ---------------------------------------------------------------------------------------------------
//     End of user configurable options
// ---------------------------------------------------------------------------------------------------

Other than allowing the defines for the debug routines, this is what I have been running so far.
Hi craigruaux,

Everything is right in both Config_Options.h files.
As you suggested, I also agree that the problem most probably is caused by a faulty TX or RX module. Without additional equipment (like an SDR pen) isn't easy to know which one is. The easier way is to replace both the TX and RX modules.
Have you checked if both TX and RX modules are 433Mhz versions? I know that it sounds stupid but sometimes happen that we order from sellers which sell 315MHz and 433Mhz versions and we or the seller swap the version.
Can you post some pictures of both modules?
(21-12-2019, 03:30)Werk_AG Wrote: [ -> ]Hi craigruaux,

Everything is right in both Config_Options.h files.
As you suggested, I also agree that the problem most probably is caused by a faulty TX or RX module. Without additional equipment (like an SDR pen) isn't easy to know which one is. The easier way is to replace both the TX and RX modules.
Have you checked if both TX and RX modules are 433Mhz versions? I know that it sounds stupid but sometimes happen that we order from sellers which sell 315MHz and 433Mhz versions and we or the seller swap the version.
Can you post some pictures of both modules?

I'm comfortable that they are both 433 Mhz modules, by virtue of the fact that they both have 433 printed on their resonators.  Getting them off is going to be a bit of a chore, I'm now regretting that they are not in sockets Confused .

I have a spare receiver module, I might put together a simple receiver to see if I can hear anything. If I a correct the data is in a 20 character string, right?

I also have one of the wireless display units, and I know they can receive via RF. Would they, in default configuration, receive from a TX unit in basically default configuration? Or do they rely on the relay transmission from the RX unit?  I have tried with the wireless display, but have not seen anything from it.
(21-12-2019, 04:50)craigruaux Wrote: [ -> ]I'm comfortable that they are both 433 Mhz modules, by virtue of the fact that they both have 433 printed on their resonators.  Getting them off is going to be a bit of a chore, I'm now regretting that they are not in sockets Confused .

I have a spare receiver module, I might put together a simple receiver to see if I can hear anything. If I a correct the data is in a 20 character string, right?

I also have one of the wireless display units, and I know they can receive via RF. Would they, in default configuration, receive from a TX unit in basically default configuration? Or do they rely on the relay transmission from the RX unit?  I have tried with the wireless display, but have not seen anything from it.

You had an excellent idea in trying to use your wireless display which you know is receiving RF data. Like
Indeed the Wireless Display unit only decodes data packets which are sent from the RX unit, but it also receive data packets sent from the TX units, this means it can be used for testing your transmitter. You just need to do three simple things:

1- Enable the PRINT_DEBUG_RX_MESSAGES in Config_Options.h
2- Set unit to work in RF mode
Code:
(#define RX_MODE 0             // 0= Receive data by RF, 1= Receive by WiFi)
3- Supposing you are using latest WeatherDuino Weather Display software (ESP8266_WD_v5.1-b003), go to line 56 and comment that line. Compile and upload.

Open the Serial Monitor and check if there is any output.
If nothing comes in in a minute or two, you will get a RED screen.


Quote:Getting them off is going to be a bit of a chore, I'm now regretting that they are not in sockets

If you have to remove any of the modules, and don't have a de-soldering gun at hand, I suggest cutting the module pins one by one as near the module as possible, and then weld the new module to the cutted pins. Isn't a beautiful way, but you don't risk to destroy the board.
(21-12-2019, 06:39)Werk_AG Wrote: [ -> ]
(21-12-2019, 04:50)craigruaux Wrote: [ -> ]I'm comfortable that they are both 433 Mhz modules, by virtue of the fact that they both have 433 printed on their resonators.  Getting them off is going to be a bit of a chore, I'm now regretting that they are not in sockets Confused .

I have a spare receiver module, I might put together a simple receiver to see if I can hear anything. If I a correct the data is in a 20 character string, right?

I also have one of the wireless display units, and I know they can receive via RF. Would they, in default configuration, receive from a TX unit in basically default configuration? Or do they rely on the relay transmission from the RX unit?  I have tried with the wireless display, but have not seen anything from it.

You had an excellent idea in trying to use your wireless display which you know is receiving RF data. Like
Indeed the Wireless Display unit only decodes data packets which are sent from the RX unit, but it also receive data packets sent from the TX units, this means it can be used for testing your transmitter. You just need to do three simple things:

1- Enable the PRINT_DEBUG_RX_MESSAGES in Config_Options.h
2- Set unit to work in RF mode
Code:
(#define RX_MODE 0 // 0= Receive data by RF, 1= Receive by WiFi)
3- Supposing you are using latest WeatherDuino Weather Display software (ESP8266_WD_v5.1-b003), go to line 56 and comment that line. Compile and upload.

Open the Serial Monitor and check if there is any output.
If nothing comes in in a minute or two, you will get a RED screen.
 
Quote:Getting them off is going to be a bit of a chore, I'm now regretting that they are not in sockets

If you have to remove any of the modules, and don't have a de-soldering gun at hand, I suggest cutting the module pins one by one as near the module as possible, and then weld the new module to the cutted pins. Isn't a beautiful way, but you don't risk to destroy the board.

Hi Werk,

Can you just confirm, you want line 56 of the RX routines commented:
 
Code:
  if (TX_Relay_ID != Relay_ID || PacketID < 127) return;

It makes sense, vs the other line 56's in the code in other tabs. Hard to see how commenting out the library for the BME280 would help  Big Grin
I'm making some progress here.
The wireless display board is not showing actual values, but the green circle in upper left is flashing in synchronicity with the TX led from the TX board, and I am seeing values like this output on serial monitor:
 
Code:
10:01:50.928 -> 10:01:50 - Station ID: A1 PacketID: 3 Full Message: A10003 C8 0 0 0

So I'm guessing it is the RX module on the receiver that is the issue.
(21-12-2019, 09:31)craigruaux Wrote: [ -> ]Hi Werk,

Can you just confirm, you want line 56 of the RX routines commented:
 
Code:
  if (TX_Relay_ID != Relay_ID || PacketID < 127) return;

It makes sense, vs the other line 56's in the code in other tabs. Hard to see how commenting out the library for the BME280 would help  Big Grin

Yes, is that line. Sorry for having forgot to mention line 56 in RX tab.

(21-12-2019, 22:04)craigruaux Wrote: [ -> ]I'm making some progress here.
The wireless display board is not showing actual values, but the green circle in upper left is flashing in synchronicity with the TX led from the TX board, and I am seeing values like this output on serial monitor:
 
Code:
10:01:50.928 -> 10:01:50 - Station ID: A1 PacketID: 3 Full Message: A10003 C8 0 0 0

So I'm guessing it is the RX module on the receiver that is the issue.

Indeed the TX unit is sending data. At least, you should had saw messages with PacketID 0, PacketID 2 and PacketID 3.

Based on this, I also guess that the issue may be the receiver module. Fortunately you said that have a spare RX module.
Before replacing the module, you may also check if there is continuity between the two points marked on the image with an arrow.

[attachment=2075]
Success!! Like Music

Replaced the original 433 MHz receiver module with my spare (in a socket this time ReadManual), and everything boots up and data is received correctly.

Yay!


Now I just need to make an aspirated shield, mount it all on the roof, make boxes for the receivers. Too easy  Dodgy
Pages: 1 2