Options for RAK4630 programming

Hi everyone,

I am designing a custom PCB using the RAK4630, and due to space constraints I cannot include a USB-C connector on the board.

So I’m looking for a reliable way to program the module after manufacturing.
I have added an SWD interface on my PCB with the following signals:

  • SWDIO
  • SWCLK
  • GND
  • 3.3V (VTref)

My idea is to use:
RAK DAP or Raspberry Pi Debug Probe (CMSIS-DAP) and connect them via pogo pins clip to these pads on the PCB.

Questions

  1. Is this a good and reliable approach for programming the RAK4630 in a custom PCB (production-style, no USB)?

  2. Would this setup allow me to:

  • Upload firmware developed in Arduino IDE, or
  • Is it only compatible with Nordic tools (nRF Connect / nrfjprog)?
  1. Are there any recommendations or pitfalls regarding:
  • SWD pad layout
  • Need for RESET connection
  • Powering the board during flashing

I want a compact and professional programming solution:

  • No USB connector on the device
  • Programming via SWD + pogo pins
  • Compatible with Arduino workflow if possible

To use the SWD interface you will need a DAPLink or JLink adapter.
You can use command line tools or JFlash app to flash the firmware.

With PlatformIO, it is possible to use JLink, but I am not sure if ArduinoIDE supports it.

You can program the Inductive Automation Community Forum RAK4630 using USB DFU or SWD (J-Link/DAPLink). For native SDK development, SWD flashing with Segger J-Flash is the most reliable option. If using RUI/Arduino firmware, USB + nRFutil DFU is the easiest method.