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 630.9k 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.
  • T Toyman

    @NeverDie stupid question: did you try to power it NOT from DK board and vise versa?

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

    @Toyman said in nRF5 Bluetooth action!:

    @NeverDie stupid question: did you try to power it NOT from DK board and vise versa?

    Thanks for the suggestion! So far I've tried powering it from a USB 3.3v source (which is how I successfully programmed the adafruit and sparkfun boards), but I'll now try powering it from the DK and see if it makes a difference.

    By the way, I found an alternate way to confirm that the board is using the built-in LDO rather than the DCDC converter. DEC4 is the output of the LDO, and it measures 1.3v (which is also the expected voltage output by the LDO if it were active). DCC is the output of the DCDC converter, and it measures 0.0v. So, empirical confirmation of what you all inferred earlier. :)

    1 Reply Last reply
    1
    • T Toyman

      @NeverDie stupid question: did you try to power it NOT from DK board and vise versa?

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

      @Toyman said in nRF5 Bluetooth action!:

      @NeverDie stupid question: did you try to power it NOT from DK board and vise versa?

      Just now tried it, and unfortunately it didn't make a difference. :(

      The actual text of the error message that I always receive is:

      c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .heap by 4 bytes
      c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .stack_dummy by 4 bytes
      c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .heap by 4 bytes
      c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .stack_dummy by 4 bytes
      c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .heap by 4 bytes
      c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .stack_dummy by 4 bytes
      Sketch uses 26932 bytes (5%) of program storage space. Maximum is 524288 bytes.
      Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10:13)
      Licensed under GNU GPL v2
      For bug reports, read
      http://openocd.org/doc/doxygen/bugs.html
      debug_level: 0
      swd
      adapter speed: 10000 kHz
      cortex_m reset_config sysresetreq
      nrf52.cpu: target state: halted
      target halted due to debug-request, current mode: Thread
      xPSR: 0x01000000 pc: 0x000008e4 msp: 0x20000400
      ** Programming Started **
      auto erase enabled
      Error: Cannot erase protected sector at 0x0
      Error: failed erasing sectors 0 to 6
      embedded:startup.tcl:454: Error: ** Programming Failed **
      in procedure 'program'
      in procedure 'program_error' called at file "embedded:startup.tcl", line 510
      at file "embedded:startup.tcl", line 454
      the selected serial port at file "embedded:startup.tcl", line 454
      does not exist or your board is not connected

      So maybe the root of the problem is that I need to do something to enable it to erase the protected sector at 0x0? That seems to be the point after which everything falls apart.

      mfalkviddM 1 Reply Last reply
      0
      • NeverDieN NeverDie

        @mfalkvidd said in nRF5 Bluetooth action!:

        @NeverDie not sure if it applies to this case, but at 18:04 in https://youtu.be/JXQLI-nXqmQ it is mentioned that the chip's identifier needs to be included in some list when the softdevice is compiled (or something along those lines, I am not yet familiar with the vocabulary).

        My understanding (which may be wrong) is that in this context a "softdevice" is a veiled reference to the bluetooth stack and/or related bluetooth code, which at present the mysensors code isn't using. In any case, when I programmed both the adafruit and the sparkfun using the mysensors code, I didn't include a chip identifier in a list, nor any soft devices, and it worked anyway.

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

        @NeverDie sorry, the ID doesn't need to be in the softdevice. It needs to be in the code for the black magic probe. Might still not be related though.

        1 Reply Last reply
        0
        • NeverDieN NeverDie

          @Toyman said in nRF5 Bluetooth action!:

          @NeverDie stupid question: did you try to power it NOT from DK board and vise versa?

          Just now tried it, and unfortunately it didn't make a difference. :(

          The actual text of the error message that I always receive is:

          c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .heap by 4 bytes
          c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .stack_dummy by 4 bytes
          c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .heap by 4 bytes
          c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .stack_dummy by 4 bytes
          c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .heap by 4 bytes
          c:/users/david/appdata/local/arduino15/packages/sandeepmistry/tools/gcc-arm-none-eabi/5_2-2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .stack_dummy by 4 bytes
          Sketch uses 26932 bytes (5%) of program storage space. Maximum is 524288 bytes.
          Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10:13)
          Licensed under GNU GPL v2
          For bug reports, read
          http://openocd.org/doc/doxygen/bugs.html
          debug_level: 0
          swd
          adapter speed: 10000 kHz
          cortex_m reset_config sysresetreq
          nrf52.cpu: target state: halted
          target halted due to debug-request, current mode: Thread
          xPSR: 0x01000000 pc: 0x000008e4 msp: 0x20000400
          ** Programming Started **
          auto erase enabled
          Error: Cannot erase protected sector at 0x0
          Error: failed erasing sectors 0 to 6
          embedded:startup.tcl:454: Error: ** Programming Failed **
          in procedure 'program'
          in procedure 'program_error' called at file "embedded:startup.tcl", line 510
          at file "embedded:startup.tcl", line 454
          the selected serial port at file "embedded:startup.tcl", line 454
          does not exist or your board is not connected

          So maybe the root of the problem is that I need to do something to enable it to erase the protected sector at 0x0? That seems to be the point after which everything falls apart.

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

          @NeverDie said in nRF5 Bluetooth action!:

          Error: Cannot erase protected sector at 0x0

          Could this be related to the readback protection? The video I linked before recommends issuing "monitor erase_mass" to completely reset the device and any protection.

          NeverDieN d00616D 2 Replies Last reply
          0
          • mfalkviddM mfalkvidd

            @NeverDie said in nRF5 Bluetooth action!:

            Error: Cannot erase protected sector at 0x0

            Could this be related to the readback protection? The video I linked before recommends issuing "monitor erase_mass" to completely reset the device and any protection.

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

            @mfalkvidd said in nRF5 Bluetooth action!:

            @NeverDie said in nRF5 Bluetooth action!:

            Error: Cannot erase protected sector at 0x0

            Could this be related to the readback protection? The video I linked before recommends issuing "monitor erase_mass" to completely reset the device and any protection.

            Good one! I have a hunch you may have just cracked the problem.

            I see no harm in trying a mass erase before the programming step, so I'll give it a go.

            1 Reply Last reply
            0
            • mfalkviddM mfalkvidd

              @NeverDie said in nRF5 Bluetooth action!:

              Is no one else able to download the files either?

              From the forum, no. From hightail, yes.
              I don't know which program to open them in though.

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

              @mfalkvidd said in nRF5 Bluetooth action!:

              @NeverDie said in nRF5 Bluetooth action!:

              Is no one else able to download the files either?

              From the forum, no. From hightail, yes.

              Direct click fails. But if you press Control key while you click, to open in a new tab, then you should be able to download files from the forum ;)

              1 Reply Last reply
              0
              • mfalkviddM mfalkvidd

                @NeverDie said in nRF5 Bluetooth action!:

                Error: Cannot erase protected sector at 0x0

                Could this be related to the readback protection? The video I linked before recommends issuing "monitor erase_mass" to completely reset the device and any protection.

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

                @mfalkvidd said in nRF5 Bluetooth action!:

                Could this be related to the readback protection? The video I linked before recommends issuing "monitor erase_mass" to completely reset the device and any protection.

                This is a simple sketch for mass erasing a nRF5 MCU. Just compile it with the option a SoftDevice is present, when a SoftDevice is present:

                #include "nrf.h"
                
                void wait_for_ready()
                {
                        while (NRF_NVMC->READY == NVMC_READY_READY_Busy) {
                        };
                }
                
                
                void setup() {
                        // Enable erasing flash
                        NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Een << NVMC_CONFIG_WEN_Pos;
                        wait_for_ready();
                
                        // Erase Flash and UICR
                        NRF_NVMC->ERASEALL = 1;
                        wait_for_ready();
                
                        // Disable erasing
                        NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
                        wait_for_ready();
                
                }
                
                void loop() {
                }```
                1 Reply Last reply
                0
                • NeverDieN Offline
                  NeverDieN Offline
                  NeverDie
                  Hero Member
                  wrote on last edited by NeverDie
                  #373

                  You would think that the programmer device would just do a mass erase as part of its standard procedure, though, so it's a bit odd that it would require me to do it manually. The mass erase that Roger Clark did with his Black Magic Probe seemed nearly instant. I don't have a Black Magic Probe though.

                  In any case, I can't use the above sketch to do ia mass erase because it presumes I can already load a sketch onto the target--i.e. it presumes the fundamental problem is solved already.

                  What's the preferred way to do a mass erase? I seem to remember seeing a mass erase as an option in one of the Nordic utility softwares, but I don't recall now which one. Anyone happen to know?

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

                    Looking further into it, what I may need to first do is UNLOCK the Ebyte module, which appears to be a separate step from mass erasing: https://mcuoneclipse.com/2014/10/05/unlocking-and-erasing-flash-with-segger-j-link/

                    T 1 Reply Last reply
                    0
                    • NeverDieN NeverDie

                      Looking further into it, what I may need to first do is UNLOCK the Ebyte module, which appears to be a separate step from mass erasing: https://mcuoneclipse.com/2014/10/05/unlocking-and-erasing-flash-with-segger-j-link/

                      T Offline
                      T Offline
                      Toyman
                      wrote on last edited by
                      #375

                      @NeverDie may be some hints here:
                      https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/flashing-the-bootloader

                      And also pay attention to their Adalink tool. The support for nrf52 was added recently.

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

                        By switching to a Windows 10 computer, I was able to get J-link working over USB from windows. Then I opened up J-Link Command, which mostly utiizes a command line interface. It turns out that for unlocking, the nRF52836 is not on the list of devices (see below), so I simply then issued a mass erase command, which looks as though it may have worked:

                        J-Link>unlock
                        Syntax: unlock <DeviceName>
                        ---Supported devices---
                          LM3Sxxx [<Auto>]
                          Kinetis
                          EFM32Gxxx
                          LPC5460x
                        J-Link>erase
                        Erasing device (nRF52832_xxAA)...
                        J-Link: Flash download: Total time needed: 0.336s (Prepare: 0.064s, Compare: 0.000s, Erase: 0.263s, Program: 0.000s, Verify: 0.000s, Restore: 0.008s)
                        Erasing done.
                        J-Link>mem 0 100
                        00000000 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000010 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000020 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000030 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000040 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000050 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000060 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000070 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000080 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        00000090 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        000000A0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        000000B0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        000000C0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        000000D0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        000000E0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        000000F0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                        J-Link>
                        

                        :)

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

                          I received the following message from the Ebyte seller:

                          Sorry that the two files are incorrect, please just ignore or delete them.
                          We will send correct files later.
                          
                          Thank you!
                          
                          M 1 Reply Last reply
                          0
                          • NeverDieN Offline
                            NeverDieN Offline
                            NeverDie
                            Hero Member
                            wrote on last edited by NeverDie
                            #378

                            It worked! After doing the above mass erase, the nRF52832 Ebyte Module successfully programmed from the NRF52 DK. I uploaded the mysensors lightsensor sketch, and the serialGateway running on the NRF52 DK is receiving its messages. :)

                            Many thanks to mfalkvidd for his mass erase suggestion and for his link to the Roger Clark youtube video, which had further mass erase commentary.

                            Also, many thanks to d00616 for his excellent guide:
                            https://www.openhardware.io/view/376/MySensors-NRF5-Platform
                            Without that, I would have been lost on how to set anything up.

                            Thanks to everyone else too who made comments and suggestions. This has been a great group effort with a successful outcome. :) :) :)

                            T 1 Reply Last reply
                            4
                            • NeverDieN NeverDie

                              It worked! After doing the above mass erase, the nRF52832 Ebyte Module successfully programmed from the NRF52 DK. I uploaded the mysensors lightsensor sketch, and the serialGateway running on the NRF52 DK is receiving its messages. :)

                              Many thanks to mfalkvidd for his mass erase suggestion and for his link to the Roger Clark youtube video, which had further mass erase commentary.

                              Also, many thanks to d00616 for his excellent guide:
                              https://www.openhardware.io/view/376/MySensors-NRF5-Platform
                              Without that, I would have been lost on how to set anything up.

                              Thanks to everyone else too who made comments and suggestions. This has been a great group effort with a successful outcome. :) :) :)

                              T Offline
                              T Offline
                              Toyman
                              wrote on last edited by
                              #379

                              @NeverDie wow!!! Will you write a short tutorial? Is mas erase needed for EVERY time the sketch is uploaded?

                              NeverDieN 1 Reply Last reply
                              0
                              • Nca78N Offline
                                Nca78N Offline
                                Nca78
                                Hardware Contributor
                                wrote on last edited by
                                #380

                                That's great news @NeverDie, thank you for your efforts and thank you also to everyone who helped !
                                My modules will arrive tomorrow or on Wednesday and you have saved me hours of suffering :D

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

                                  Just now did a very quick range test, and the Ebyte nRF52832 module seems roughly comparable to the nRF52 DK for range. i.e. much better than the Adafruit nRF52832 Feather and also much better than the non-amplified nRF24L01+'s. So, whew! What a relief that is. At least for me, that means I won't need to wait for the nRF52840.

                                  So, now the next question is whether the Ebyte nRF52832 can be made to run in DCDC mode, instead of LDO mode, to make it more suited for battery operation. At the moment, I'm not even sure how big or small a power savings that would equate to. Anyone know?

                                  d00616D 1 Reply Last reply
                                  0
                                  • NeverDieN NeverDie

                                    Just now did a very quick range test, and the Ebyte nRF52832 module seems roughly comparable to the nRF52 DK for range. i.e. much better than the Adafruit nRF52832 Feather and also much better than the non-amplified nRF24L01+'s. So, whew! What a relief that is. At least for me, that means I won't need to wait for the nRF52840.

                                    So, now the next question is whether the Ebyte nRF52832 can be made to run in DCDC mode, instead of LDO mode, to make it more suited for battery operation. At the moment, I'm not even sure how big or small a power savings that would equate to. Anyone know?

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

                                    @NeverDie said in nRF5 Bluetooth action!:

                                    So, now the next question is whether the Ebyte nRF52832 can be made to run in DCDC mode, instead of LDO mode, to make it more suited for battery operation. However, at the moment, I'm not even sure how big or small a power savings that would equate to. Anyone know?

                                    There is no DCDC support for ESB radio at the moment. The DCDC mode is only efficient on high current states, like enabled radio and should only enabled in an defined voltage range.

                                    1 Reply Last reply
                                    1
                                    • T Toyman

                                      @NeverDie wow!!! Will you write a short tutorial? Is mas erase needed for EVERY time the sketch is uploaded?

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

                                      @Toyman said in nRF5 Bluetooth action!:

                                      Is mas erase needed for EVERY time the sketch is uploaded?

                                      Roger Clark says not. I can't say for sure yet, as I haven't yet tried. I think the answer will probably turn out to be that if you aren't doing anything to specifically protect certain flash memory locations after programming it, then you would only need to do it once to undo and erase whatever came on the chip from the factory.

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

                                        @NeverDie
                                        like said above DCDC needs to be enabled. Then, the mcu will automatically switch between LDO mode (for light loads) and DCDC mode for higher currents loads like when mcu is wake up, or during radio comms etc.. Can be interesting in some cases.
                                        in datasheet, DCDC mode can divide by two mcu power consumption. Side effects could be -1dB sensitivity, so it's better to filter well by using two inductors (see ref design)

                                        1 Reply Last reply
                                        2
                                        • d00616D Offline
                                          d00616D Offline
                                          d00616
                                          Contest Winner
                                          wrote on last edited by
                                          #385

                                          I have found a simple way to mass erase the MCU. Select "None" as SoftDevice and use the "Burn Bootloader" function. There is an error generated but the device is erased.

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


                                          8

                                          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