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. Hardware
  3. New nrf24l01+ smd

New nrf24l01+ smd

Scheduled Pinned Locked Moved Hardware
39 Posts 9 Posters 16.8k Views 9 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.
  • alexsh1A alexsh1

    Let a fiddly job begin...0_1454940850479_image.jpeg

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

    @alexsh1 those pliers seem to be the wrong size.... :smirk:

    http://yveaux.blogspot.nl

    alexsh1A 1 Reply Last reply
    0
    • alexsh1A Offline
      alexsh1A Offline
      alexsh1
      wrote on last edited by
      #19

      @Yveaux yeah, I know - I placed an order today for a new set of cutters on Amazon

      1 Reply Last reply
      0
      • alexsh1A alexsh1

        Let a fiddly job begin...0_1454940850479_image.jpeg

        AWIA Offline
        AWIA Offline
        AWI
        Hero Member
        wrote on last edited by
        #20

        @alexsh1 don't mount it in the wrong direction...

        alexsh1A 1 Reply Last reply
        0
        • AWIA AWI

          @alexsh1 don't mount it in the wrong direction...

          alexsh1A Offline
          alexsh1A Offline
          alexsh1
          wrote on last edited by
          #21

          @AWI you mean nrf24l01+? I have to check what the best fit is given I'll have a few wires

          AWIA 1 Reply Last reply
          0
          • alexsh1A alexsh1

            @AWI you mean nrf24l01+? I have to check what the best fit is given I'll have a few wires

            AWIA Offline
            AWIA Offline
            AWI
            Hero Member
            wrote on last edited by
            #22

            @alexsh1 this is what I did. Mount it in the same direction as the original

            alexsh1A 1 Reply Last reply
            0
            • YveauxY Yveaux

              @alexsh1 those pliers seem to be the wrong size.... :smirk:

              alexsh1A Offline
              alexsh1A Offline
              alexsh1
              wrote on last edited by
              #23

              @Yveaux are these much better now? ;)))

              0_1455024726133_image.jpeg

              YveauxY 1 Reply Last reply
              0
              • AWIA AWI

                @alexsh1 this is what I did. Mount it in the same direction as the original

                alexsh1A Offline
                alexsh1A Offline
                alexsh1
                wrote on last edited by
                #24

                @AWI Now I see what you mean! Thanks for heads up - really appreciated it. This is the first time I'm dealing with this transceiver in SMD

                1 Reply Last reply
                0
                • alexsh1A alexsh1

                  @Yveaux are these much better now? ;)))

                  0_1455024726133_image.jpeg

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

                  @alexsh1 much less of a challenge :satisfied:

                  http://yveaux.blogspot.nl

                  1 Reply Last reply
                  0
                  • alexsh1A alexsh1

                    @GertSanders said:

                    This board one is a one-trick pony. It is based on @m26872's concept of a very narrow board, but in my case I just need it to handle 2 magnetic switches.

                    This is what I was looking for as I need a small board for a reed switch. Please keep us posted about your testing

                    GertSandersG Offline
                    GertSandersG Offline
                    GertSanders
                    Hardware Contributor
                    wrote on last edited by
                    #26

                    @alexsh1 My very narrow board was built and tested today. It works fine, I posted info on the hardware forum.

                    I must say I feel pity for this sliver of plastic and metal ...

                    alexsh1A 1 Reply Last reply
                    0
                    • GertSandersG GertSanders

                      @alexsh1 My very narrow board was built and tested today. It works fine, I posted info on the hardware forum.

                      I must say I feel pity for this sliver of plastic and metal ...

                      alexsh1A Offline
                      alexsh1A Offline
                      alexsh1
                      wrote on last edited by
                      #27

                      @GertSanders said:

                      @alexsh1 My very narrow board was built and tested today. It works fine, I posted info on the hardware forum.

                      I must say I feel pity for this sliver of plastic and metal ...

                      Excellent! I ordered your narrow board a few days ago as I thought it would be very useful.

                      One thing I can tell for sure - cutters are really well built. They are made in Japan and electrostatic safe. Most important they are not big as the ones I had before.

                      1 Reply Last reply
                      0
                      • SweebeeS Offline
                        SweebeeS Offline
                        Sweebee
                        wrote on last edited by
                        #28

                        ordered the pro mini shields and I'm not disappointed :) As small as you can get:




                        YveauxY 1 Reply Last reply
                        2
                        • SweebeeS Sweebee

                          ordered the pro mini shields and I'm not disappointed :) As small as you can get:




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

                          @Sweebee Very nice indeed!
                          I'm very surprised btw that you're using 2xAA to power the PIR. Will it work reliably (no false detections), even when the batteries are running out?
                          I use 2xAA to power Pro Mini + nRF and an extra AA to power the PIR. This way the supply to the PIR will stay > 3V over time.

                          http://yveaux.blogspot.nl

                          SweebeeS 1 Reply Last reply
                          0
                          • YveauxY Yveaux

                            @Sweebee Very nice indeed!
                            I'm very surprised btw that you're using 2xAA to power the PIR. Will it work reliably (no false detections), even when the batteries are running out?
                            I use 2xAA to power Pro Mini + nRF and an extra AA to power the PIR. This way the supply to the PIR will stay > 3V over time.

                            SweebeeS Offline
                            SweebeeS Offline
                            Sweebee
                            wrote on last edited by
                            #30

                            @Yveaux the pirs work fine if you only have interrupts with CHANGE. I don't use a sleep timer. If you wake it up every minute or so its unreliable yes. but only with interrupts from the pir it works fine. I have 10 pirs like this. Oldest one is from march 2015 and still running.

                            YveauxY alexsh1A 2 Replies Last reply
                            1
                            • SweebeeS Sweebee

                              @Yveaux the pirs work fine if you only have interrupts with CHANGE. I don't use a sleep timer. If you wake it up every minute or so its unreliable yes. but only with interrupts from the pir it works fine. I have 10 pirs like this. Oldest one is from march 2015 and still running.

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

                              @Sweebee Consider yourself lucky then! I have the same issues decribed here when powering using 2xAA.
                              I ditched the step-up converter as it introduces too much noise and reduces battery life. The 3xAA solution seems to work reliably though.

                              http://yveaux.blogspot.nl

                              1 Reply Last reply
                              0
                              • SweebeeS Sweebee

                                @Yveaux the pirs work fine if you only have interrupts with CHANGE. I don't use a sleep timer. If you wake it up every minute or so its unreliable yes. but only with interrupts from the pir it works fine. I have 10 pirs like this. Oldest one is from march 2015 and still running.

                                alexsh1A Offline
                                alexsh1A Offline
                                alexsh1
                                wrote on last edited by
                                #32

                                @Sweebee

                                You have an excellent setup - I ordered those adapter as well at oshpark.
                                @Yveaux has got a point - I have been struggle to build a reliable PIR on 2xAA batteries. I have just started building it now. 1 year battery life and counting is impressive.

                                @Sweebee Would you care to share your code? Maybe there is anything there which gives us some clues though I believe this is more a hardware issue.

                                YveauxY 1 Reply Last reply
                                0
                                • alexsh1A alexsh1

                                  @Sweebee

                                  You have an excellent setup - I ordered those adapter as well at oshpark.
                                  @Yveaux has got a point - I have been struggle to build a reliable PIR on 2xAA batteries. I have just started building it now. 1 year battery life and counting is impressive.

                                  @Sweebee Would you care to share your code? Maybe there is anything there which gives us some clues though I believe this is more a hardware issue.

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

                                  @alexsh1 said:

                                  Would you care to share your code? Maybe there is anything there which gives us some clues though I believe this is more a hardware issue.

                                  Agree. Apparently @Sweebee made modifications to the PIR (mainly to move some capacitors, judging from the photos) but maybe you did some more to improve battery life/stability?

                                  http://yveaux.blogspot.nl

                                  1 Reply Last reply
                                  0
                                  • SweebeeS Offline
                                    SweebeeS Offline
                                    Sweebee
                                    wrote on last edited by
                                    #34

                                    I removed the left capacitor since it's not needed in 3.3v hack. And I moved the right one because otherwise it didn't fit into the case.

                                    My sketch:

                                    #include <MySensor.h>
                                    #include <SPI.h>
                                    #include <readVcc.h>
                                    
                                    // ********** CONFIG **********************************
                                    
                                        #define NODE_ID AUTO          // ID of node
                                        #define CHILD_ID 1            // ID of sensor
                                        #define PIR_PIN 3             // Pin connected to the PIR
                                        
                                        #define MIN_V 2000            // empty voltage (0%)
                                        #define MAX_V 3200            // full voltage (100%)
                                    
                                    // ****************************************************
                                    
                                    MyMessage msg(CHILD_ID, V_TRIPPED);
                                    MySensor node;
                                    
                                    int oldBatteryPcnt;
                                    int sentValue;
                                    int forceSend = 0;
                                    
                                    void setup()
                                    {
                                      node.begin(NULL, NODE_ID, false);
                                      node.sendSketchInfo("PIR Sensor", "1.2");
                                      node.present(CHILD_ID, S_MOTION);
                                      pinMode(PIR_PIN, INPUT);
                                      digitalWrite(PIR_PIN, HIGH);
                                    }
                                    
                                    void loop()
                                    {
                                      
                                      // Get PIR
                                      int value = digitalRead(PIR_PIN); // Get value of PIR
                                      if (value != sentValue) { // If status of PIR has changed
                                        resend(msg.set(value), 5); // Send PIR status to gateway
                                        sentValue = value;
                                      }
                                    
                                      // Send batterylevel
                                      sendBattery(); 
                                    
                                      // Sleep until something happens with the sensor
                                      node.sleep(PIR_PIN-2, CHANGE); 
                                    }
                                    
                                    // FUNCTIONS
                                    
                                    void sendBattery() // Send battery percentage to GW
                                    {
                                      forceSend++;
                                      int batteryPcnt = min(map(readVcc(), MIN_V, MAX_V, 0, 100), 100); // Get VCC and convert to percentage      
                                      if (batteryPcnt != oldBatteryPcnt || forceSend >= 20) { // If battery percentage has changed
                                        node.sendBatteryLevel(batteryPcnt); // Send battery percentage to gateway
                                        oldBatteryPcnt = batteryPcnt; 
                                        forceSend = 0;
                                      }
                                    }
                                    
                                    void resend(MyMessage &msg, int repeats) // Resend messages if not received by GW
                                    {
                                      int repeat = 0;
                                      int repeatDelay = 0;
                                      boolean ack = false;
                                    
                                      while ((ack == false) and (repeat < repeats)) {
                                        if (node.send(msg)) {
                                          ack = true;
                                        } else {
                                          ack = false;
                                          repeatDelay += 100;
                                        } 
                                        repeat++;
                                        delay(repeatDelay);
                                      }
                                    }
                                    
                                    YveauxY M 2 Replies Last reply
                                    0
                                    • SweebeeS Sweebee

                                      I removed the left capacitor since it's not needed in 3.3v hack. And I moved the right one because otherwise it didn't fit into the case.

                                      My sketch:

                                      #include <MySensor.h>
                                      #include <SPI.h>
                                      #include <readVcc.h>
                                      
                                      // ********** CONFIG **********************************
                                      
                                          #define NODE_ID AUTO          // ID of node
                                          #define CHILD_ID 1            // ID of sensor
                                          #define PIR_PIN 3             // Pin connected to the PIR
                                          
                                          #define MIN_V 2000            // empty voltage (0%)
                                          #define MAX_V 3200            // full voltage (100%)
                                      
                                      // ****************************************************
                                      
                                      MyMessage msg(CHILD_ID, V_TRIPPED);
                                      MySensor node;
                                      
                                      int oldBatteryPcnt;
                                      int sentValue;
                                      int forceSend = 0;
                                      
                                      void setup()
                                      {
                                        node.begin(NULL, NODE_ID, false);
                                        node.sendSketchInfo("PIR Sensor", "1.2");
                                        node.present(CHILD_ID, S_MOTION);
                                        pinMode(PIR_PIN, INPUT);
                                        digitalWrite(PIR_PIN, HIGH);
                                      }
                                      
                                      void loop()
                                      {
                                        
                                        // Get PIR
                                        int value = digitalRead(PIR_PIN); // Get value of PIR
                                        if (value != sentValue) { // If status of PIR has changed
                                          resend(msg.set(value), 5); // Send PIR status to gateway
                                          sentValue = value;
                                        }
                                      
                                        // Send batterylevel
                                        sendBattery(); 
                                      
                                        // Sleep until something happens with the sensor
                                        node.sleep(PIR_PIN-2, CHANGE); 
                                      }
                                      
                                      // FUNCTIONS
                                      
                                      void sendBattery() // Send battery percentage to GW
                                      {
                                        forceSend++;
                                        int batteryPcnt = min(map(readVcc(), MIN_V, MAX_V, 0, 100), 100); // Get VCC and convert to percentage      
                                        if (batteryPcnt != oldBatteryPcnt || forceSend >= 20) { // If battery percentage has changed
                                          node.sendBatteryLevel(batteryPcnt); // Send battery percentage to gateway
                                          oldBatteryPcnt = batteryPcnt; 
                                          forceSend = 0;
                                        }
                                      }
                                      
                                      void resend(MyMessage &msg, int repeats) // Resend messages if not received by GW
                                      {
                                        int repeat = 0;
                                        int repeatDelay = 0;
                                        boolean ack = false;
                                      
                                        while ((ack == false) and (repeat < repeats)) {
                                          if (node.send(msg)) {
                                            ack = true;
                                          } else {
                                            ack = false;
                                            repeatDelay += 100;
                                          } 
                                          repeat++;
                                          delay(repeatDelay);
                                        }
                                      }
                                      
                                      YveauxY Offline
                                      YveauxY Offline
                                      Yveaux
                                      Mod
                                      wrote on last edited by Yveaux
                                      #35

                                      @Sweebee Only real difference I see compared to my sketch is that I'm using a timeout when sleeping, so the watchdog stays enabled while sleeping.
                                      According to the datasheet, the AtMega power consumption is roughly 4.7uA vs 0.6uA in powerdown mode with/without watchdog enabled:

                                      0_1458297879428_Naamloos.png

                                      This is a significant difference, but when including the PIR & nRF in the total power consumption it is only a small part.

                                      http://yveaux.blogspot.nl

                                      1 Reply Last reply
                                      0
                                      • SweebeeS Sweebee

                                        I removed the left capacitor since it's not needed in 3.3v hack. And I moved the right one because otherwise it didn't fit into the case.

                                        My sketch:

                                        #include <MySensor.h>
                                        #include <SPI.h>
                                        #include <readVcc.h>
                                        
                                        // ********** CONFIG **********************************
                                        
                                            #define NODE_ID AUTO          // ID of node
                                            #define CHILD_ID 1            // ID of sensor
                                            #define PIR_PIN 3             // Pin connected to the PIR
                                            
                                            #define MIN_V 2000            // empty voltage (0%)
                                            #define MAX_V 3200            // full voltage (100%)
                                        
                                        // ****************************************************
                                        
                                        MyMessage msg(CHILD_ID, V_TRIPPED);
                                        MySensor node;
                                        
                                        int oldBatteryPcnt;
                                        int sentValue;
                                        int forceSend = 0;
                                        
                                        void setup()
                                        {
                                          node.begin(NULL, NODE_ID, false);
                                          node.sendSketchInfo("PIR Sensor", "1.2");
                                          node.present(CHILD_ID, S_MOTION);
                                          pinMode(PIR_PIN, INPUT);
                                          digitalWrite(PIR_PIN, HIGH);
                                        }
                                        
                                        void loop()
                                        {
                                          
                                          // Get PIR
                                          int value = digitalRead(PIR_PIN); // Get value of PIR
                                          if (value != sentValue) { // If status of PIR has changed
                                            resend(msg.set(value), 5); // Send PIR status to gateway
                                            sentValue = value;
                                          }
                                        
                                          // Send batterylevel
                                          sendBattery(); 
                                        
                                          // Sleep until something happens with the sensor
                                          node.sleep(PIR_PIN-2, CHANGE); 
                                        }
                                        
                                        // FUNCTIONS
                                        
                                        void sendBattery() // Send battery percentage to GW
                                        {
                                          forceSend++;
                                          int batteryPcnt = min(map(readVcc(), MIN_V, MAX_V, 0, 100), 100); // Get VCC and convert to percentage      
                                          if (batteryPcnt != oldBatteryPcnt || forceSend >= 20) { // If battery percentage has changed
                                            node.sendBatteryLevel(batteryPcnt); // Send battery percentage to gateway
                                            oldBatteryPcnt = batteryPcnt; 
                                            forceSend = 0;
                                          }
                                        }
                                        
                                        void resend(MyMessage &msg, int repeats) // Resend messages if not received by GW
                                        {
                                          int repeat = 0;
                                          int repeatDelay = 0;
                                          boolean ack = false;
                                        
                                          while ((ack == false) and (repeat < repeats)) {
                                            if (node.send(msg)) {
                                              ack = true;
                                            } else {
                                              ack = false;
                                              repeatDelay += 100;
                                            } 
                                            repeat++;
                                            delay(repeatDelay);
                                          }
                                        }
                                        
                                        M Offline
                                        M Offline
                                        Maciej Kulawik
                                        wrote on last edited by
                                        #36

                                        @Sweebee I see in the sketch, that you are enabling internal pull-up on PIR input. This means, that if PIR is not detecting movement and its output is set to zero, this pull-up resistor consumes 60uA (in the best case).

                                        SweebeeS 1 Reply Last reply
                                        0
                                        • M Maciej Kulawik

                                          @Sweebee I see in the sketch, that you are enabling internal pull-up on PIR input. This means, that if PIR is not detecting movement and its output is set to zero, this pull-up resistor consumes 60uA (in the best case).

                                          SweebeeS Offline
                                          SweebeeS Offline
                                          Sweebee
                                          wrote on last edited by
                                          #37

                                          @Maciej-Kulawik in my calculations it is 6uA. The pirs use around 15-20 uA in sleep.

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


                                          10

                                          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