Nano 33 BLE Arduino as ISP Programmer

pert:
I do have some experience with programming the SAMD boards, as I shared in the thread you linked. What I ended up doing was buying a cheap Chinese JLink clone from eBay and using Adalink:
GitHub - adafruit/Adafruit_Adalink: Python wrapper for Segger's J-Link Commander & STMicro STLink V2 to flash various ARM MCUs

I see that Adalink does claim compatibility with the nRF52840, so that same solution could work for you. I notice that in your other thread you mention you are interested in the Segger J-Link EDU Mini, which may well be a superior alternative to the clone, with really not so much higher of a price tag.

So in summary, The Nano 33 IOT can be programmed with any Arduino as Programmer ISP (Careful only use 3V3 connections) using the DAP but the Nano 33 BLE has not yet be listed with DAP Github . I can, however use your j-link method to update my Nano 33 BLE bootloader. That is very nice.

Hmmmm. Updating the DAP to the nRF52840 might be out of my ability range, however I do work hard. It looks like the Adafruit Feather nRF52 has already been added here and finding the differences between the Nano 33 BLE and the Adafruit Feather nRF52 might be possible.

Any idea where I would find this memory address location information for the Nano 33 BLE, I assume the Nano 33 BLE Sense would be the same.

struct USER_ROW {

    uint8_t BOOTPROT : 3;
    uint8_t EEPROM : 3;
    uint8_t BOD33_Level : 6;
    uint8_t BOD33_Enable : 1;
    uint8_t BOD33_Action : 2;
    uint8_t WDT_Enable : 1;
    uint8_t WDT_Always_On : 1;
    uint8_t WDT_Period : 4;
    uint8_t WDT_Window : 4;
    uint8_t WDR_EWOFFSET : 4;
    uint8_t WDR_WEN : 1;
    uint8_t BOD33_Hysteresis : 1;
    uint16_t LOCK : 16;

    void set(uint64_t data) {
      BOOTPROT = data & 0x07;
      EEPROM = (data >> 4) & 0x07;
      BOD33_Level = (data >> 8) & 0x3F;
      BOD33_Enable = (data >> 14) & 0x01;
      BOD33_Action = (data >> 15) & 0x03;
      WDT_Enable = (data >> 25) & 0x01;
      WDT_Always_On = (data >> 26) & 0x01;
      WDT_Period = (data >> 27) & 0xF;
      WDT_Window = (data >> 31) & 0xF;
      WDR_EWOFFSET = (data >> 35) & 0xF;
      WDR_WEN = (data >> 39) & 0x01;
      BOD33_Hysteresis = (data >> 40) & 0x01;
      LOCK = (data >> 48) & 0xFFFF;
    }
    uint64_t get() {
      return ((uint64_t)LOCK << 48) | ((uint64_t)BOD33_Hysteresis << 40) |
             ((uint64_t)WDR_WEN << 39) | ((uint64_t)WDR_EWOFFSET << 35) |
             ((uint64_t)WDT_Window << 31) | ((uint64_t)WDT_Period << 27) |
             ((uint64_t)WDT_Always_On << 26) | ((uint64_t)WDT_Enable << 25) |
             ((uint64_t)BOD33_Action << 15) | ((uint64_t)BOD33_Enable << 14) |
             ((uint64_t)BOD33_Level << 8) | ((uint64_t)EEPROM << 4) |
             (uint64_t)BOOTPROT;
    }
  };
  USER_ROW _USER_ROW;
};

Looking at the Feather NRF52 Pinout diagram, the two boards look very different.