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. VS838 IR receiver led anyone got it working with mys?

VS838 IR receiver led anyone got it working with mys?

Scheduled Pinned Locked Moved Troubleshooting
25 Posts 3 Posters 189 Views 3 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.
  • skywatchS skywatch

    @electrik It seems that the IR if statement is never actioned.

    I added

    Serial.println("Enabling IRin");
      irrecv.enableIRIn(); // Start the receiver
      Serial.println("Enabled IRin");
    

    To setup and that seems to be OK....

    121 !MCO:SND:NODE NOT REG
    1123 MCO:REG:REQ
    1126 TSF:MSG:SEND,25-25-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
    1133 TSF:MSG:READ,0-0-25,s=255,c=3,t=27,pt=1,l=1,sg=0:1
    1138 MCO:PIM:NODE REG=1
    1140 MCO:BGN:STP
    Enabling IRin
    Enabled IRin
    1153 MCO:BGN:INIT OK,TSP=1
    1227 TSF:MSG:SEND,25-25-0-0,s=5,c=1,t=2,pt=3,l=2,sg=0,ft=0,st=OK:1
    

    But for some reason I can't find, it never executes the receive If code.
    Also tried input pins D2.4,6,8 and all show the same lack of doing what they should!
    Very strange!

    YveauxY Offline
    YveauxY Offline
    Yveaux
    Mod
    wrote on last edited by Yveaux
    #14

    @skywatch I found some time to rebuild your setup:
    Arduino UNO, nRF24 default connection no IRQ, TSOP1738 connected to D6, Arduino IDE 1.8.10

    Tested first with IRRecord sketch, same pinning, working fine.

    Absolute bare minimum sketch, containing MySensors (2.3.2) and IR Receiver using the same library (current version):

    #define MY_DEBUG
    
    #define MY_BAUD_RATE (57600)
    #define MY_RADIO_RF24
    
    #define MY_RF24_CE_PIN              (9)
    #define MY_RF24_CS_PIN              (10)
    
    #define MY_NODE_ID                  (254)
    #define MY_PARENT_NODE_ID           (0)
    #define MY_PARENT_NODE_IS_STATIC
    
    #include <Arduino.h>
    #include <IRremote.h>
    #include <MySensors.h>
    
    const int RECV_PIN = 6;
    IRrecv irrecv(RECV_PIN);
    
    void presentation()
    {
        Serial.println(F("-- Init MySensors"));
        sendSketchInfo(F("IRSensor"), F("1.0"));
    }
    
    void setup()
    {
        irrecv.enableIRIn();
    }
    
    void loop()
    {
        decode_results results;
        if (irrecv.decode(&results))
        {
            for (int i = 0; i < results.rawlen - 1; ++i)
            {
                Serial.print(results.rawbuf[i], DEC);
            }
            Serial.println();
            irrecv.resume();
        }
    }
    

    Added basic MySensors sketch, same pinning working fine:

    33 MCO:BGN:INIT NODE,CP=RNNNA---,FQ=16,REL=255,VER=2.3.2
    54 TSM:INIT
    56 TSF:WUR:MS=0
    64 TSM:INIT:TSP OK
    67 TSM:INIT:STATID=254
    72 TSF:SID:OK,ID=254
    75 TSM:FPAR
    77 TSM:FPAR:STATP=0
    81 TSM:ID
    82 TSM:ID:OK
    86 TSM:UPL
    89 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
    101 TSF:MSG:READ,0-0-254,s=255,c=3,t=25,pt=1,l=1,sg=0:1
    110 TSF:MSG:PONG RECV,HP=1
    115 TSM:UPL:OK
    118 TSM:READY:ID=254,PAR=0,DIS=1
    124 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
    138 TSF:MSG:READ,0-0-254,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
    149 TSF:MSG:SEND,254-254-0-0,s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=OK:2.3.2
    163 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
    -- Init MySensors
    2177 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=11,pt=0,l=8,sg=0,ft=0,st=OK:IRSensor
    2193 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
    2205 MCO:REG:REQ
    2209 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
    2223 TSF:MSG:READ,0-0-254,s=255,c=3,t=27,pt=1,l=1,sg=0:1
    2232 MCO:PIM:NODE REG=1
    2237 MCO:BGN:STP
    2240 MCO:BGN:INIT OK,TSP=1
    142892861371371371371371227137128137137137128128128128128128712271326132712812271326137132712812812713713713713271281227122713271227
    113792861371371371371281326137137137137137128128128128128128712271327122712812271327127132712812812812812812713271281227132613271227
    113692861371371371371371327127137137137137137137137128128128713261327122713713261327128122713712812812812812812271281227132712271227
    113692871281271371371371327128127137137137137137137137137128713261327122713713261327128122712813713712812812812271371326132712271326
    113692871281281271371371327128128127137137137137137128137138613271227122713713271227128122713713713713712812812271281227132712271326
    2699393861371371361461371327137137137136146137137137137137138613271326132613713271326137132613713713713713713713261371326142613261325
    113692861371371371371371326137137137137137137136146137137138614261326132713614261326137132614613713713713713713261371327132613261327
    113692861371371371371371326137137137137137137137137136146138713261326132713713261326137132713614613713713713713261461327132613251526
    113691871371281281281281227137128128128128128128127137137138712271227132712811281227137122812713712812812812812271371228122713261327
    1137898912811911911911911281281191191191191191191191010109118912271227122812811281227128112912810911911911911911291181129122712281128
    113789891371281281191281227128128128128128128128119128118128812271227122812812271227128122812811812812812812812281271228122712281227
    

    I suggest to try with my sketch and see if that works.

    BTW. Passing a LED pin to the constructor as status indicator doesn't seem to work, or my eyes are just too slow :smirk:

    http://yveaux.blogspot.nl

    skywatchS 1 Reply Last reply
    1
    • YveauxY Yveaux

      @skywatch I found some time to rebuild your setup:
      Arduino UNO, nRF24 default connection no IRQ, TSOP1738 connected to D6, Arduino IDE 1.8.10

      Tested first with IRRecord sketch, same pinning, working fine.

      Absolute bare minimum sketch, containing MySensors (2.3.2) and IR Receiver using the same library (current version):

      #define MY_DEBUG
      
      #define MY_BAUD_RATE (57600)
      #define MY_RADIO_RF24
      
      #define MY_RF24_CE_PIN              (9)
      #define MY_RF24_CS_PIN              (10)
      
      #define MY_NODE_ID                  (254)
      #define MY_PARENT_NODE_ID           (0)
      #define MY_PARENT_NODE_IS_STATIC
      
      #include <Arduino.h>
      #include <IRremote.h>
      #include <MySensors.h>
      
      const int RECV_PIN = 6;
      IRrecv irrecv(RECV_PIN);
      
      void presentation()
      {
          Serial.println(F("-- Init MySensors"));
          sendSketchInfo(F("IRSensor"), F("1.0"));
      }
      
      void setup()
      {
          irrecv.enableIRIn();
      }
      
      void loop()
      {
          decode_results results;
          if (irrecv.decode(&results))
          {
              for (int i = 0; i < results.rawlen - 1; ++i)
              {
                  Serial.print(results.rawbuf[i], DEC);
              }
              Serial.println();
              irrecv.resume();
          }
      }
      

      Added basic MySensors sketch, same pinning working fine:

      33 MCO:BGN:INIT NODE,CP=RNNNA---,FQ=16,REL=255,VER=2.3.2
      54 TSM:INIT
      56 TSF:WUR:MS=0
      64 TSM:INIT:TSP OK
      67 TSM:INIT:STATID=254
      72 TSF:SID:OK,ID=254
      75 TSM:FPAR
      77 TSM:FPAR:STATP=0
      81 TSM:ID
      82 TSM:ID:OK
      86 TSM:UPL
      89 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
      101 TSF:MSG:READ,0-0-254,s=255,c=3,t=25,pt=1,l=1,sg=0:1
      110 TSF:MSG:PONG RECV,HP=1
      115 TSM:UPL:OK
      118 TSM:READY:ID=254,PAR=0,DIS=1
      124 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
      138 TSF:MSG:READ,0-0-254,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      149 TSF:MSG:SEND,254-254-0-0,s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=OK:2.3.2
      163 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
      -- Init MySensors
      2177 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=11,pt=0,l=8,sg=0,ft=0,st=OK:IRSensor
      2193 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
      2205 MCO:REG:REQ
      2209 TSF:MSG:SEND,254-254-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
      2223 TSF:MSG:READ,0-0-254,s=255,c=3,t=27,pt=1,l=1,sg=0:1
      2232 MCO:PIM:NODE REG=1
      2237 MCO:BGN:STP
      2240 MCO:BGN:INIT OK,TSP=1
      142892861371371371371371227137128137137137128128128128128128712271326132712812271326137132712812812713713713713271281227122713271227
      113792861371371371371281326137137137137137128128128128128128712271327122712812271327127132712812812812812812713271281227132613271227
      113692861371371371371371327127137137137137137137137128128128713261327122713713261327128122713712812812812812812271281227132712271227
      113692871281271371371371327128127137137137137137137137137128713261327122713713261327128122712813713712812812812271371326132712271326
      113692871281281271371371327128128127137137137137137128137138613271227122713713271227128122713713713713712812812271281227132712271326
      2699393861371371361461371327137137137136146137137137137137138613271326132613713271326137132613713713713713713713261371326142613261325
      113692861371371371371371326137137137137137137136146137137138614261326132713614261326137132614613713713713713713261371327132613261327
      113692861371371371371371326137137137137137137137137136146138713261326132713713261326137132713614613713713713713261461327132613251526
      113691871371281281281281227137128128128128128128127137137138712271227132712811281227137122812713712812812812812271371228122713261327
      1137898912811911911911911281281191191191191191191191010109118912271227122812811281227128112912810911911911911911291181129122712281128
      113789891371281281191281227128128128128128128128119128118128812271227122812812271227128122812811812812812812812281271228122712281227
      

      I suggest to try with my sketch and see if that works.

      BTW. Passing a LED pin to the constructor as status indicator doesn't seem to work, or my eyes are just too slow :smirk:

      skywatchS Offline
      skywatchS Offline
      skywatch
      wrote on last edited by skywatch
      #15

      @Yveaux I cannot thank you enough for doing this to try and help me out. It is really kind of you.
      I am using 1.8.9 IDE as I had issues with 1.8.10 (as did others). Also I notice that you have forced 57600 as the baud rate in the sketch. Is this the magic bullet I wonder as I left mine at the default 115200 setting. I can't imagine why it would make a difference though.
      I will be trying it shortly and will report back with anything I find.
      I owe you a beer for sure! ;)

      YveauxY 1 Reply Last reply
      0
      • skywatchS skywatch

        @Yveaux I cannot thank you enough for doing this to try and help me out. It is really kind of you.
        I am using 1.8.9 IDE as I had issues with 1.8.10 (as did others). Also I notice that you have forced 57600 as the baud rate in the sketch. Is this the magic bullet I wonder as I left mine at the default 115200 setting. I can't imagine why it would make a difference though.
        I will be trying it shortly and will report back with anything I find.
        I owe you a beer for sure! ;)

        YveauxY Offline
        YveauxY Offline
        Yveaux
        Mod
        wrote on last edited by
        #16

        @skywatch said in VS838 IR receiver led anyone got it working with mys?:

        @Yveaux I cannot thank you enough for doing this to try and help me out. It is really kind of you.

        Glad I could help!

        I am using 1.8.9 IDE as I had issues with 1.8.10 (as did others).

        I didn't encounter any issues with 1.8.10 so far, but I don't expect it will make a difference in your case

        Also I notice that you have forced 57600 as the baud rate in the sketch. Is this the magic bullet I wonder as I left mine at the default 115200 setting. I can't imagine why it would make a difference though.

        57600 is the default baud rate at 3v3 for pro mini iirr. This might be related to when using the internal oscillator and the frequency errors introduced by it. But pro mini uses an external crystal so I have to dig the datasheets to know for sure. Maybe some other forum member knows it by heart...

        I owe you a beer for sure! ;)

        Great! That I will remember :laughing:

        http://yveaux.blogspot.nl

        skywatchS 1 Reply Last reply
        0
        • YveauxY Yveaux

          @skywatch said in VS838 IR receiver led anyone got it working with mys?:

          @Yveaux I cannot thank you enough for doing this to try and help me out. It is really kind of you.

          Glad I could help!

          I am using 1.8.9 IDE as I had issues with 1.8.10 (as did others).

          I didn't encounter any issues with 1.8.10 so far, but I don't expect it will make a difference in your case

          Also I notice that you have forced 57600 as the baud rate in the sketch. Is this the magic bullet I wonder as I left mine at the default 115200 setting. I can't imagine why it would make a difference though.

          57600 is the default baud rate at 3v3 for pro mini iirr. This might be related to when using the internal oscillator and the frequency errors introduced by it. But pro mini uses an external crystal so I have to dig the datasheets to know for sure. Maybe some other forum member knows it by heart...

          I owe you a beer for sure! ;)

          Great! That I will remember :laughing:

          skywatchS Offline
          skywatchS Offline
          skywatch
          wrote on last edited by
          #17

          @Yveaux Your code works.....until I add it to mine and then it stops working for some inexplicable reason that will drive me insane I think. ;)
          I copied across your code line by line and still it refuses to 'see' any IR commands being received.

          I have tried excluding the watchdog, excluding the bh1750, adding arduino.h and excluding wire.h and none of those make any difference.

          YveauxY 1 Reply Last reply
          0
          • skywatchS skywatch

            @Yveaux Your code works.....until I add it to mine and then it stops working for some inexplicable reason that will drive me insane I think. ;)
            I copied across your code line by line and still it refuses to 'see' any IR commands being received.

            I have tried excluding the watchdog, excluding the bh1750, adding arduino.h and excluding wire.h and none of those make any difference.

            YveauxY Offline
            YveauxY Offline
            Yveaux
            Mod
            wrote on last edited by
            #18

            @skywatch Maybe the cause lies outside your sketch; Are you using MySensors 2.3.2? Or do try with Arduino 1.8.10

            http://yveaux.blogspot.nl

            skywatchS 2 Replies Last reply
            0
            • YveauxY Yveaux

              @skywatch Maybe the cause lies outside your sketch; Are you using MySensors 2.3.2? Or do try with Arduino 1.8.10

              skywatchS Offline
              skywatchS Offline
              skywatch
              wrote on last edited by
              #19

              @Yveaux I have narrowed it down to a small section of code.....still working on it!

              1 Reply Last reply
              0
              • YveauxY Yveaux

                @skywatch Maybe the cause lies outside your sketch; Are you using MySensors 2.3.2? Or do try with Arduino 1.8.10

                skywatchS Offline
                skywatchS Offline
                skywatch
                wrote on last edited by
                #20

                @Yveaux Ihave 2 issues that I have identified, but can't work out the cause.

                Issue 1 - No IR received seems to be caused by thise section of code. Commenting it out and it works as expected (but of course will never transmit).....

                 if (newcodeRX == 1 || lightrequest == 1) {
                    irsend.sendNEC(INcode, 32);
                    newcodeRX = 0;
                    lightrequest = 0; 
                   }
                

                Second issue, is when receiving IR is working I cannot do anything useful with it. I have tried 2 methods to get a value and perform a function with it and both fail. See the 2 methods tried here......

                 decode_results results;
                
                  if (irrecv.decode(&results)) {
                    Serial.print("IR Received... ");
                    Serial.println(results.value, HEX);
                    IRin = (results.value, HEX);
                    Serial.print(" IRin... ");
                    Serial.println(IRin);
                     irrecv.resume(); // Receive the next value
                  }
                
                  if (IRin == 0xFFA25D) {
                    lights = 1;
                    Serial.print("Lights ON... ");
                  }
                
                  if ((results.value, HEX) == 0xFFE21D) {
                    lights = 0;
                    Serial.print("Lights OFF... ");
                  }
                
                

                I need to eat now, will get back to this later on......

                1 Reply Last reply
                0
                • skywatchS Offline
                  skywatchS Offline
                  skywatch
                  wrote on last edited by
                  #21

                  Second issue now solved, just the first one to investigate.... ;)

                  1 Reply Last reply
                  0
                  • skywatchS Offline
                    skywatchS Offline
                    skywatch
                    wrote on last edited by skywatch
                    #22

                    Both issues now resolved! :)

                    More to follow..... ;)

                    1 Reply Last reply
                    0
                    • skywatchS Offline
                      skywatchS Offline
                      skywatch
                      wrote on last edited by
                      #23

                      So here is what I learned from all this....

                      Issue 1 - Was caused by the fact that IRsend was called at first boot - nothing wrong with that, but what I didn't know was that IRsend disables IR receive.
                      The solution was as simple as adding one more line to that section of code as follows.....

                       if (newcodeRX == 1 || lightrequest == 1) {
                          irsend.sendNEC(INcode, 32);
                          newcodeRX = 0;
                          lightrequest = 0; 
                          irrecv.enableIRIn(); // Start the receiver
                         }
                      

                      This re-enables the receiver and then all is working as expected!

                      As for the second issue......Well, I'll just post the code for anyone interested.....

                       if (irrecv.decode(&results)) {
                          IRin = results.value,HEX;
                          
                        if (IRin == 0xFFA25D) {
                          lights = 1;
                          Serial.print("Lights ON... ");
                        }
                      
                        if (IRin == 0xFFE21D) {
                          lights = 0;
                          Serial.print("Lights OFF... ");
                        }
                      
                        if (lights != last_lights) {
                          saveState(10, lights);
                          send(msgLights.set(lights));
                          last_lights = lights;
                          }
                      
                           irrecv.resume(); // Receive the next value
                      
                        }
                      

                      It's always soooooo easy when you know how! ;)

                      Onwards and upwards! :)

                      YveauxY 1 Reply Last reply
                      1
                      • skywatchS skywatch

                        So here is what I learned from all this....

                        Issue 1 - Was caused by the fact that IRsend was called at first boot - nothing wrong with that, but what I didn't know was that IRsend disables IR receive.
                        The solution was as simple as adding one more line to that section of code as follows.....

                         if (newcodeRX == 1 || lightrequest == 1) {
                            irsend.sendNEC(INcode, 32);
                            newcodeRX = 0;
                            lightrequest = 0; 
                            irrecv.enableIRIn(); // Start the receiver
                           }
                        

                        This re-enables the receiver and then all is working as expected!

                        As for the second issue......Well, I'll just post the code for anyone interested.....

                         if (irrecv.decode(&results)) {
                            IRin = results.value,HEX;
                            
                          if (IRin == 0xFFA25D) {
                            lights = 1;
                            Serial.print("Lights ON... ");
                          }
                        
                          if (IRin == 0xFFE21D) {
                            lights = 0;
                            Serial.print("Lights OFF... ");
                          }
                        
                          if (lights != last_lights) {
                            saveState(10, lights);
                            send(msgLights.set(lights));
                            last_lights = lights;
                            }
                        
                             irrecv.resume(); // Receive the next value
                        
                          }
                        

                        It's always soooooo easy when you know how! ;)

                        Onwards and upwards! :)

                        YveauxY Offline
                        YveauxY Offline
                        Yveaux
                        Mod
                        wrote on last edited by
                        #24

                        @skywatch great to hear you resolved your issues!

                        http://yveaux.blogspot.nl

                        1 Reply Last reply
                        0
                        • skywatchS Offline
                          skywatchS Offline
                          skywatch
                          wrote on last edited by
                          #25

                          Many thanks @electrik and @Yveaux , some moral support is often pivotal in getting things done!

                          @Yveaux IDE 1.8.12 is now available and working fine on win10 x64 for me :)

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


                          33

                          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