Failed to launch OpenOCD GDB server

Running Nano 33 IoT on desktop IDE 2 beta 12. I can modify and run the program but when I clicked start debug from the top bar I get the message:
Failed to launch OpenOCD GDB Server: Timeout. All of the files listed in the debug output are in the right AppData directories.

Ideas?

@captainaubrey, your topic has been moved to a more suitable location on the forum. Although Installation and Troubleshooting is a good choice, I think it fits better in the section dedicated to IDE 2.0.

Hi @captainaubrey. Do you have a CMSIS-DAP compliant debug probe connected between your computer and the Nano 33 IoT Board?

The debug probe is a dedicated piece of hardware, separate from the Arduino board. A common example is the Atmel-ICE. You must have a debug probe connected between the computer and the Nano 33 IoT in order to use the Arduino IDE 2.x integrated debugger.

The one semi-exception to this is the Arduino Zero board. The reason why a dedicated debug probe is not needed for the Zero is because that board has a debug probe included right on the circuit board. This means the IDE 2.x integrated debugger can be used with the Zero simply by connecting that board's "Programming Port" to the computer with a USB cable just the same as you would while uploading.

You can learn more about the Arduino IDE 2.x integrated debugger here:

Thanks for posting. I wrongly assumed that since the IDE was capable of flashing code into the processor it had debugging capability.

I read " Debugging with the Arduino IDE 2.0 | Arduino Documentation" but the Segger links were broken. But it looks like it is going to cost hundreds of dollars to debug a $20 board.

There are no debugger headers. I am guessing the signals needed are on the edge connections and I would need to make up a header to match the Segger or Atmel debuggers.

Thanks again,
John

Looks like this might do if I add a cable breakout adapter:

SEGGER J-Link EDU Mini - JTAG/SWD Debugger,

SEGGER J-Link EDU Mini - JTAG/SWD Debugger : ID 3571 : $19.95 : Adafruit Industries, Unique & fun DIY electronics and kits.

However this version of the board has no J4 connector and SWDIO and SWCLK are not routed elsewhere according to the schematic.

That is unfortunate. I didn't find a new link for the "J-Link BASE", but there is one here for the "J-Link BASE Compact":

And here is the "J-Link EDU":

Not necessarily. I mentioned the Atmel-ICE simply because it's the CMSIS-DAP compliant debugger most people in this community are familiar with. There are lower cost alternatives. I use this little open source debugger and have been very happy with it:

No, they are the tiny test pads on the bottom of the board:
Nano 33 IoT SWD
The easiest thing would be to solder some wires to it. If you want to get fancy, you could set up a jig with pogo pins that make the connections to the pads.

The MKR1000 is superior to the other Arduino boards when it comes to making the SWD connections because it has a standard SWD header you can just plug any debug probe into (actually the Zero has a header as well, but it's not needed because of the onboard debugger).

Well, you should be aware that the Segger debug probes are not CMSIS-DAP compliant. It is possible to use them with the Arduino IDE 2.x debugger, but you must first install special proprietary software and then add a configuration file written in JSON format to every sketch you want to do debugging on. So it's not as convenient as with a CMSIS-DAP compliant debugger, but there is a tutorial for that process here:

Another thing to note is that you are only allowed to use the J-Link EDU Mini for non-profit educational purposes.

Thanks for the info on the $12 CMSIS-DAP compliant adapter. Actually never heard of CMSIS-DAP. Is this adapter easy to setup and use with the Nano family? I am tempted to order one right now.

John

The nice thing about using a CMSIS-DAP compliant debug probe is there isn't any setup at all. Just connect it to the Arduino board and click the "Start Debugging" button in the Arduino IDE. The only tricky part is making the electrical connections between the debug probe and the test pads on the Nano 33 IoT, but from your other thread it sounds like you will be able to manage that well enough. I have found one of these SWD header breakouts to be useful for making the connection between the debug probe and the Arduino boards that don't have a standard header:

But as for "Nano family", you should be aware that the only boards that are currently configured for use with the Arduino IDE 2.x integrated debugger are the ones of the "Arduino SAMD (32-bits ARM Cortex-M0+) Boards" platform (e.g., Nano 33 IoT, Zero, MKR1000, MKR Zero).

Even though the debugging system used by Arduino IDE 2.x does allow for any Arduino board platform to be configured to support debugging with its boards, the "Arduino SAMD (32-bits ARM Cortex-M0+) Boards" platform is the only official platform this has been done for so far and I'm also not aware of any 3rd party platforms that have done it (even though it's actually fairly easy to do). So the Nano 33 BLE and Nano RP2040 Connect of the "Arduino Mbed OS Nano Boards" platform can not be used with the debugger. The same goes for the classic ATmega328P-based Nano of the "Arduino AVR Boards" platform, and in fact that specific board would likely be challenging to add debugging support for since the VS Code plugin used for the IDE's integrated debugger is designed for use with microcontrollers that have an ARM Cortex-M IP core, which the AVR microcontrollers do not.

So at the moment, I would say that "easy to use" only applies to the Nano 33 IoT, and not to the entire Nano family. That debug probe is easy to use with the Arduino IDE's "Burn Bootloader" feature targeting the Nano 33 BLE though. I have used it for rescuing "bricked" Nano 33 BLE and SAMD boards by restoring their bootloader, so it is a useful tool even beyond debugging.

Sold!

It is good to hear that the IoT is plug and play, it is my first and only Ard at this time, just got it yesterday.

I saw that breakout board when looking at the Swegger. I just put calipers on the IoT and the 14 mm wide breakout board could be glued on the back and not obstruct the plated thru holes. I don't try to solder 0.4 mm pin pitch anymore but the pads are so far apart it would be as easy as soldering a DIP.

For the past 15 years my career has been strictly embedded firmware development and I haven't any WiFi or BLE on my resume and nowadays a lot more job postings require experience with wireless. This won't be paid experience but hopefully soon I will be able to walk into an interview and pull my phone and an IoT out of my pocket and demonstrate my understanding of the subject.

Thanks for spending so much ink on helping me out.

John