TX Power increase after every transmission



  • Hello,
    My current Test Setup is:
    Arduino with RFM69HW and for now an SHT31 and BMP280
    Raspberry as MQTT Gateway and an Mosquitto Broker

    i want to add rain, wind later but for now im testing the basics.

    When i start the Arduino the TX Power is at 8 and increasing every transmission by one till 20 i noticed that by measuring power draw.
    Here my basic sketch:

    // Enable debug prints to serial monitor
    #define MY_DEBUG 
    
    #define MY_RADIO_RFM69
    #define MY_RFM69_NEW_DRIVER
    #define MY_IS_RFM69HW
    
    #define MY_NODE_ID 1
    
    #include <MySensors.h> 
    #include <Arduino.h>
    #include <Wire.h>
    #include <Adafruit_SHT31.h>
    #include <Adafruit_BMP280.h>
    
    Adafruit_SHT31 sht31 = Adafruit_SHT31();
    Adafruit_BMP280 bmp;
    
    unsigned long SLEEP_TIME = 10000;
    
    float altitude = 713.0;
    
    #define TEMP_CHILD_ID 0
    #define HUM_CHILD_ID 1
    #define BARO_CHILD_ID 2
    
    MyMessage temperatureMsg(TEMP_CHILD_ID, V_TEMP);
    MyMessage humidityMsg(HUM_CHILD_ID, V_HUM);
    MyMessage pressureMsg(BARO_CHILD_ID, V_PRESSURE);
    
    void setup() {
      if (!sht31.begin(0x44)) {   // Set to 0x45 for alternate i2c addr
        Serial.println("Couldn't find SHT31");
        while (1) delay(1);
      }
      if (!bmp.begin(0x76)) {
        Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
        while (1);
      }
      bmp.setSampling(Adafruit_BMP280::MODE_FORCED,     /* Operating Mode. */
                      Adafruit_BMP280::SAMPLING_X2,     /* Temp. oversampling */
                      Adafruit_BMP280::SAMPLING_X16,    /* Pressure oversampling */
                      Adafruit_BMP280::FILTER_X16,
                      Adafruit_BMP280::STANDBY_MS_500);
    }
    
    void presentation() {
      // Send the sketch version information to the gateway and Controller
      sendSketchInfo("SHT+BMP", "1.0");
      present(TEMP_CHILD_ID, S_TEMP);
      present(HUM_CHILD_ID, S_HUM);
      present(BARO_CHILD_ID, S_BARO);
    }
    
    void loop() {  
      float t = sht31.readTemperature();
      float h = sht31.readHumidity();
      float p = bmp.readPressure();
      float pSL = (((p)/pow((1-((float)(altitude))/44330), 5.255))/100.0);
      send(temperatureMsg.set(t, 2));
      send(pressureMsg.set(pSL, 2));
      send(humidityMsg.set(h, 2));
      int txPower = RFM69_getTxPowerLevel();
      Serial.println(txPower);
      sleep(SLEEP_TIME);
    }
    

    Any ideas?
    Thanks


  • Mod

    Welcome to the forum @steven987

    The debug output (from the node and the gateway) will be the quickest and easiest way to find out. Post them here and we'll help you interpret them.



  • Debug from the Node the number inbetween is from RFM69_getTxPowerLevel();
    https://pastebin.com/ndqnrVqb

    And here from Gateway
    https://pastebin.com/kLS7EiKy


  • Mod

    @steven987 interesting. It looks like communication is working well all the time (no st=FAIL), but power is increased all the time.

    Could you add

    #define 	MY_DEBUG_VERBOSE_RFM69
    

    at the top of the node sketch? It will give more detailed information on the rfm radio.



  • Here with verbose
    https://pastebin.com/x8aaC429

    Looks like ATC is enabled but i heavent defined it anywhere?
    ATC on raspberry Gateway isnt working if i have read this correct
    https://forum.mysensors.org/topic/9796/rfm69-atc-not-working


  • Mod

    @steven987 yes atc is on by default. It can be disabled by defining MY_RFM69_ATC_MODE_DISABLED


 

158
Online

8.8k
Users

9.6k
Topics

100.3k
Posts