diff --git a/boards/common/nrf52/Makefile.include b/boards/common/nrf52/Makefile.include
index 269a84f145cad0d415540c62ad36bc8464c49ed7..f8e47e1b57d58fb349e71b38ff138e0e70ede920 100644
--- a/boards/common/nrf52/Makefile.include
+++ b/boards/common/nrf52/Makefile.include
@@ -9,24 +9,32 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 include $(RIOTMAKE)/tools/serial.inc.mk
 
-# define jlink as default programmer, but overridable
-PROGRAMMER ?= jlink
+# The following configuration is dependencies specific
+# but they are resolved later
+# Hack to know now if 'nordic_softdevice_ble' is used
+include $(RIOTBOARD)/$(BOARD)/Makefile.dep
 
+PROGRAMMER ?= jlink
 ifeq (jlink,$(PROGRAMMER))
   # setup JLink for flashing
   export JLINK_DEVICE := nrf52
 
-  # The following configuration is dependencies specific
-  # but they are resolved later
-  # Hack to know now if 'nordic_softdevice_ble' is used
-  include $(RIOTBOARD)/$(BOARD)/Makefile.dep
-
   # special options when using SoftDevice
   ifneq (,$(filter nordic_softdevice_ble,$(USEPKG)))
     export JLINK_PRE_FLASH := erase\nloadfile $(BINDIR)/softdevice.hex
     export FLASH_ADDR := 0x1f000
     export LINKER_SCRIPT ?= $(RIOTCPU)/$(CPU)/ldscripts/$(CPU_MODEL)_sd.ld
   endif
-
   include $(RIOTMAKE)/tools/jlink.inc.mk
+else ifeq (openocd,$(PROGRAMMER))
+  # setup OpenOCD for flashing. Version 0.10 of OpenOCD doesn't contain support
+  # for nrf52dk and nrf52840dk boards. To use OpenOCD with these a version
+  # build from source (master > 2018, August the 13rd) is required.
+  ifneq (,$(filter nordic_softdevice_ble,$(USEPKG)))
+    # openocd doesn't work (yet) with softdevice
+    $(error Cannot use OpenOCD with nordic_softdevice module)
+  endif
+  export DEBUG_ADAPTER ?= jlink
+  export OPENOCD_CONFIG := $(RIOTBOARD)/common/nrf52/dist/openocd.cfg
+  include $(RIOTMAKE)/tools/openocd.inc.mk
 endif
diff --git a/boards/common/nrf52/dist/openocd.cfg b/boards/common/nrf52/dist/openocd.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..75659d4ab39769f20b90d655592105b39e6d3f2a
--- /dev/null
+++ b/boards/common/nrf52/dist/openocd.cfg
@@ -0,0 +1,3 @@
+transport select swd
+
+source [find target/nrf52.cfg]