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. My Project
  3. nRF5 action!

nRF5 action!

Scheduled Pinned Locked Moved My Project
1.9k Posts 49 Posters 631.4k Views 44 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.
  • NeverDieN Offline
    NeverDieN Offline
    NeverDie
    Hero Member
    wrote on last edited by
    #682

    Where is the sleep(...) function defined for the nrf5? I've looked, but I can't seem to find which library it is in. Anyone know?

    d00616D 1 Reply Last reply
    0
    • NeverDieN NeverDie

      Where is the sleep(...) function defined for the nrf5? I've looked, but I can't seem to find which library it is in. Anyone know?

      d00616D Offline
      d00616D Offline
      d00616
      Contest Winner
      wrote on last edited by
      #683

      @NeverDie said in nRF5 Bluetooth action!:

      Where is the sleep(...) function defined for the nrf5? I've looked, but I can't seem to find which library it is in. Anyone know?

      It's defined in "hal/architecture/MyHwNRF5.cpp"

      1 Reply Last reply
      1
      • T Offline
        T Offline
        Toyman
        wrote on last edited by
        #684

        If anybody need cheap NRF52 DK, Arrow has them for ca. $30 with free courier shipping!

        Nca78N 1 Reply Last reply
        1
        • T Toyman

          If anybody need cheap NRF52 DK, Arrow has them for ca. $30 with free courier shipping!

          Nca78N Offline
          Nca78N Offline
          Nca78
          Hardware Contributor
          wrote on last edited by
          #685

          @Toyman said in nRF5 Bluetooth action!:

          If anybody need cheap NRF52 DK, Arrow has them for ca. $30 with free courier shipping!

          10% discount at the moment so 29.48$. Given the price per unit of a nrf52 if you buy in small numbers, it's worth buying it just for the extra chips provided :D

          1 Reply Last reply
          0
          • NeverDieN Offline
            NeverDieN Offline
            NeverDie
            Hero Member
            wrote on last edited by NeverDie
            #686

            Speaking as a noob myself, I think the DK's are great for noobs, especially when first getting started. I don't have as big a need for them now, but they definitely helped in the beginning. They pretty much "just work" without a lot of fuss.

            1 Reply Last reply
            0
            • NeverDieN Offline
              NeverDieN Offline
              NeverDie
              Hero Member
              wrote on last edited by NeverDie
              #687

              I'm presently playing around with the radioHead library. I can:

              1. Send and receive backets between two nRF5 modules.
                or
              2. Send and receive packets between two nRF24L01 modules.

              However, at present, I can't send or receive packets successfully between an nRF24 and an nRF5 module, even though it appears they share the same network ID, the same datarate, and the same channel.

              I'm guessing there exists some kind of compatability mode (?) that would bridge this gap, but I haven't found it. :(

              1 Reply Last reply
              0
              • scalzS Offline
                scalzS Offline
                scalz
                Hardware Contributor
                wrote on last edited by scalz
                #688

                @NeverDie
                d00616 added the support of NRF5 + ESB to MySensors.
                Radiohead lib doesn't handle this mode (explained in the description of his NRF51class).

                NeverDieN 1 Reply Last reply
                0
                • scalzS scalz

                  @NeverDie
                  d00616 added the support of NRF5 + ESB to MySensors.
                  Radiohead lib doesn't handle this mode (explained in the description of his NRF51class).

                  NeverDieN Offline
                  NeverDieN Offline
                  NeverDie
                  Hero Member
                  wrote on last edited by NeverDie
                  #689

                  Yeah, MySensors can definitely do it. Nice work @d00616 !

                  It turns out that with RadioHead, I am almost able to send packets from an nRF24L01 to an nRF5 module: it's just that the packets arrive as garbage. So, the packet and/or frame formatting must be different, but indeed the network ID's are matching or else I wouldn't be receiving anything at all.

                  d00616D 1 Reply Last reply
                  0
                  • NeverDieN Offline
                    NeverDieN Offline
                    NeverDie
                    Hero Member
                    wrote on last edited by NeverDie
                    #690

                    I found the smoking gun in the radiohead documentation. Turns out RadioHead does indeed use a different packet format for the nRF5 that is "NOT compatible with the one used by RH_NRF24 and the nRF24L01 product specification, mainly because the nRF24 only supports 6 bits of message length." :(

                    Well, that stinks.

                    TerrenceT 1 Reply Last reply
                    0
                    • NeverDieN NeverDie

                      I found the smoking gun in the radiohead documentation. Turns out RadioHead does indeed use a different packet format for the nRF5 that is "NOT compatible with the one used by RH_NRF24 and the nRF24L01 product specification, mainly because the nRF24 only supports 6 bits of message length." :(

                      Well, that stinks.

                      TerrenceT Offline
                      TerrenceT Offline
                      Terrence
                      wrote on last edited by
                      #691

                      @NeverDie Ya, that really sucks. It would have been great to mix and match.

                      1 Reply Last reply
                      0
                      • NeverDieN NeverDie

                        Yeah, MySensors can definitely do it. Nice work @d00616 !

                        It turns out that with RadioHead, I am almost able to send packets from an nRF24L01 to an nRF5 module: it's just that the packets arrive as garbage. So, the packet and/or frame formatting must be different, but indeed the network ID's are matching or else I wouldn't be receiving anything at all.

                        d00616D Offline
                        d00616D Offline
                        d00616
                        Contest Winner
                        wrote on last edited by
                        #692

                        @NeverDie said in nRF5 Bluetooth action!:

                        Yeah, MySensors can definitely do it. Nice work @d00616 !
                        Thanks.

                        It turns out that with RadioHead, I am almost able to send packets from an nRF24L01 to an nRF5 module: it's just that the packets arrive as garbage. So, the packet and/or frame formatting must be different, but indeed the network ID's are matching or else I wouldn't be receiving anything at all.

                        The ID's are reversed between nRF5 and nRF24. Look into the code how to reverse the ID's.

                        @NeverDie said in nRF5 Bluetooth action!:

                        I found the smoking gun in the radiohead documentation. Turns out RadioHead does indeed use a different packet format for the nRF5 that is "NOT compatible with the one used by RH_NRF24 and the nRF24L01 product specification, mainly because the nRF24 only supports 6 bits of message length."

                        You have to choose the correct number of bits for length, S0 and S1. I have played a while to find out the correct configuration. When ACK is enabled you have to do a lot of timing work.

                        @Terrence said in nRF5 Bluetooth action!:

                        @NeverDie Ya, that really sucks. It would have been great to mix and match.

                        At the moment I have no opinion to the "GPL or commercial" license of Readiohead. So I have no plans to port my Code .

                        The Nordic SDK has an ESB library supporting the nRF24 mode. IMHO Starting with SDK 13 the license is more Open Source friendly.

                        1 Reply Last reply
                        1
                        • NeverDieN Offline
                          NeverDieN Offline
                          NeverDie
                          Hero Member
                          wrote on last edited by NeverDie
                          #693

                          I'm realizing I can live with it. It just means I need to add a separate nRF24 gateway if I want to use nRF24's. I'm already adding separate gateways to support RFM69's and LoRa's, so, actually, it's no big deal.

                          Meanwhile, I've found that the RadioHead and the MySensors libraries are at least minimally compatible. So, presently I'm using RadioHead for my low power transmissions, but I'm using the sleep(...) function from MySensors to sleep the nRF52 and wake it up. :)

                          The only weirdness I'm noticing is that immediately after sending the very first packet in this configuration, there's a mysterious several second delay that occurs before the code continues. However, after the initial hiccup, everything appears to run exactly as fast as it should. I have no clue as to what is causing that initial delay though. It doesn't happen if I don't #include the MySensors.h file.

                          1 Reply Last reply
                          0
                          • rmtuckerR Offline
                            rmtuckerR Offline
                            rmtucker
                            wrote on last edited by rmtucker
                            #694

                            I was playing with sleep tonight and found the following problem.
                            when using sleep as below it always returns a figure 252 ms bigger than the sleep figure.
                            ie sleep 10000 always returns 10251
                            ie sleep 3000 always returns 3251.
                            I know the nrf51822 has a 32khz rtc so why is this?

                              oldmillis = hwMillis();
                              hwSleep(10000);
                              newmillis = hwMillis();
                              Serial.println(newmillis - oldmillis);
                            
                            1 Reply Last reply
                            0
                            • rmtuckerR Offline
                              rmtuckerR Offline
                              rmtucker
                              wrote on last edited by
                              #695

                              Seems it may have something to do with this in the code.

                              // Calculate sleep time
                              		// 8 Hz -> max 582.542 hours sleep.
                              		MY_HW_RTC->PRESCALER = 4095;
                              		// Set compare register to 1/125ms + 2 to garantee event triggering
                              		MY_HW_RTC->CC[0] = (ms / 125) + 2;```
                              1 Reply Last reply
                              0
                              • rmtuckerR Offline
                                rmtuckerR Offline
                                rmtucker
                                wrote on last edited by
                                #696

                                MY_HW_RTC->CC[0] = (ms / 125) + 2;

                                It seems the +2 above is adding 250ms.
                                Why is it done like this???

                                d00616D 1 Reply Last reply
                                1
                                • NeverDieN Offline
                                  NeverDieN Offline
                                  NeverDie
                                  Hero Member
                                  wrote on last edited by NeverDie
                                  #697

                                  What more can be done to reduce current consumption on an nRF52832 when the MySensors "sleep" function is being used with RTC wakeup. I've measured a 300mv drop on a 10F capacitor over a 12 hour time period. Of that 300mv, perhaps 20mv was lost due to self-discharge of the supercap. So, that still leaves 280mv of loss due to the nRF52832 . That is too high a rate of loss.

                                  rmtuckerR d00616D 2 Replies Last reply
                                  0
                                  • NeverDieN NeverDie

                                    What more can be done to reduce current consumption on an nRF52832 when the MySensors "sleep" function is being used with RTC wakeup. I've measured a 300mv drop on a 10F capacitor over a 12 hour time period. Of that 300mv, perhaps 20mv was lost due to self-discharge of the supercap. So, that still leaves 280mv of loss due to the nRF52832 . That is too high a rate of loss.

                                    rmtuckerR Offline
                                    rmtuckerR Offline
                                    rmtucker
                                    wrote on last edited by
                                    #698

                                    @NeverDie
                                    Seeing Your sketch would help?

                                    NeverDieN 1 Reply Last reply
                                    1
                                    • rmtuckerR rmtucker

                                      MY_HW_RTC->CC[0] = (ms / 125) + 2;

                                      It seems the +2 above is adding 250ms.
                                      Why is it done like this???

                                      d00616D Offline
                                      d00616D Offline
                                      d00616
                                      Contest Winner
                                      wrote on last edited by
                                      #699

                                      @rmtucker said in nRF5 Bluetooth action!:

                                      MY_HW_RTC->CC[0] = (ms / 125) + 2;

                                      It seems the +2 above is adding 250ms.
                                      Why is it done like this???

                                      A minimum of two ticks are required to be sure the CC[0] is triggered.

                                      What accuracy is your requirement? I can add more code here to dynamical change the pre scaler plus a check if ms/125>=2

                                      rmtuckerR 1 Reply Last reply
                                      0
                                      • d00616D d00616

                                        @rmtucker said in nRF5 Bluetooth action!:

                                        MY_HW_RTC->CC[0] = (ms / 125) + 2;

                                        It seems the +2 above is adding 250ms.
                                        Why is it done like this???

                                        A minimum of two ticks are required to be sure the CC[0] is triggered.

                                        What accuracy is your requirement? I can add more code here to dynamical change the pre scaler plus a check if ms/125>=2

                                        rmtuckerR Offline
                                        rmtuckerR Offline
                                        rmtucker
                                        wrote on last edited by
                                        #700

                                        @d00616
                                        My initial thoughts were how the nrf51822 could be used for energy meters (counting pulses and the gap between them),But unlike the arduino's which can not run timers when in sleep mode,The nrf5 can of course do this.
                                        So the nrf5 would be able to report watts and usage while still using sleep mode.
                                        But seeing the inaccuracy of the timer has put the brakes on that.
                                        Yes being able to change the prescaler dynamically would help a great deal as 125ms / 582.542 hours is not really useful for most applications with a 250ms overrun.

                                        d00616D 2 Replies Last reply
                                        0
                                        • rmtuckerR Offline
                                          rmtuckerR Offline
                                          rmtucker
                                          wrote on last edited by
                                          #701

                                          Just wondering what the prescaler etc would have to be set to for ms accuracy and how long before overflow.(aint got my maths head on today):blush:

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


                                          15

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 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