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.3k 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 NeverDie

    The answer I got on the Sandeep library made it sound rather iffy as to whether it would work for the nRF52840: https://github.com/sandeepmistry/arduino-nRF5/issues/310
    or that the coverage might be rather spotty.

    So, I think I may give mbed a try for programming the nRF52840, because mbed claims to support the nRF52840-DK. Also, I found what seems like a nice and simple youtube tutorial series for how to use mbed: https://www.youtube.com/watch?v=kP_zHbC_5eM

    If I have success with mbed, I may circle back to the Sandeep library and the mysensors implementation, but I'd like to start with something solid, and it appears that mbed might be.

    The other nice thing is that it appears mbed provides an abstraction layer which makes easy to program a whole range of different mcu's, incuding many of the stm32's.

    Anyone here familiar with or tried mbed before?

    mfalkviddM Offline
    mfalkviddM Offline
    mfalkvidd
    Mod
    wrote on last edited by mfalkvidd
    #1679

    @neverdie I tried mbed briefly in a workshop on LoRaWAN FOTA. With the workshop instructions it was easy to use, but my impression is that Arduino has a much larger ecosystem with more libraries.

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

      Update:
      I received some nRF52840 dongles. I confirmed with Nordic that the recommended way to program them over USB is to use nRF Connect v2.5.0 which contains the nRF Programmer v1.0.0-experimental.5 application. I tried that, but I may have somehow bricked my first dongle by not pressing reset first before the upload. Either that, or because my simple program didn't initialize the USB, maybe it can't be found for that reason (I suspect so).

      Luckily, I live not too far from Mouser. I should be receiving the nRF52840-DK today, so I figure that way I can unbrick the dongle.

      Yesterday I played around with mbed on an nucleo board. Seems to work well (no bricking). Unfortunately, the dongle isn't an mbed device, so the methods above are required unless you program it with a DK or similar. The good news, though, is that the DK is an mbed board, so hopefully that will be smooth sailing. It turns out that USB is built into the nRF52840 chip, so it doesn't require a separate chip like a CP2102 to communicate over USB. I guess that can be good or bad depending on how your write your code.

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

        By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)

        mfalkviddM Nca78N 2 Replies Last reply
        0
        • NeverDieN NeverDie

          By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)

          mfalkviddM Offline
          mfalkviddM Offline
          mfalkvidd
          Mod
          wrote on last edited by
          #1682

          @neverdie that’s how we programmed the device in the workshop as well. Very neat.

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

            Luckily, it looks as though I can manually set any GPIO pin I want as the UART TX pin for debugging output from an nRF52840 by setting PSEL.TXD. That means I can probably re-use my PCB's from nRF52832 for the nRF52840 with just a few software adjustments even if I use mbed without the convenient pin mapping afforded by the mysensors code. So, this is starting to look more and more feasible. :)

            1 Reply Last reply
            1
            • S Offline
              S Offline
              smilvert
              wrote on last edited by
              #1684

              @NeverDie How do I know which nRF52832 board I should use?

              Does the CFsunbird-nRF52832 has the DC/DC inductors?
              Or can I use nRF51822?

              Want a cheap chip, easy to solder (Have a couple of Ebyte e-73 but they take some time to solder :( and if I understand correctly, the DC / DC inductors are missing?)

              NeverDieN 1 Reply Last reply
              0
              • S smilvert

                @NeverDie How do I know which nRF52832 board I should use?

                Does the CFsunbird-nRF52832 has the DC/DC inductors?
                Or can I use nRF51822?

                Want a cheap chip, easy to solder (Have a couple of Ebyte e-73 but they take some time to solder :( and if I understand correctly, the DC / DC inductors are missing?)

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

                @smilvert It really depends on what you want to do, but if you want a blanket recommendation, I would recommend the Fanstel modules. For one thing, they're FCC approved, and most of what you'll find on aliexpress isn't and probably wouldn't pass if it tried.

                Also, the Fanstel F series has superior range compared to anything I've ever found on Aliexpress.

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

                  Even better, it turns out mbed solves the problem of handling multiple different interrupts, which no one here could figure out with the sandeep build. With mbed, it looks pretty simple in fact:

                  InterruptIn button1(P0_11);//(USER_BUTTON nRF52840 DK);
                  InterruptIn button2(P0_12);
                  InterruptIn button3(P0_24);
                  InterruptIn button4(P0_25);
                  
                  void button1_pressed()
                  {
                    led1 = led2 =led3 =led4 = 1;
                    led1 = 0;
                    
                  }
                  
                  void button1_released()
                  {
                    led1 = led2 =led3 =led4 = 1;
                    //led1 = 0;
                  }
                  
                  void button2_pressed()
                  {
                    led1 = led2 =led3 =led4 = 1;
                    led2 = 0;
                    
                  }
                  
                  void button2_released()
                  {
                    led1 = led2 =led3 =led4 = 1;
                    //led1 = 0;
                  }
                  
                  void button3_pressed()
                  {
                    led1 = led2 =led3 =led4 = 1;
                    led3 = 0;
                   // wait(0.1);
                  }
                  
                  void button3_released()
                  {
                    led1 = led2 =led3 =led4 = 1;
                    //led1 = 0;
                  }
                  
                  void button4_pressed()
                  {
                    led1 = led2 =led3 =led4 = 1;
                    led4 = 0;
                    
                  }
                  
                  void button4_released()
                  {
                    led1 = led2 =led3 =led4 = 1;
                    //led1 = 0;
                  }
                  
                  int main() {
                      led1 = led2 =led3 =led4 = 0;
                      
                      button1.fall(&button1_pressed);
                      button1.rise(&button1_released);
                      
                      button2.fall(&button2_pressed);
                      button2.rise(&button2_released);
                  
                      button3.fall(&button3_pressed);
                      button3.rise(&button3_released);
                  
                      button4.fall(&button4_pressed);
                      button4.rise(&button4_released);
                  
                     while (true) {}
                  }
                  
                  1 Reply Last reply
                  1
                  • NeverDieN NeverDie

                    By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)

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

                    @neverdie said in nRF5 action!:

                    By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)

                    That's exactly what I'm doing with the NRF52832-DK already. How do you program yours ?

                    NeverDieN 1 Reply Last reply
                    0
                    • Nca78N Nca78

                      @neverdie said in nRF5 action!:

                      By the way, the nRF52840-DK is even easier to program thant the nRF52832-DK. When you attach it to your PC, it shows as an additional drive in your directory. Any hex file that you copy to that drive gets uploaded and programmed onto the nRF52840. Easy. :)

                      That's exactly what I'm doing with the NRF52832-DK already. How do you program yours ?

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

                      @nca78 IIRC, with nRF52832-DK I was using the arduino IDE to program it using the J-link programmer. Anyhow, that's now ancient history.

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        smilvert
                        wrote on last edited by smilvert
                        #1689

                        @neverdie Im guessing that the BT832 dosen't have the 32.768 khz crystal but the inductors?

                        The datasheet says

                        Standby current consumption is important for battery-powered product. We suggest adding a 32.768 kHz crystal 
                        and 2 capacitors as shown in the upper left corner of the evaluation board schematics. The 32MHz main clock 
                        won’t be active at idle state to save power.
                        
                        Two inductors required for DCDC converter are inside BT832 module. You can enable DCDC to lower
                        power consumption.
                        
                        NeverDieN 1 Reply Last reply
                        0
                        • scalzS Offline
                          scalzS Offline
                          scalz
                          Hardware Contributor
                          wrote on last edited by scalz
                          #1690

                          @NeverDie
                          cool. already tried it too. and i agree with you on this, arduino is fun at the beginning, but then you discover its limits. compatible with lot of things but incomplete ;) That said, then you may end up converting some of your arduino libs/stuff to the new toolchain. On my side I like TI toolchain (free, tailored for iot with lot of nice tools, for debugging etc), not using it for nrf of course..
                          On other side, arduino is maybe "easier" to read for someone discovering coding.

                          NeverDieN 1 Reply Last reply
                          0
                          • scalzS scalz

                            @NeverDie
                            cool. already tried it too. and i agree with you on this, arduino is fun at the beginning, but then you discover its limits. compatible with lot of things but incomplete ;) That said, then you may end up converting some of your arduino libs/stuff to the new toolchain. On my side I like TI toolchain (free, tailored for iot with lot of nice tools, for debugging etc), not using it for nrf of course..
                            On other side, arduino is maybe "easier" to read for someone discovering coding.

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

                            @scalz said in nRF5 action!:

                            @NeverDie
                            cool. already tried it too. and i agree with you on this, arduino is fun at the beginning, but then you discover its limits. compatible with lot of things but incomplete ;) That said, then you may end up converting some of your arduino libs/stuff to the new toolchain. On my side I like TI toolchain (free, tailored for iot with lot of nice tools, for debugging etc), not using it for nrf of course..
                            On other side, arduino is maybe "easier" to read for someone discovering coding.

                            Interesting! Does that mean you're using TI's' MSP430 as your primary mcu now?

                            scalzS 1 Reply Last reply
                            0
                            • S smilvert

                              @neverdie Im guessing that the BT832 dosen't have the 32.768 khz crystal but the inductors?

                              The datasheet says

                              Standby current consumption is important for battery-powered product. We suggest adding a 32.768 kHz crystal 
                              and 2 capacitors as shown in the upper left corner of the evaluation board schematics. The 32MHz main clock 
                              won’t be active at idle state to save power.
                              
                              Two inductors required for DCDC converter are inside BT832 module. You can enable DCDC to lower
                              power consumption.
                              
                              NeverDieN Offline
                              NeverDieN Offline
                              NeverDie
                              Hero Member
                              wrote on last edited by
                              #1692

                              @smilvert said in nRF5 action!:

                              @neverdie Im guessing that the BT832 dosen't have the 32.768 khz crystal but the inductors?

                              The datasheet says

                              Standby current consumption is important for battery-powered product. We suggest adding a 32.768 kHz crystal 
                              and 2 capacitors as shown in the upper left corner of the evaluation board schematics. The 32MHz main clock 
                              won’t be active at idle state to save power.
                              
                              Two inductors required for DCDC converter are inside BT832 module. You can enable DCDC to lower
                              power consumption.
                              

                              yup

                              1 Reply Last reply
                              0
                              • NeverDieN NeverDie

                                @scalz said in nRF5 action!:

                                @NeverDie
                                cool. already tried it too. and i agree with you on this, arduino is fun at the beginning, but then you discover its limits. compatible with lot of things but incomplete ;) That said, then you may end up converting some of your arduino libs/stuff to the new toolchain. On my side I like TI toolchain (free, tailored for iot with lot of nice tools, for debugging etc), not using it for nrf of course..
                                On other side, arduino is maybe "easier" to read for someone discovering coding.

                                Interesting! Does that mean you're using TI's' MSP430 as your primary mcu now?

                                scalzS Offline
                                scalzS Offline
                                scalz
                                Hardware Contributor
                                wrote on last edited by scalz
                                #1693

                                @neverdie said in nRF5 action!:

                                Interesting! Does that mean you're using TI's' MSP430 as your primary mcu now?

                                nope, as usual I prefer the very best ;) 430 isn't rf.
                                But I don't want to make OT (nrf, mysensors). just said this to say, you can usually get all power of a mcu by using the right tools like you noticed (pros&cons)

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

                                  Unfortunately, the problemm with mbed is that it provides no real support for using the nRF52 radio in proprietary modes. I would have to code all of that from scratch.

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

                                    Good news. I hadn't bricked the dongle after all. Yesterday I wrote some rather primitive code to send packets using the Nordic proprietary code and this morning I loaded it onto the dongle using its USB connector and USB Bootloader. I'm now receiving the packets on the nRF52840-DK, so that satisfies proof of concept. i.e. it works! :)

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

                                      Even better news! The range is quite good. Not as awesome as my LoRa modules, but at 1mbps (I haven't yet tried 2mbps) and 8db Tx power, it easily beats the range of the nRF52832 for a comparable setup. So, to be fair, the LoRa's can use quite a bit more Tx power, and the LoRa datarate is far slower, so the nRF52840's seem likely to be quite a bit more energy efficient than LoRa for a home environment.

                                      There is a 250Kbps speed available if using the 802.11.15 mode (which I haven't yet explored), and it should have even better range than the regular Nordic proprietary modes (of which there are only two: 1mbps, and 2mbps). IIRC, 802.11.15 can automatically handle retransmits and the like, and it's a proven standard. It likely handles a lot of the drudgery.

                                      Then there's Thread, which is new to me but which it also supports and which is intended for home automation.

                                      It has built in hardware acceleration for SHA256, which is pretty cool. CRC is handled by hardware too. Also, lots of crypto stuff for those who are into that.

                                      So, although these are just early results, so far I'm liking it. :) :) In contrast, I was rather disappointed in the range of the nRF52832's (even though they were better than the range of an unamplified nRF24L01).

                                      1 Reply Last reply
                                      3
                                      • alowhumA Offline
                                        alowhumA Offline
                                        alowhum
                                        Plugin Developer
                                        wrote on last edited by
                                        #1697

                                        Now if they could put it in a maker friendly package..

                                        NeverDieN 1 Reply Last reply
                                        0
                                        • alowhumA alowhum

                                          Now if they could put it in a maker friendly package..

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

                                          @alowhum I don't think Nordic ever will, though for the $10 price the dongle comes pretty close, except for the limited castellated pinout, which is inconvenient though nicely small. I'm quite sure Adafruit and Sparkfun and maybe some others will though. I think from a purely hardware point of view it pretty much blows away the Arduinos since it includes an integrated radio and is low power and has the huge flash and memory and all the other goodies.

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