ISP1807 (nRF52840) – Bootloader + Arduino app does not run on custom board, but works when hex is copied from a working board

Hi,

I’m having trouble getting an ISP1807 (nRF52840) to run on a custom PCB, and I’m hoping someone here might recognize what I’m missing.

Hardware / setup

  • Module: ISP1807 REV3 (nRF52840)
  • Custom-designed PCB using ISP1807
  • Reference board: Switch Science ISP1807 Breakout Board
    https://www.switch-science.com/products/6100
  • Programmer / debugger: SEGGER J-Link
  • IDE: Arduino IDE
  • Flashing tool: nRF Connect Programmer

J-Link connection, power, and basic wiring are confirmed to be OK.

What I want to do

  • Write applications using Arduino IDE
  • Flash the compiled hex using J-Link / nRF Connect Programmer
  • Use SEGGER RTT for debug logs
  • RTT should keep working after reset or power cycle
  • The application itself is simple:
    • control a few SPI devices
    • basic BLE communication

Bootloader

I am using the bootloader provided on the Switch Science ISP1807 breakout board product page (link above).
I am not using any other third-party bootloaders.

Problem

Custom board: nothing runs

On my custom PCB, I tried flashing:

  • the Switch Science bootloader
  • an application hex built with Arduino IDE

using J-Link / nRF Connect Programmer.

Result:

  • LED on P0.06 never turns on
  • No visible sign that the MCU is running code

The LED and power wiring are fine (the LED lights if I pull the MCU pin to GND manually).

Breakout board: works fine

The same Arduino sketch, when written to the Switch Science breakout board via Arduino IDE, works perfectly:

  • application runs
  • RTT output works as expected

Manually flashing bootloader + app still fails

Even when I use:

  • the Switch Science bootloader
  • the exact same Arduino-built application hex

and flash both manually to the custom board, it still does not run.

but.

Arduino IDE → breakout board → extract hex → custom board → works

If I:

  • Write the sketch to the Switch Science breakout board using Arduino IDE
  • Use nRF Connect Programmer to save the full flash contents as a hex file
  • Flash that hex file to my custom board

→ the application runs correctly on the custom board.

So the hardware itself seems OK.
It looks like there is some difference between:

  • “bootloader + app flashed manually”
  • and “a full flash image that originally came from Arduino IDE”

Questions

  • On ISP1807 / nRF52840, are there any common reasons why:
    • manually flashing a known-good bootloader + Arduino app does not run
    • but copying a hex from a working board does run?
  • When using Arduino as the development environment, what is the recommended way to:
    • flash with J-Link
    • use RTT reliably
    • keep things working after reset and power cycling?
  • If this cannot be solved by simply flashing “bootloader + app”:
    • is it technically possible to reuse or reconstruct a bootloader-equivalent state based on a known-good board?
    • for example, reusing everything except the application area, or using the working image as a baseline
    • are there any major pitfalls or things I should be careful about?

This is purely for personal, non-commercial hobby use.
I’m just trying to avoid throwing away a custom PCB that took a lot of time and money to make.

Sorry if my English is strange — I used a translation tool.
Please let me know if anything is unclear or incorrectly written.

Thanks in advance for any advice or hints.

Parents Reply
  • Thanks for the comment and the link.

    You were right that this turned out to be Arduino-environment related rather than a problem with the ISP1807 itself.

    In my case, the root cause was that I was not setting the bootloader start address in UICR, so execution never reached my application. Once that was fixed, the module worked as expected, including reset behavior and SWD access.

    So the hardware itself was fine, and the issue was in how the Arduino-based setup handled the boot/flash configuration.

    Thanks again for the pointer.

Children
Related