Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. thedutch
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    thedutch

    @thedutch

    1
    Reputation
    5
    Posts
    2
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    thedutch Follow

    Best posts made by thedutch

    • RE: Using NRF24L01 with Arduino MKRZero

      For future reference,

      I was checking the myconfig.h file and found some variable definition regarding the NRF24 radio.

      There were two variables referencing the CE and CS pin.

      /**
       * @def MY_RF24_CE_PIN
       * @brief Define this to change the chip enable pin from the default.
       */
      #ifndef MY_RF24_CE_PIN
      #define MY_RF24_CE_PIN (DEFAULT_RF24_CE_PIN)
      #endif
      
      /**
       * @def MY_RF24_CS_PIN
       * @brief Define this to change the chip select pin from the default.
       */
      #ifndef MY_RF24_CS_PIN
      #define MY_RF24_CS_PIN (DEFAULT_RF24_CS_PIN)
      #endif
      
      

      I have set these two variables in my sketch for my MRKZERO and got the radio working.

      Problem Solved 👍

      posted in Hardware
      thedutch
      thedutch

    Latest posts made by thedutch

    • RE: [SOLVED] Node receives relais activation even without active controler

      Solved the re-connection problem by giving the MQTT broker a different and seperate IP-address, it was running on unraid´s main IP-address.

      Now testing for repeating relay activation, keeping fingers crossed.

      @Yveaux thx for your help.

      posted in Troubleshooting
      thedutch
      thedutch
    • [SOLVED] Node receives relais activation even without active controler

      Hi All,

      This is bugging me for days now and i cant find a source.

      This node measures temp and has a relais to reboot the connected device if it hangs or goes off-line.

      But the relais gets activated about every minute because the node receives a command to activate the relais.
      I can not figure out where that command is coming from.

      I even tried running without a active controler (Home-assistant) but still the relais gets activated.

      I use a MQTT gateway on a Arduino Uno with NRF24 radio and ethernet to the network.

      I use Mosquitto, in a docker on unraid, as the broker.

      below is the sketch i have build, tried several other sketches, same result. And the serial output from my gateway and node.

      I hope there is someone who can help me getting this node working right.

      /*
       * MySensors Custom Door/Window Sensor, with temperature sensor
       * and battery level reporting Version 2.2
       * 
       * D.B******* 7/13/2018
       * 
       * Version 1 - Initial concept code
       * Version 2 - adds Temp/humidity/ and battery monintoring
       * 
       * The Mysensors libraries will handle all the radio protocols 
       * and create the network.
       * 
       * DO NOT USE REPEATER MODE if this is battery powered
       * 
       * Connect one button or door/window reed switch between
       * digital I/O pin 3 (BUTTON_PIN below) and GND and the other
       * one in similar fashion on digital I/O pin 2.
       * This example is designed to fit Arduino Nano/Pro Mini
       */
      
      //Enble serial monitoring
      #define MY_DEBUG
      #define MY_MSG
      
       //Enable radio (Im using NRLF24A)
      #define MY_RADIO_NRF24
      
      // Set manual node ID
      #define MY_NODE_ID 23
      
       // Set blinking period
      #define MY_DEFAULT_LED_BLINK_PERIOD 300
      
      // Inverses the behavior of leds
      #define MY_WITH_LEDS_BLINKING_INVERSE
      
      // Flash leds on rx/tx/err
      // Uncomment to override default HW configurations
      //#define MY_DEFAULT_TX_LED_PIN 6  // tramsmit led pin
      
      #include <MyConfig.h>
      #include <MySensors.h>
      #include <OneWire.h>
      #include <DallasTemperature.h>
      
      #define SKETCH_NAME "Anova"
      #define SKETCH_VERSION "2.0"
      
      // Add child IDs
      #define CHILD_ID_TEMP 1
      #define CHILD_ID_RELAY 2
      
      
      //==================================================
      // RELAY - SETUP
      //==================================================
      #define RELAY_PIN 2                   // Digital I/O pin number for the relay
      #define RELAY_ON 1                    // GPIO value to write to turn on attached relay
      #define RELAY_OFF 0                   // GPIO value to write to turn off attached relay
      #define RELAY_DELAY 3000              // Time relay stays ON
      
      //==================================================
      // TEMPERATURE SENSOR - SETUP
      //==================================================
      #define ONE_WIRE_BUS 5                // Pin where dallase sensor is connected 
      #define MAX_ATTACHED_DS18B20 16       // Maximun number of atachable temperature sensors
      #define NUM_TEMP_SENS 1               // Number of attached temperature sensors
      #define COMPARE_TEMP 1                // Send temperature only if changed? 1 = Yes 0 = No
      // Sensor 1
      float curTemp = 0;
      float lastTemp = 0;
      float OffsetTemp = 0;                 // allows for small corrections to sensor innacuracies
      
      OneWire oneWire(ONE_WIRE_BUS);        // Setup a oneWire instance to communicate with any OneWire devices
      DallasTemperature sensors(&oneWire);  // Pass the oneWire reference to Dallas Temperature.
      
      
      //==================================================
      // GENERAL PROCESSING SETTING
      //==================================================
      bool curState = false;
      bool newState = false;
      bool initialValueSent = false;
      
      unsigned long SLEEP_TIME = 15 * 1000;                      // Sleep time in sec
      
      const int audioOut = 3;        // (Digital 2) for using the peizo as an output device. (Thing that goes beep.)
      
      MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
      MyMessage msgRelay(CHILD_ID_RELAY, V_STATUS);
      
      void before()
      {
        // Startup up the OneWire library
        sensors.begin();
      }
      
      
      void setup() 
      {
        // requestTemperatures() will not block current thread
        sensors.setWaitForConversion(false);
        // Set relay pins in output mode, and turn relay OFF 
        pinMode(RELAY_PIN, OUTPUT);
        // Set relay to OFF)
        digitalWrite(RELAY_PIN, RELAY_OFF);
        curState = RELAY_OFF;
        initialValueSent = false;
      }
      
      
      void presentation()
      {
        sendSketchInfo(SKETCH_NAME, SKETCH_VERSION);
        present(CHILD_ID_TEMP, S_TEMP, "Temperature");
        present(CHILD_ID_RELAY, S_BINARY, "Relay");
      }
      
      
      void loop() 
      {
      /*
      *================================================== 
      * This is the MAIN program loop 
      *================================================== 
      */
        debugMsg("Loop - Start");
      
        if (!initialValueSent) {
          debugMsg("Sending initial value");
          send(msgRelay.set(curState?RELAY_ON:RELAY_OFF));
          debugMsg("Requesting initial value from controller");
          request(CHILD_ID_RELAY, V_STATUS);
          //wait(2000, C_SET, V_STATUS);
        }
      
        debugMsg("curState / newState - " + String(curState) + " / " + String(newState));
      
        if (newState != curState) {
          curState = RELAY_ON;
          digitalWrite(RELAY_PIN, curState);
          send(msgRelay.set(curState));
          wait(RELAY_DELAY);
          curState = RELAY_OFF;
          digitalWrite(RELAY_PIN, RELAY_OFF);
          send(msgRelay.set(curState));
          newState=curState;
        }
        
        //==================================================
        // Read temp sensor and send them to controller
        //==================================================
        sensors.requestTemperatures();
        // query conversion time and sleep until conversion completed
        int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
        //debugMsg("conversionTime: " + String(conversionTime) + " mSec");
        wait(conversionTime);
        // Fetch and round temperature to one decimal
        curTemp = static_cast<float>(static_cast<int>((sensors.getTempCByIndex(0)) * 10.)) / 10.;  
        // Only send data if temperature sensor has changed and no error
        if (curTemp!= lastTemp) {  
          debugMsg("Sending: Temerature: "+ String(curTemp));
          send(msgTemp.set(curTemp,1));
          lastTemp = curTemp;
        }
      
        //==================================================
        // Sleep until something happens with the sensor
        //==================================================
        debugMsg("Sleep - Start");
        wait(SLEEP_TIME);
      }
      
      
      void receive(const MyMessage &message) {
        debugMsg("Received: type / payload / ack : " + String(message.type) + " / " + String(message.getInt()) + " / " + String(message.isAck()));
        if (message.isAck()) {
           debugMsg("This is an ack from gateway");
        }
      
        if (message.type == V_STATUS) {
          if (!initialValueSent) {
            debugMsg("Receiving initial value from controller");
            initialValueSent = true;
            curState = (bool)message.getInt();
          }
          // Change relay state
          chirp(500, 1000);
          chirp(500, 1500);
          newState = (bool)message.getInt();
          if (newState == RELAY_ON) {
            debugMsg("Changing relay state to: ON");
          }
        }
      }
      
      
      
      
      /* 
      *==================================================
      *
      *  Room for various FUNCTIONS  
      *  
      *==================================================
      */
      
      //=========================
      // Send Debug message - FUNCTION
      //=========================
      void debugMsg(String message)
      {
        #ifdef MY_MSG
          Serial.println(message);
        #endif
      }
      
      //=========================
      // Plays a non-musical tone on the piezo.
      // playTime = milliseconds to play the tone
      // delayTime = time in microseconds between ticks. (smaller=higher pitch tone.)
      //=========================
      void chirp(int playTime, int delayTime)
      {
        long loopTime = (playTime * 1000L) / delayTime;
        pinMode(audioOut, OUTPUT);
        for(int i=0; i < loopTime; i++) {
          digitalWrite(audioOut, HIGH);
          delayMicroseconds(delayTime);
          digitalWrite(audioOut, LOW);
        }
        pinMode(audioOut, INPUT);
      }
      

      This is the serial output of my MQTT Gateway

      11:49:45.192 -> 0 MCO:BGN:INIT GW,CP=RNNGA---,FQ=16,REL=255,VER=2.3.2
      11:49:45.192 -> 4 MCO:BGN:BFR
      11:49:45.192 -> 6 TSM:INIT
      11:49:45.192 -> 7 TSF:WUR:MS=0
      11:49:45.192 -> 13 TSM:INIT:TSP OK
      11:49:45.192 -> 15 TSM:INIT:GW MODE
      11:49:45.192 -> 16 TSM:READY:ID=0,PAR=0,DIS=0
      11:49:45.230 -> 19 MCO:REG:NOT NEEDED
      11:49:49.894 -> 4698 GWT:TPC:IP=192.168.28.111
      11:49:50.921 -> 5701 MCO:BGN:STP
      11:49:50.921 -> 5702 MCO:BGN:INIT OK,TSP=1
      11:49:51.029 -> 5814 GWT:TPC:IP=192.168.28.111
      11:49:52.021 -> 6816 GWT:RMQ:CONNECTING...
      11:49:52.021 -> 6821 GWT:RMQ:OK
      11:49:52.021 -> 6823 GWT:TPS:TOPIC=mysgw-out/0/255/0/0/18,MSG SENT
      11:49:52.021 -> 6829 TSM:READY:NWD REQ
      11:49:52.021 -> 6834 ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      11:49:52.054 -> 6841 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:0
      11:49:52.054 -> 6846 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:49:52.054 -> 6852 GWT:IMQ:TOPIC=mysgw-in/23/255/3/0/6, MSG RECEIVED
      11:49:52.054 -> 6859 TSF:MSG:SEND,0-0-23-23,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=OK:M
      11:49:52.054 -> 6866 GWT:IMQ:TOPIC=mysgw-in/23/2/1/0/2, MSG RECEIVED
      11:49:52.089 -> 6874 TSF:MSG:SEND,0-0-23-23,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:0
      11:49:52.089 -> 6881 GWT:IMQ:TOPIC=mysgw-in/23/2/1/1/2, MSG RECEIVED
      11:49:52.089 -> 6887 TSF:MSG:SEND,0-0-23-23,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:1
      11:49:52.089 -> 6895 GWT:IMQ:TOPIC=mysgw-in/31/255/3/0/6, MSG RECEIVED
      11:49:52.122 -> 6935 !TSF:MSG:SEND,0-0-31-31,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=NACK:M
      11:49:52.158 -> 6943 GWT:IMQ:TOPIC=mysgw-in/31/2/1/1/2, MSG RECEIVED
      11:49:52.192 -> 6983 !TSF:MSG:SEND,0-0-31-31,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=NACK:1
      11:49:53.123 -> 7914 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=0,l=1,sg=0:1
      11:49:53.123 -> 7919 TSF:MSG:ECHO
      11:49:53.123 -> 7921 GWT:TPS:TOPIC=mysgw-out/23/2/1/1/2,MSG SENT
      11:50:02.263 -> 17032 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:1
      11:50:02.263 -> 17037 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:50:05.254 -> 20047 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:0
      11:50:05.287 -> 20052 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:50:11.877 -> 26659 TSF:MSG:READ,23-23-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
      11:50:11.915 -> 26665 TSF:MSG:BC
      11:50:11.915 -> 26667 TSF:MSG:FPAR REQ,ID=23
      11:50:11.915 -> 26670 TSF:PNG:SEND,TO=0
      11:50:11.915 -> 26672 TSF:CKU:OK
      11:50:11.915 -> 26674 TSF:MSG:GWL OK
      11:50:11.953 -> 26729 TSF:MSG:SEND,0-0-23-23,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=OK:0
      11:50:13.906 -> 28682 TSF:MSG:READ,23-23-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
      <<< I DID RESTART NODE 23 HERE >>>
      11:50:13.906 -> 28687 TSF:MSG:PINGED,ID=23,HP=1
      11:50:13.939 -> 28692 TSF:MSG:SEND,0-0-23-23,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=OK:1
      11:50:13.939 -> 28707 TSF:MSG:READ,23-23-0,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      11:50:13.939 -> 28715 TSF:MSG:SEND,0-0-23-23,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
      11:50:13.972 -> 28724 TSF:MSG:READ,23-23-0,s=255,c=0,t=17,pt=0,l=5,sg=0:2.3.2
      11:50:13.972 -> 28730 GWT:TPS:TOPIC=mysgw-out/23/255/0/0/17,MSG SENT
      11:50:13.972 -> 28735 TSF:MSG:READ,23-23-0,s=255,c=3,t=6,pt=1,l=1,sg=0:0
      11:50:13.972 -> 28741 GWT:TPS:TOPIC=mysgw-out/23/255/3/0/6,MSG SENT
      11:50:15.969 -> 30748 TSF:MSG:READ,23-23-0,s=255,c=3,t=11,pt=0,l=5,sg=0:Anova
      11:50:16.005 -> 30754 GWT:TPS:TOPIC=mysgw-out/23/255/3/0/11,MSG SENT
      11:50:16.005 -> 30759 TSF:MSG:READ,23-23-0,s=255,c=3,t=12,pt=0,l=3,sg=0:2.0
      11:50:16.005 -> 30766 GWT:TPS:TOPIC=mysgw-out/23/255/3/0/12,MSG SENT
      11:50:16.005 -> 30771 TSF:MSG:READ,23-23-0,s=1,c=0,t=6,pt=0,l=11,sg=0:Temperature
      11:50:16.005 -> 30777 GWT:TPS:TOPIC=mysgw-out/23/1/0/0/6,MSG SENT
      11:50:16.005 -> 30782 TSF:MSG:READ,23-23-0,s=2,c=0,t=3,pt=0,l=5,sg=0:Relay
      11:50:16.043 -> 30788 GWT:TPS:TOPIC=mysgw-out/23/2/0/0/3,MSG SENT
      11:50:16.043 -> 30793 TSF:MSG:READ,23-23-0,s=255,c=3,t=26,pt=1,l=1,sg=0:2
      11:50:16.043 -> 30800 TSF:MSG:SEND,0-0-23-23,s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=OK:1
      11:50:16.043 -> 30816 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=2,l=2,sg=0:0
      11:50:16.043 -> 30821 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:50:16.081 -> 30826 TSF:MSG:READ,23-23-0,s=2,c=2,t=2,pt=0,l=0,sg=0:
      11:50:16.081 -> 30831 GWT:TPS:TOPIC=mysgw-out/23/2/2/0/2,MSG SENT
      11:50:16.188 -> 30936 TSF:MSG:READ,23-23-0,s=1,c=1,t=0,pt=7,l=5,sg=0:-127.0
      11:50:16.188 -> 30941 GWT:TPS:TOPIC=mysgw-out/23/1/1/0/0,MSG SENT
      11:50:31.227 -> 45982 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=2,l=2,sg=0:0
      11:50:31.264 -> 45988 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:50:31.264 -> 45992 TSF:MSG:READ,23-23-0,s=2,c=2,t=2,pt=0,l=0,sg=0:
      11:50:31.264 -> 45998 GWT:TPS:TOPIC=mysgw-out/23/2/2/0/2,MSG SENT
      11:51:10.160 -> 84851 GWT:TPC:IP=192.168.28.111
      11:51:11.161 -> 85855 GWT:RMQ:CONNECTING...
      11:51:11.199 -> 85860 GWT:RMQ:OK
      11:51:11.199 -> 85862 GWT:TPS:TOPIC=mysgw-out/0/255/0/0/18,MSG SENT
      11:51:11.199 -> 85867 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=2,l=2,sg=0:0
      11:51:11.199 -> 85872 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:51:11.199 -> 85877 TSF:MSG:READ,23-23-0,s=2,c=2,t=2,pt=0,l=0,sg=0:
      11:51:11.199 -> 85882 GWT:TPS:TOPIC=mysgw-out/23/2/2/0/2,MSG SENT
      11:51:11.199 -> 85888 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=2,l=2,sg=0:0
      11:51:11.199 -> 85893 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:51:11.235 -> 85900 GWT:IMQ:TOPIC=mysgw-in/23/255/3/0/6, MSG RECEIVED
      11:51:11.235 -> 85906 TSF:MSG:SEND,0-0-23-23,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=OK:M
      11:51:11.235 -> 85914 GWT:IMQ:TOPIC=mysgw-in/23/2/1/0/2, MSG RECEIVED
      11:51:11.235 -> 85920 TSF:MSG:SEND,0-0-23-23,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:0
      11:51:11.235 -> 85928 GWT:IMQ:TOPIC=mysgw-in/23/2/1/1/2, MSG RECEIVED
      11:51:11.272 -> 85935 TSF:MSG:SEND,0-0-23-23,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:1
      11:51:11.272 -> 85942 GWT:IMQ:TOPIC=mysgw-in/31/255/3/0/6, MSG RECEIVED
      11:51:11.307 -> 85983 !TSF:MSG:SEND,0-0-31-31,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=NACK:M
      11:51:11.307 -> 85991 GWT:IMQ:TOPIC=mysgw-in/31/2/1/1/2, MSG RECEIVED
      11:51:11.342 -> 86032 !TSF:MSG:SEND,0-0-31-31,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=NACK:1
      11:51:12.294 -> 86963 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=0,l=1,sg=0:1
      11:51:12.294 -> 86968 TSF:MSG:ECHO
      11:51:12.294 -> 86970 GWT:TPS:TOPIC=mysgw-out/23/2/1/1/2,MSG SENT
      11:51:16.807 -> 91473 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:1
      11:51:16.807 -> 91479 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:51:19.821 -> 94490 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:0
      11:51:19.821 -> 94495 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:52:38.781 -> 163580 GWT:TPC:IP=192.168.28.111
      11:52:38.781 -> 164583 GWT:RMQ:CONNECTING...
      11:52:38.781 -> 164588 GWT:RMQ:OK
      11:52:38.781 -> 164590 GWT:TPS:TOPIC=mysgw-out/0/255/0/0/18,MSG SENT
      11:52:38.781 -> 164598 GWT:IMQ:TOPIC=mysgw-in/23/255/3/0/6, MSG RECEIVED
      11:52:38.781 -> 164605 TSF:MSG:SEND,0-0-23-23,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=OK:M
      11:52:38.781 -> 164614 GWT:IMQ:TOPIC=mysgw-in/23/2/1/0/2, MSG RECEIVED
      11:52:38.781 -> 164620 TSF:MSG:SEND,0-0-23-23,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:0
      11:52:38.781 -> 164628 GWT:IMQ:TOPIC=mysgw-in/23/2/1/1/2, MSG RECEIVED
      11:52:38.781 -> 164634 TSF:MSG:SEND,0-0-23-23,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:1
      11:52:38.781 -> 164642 GWT:IMQ:TOPIC=mysgw-in/31/255/3/0/6, MSG RECEIVED
      11:52:38.781 -> 164683 !TSF:MSG:SEND,0-0-31-31,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=NACK:M
      11:52:38.781 -> 164691 GWT:IMQ:TOPIC=mysgw-in/31/2/1/1/2, MSG RECEIVED
      11:52:38.781 -> 164731 !TSF:MSG:SEND,0-0-31-31,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=NACK:1
      11:52:38.781 -> 165661 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=0,l=1,sg=0:1
      11:52:38.781 -> 165666 TSF:MSG:ECHO
      11:52:38.781 -> 165668 GWT:TPS:TOPIC=mysgw-out/23/2/1/1/2,MSG SENT
      11:52:38.781 -> 170158 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:1
      11:52:38.781 -> 170163 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:52:38.781 -> 173173 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:0
      11:52:38.814 -> 173178 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:53:48.684 -> 242311 GWT:TPC:IP=192.168.28.111
      11:53:48.861 -> 243313 GWT:RMQ:CONNECTING...
      11:53:48.861 -> 243318 GWT:RMQ:OK
      11:53:48.897 -> 243320 GWT:TPS:TOPIC=mysgw-out/0/255/0/0/18,MSG SENT
      11:53:48.897 -> 243329 GWT:IMQ:TOPIC=mysgw-in/23/255/3/0/6, MSG RECEIVED
      11:53:48.897 -> 243338 TSF:MSG:SEND,0-0-23-23,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=OK:M
      11:53:48.897 -> 243345 GWT:IMQ:TOPIC=mysgw-in/23/2/1/0/2, MSG RECEIVED
      11:53:48.897 -> 243352 TSF:MSG:SEND,0-0-23-23,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:0
      11:53:48.932 -> 243359 GWT:IMQ:TOPIC=mysgw-in/23/2/1/1/2, MSG RECEIVED
      11:53:48.932 -> 243373 TSF:MSG:SEND,0-0-23-23,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:1
      11:53:48.932 -> 243381 GWT:IMQ:TOPIC=mysgw-in/31/255/3/0/6, MSG RECEIVED
      11:53:48.968 -> 243422 !TSF:MSG:SEND,0-0-31-31,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=NACK:M
      11:53:49.003 -> 243430 GWT:IMQ:TOPIC=mysgw-in/31/2/1/1/2, MSG RECEIVED
      11:53:49.040 -> 243470 !TSF:MSG:SEND,0-0-31-31,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=NACK:1
      11:53:49.966 -> 244392 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=0,l=1,sg=0:1
      11:53:49.966 -> 244398 TSF:MSG:ECHO
      11:53:49.966 -> 244400 GWT:TPS:TOPIC=mysgw-out/23/2/1/1/2,MSG SENT
      11:53:54.413 -> 248843 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:1
      11:53:54.413 -> 248848 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      11:53:57.431 -> 251873 TSF:MSG:READ,23-23-0,s=2,c=1,t=2,pt=1,l=1,sg=0:0
      11:53:57.465 -> 251878 GWT:TPS:TOPIC=mysgw-out/23/2/1/0/2,MSG SENT
      

      This is the serial output of my node

      11:56:52.249 ->  
      11:56:52.249 ->  __  __       ____
      11:56:52.249 -> |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
      11:56:52.249 -> | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
      11:56:52.249 -> | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
      11:56:52.249 -> |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
      11:56:52.249 ->         |___/                      2.3.2
      11:56:52.249 -> 
      11:56:52.249 -> 16 MCO:BGN:INIT NODE,CP=RNNNA---,FQ=8,REL=255,VER=2.3.2
      11:56:52.285 -> 28 MCO:BGN:BFR
      11:56:52.285 -> 30 TSM:INIT
      11:56:52.285 -> 32 TSF:WUR:MS=0
      11:56:52.285 -> 38 TSM:INIT:TSP OK
      11:56:52.285 -> 40 TSM:INIT:STATID=23
      11:56:52.285 -> 43 TSF:SID:OK,ID=23
      11:56:52.285 -> 45 TSM:FPAR
      11:56:52.285 -> 49 ?TSF:MSG:SEND,23-23-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
      11:56:54.288 -> 2058 !TSM:FPAR:NO REPLY
      11:56:54.288 -> 2060 TSM:FPAR
      11:56:54.324 -> 2064 ?TSF:MSG:SEND,23-23-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
      11:56:54.776 -> 2533 TSF:MSG:READ,0-0-23,s=255,c=3,t=8,pt=1,l=1,sg=0:0
      11:56:54.776 -> 2539 TSF:MSG:FPAR OK,ID=0,D=1
      11:56:56.331 -> 4073 TSM:FPAR:OK
      11:56:56.331 -> 4073 TSM:ID
      11:56:56.331 -> 4075 TSM:ID:OK
      11:56:56.331 -> 4077 TSM:UPL
      11:56:56.331 -> 4081 TSF:MSG:SEND,23-23-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
      11:56:56.331 -> 4089 TSF:MSG:READ,0-0-23,s=255,c=3,t=25,pt=1,l=1,sg=0:1
      11:56:56.331 -> 4096 TSF:MSG:PONG RECV,HP=1
      11:56:56.364 -> 4100 TSM:UPL:OK
      11:56:56.364 -> 4102 TSM:READY:ID=23,PAR=0,DIS=1
      11:56:56.364 -> 4106 TSF:MSG:SEND,23-23-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
      11:56:56.364 -> 4114 TSF:MSG:READ,0-0-23,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      11:56:56.364 -> 4122 TSF:MSG:SEND,23-23-0-0,s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=OK:2.3.2
      11:56:56.399 -> 4132 TSF:MSG:SEND,23-23-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
      11:56:58.414 -> 6141 TSF:MSG:SEND,23-23-0-0,s=255,c=3,t=11,pt=0,l=5,sg=0,ft=0,st=OK:Anova
      11:56:58.414 -> 6152 TSF:MSG:SEND,23-23-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:2.0
      11:56:58.414 -> 6162 TSF:MSG:SEND,23-23-0-0,s=1,c=0,t=6,pt=0,l=11,sg=0,ft=0,st=OK:Temperature
      11:56:58.451 -> 6174 TSF:MSG:SEND,23-23-0-0,s=2,c=0,t=3,pt=0,l=5,sg=0,ft=0,st=OK:Relay
      11:56:58.451 -> 6180 MCO:REG:REQ
      11:56:58.451 -> 6184 TSF:MSG:SEND,23-23-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
      11:56:58.451 -> 6195 TSF:MSG:READ,0-0-23,s=255,c=3,t=27,pt=1,l=1,sg=0:1
      11:56:58.451 -> 6201 MCO:PIM:NODE REG=1
      11:56:58.451 -> 6203 MCO:BGN:STP
      11:56:58.451 -> 6205 MCO:BGN:INIT OK,TSP=1
      11:56:58.489 -> Loop - Start
      11:56:58.489 -> Sending initial value
      11:56:58.489 -> 6211 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=2,l=2,sg=0,ft=0,st=OK:0
      11:56:58.489 -> Requesting initial value from controller
      11:56:58.489 -> 6221 TSF:MSG:SEND,23-23-0-0,s=2,c=2,t=2,pt=0,l=0,sg=0,ft=0,st=OK:
      11:56:58.489 -> curState / newState - 0 / 0
      11:56:58.589 -> Sending: Temerature: -127.00
      11:56:58.589 -> 6330 TSF:MSG:SEND,23-23-0-0,s=1,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=OK:-127.0
      11:56:58.589 -> Sleep - Start
      11:57:13.672 -> Loop - Start
      11:57:13.672 -> Sending initial value
      11:57:13.672 -> 21340 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=2,l=2,sg=0,ft=0,st=OK:0
      11:57:13.672 -> Requesting initial value from controller
      11:57:13.672 -> 21350 TSF:MSG:SEND,23-23-0-0,s=2,c=2,t=2,pt=0,l=0,sg=0,ft=0,st=OK:
      11:57:13.672 -> curState / newState - 0 / 0
      11:57:13.781 -> Sleep - Start
      11:57:28.841 -> Loop - Start
      11:57:28.841 -> Sending initial value
      11:57:28.841 -> 36456 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=2,l=2,sg=0,ft=0,st=OK:0
      11:57:28.841 -> Requesting initial value from controller
      11:57:28.841 -> 36466 TSF:MSG:SEND,23-23-0-0,s=2,c=2,t=2,pt=0,l=0,sg=0,ft=0,st=OK:
      11:57:28.877 -> curState / newState - 0 / 0
      11:57:28.948 -> Sleep - Start
      11:57:44.011 -> Loop - Start
      11:57:44.011 -> Sending initial value
      11:57:44.011 -> 51574 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=2,l=2,sg=0,ft=0,st=OK:0
      11:57:44.011 -> Requesting initial value from controller
      11:57:44.049 -> 51617 !TSF:MSG:SEND,23-23-0-0,s=2,c=2,t=2,pt=0,l=0,sg=0,ft=0,st=NACK:
      11:57:44.086 -> curState / newState - 0 / 0
      11:57:44.155 -> Sleep - Start
      11:57:48.013 -> 55564 TSF:MSG:READ,0-0-23,s=255,c=3,t=6,pt=0,l=1,sg=0:M
      11:57:48.013 -> 55580 TSF:MSG:READ,0-0-23,s=2,c=1,t=2,pt=0,l=1,sg=0:0
      11:57:48.046 -> Received: type / payload / ack : 2 / 0 / 0
      11:57:48.046 -> Receiving initial value from controller
      11:57:49.049 -> 56608 TSF:MSG:READ,0-0-23,s=2,c=1,t=2,pt=0,l=1,sg=0:1
      11:57:49.049 -> 56614 TSF:MSG:ECHO REQ
      11:57:49.086 -> 56619 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=1,st=OK:1
      11:57:49.086 -> Received: type / payload / ack : 2 / 1 / 0
      11:57:50.107 -> Changing relay state to: ON
      11:57:59.204 -> Loop - Start
      11:57:59.204 -> curState / newState - 0 / 1
      11:57:59.204 -> 66727 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=1,l=1,sg=0,ft=0,st=OK:1
      11:58:02.235 -> 69736 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=1,l=1,sg=0,ft=0,st=OK:0
      11:58:02.344 -> Sleep - Start
      11:58:17.408 -> Loop - Start
      11:58:17.408 -> curState / newState - 0 / 0
      11:58:17.511 -> Sleep - Start
      11:58:32.565 -> Loop - Start
      11:58:32.565 -> curState / newState - 0 / 0
      11:58:32.672 -> Sleep - Start
      11:58:47.726 -> Loop - Start
      11:58:47.726 -> curState / newState - 0 / 0
      11:58:47.831 -> Sleep - Start
      11:59:02.870 -> Loop - Start
      11:59:02.870 -> curState / newState - 0 / 0
      11:59:02.975 -> Sleep - Start
      11:59:06.834 -> 134098 TSF:MSG:READ,0-0-23,s=255,c=3,t=6,pt=0,l=1,sg=0:M
      11:59:06.872 -> 134113 TSF:MSG:READ,0-0-23,s=2,c=1,t=2,pt=0,l=1,sg=0:0
      11:59:06.872 -> Received: type / payload / ack : 2 / 0 / 0
      11:59:07.891 -> 135141 TSF:MSG:READ,0-0-23,s=2,c=1,t=2,pt=0,l=1,sg=0:1
      11:59:07.891 -> 135147 TSF:MSG:ECHO REQ
      11:59:07.891 -> 135151 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=OK:1
      11:59:07.926 -> Received: type / payload / ack : 2 / 1 / 0
      11:59:08.946 -> Changing relay state to: ON
      11:59:18.033 -> Loop - Start
      11:59:18.033 -> curState / newState - 0 / 1
      11:59:18.033 -> 145229 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=1,l=1,sg=0,ft=0,st=OK:1
      11:59:21.052 -> 148238 TSF:MSG:SEND,23-23-0-0,s=2,c=1,t=2,pt=1,l=1,sg=0,ft=0,st=OK:0
      11:59:21.160 -> Sleep - Start
      
      posted in Troubleshooting
      thedutch
      thedutch
    • MKRZERO with W5100 Ethernet modul as gateway, Not working

      Hi all,
      I am trying to get a MRKZero and a W5100 Ethernet module working as a gateway, but its not working.
      Tried as a first step to get a web-server running on this combo, but the sketch reports "Ethernet shield not found".
      If i get the web-server running i should be able to get the Ethernet gateway running too.

      I seen lots of samples and instructions for the Arduino UNO, but am not able to translate these to the MKRZero.

      I hope there is someone who can help me with this.

      Connections between the Arduino and the Ethernet modul:

      W5100                  MKRZero   
      1    GND                 GND
      2    5V                  5V
      3    Reset
      4    SS                  ???
      5    SCK                 SCK
      6    MOSI                MOSI
      7    MISO                MISO
      8    GND
      9    POE+
      10   POE-
      

      Code:

      /*
        Web Server
      
       A simple web server that shows the value of the analog input pins.
       using an Arduino Wiznet Ethernet shield.
      
       Circuit:
       * Ethernet shield attached to pins 10, 11, 12, 13
       * Analog inputs attached to pins A0 through A5 (optional)
      
       created 18 Dec 2009
       by David A. Mellis
       modified 9 Apr 2012
       by Tom Igoe
       modified 02 Sept 2015
       by Arturo Guadalupi
       
       */
      
      #include <SPI.h>
      #include <Ethernet.h>
      
      // Enter a MAC address and IP address for your controller below.
      // The IP address will be dependent on your local network:
      byte mac[] = {
        0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
      };
      IPAddress ip(192, 168, 28, 177);
      
      // Initialize the Ethernet server library
      // with the IP address and port you want to use
      // (port 80 is default for HTTP):
      EthernetServer server(80);
      
      void setup() {
        // You can use Ethernet.init(pin) to configure the CS pin
        //Ethernet.init(7);  // Most Arduino shields
        //Ethernet.init(5);   // MKR ETH shield
        //Ethernet.init(0);   // Teensy 2.0
        //Ethernet.init(20);  // Teensy++ 2.0
        //Ethernet.init(15);  // ESP8266 with Adafruit Featherwing Ethernet
        //Ethernet.init(33);  // ESP32 with Adafruit Featherwing Ethernet
      
        // Open serial communications and wait for port to open:
        Serial.begin(115200);
        while (!Serial) {
          ; // wait for serial port to connect. Needed for native USB port only
        }
        Serial.println("Ethernet WebServer Example");
      
        // start the Ethernet connection and the server:
        Ethernet.begin(mac, ip);
      
        // Check for Ethernet hardware present
        if (Ethernet.hardwareStatus() == EthernetNoHardware) {
          Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");
          while (true) {
            delay(1); // do nothing, no point running without Ethernet hardware
          }
        }
        if (Ethernet.linkStatus() == LinkOFF) {
          Serial.println("Ethernet cable is not connected.");
        }
      
        // start the server
        server.begin();
        Serial.print("server is at ");
        Serial.println(Ethernet.localIP());
      }
      
      
      void loop() {
        // listen for incoming clients
        EthernetClient client = server.available();
        if (client) {
          Serial.println("new client");
          // an http request ends with a blank line
          boolean currentLineIsBlank = true;
          while (client.connected()) {
            if (client.available()) {
              char c = client.read();
              Serial.write(c);
              // if you've gotten to the end of the line (received a newline
              // character) and the line is blank, the http request has ended,
              // so you can send a reply
              if (c == '\n' && currentLineIsBlank) {
                // send a standard http response header
                client.println("HTTP/1.1 200 OK");
                client.println("Content-Type: text/html");
                client.println("Connection: close");  // the connection will be closed after completion of the response
                client.println("Refresh: 5");  // refresh the page automatically every 5 sec
                client.println();
                client.println("<!DOCTYPE HTML>");
                client.println("<html>");
                // output the value of each analog input pin
                for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
                  int sensorReading = analogRead(analogChannel);
                  client.print("analog input ");
                  client.print(analogChannel);
                  client.print(" is ");
                  client.print(sensorReading);
                  client.println("<br />");
                }
                client.println("</html>");
                break;
              }
              if (c == '\n') {
                // you're starting a new line
                currentLineIsBlank = true;
              } else if (c != '\r') {
                // you've gotten a character on the current line
                currentLineIsBlank = false;
              }
            }
          }
          // give the web browser time to receive the data
          delay(1);
          // close the connection:
          client.stop();
          Serial.println("client disconnected");
        }
      }
      
      posted in Troubleshooting
      thedutch
      thedutch
    • RE: Using NRF24L01 with Arduino MKRZero

      For future reference,

      I was checking the myconfig.h file and found some variable definition regarding the NRF24 radio.

      There were two variables referencing the CE and CS pin.

      /**
       * @def MY_RF24_CE_PIN
       * @brief Define this to change the chip enable pin from the default.
       */
      #ifndef MY_RF24_CE_PIN
      #define MY_RF24_CE_PIN (DEFAULT_RF24_CE_PIN)
      #endif
      
      /**
       * @def MY_RF24_CS_PIN
       * @brief Define this to change the chip select pin from the default.
       */
      #ifndef MY_RF24_CS_PIN
      #define MY_RF24_CS_PIN (DEFAULT_RF24_CS_PIN)
      #endif
      
      

      I have set these two variables in my sketch for my MRKZERO and got the radio working.

      Problem Solved 👍

      posted in Hardware
      thedutch
      thedutch
    • Using NRF24L01 with Arduino MKRZero

      Hi All,

      I can not figure out how to connect the nrf24 radio to my Arduino mrknano.

      nrf24		mrkNano
      GND 		gnd
      VCC 		vcc
      CE 		?
      CSN/CS 		?
      SCK 		7
      COPI/MOSI 	8
      CIPO/MISO 	10
      IRQ 		2
      

      Where do i connect the CE and CSN pins to ??

      Thx.
      Rob.

      posted in Hardware
      thedutch
      thedutch