External nRF52840 board appears to flash but won't do anything

I'm attempting to develop for the xiao_ble board in nRF Connect, programming it as an external board using the nRF52840 development kit and the Seeed XIAO expansion board to access the relevant pins. I have the wiring set up like so:

And it appears to work, I see it programming the flash, verifying, etc, and the XIAO board is no longer recognized by the Arduino IDE so *something* is happening, but I can't get it to even a blink a simple LED; it won't show up as a COM port or do anything it should be doing. Am I missing something? The example I'm trying to start with as a base point is zephyr/samples/basic/blinky

Parents
  • Hi,

    1. Have you connected the serial interface of the custom board to your computer? Since you expect it to show up as a COM port?
    2. Can you share the log output when you flash the board?
    3. Have you tried using the NCS VS Code extension instead of Arduino IDE?

    regards

    Jared

  • Hi Jared,

    1. Yes, when attempting to discover the board as a COM port I connect it via its USB-C connector; out of the packet, the board registers as a COM port when connected this way, I guess because of the Arduino bootloader it ships with.

    2:

    3: Yes, that is what I am using to develop and flash the board; I only used the Arduino IDE to initially verify the board was working.

  • Hi,

    Could you double check that you aren't flashing the nRF52840 on the development kit instead, is the LED on the development kit blinking after you've flashed the application? The easiest way to check this is to erase the nRF52840 on the development kit before trying to flash the external board. If the nRF52840 on the DK starts blinking, then you know that you're in fact flashing the onboard IC instead of the external board.

    Can you measure directly on the pad of the custom board that is assigned to the blinky pin and see if you can measure the blinking signal?

    regards
    Jared

  • Yes, I can confirm that I am not flashing the development kit IC; disconnecting VDD/VTG and GND Detect, and flashing the blink example (after building for the correct board), I saw the dev kit start blinking; I recovered the device (it stopped blinking), reconnected VDD/VTG and GND Detect, flashed again and this time it did not blink. When attempting to program the XIAO board I ensure that the correct build for the board is selected.

    None of the LED pins on the XIAO board are accessible to probe, unfortunately, but I am confident that the correct GPIO port/pin is being referenced in the code after cross-checking all respective documents, and when I first checked the device using Arduino in the initial test, it blinked fine when powered from the expansion board/connected as shown.

Reply
  • Yes, I can confirm that I am not flashing the development kit IC; disconnecting VDD/VTG and GND Detect, and flashing the blink example (after building for the correct board), I saw the dev kit start blinking; I recovered the device (it stopped blinking), reconnected VDD/VTG and GND Detect, flashed again and this time it did not blink. When attempting to program the XIAO board I ensure that the correct build for the board is selected.

    None of the LED pins on the XIAO board are accessible to probe, unfortunately, but I am confident that the correct GPIO port/pin is being referenced in the code after cross-checking all respective documents, and when I first checked the device using Arduino in the initial test, it blinked fine when powered from the expansion board/connected as shown.

Children
  • Hi,

    The log from the programming doesn't really output any errors so it seems like everything is fine from the programming perspective. What is actually happening on the custom board is difficult to say as I don't have any experience with it. 

    ZacMid007 said:
    and when I first checked the device using Arduino in the initial test, it blinked fine when powered from the expansion board/connected as shown.

    Can you elaborate on this? Have you been able to flash the board with the blinky example before and see that the LEDs on the board starts blinking? Are you still able to repeat this result?

    regards

    Jared?

  • No, the initial blinking was only from the Arduino sketch/flash before attempting to use nRF Connect. After flashing from nRFC, I am unable to further program using Arduino and the previously working program appears to be erased.

  • Hi,

    I think it would better if you contacted the creators behind this board as it's a third-party board. From the Nordic side, I can't say that I see any signs of error since the programming verifies that it was successfully flashed. 

    regards

    Jared

  • I had a look using the nRF Programmer, and the two build files for the boards appear very different; this is the blinky build file (zephyr.hex) for the xiao_ble

    Whereas this is the blinky zephyr.hex file for the dev kit, which runs successfully on said dev kit:

    I have also made a post on the Seeed forum about this

  • Hi,

    This is the memory layout from building blinky for my nRF52840 devkit:

    Which is similar to the last one you've shared.

    ZacMid007 said:

    his is the blinky build file (zephyr.hex) for the xiao_ble

    Looks like the application expects something else to be flashed at the beginning of flash. Looking at the dts file of the board, it looks like the board expects the softdevice from nRF5SDK to be flashed: 

    It seems to me that this board was originally made for the nRF5SDK. Can you clarify whether this is correct with the creators of the board?

    Also, you can try to build and flash the application to the board without 

    CONFIG_BUILD_OUTPUT_UF2=y
    CONFIG_USE_DT_CODE_PARTITION=y
     
    Which are defined in the board config. 
     
    regards
    Jared
Related