Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. !TSM:FPAR:NO REPLY

!TSM:FPAR:NO REPLY

Scheduled Pinned Locked Moved Troubleshooting
13 Posts 6 Posters 6.1k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    gloob
    wrote on last edited by
    #2

    I think we both have the same problem:

    https://forum.mysensors.org/topic/6135/no-new-node-possible

    ร 1 Reply Last reply
    0
    • G gloob

      I think we both have the same problem:

      https://forum.mysensors.org/topic/6135/no-new-node-possible

      ร Offline
      ร Offline
      รอเรือ
      wrote on last edited by
      #3

      @gloob
      Thanks, I will follow Your thread. The problem looks similar.

      1 Reply Last reply
      0
      • ร Offline
        ร Offline
        รอเรือ
        wrote on last edited by
        #4

        My problem was caused by the fact that the radio was inserted into a socket. The 4.7uF stabilizing capacitor was put on the main board side of the socket. Moving the capacitor to the radio board or just soldering the radio to the main board (without using a socket) solved the problem. So, don't use a socket between the radio and the stabilizing capacitor.

        Another interesting thing is that by putting a finger onto the antenna also solved the problem. I could use that method for testing all my radios (using the socket) before permanently soldering them onto the main board.

        R 1 Reply Last reply
        1
        • ร รอเรือ

          My problem was caused by the fact that the radio was inserted into a socket. The 4.7uF stabilizing capacitor was put on the main board side of the socket. Moving the capacitor to the radio board or just soldering the radio to the main board (without using a socket) solved the problem. So, don't use a socket between the radio and the stabilizing capacitor.

          Another interesting thing is that by putting a finger onto the antenna also solved the problem. I could use that method for testing all my radios (using the socket) before permanently soldering them onto the main board.

          R Offline
          R Offline
          Reza
          wrote on last edited by Reza
          #5

          @รอเรือ
          use a 100uf capacitor for radio and use

          #define MY_RF24_PA_LEVEL RF24_PA_HIGH
          

          for gateway and nodes.
          this is not excellent but work better with little error

          1 Reply Last reply
          1
          • W Offline
            W Offline
            wokwon
            wrote on last edited by
            #6

            I had the same problem.

            For some reason I'd connected NRF_CE to Pin D4 instead of D9.

            Simply putting #define MY_RF24_CE_PIN 4 made all the problems go away but I lost a couple of days figuring that out. I assumed the radio was connected fine as it was talking to the gateway, it would just not ACK messages.

            The gateway would show:

            7222879 !TSF:MSG:SEND,0-0-6-6,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
            

            (Running 2.2.0.rc2)

            1 Reply Last reply
            1
            • alowhumA Offline
              alowhumA Offline
              alowhum
              Plugin Developer
              wrote on last edited by alowhum
              #7

              I fixed it by adding:

              #define MY_NODE_ID 11
              #define MY_PARENT_NODE_ID 0
              #define MY_PARENT_NODE_IS_STATIC
              

              I had been noticing that the gateway was overwriting old nodes that hadn't connected for a while. Oddly, I can see the following ID's in Domoticz:

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              123

              ร 1 Reply Last reply
              1
              • alowhumA Offline
                alowhumA Offline
                alowhum
                Plugin Developer
                wrote on last edited by
                #8

                And then fixed it some more by clearing the eeprom of my nodes. There's special sketch for that under examples.

                1 Reply Last reply
                0
                • alowhumA alowhum

                  I fixed it by adding:

                  #define MY_NODE_ID 11
                  #define MY_PARENT_NODE_ID 0
                  #define MY_PARENT_NODE_IS_STATIC
                  

                  I had been noticing that the gateway was overwriting old nodes that hadn't connected for a while. Oddly, I can see the following ID's in Domoticz:

                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  123

                  ร Offline
                  ร Offline
                  รอเรือ
                  wrote on last edited by รอเรือ
                  #9

                  @alowhum Thanks for that solution.

                  This is an old topic but I recently started to have these problems again.

                  From the debug output:

                  !TSM:FPAR:NO REPLY
                  

                  I've tried so many different capacitors without success. The funny thing is that if I touch the antenna, communication starts to work.

                  Then I tried

                  #define MY_PARENT_NODE_ID 0
                  #define MY_PARENT_NODE_IS_STATIC
                  

                  And now it works. I suspect this is not a case of bad radio clones. It's something else. That's my guess.

                  I use MySensors 2.3.0 on my node and on my gateway. I also have a repeater node, I believe it has MySensors version 2.2.0. (Arduino 1.8.5)

                  You guys who know a lot, does this sound like that I've got a problem with my repeater node? Do you have any suggestions how I can find out what's the cause of the issue?

                  Thanks!

                  EDIT: One day after: The solution above stopped to work for some reason. I sound like an idiot, don't I? I have been working many hours trying to figure out what's the cause. Today nothing seemed to work (If touching the antenna it works but I can't do that all the time.) Anyway, I desoldered the radio and put a new one in. No change. I removed the power regulator and fed the radio with 3v battery, no change. I desoldered the radio again and put a socket so I can switch radio easily. I measured that the socket cnnections on the PCB works. Suddenly it works quite well with most radios that I've tried. I get a few NACK occasionally on some of the radios. Soldering additional capacitors on top of the radio doesn't seem to improve anything. It works quite well now but I can't accept that the socket is the solution that makes the radios work.

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    Michał Kozak
                    wrote on last edited by
                    #10

                    Looks like I stared facing simillar issues

                    Logs from node (assembled on NewbiPCB) with 100uF cap.

                    111382 !TSM:FPAR:NO REPLY
                    111384 TSM:FPAR
                    111421 TSF:MSG:SEND,4-4-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                    113430 !TSM:FPAR:NO REPLY
                    113432 TSM:FPAR
                    113469 TSF:MSG:SEND,4-4-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                    115478 !TSM:FPAR:NO REPLY
                    115480 TSM:FPAR
                    115517 TSF:MSG:SEND,4-4-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                    117526 !TSM:FPAR:FAIL
                    117528 TSM:FAIL:CNT=7
                    117530 TSM:FAIL:DIS
                    117532 TSF:TDI:TSL
                    

                    Gateway

                    Sep 29 21:30:17 DEBUG !TSF:MSG:SEND,0-0-4-4,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
                    Sep 29 21:30:18 DEBUG TSF:MSG:READ,4-4-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
                    Sep 29 21:30:18 DEBUG TSF:MSG:BC
                    Sep 29 21:30:18 DEBUG TSF:MSG:FPAR REQ,ID=4
                    Sep 29 21:30:18 DEBUG TSF:CKU:OK,FCTRL
                    Sep 29 21:30:18 DEBUG TSF:MSG:GWL OK
                    Sep 29 21:30:19 DEBUG !TSF:MSG:SEND,0-0-4-4,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
                    Sep 29 21:30:20 DEBUG TSF:MSG:READ,4-4-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
                    Sep 29 21:30:20 DEBUG TSF:MSG:BC
                    Sep 29 21:30:20 DEBUG TSF:MSG:FPAR REQ,ID=4
                    Sep 29 21:30:20 DEBUG TSF:CKU:OK,FCTRL
                    Sep 29 21:30:20 DEBUG TSF:MSG:GWL OK
                    Sep 29 21:30:21 DEBUG !TSF:MSG:SEND,0-0-4-4,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
                    Sep 29 21:30:22 DEBUG TSF:MSG:READ,4-4-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
                    Sep 29 21:30:22 DEBUG TSF:MSG:BC
                    Sep 29 21:30:22 DEBUG TSF:MSG:FPAR REQ,ID=4
                    Sep 29 21:30:22 DEBUG TSF:CKU:OK,FCTRL
                    Sep 29 21:30:22 DEBUG TSF:MSG:GWL OK
                    Sep 29 21:30:23 DEBUG !TSF:MSG:SEND,0-0-4-4,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
                    

                    Today I'm on development branch. I switched from 2.3.0 which had simillar issues hoping the problem will be resolved.

                    My sketch which isn't clean because I'm experimenting, trying to find solution

                    #define MY_DEBUG
                    //#define MY_PASSIVE_NODE
                    #define MY_TRANSPORT_WAIT_READY_MS 1
                    #define MY_RADIO_NRF24
                    #define MY_NODE_ID 4
                    //#define MY_PARENT_NODE_ID 0
                    //#define MY_PARENT_NODE_IS_STATIC
                    //#define MY_RF24_PA_LEVEL RF24_PA_MAX
                    
                    #include <MySensors.h>
                    // MYSENSORS_LIBRARY_VERSION
                    
                    // https://github.com/finitespace/BME280
                    #include <BME280I2C.h>
                    
                    typedef struct BatteryStatus {
                      float voltage;
                      int level;
                    
                      BatteryStatus() {
                        voltage = 0;
                        level = 0;
                      }
                    } BatteryStatus;
                    
                    typedef struct Weather {
                      float temperature;
                      float humidity;
                      float baro;
                    
                      Weather() {
                        temperature = -127.0;
                        humidity = -127.0;
                        baro = -127.0;
                      }
                    } Weather;
                    
                    const uint32_t SLEEP_TIME = 15*60*1000ul;
                    const bool DEBUG = true;
                    const float VBAT_FULL = 2.8;
                    const float VBAT_EMPTY = 2.0;
                    const byte BATTERY_VOLTAGE_SENSOR_ID = 3;
                    const byte TEMPERATURE_SENSOR_ID = 1;
                    const byte HUMIDITY_SENSOR_ID = 2;
                    const byte BARO_SENSOR_ID = 4;
                    
                    // current sensors readings
                    BatteryStatus batteryStatus;
                    Weather weather;
                    
                    // define mysensors messages
                    MyMessage vbatMsg(BATTERY_VOLTAGE_SENSOR_ID, V_VOLTAGE);
                    MyMessage temperatureMsg(TEMPERATURE_SENSOR_ID, V_TEMP);
                    MyMessage humidityMsg(HUMIDITY_SENSOR_ID, V_HUM);
                    MyMessage baroMsg(BARO_SENSOR_ID, V_PRESSURE);
                    
                    // configure BME280 sensor
                    BME280I2C::Settings settings(
                       BME280::OSR_X1,
                       BME280::OSR_X1,
                       BME280::OSR_X1,
                       BME280::Mode_Forced,            // Forced sample.  After taking the measurement the chip goes back to sleep.
                       BME280::StandbyTime_1000ms,
                       BME280::Filter_Off,
                       BME280::SpiEnable_False,
                       0x76                            // I2C address. I2C specific.
                    );
                    
                    BME280I2C bme(settings);
                    BME280::TempUnit temperatureUnit(BME280::TempUnit_Celsius);
                    BME280::PresUnit baroUnit(BME280::PresUnit_hPa);
                    
                    void readBatteryStatus(BatteryStatus& batteryStatus) {
                      int val = analogRead(A0);
                      float voltage  = val * 0.0033464521;
                      int level;
                      if (voltage > VBAT_FULL) {
                        level = 100;
                      } else if (voltage < VBAT_EMPTY) {
                        level = 0;
                      } else {
                        level = (int) ((voltage - VBAT_EMPTY) * 100.0 / (VBAT_FULL - VBAT_EMPTY));
                      }
                      if (DEBUG) {
                        Serial.print("readBatteryStatus: ");
                        Serial.print("val=");
                        Serial.print(val);
                        Serial.print(", level=");
                        Serial.print(level);
                        Serial.print("%, ");
                        Serial.print("voltage=");
                        Serial.print(voltage);
                        Serial.print("V");
                        Serial.println();
                      }
                      batteryStatus.voltage = voltage;
                      batteryStatus.level = level;
                    }
                    
                    void readWeather(Weather& weather) {
                      bme.read(weather.baro, weather.temperature, weather.humidity, temperatureUnit, baroUnit);
                    
                      if (DEBUG) {
                        Serial.print("readWeather: ");
                        Serial.print("temperature=");
                        Serial.print(weather.temperature);
                        Serial.print("C");
                        Serial.print(", humidity=");
                        Serial.print(weather.humidity);
                        Serial.print("%");
                        Serial.print(", baro=");
                        Serial.print(weather.baro);
                        Serial.println("hPa");
                      }
                    }
                    
                    void send(Weather& weather) {
                      //send_hard(temperatureMsg.set(weather.temperature, 1));
                      //send_hard(humidityMsg.set(weather.humidity, 1));
                      //send_hard(baroMsg.set(weather.baro, 1));
                    }
                    
                    void send(BatteryStatus& batteryStatus) {
                      //send_hard(vbatMsg.set(batteryStatus.voltage, 2));
                      sendBatteryLevel(batteryStatus.level);
                    }
                    
                    void send_hard(MyMessage& msg) {
                      int retry = 5;
                      while (retry--) {
                        if (send(msg)) {
                          return;
                        }
                        Serial.println("RETRY");
                        wait(50); // TODO: Add some random value to send
                      }
                    }
                    
                    void setup() {
                      // configure analog pin and do the first read
                      // looks like first read always returns MAX value,
                      // subsequent reads seems to be accurate
                      analogReference(INTERNAL);
                      analogRead(A0);
                    
                      int bmeRetry = 10;
                      while(!bme.begin() && bmeRetry > 0)
                      {
                        Serial.println("Could not find BME280I2C sensor!");
                        delay(1000);
                        bmeRetry--;
                      }
                    }
                    
                    void presentation() {
                      sendSketchInfo("Weather", "1.0");
                      present(BATTERY_VOLTAGE_SENSOR_ID, S_MULTIMETER, "BAT/VOLTAGE");
                      present(BARO_SENSOR_ID, S_BARO, "BARO");
                      present(TEMPERATURE_SENSOR_ID, S_TEMP, "TEMPERATURE");
                      present(HUMIDITY_SENSOR_ID, S_HUM, "HUMIDITY");
                      Serial.println("mmmmmmm");
                    }
                    
                    void loop() {
                      readWeather(weather);
                      send(weather);
                    
                      readBatteryStatus(batteryStatus);
                      send(batteryStatus);
                    
                      if (DEBUG) {
                        Serial.print("batteryStatus.level=");
                        Serial.print(batteryStatus.level);
                        Serial.print("%, batteryStatus.voltage=");
                        Serial.print(batteryStatus.voltage);
                        Serial.println("V");
                        Serial.print("weather: ");
                        Serial.print("temperature=");
                        Serial.print(weather.temperature);
                        Serial.print("C");
                        Serial.print(", humidity=");
                        Serial.print(weather.humidity);
                        Serial.print("%");
                        Serial.print(", baro=");
                        Serial.print(weather.baro);
                        Serial.println("hPa");
                        Serial.println();
                      }
                    
                      if (DEBUG) {
                        wait(10*1000ul);
                      } else {
                        wait(SLEEP_TIME);
                      }
                    }
                    
                    1 Reply Last reply
                    0
                    • alowhumA Offline
                      alowhumA Offline
                      alowhum
                      Plugin Developer
                      wrote on last edited by
                      #11

                      Isn't this a bit rigorous? This makes it skip trying to make a connection after 1 millisecond?

                      #define MY_TRANSPORT_WAIT_READY_MS 1
                      
                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        Michał Kozak
                        wrote on last edited by
                        #12

                        @alowhum said in !TSM:FPAR:NO REPLY:

                        MY_TRANSPORT_WAIT_READY_MS

                        I must admit that now I'm in "experimenting mode" trying every idea and see whether it helps.
                        Maybe you are right but the default is 0ms (see MyConfig.h)

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          Michał Kozak
                          wrote on last edited by
                          #13

                          Hmmm.... today I managed to connect this node to gateway. I just rebooted gateway...

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          18

                          Online

                          11.7k

                          Users

                          11.2k

                          Topics

                          113.1k

                          Posts


                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • MySensors
                          • OpenHardware.io
                          • Categories
                          • Recent
                          • Tags
                          • Popular