I am uploading a test sketch(Blink) to my new Zero(with Wifi101 shield) and when I press Upload in the IDE, the Console says the following:

Arduino: 1.6.10 (Linux), Board: "Arduino/Genuino Zero (Programming Port)"

Open On-Chip Debugger 0.9.0-gd4b7679 (2014-10-03-00:26)
Licensed under GNU GPL v2
For bug reports, read
debug_level: 0
adapter speed: 500 kHz
adapter_nsrst_delay: 100
cortex_m reset_config sysresetreq
Error: unable to find CMSIS-DAP device
Error: No Valid JTAG Interface Configured.
Error: No Valid JTAG Interface Configured.

I am using the Zero programming port.

  • Unless you mean that this works normally and only breaks when the shield is present, remove the shield for the moment and take it out of your title. Then edit the the output of lsusb into your question. Also look for messages in dmesg after re-plugging the board, and consider trying another cable. There could also be permission issues, but I'd expect a different error message then. Commented Aug 21, 2016 at 16:52
  • I just tried it without the wifi101 shield, and I got the same error. Commented Aug 21, 2016 at 17:04
  • And lsusb shows what??? And dmesg ??? Commented Aug 21, 2016 at 17:18
  • Experiments with a different CMSIS-DAP show that this is probably a permission issue - openocd does not distinguish between the absence of a CMISIS-DAP programmer vs. lack of permission to access one which is present. The usual solution is to create or install an appropriate udev rule and then restart udev or the system and replug the device. This does not seem to be well documented, so one might say the board is not a well supported product at present. Commented Aug 21, 2016 at 17:38

1 Answer 1


I had exactly the same error with the same board. Running the IDE as root solved the problem. So, Chris was right pointing out a permission issue.

I found more information here : http://bitofahack.com/post/1437909576

Then I added the file /etc/udev/rules.d/98-openocd.rules :

ACTION!="add|change", GOTO="openocd_rules_end"
SUBSYSTEM!="usb|tty|hidraw", GOTO="openocd_rules_end"
ATTRS{product}=="*CMSIS-DAP*", MODE="664", GROUP="plugdev"                                                                                                                                                                                

I then ensured that I was member of group plugdev.

udev looks for changes in his rules directory so you don't have to restart it.

I plugged the board again and it worked.

Note that you can force udev to read the rule files again by entering :

sudo udevadm control --reload

I had to do this because I first made a mistake in the rule file.

Hope this helps.

  • 98-opencd.rules >>> 98-openocd.rules Commented Sep 22, 2017 at 1:44
  • missing closing double quote ? LABEL="openocd_rules_end >>> LABEL="openocd_rules_end" Commented Jan 18, 2021 at 21:12
  • Yes. Fixed. Very old message... Commented Jan 20, 2021 at 12:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.