diff --git a/variants/rak4631/platformio.ini b/variants/rak4631/platformio.ini
index 4870d4b68e76fa4654fb45c5eb3b99b204d137e1..58a8eb5e4692122ed49b27ed2e02f4346df208a1 100644
--- a/variants/rak4631/platformio.ini
+++ b/variants/rak4631/platformio.ini
@@ -18,5 +18,34 @@ lib_deps =
   rakwireless/RAKwireless NCP5623 RGB LED library@^1.0.2
   https://github.com/meshtastic/RAK12034-BMX160.git#4821355fb10390ba8557dc43ca29a023bcfbb9d9
 debug_tool = jlink
+
 ; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
-;upload_protocol = jlink
\ No newline at end of file
+; Note: as of 6/2013 the serial/bootloader based programming takes approximately 30 seconds
+;upload_protocol = jlink
+
+; Allows programming and debug via the RAK NanoDAP as the default debugger tool for the RAK4631 (it is only $10!)
+; programming time is about the same as the bootloader version.
+; For information on this see the meshtastic developers documentation for "Development on the NRF52"
+[env:rak4631_dap]
+extends = env:rak4631
+board_level = extra
+; pyocd pack --i nrf52840
+; eventually use platformio/tool-pyocd@^2.3600.0 instad
+upload_protocol = custom
+upload_command = pyocd flash -t nrf52840 $UPLOADERFLAGS $SOURCE
+
+; Only reprogram the board if the code has changed
+debug_load_mode = modified
+;debug_load_mode = manual
+debug_tool = custom
+; We manually pass in the elf file so that pyocd can reverse engineer FreeRTOS data (running threads, etc...)
+debug_server =
+  pyocd
+  gdbserver
+  -t
+  nrf52840
+  --elf
+  ${platformio.build_dir}/${this.__env__}/firmware.elf
+; The following is not needed because it automatically tries do this
+;debug_server_ready_pattern = -.*GDB server started on port \d+.*
+;debug_port = localhost:3333
\ No newline at end of file