This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Arduino, Adafruit and Particle.io all use the nRF52840 SOC but none of them can be programmed through USB and the NRF Connect for Desktop

I have 3 Nordic nrf52840 USB dongles, several Particle Mesh Argons and have ordered an Arduino Nano 33 BLE Sense and have found the Adafruit Feather nRF52840 Express. All of these boards use the Nordic nRF 52840 SOC but the last three cannot be programmed using the "NRF Connect for Desktop".

I would like to be able to program these boards with one consistent method and the NRF Connect For Desktop would be the best approach. I get that it is not Nordic's responsibility to spend time to connect these products, but perhaps they could direct me to some possible solutions. Each of these boards have different strengths: The Nordic board is inexpensive, the Nano 33 BLE Sense has many sensors on board, the Particle Argon has built in Wifi, the Adafruit board allows CircuitPython. 

If anyone can connect these boards, it would be the technicians at Nordic. Does anyone have any suggestions? I can generate a .hex file but how do I get it onto the boards. Is there any bootloaders that might work on all three? Can that bootloader be loaded using only the USB connection? I do not want to use a JTAG connection.

The advantage to Nordic is that a large BLE network could have many Nordic boards, but could also have some of these specialty boards when needed. Being able to switch between the different platforms would also be very useful.

Parents
  • Hi,

    From the schematics of the boards you mention, it looks like they all have the USB connector connected directly to the nRF52840 USB port. This means that you should be able to use the same bootloader that is running on the nRF52840 Dongle (USB Open bootloader). This should allow your to use nRF Connect Programmer app to program all boards. Most likely it is not possible to update from the existing bootloader to the Open Bootloader without using SWD interface, but this is something you need to check with the manufacturers of the boards. We do not have any knowledge of bootloaders developed/used by 3rd party vendors. You should also check that replacing the bootloader does not break any other functionality of the boards.

    Best regards,
    Jørgen

  • The Open Bootloader is available in our SDK, but it needs to be built by you (Segger Embedded Studio and GCC are supported free toolchains). Alternatively, you can find a zip-file containing the stock bootloader of nRF52840 Dongle in the nRF52840 Dongle Programming Tutorial

    We primarily use our own DKs for programming external boards, including the nRF52840 Dongle. The DK come with a J-Link OB debugger, and a debug out port. If you solder a 2x5-pin SWD header to the back of the dongle, you can easily connect it to the DK with a 10-pin SWD cable.

    If you decide to buy a separate J-Link Debugger, please make sure it is a genuine one and not a clone. The clones tend to cause more issues than they solve

  • The Arduino references in the board header files for the nRF52xxx DKs are there because the boards use the Arduino form factor. The defines have no effect unless they are used in the application code. You can create a similar board file for your other Arduino boards, but you can also define the pin numberings directly in the code. In the SDK examples, the main usage of the board header files is to defined LEDs, Buttons, and the TWI pins are also used from Arduino defines.

    The only official supported solution for programming Nordic devices is through the use of J-Link debuggers. You can also flash applications from other debuggers (and event Raspberry Pis) using OpenOCD etc, but these solutions are used at your own risk and are not something we provide support for.

    The nRF52840 Dongle is primarily intended for use with our development tools (nRF Connect application, etc). This is why there are no SWD pins soldered by default. It should not be possible to "corrupt" the bootloader of the dongle without connecting an external debugger to the device. Nordic does not share the private key required to generate update packages for the bootloader, preventing any customer or 3rd party to update the bootloader with an unofficial bootloader package.

  • Thanks again Jorgen. It looks like I will try the:

    Segger J-Link EDU mini which comes with a 10 pin cable

      $30 USD x 1  Segger J-Link EDU mini - JTAG/SWD Debugger https://www.amazon.com/Segger-J-Link-EDU-mini-Debugger/dp/B0758XRMTF/ref=sr_1_fkmr0_2?keywords=segger+edu+ssd&qid=1575614602&sr=8-2-fkmr0

    .
    I also think I should get the 10 pin tag-connector
    $ 39 USD  x    1 ‎TC2050-IDC-NL-ND‎   tag-connect cable   https://www.digikey.com/products/en?keywords=%E2%80%8ETC2050-IDC-NL-ND%E2%80%8E
    There are many programmer pins on the back of the nRF52840 USB dongle. Can you think of any other cable connectors that might easily fit?
    I feel like the pins below should be able to be used for programming but have never seen a connector that works with them. Any suggestions? Not sure if I can solderr wires to something that small.
  • I have used a header soldered to P1 and also soldered pins to SWDCLK/SWDIO that you have circled in the image to program the dongle. I'm not aware of any connectors that will fit with these pins. SB3-SB4 are solder bridges for disconnecting D+ and D- data lines to the USB connector, they are not used for programming.

    The Tag-connect cable should work with the Dongle, and you will also find these pads on most of our development kits.

  • Hello rocksetta,

    You can also try particles debugger which will cost you $12 to do the same trick. I just wrote an article after realising there was not any actual guide to show how to do it. see if it can help you solve your issue. https://genxnext.com/debug-particle-argon-with-segger-embedded-studio/

  • Yes the Particle Debugger is an amazing device. Very easy to use with the Particle boards. With the Nordic nRF52840 USB dongle you just have to use three wires. SWDCLK, SWDIO and GND. With Arduino the locations are a bit more confusing and connecting is a bit harder. The nice thing with the Particle Debugger is that .hex files are windows drag and drop. Seriously, once the Debugger is connected to your computer and the Nordic USB Dongle has it's own power, a window pops up that you drag your .hex file onto. The window disappears then another window shows up. If the new window has a FAIL.txt file it did not work. No Fail.txt file and it worked. Very easy.

    Can load full .hex file programs or just load a bootloader.hex, either way fairly amazing. I can load the Arduino bootloader onto the Nordic board or load the Nordic bootloader onto the Arduino or Particle boards.

Reply
  • Yes the Particle Debugger is an amazing device. Very easy to use with the Particle boards. With the Nordic nRF52840 USB dongle you just have to use three wires. SWDCLK, SWDIO and GND. With Arduino the locations are a bit more confusing and connecting is a bit harder. The nice thing with the Particle Debugger is that .hex files are windows drag and drop. Seriously, once the Debugger is connected to your computer and the Nordic USB Dongle has it's own power, a window pops up that you drag your .hex file onto. The window disappears then another window shows up. If the new window has a FAIL.txt file it did not work. No Fail.txt file and it worked. Very easy.

    Can load full .hex file programs or just load a bootloader.hex, either way fairly amazing. I can load the Arduino bootloader onto the Nordic board or load the Nordic bootloader onto the Arduino or Particle boards.

Children
No Data
Related