Skip to content
  • 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!
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

nRF5 action!

Scheduled Pinned Locked Moved My Project
1.9k Posts 49 Posters 630.7k 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.
  • rmtuckerR rmtucker

    @NeverDie
    Part number?

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

    @rmtucker said in nRF5 Bluetooth action!:

    @NeverDie
    Part number?

    http://datasheet.sii-ic.com/en/voltage_regulator/S1313_E.pdf

    https://www.digikey.com/product-detail/en/sii-semiconductor-corporation/S-1313D27-M5T1U3/1662-2523-1-ND/7228815

    1 Reply Last reply
    0
    • 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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          12

                                          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
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular