Linux embedded development stays a second-class citizen

Header image by Michael Sklar

Arduino debugging can be a pain, as you need to get a (quite expensive) specialized piece of hardware, that you then need to hook in the right way to the board in order to get going.

Now, Microsoft has introduced a very nifty feature in the Arduino extension for VSCode, which allows you to debug some Arduino boards without any additional hardware. That is, just plug the board to the USB port, put some breaking points, and step through your code as if it’s nobody’s business. That’s great news if you happen to be using one of the supported boards, which I am. No more print statements, sounds like heaven!

So I set the environment up in VSCode, followed the steps, started the debugging session and… Error. Crap. I must have misconfigured something. Tha’s fine, let’s google it.

And, lo and behold, nope. No misconfiguration. The feature is broken in Linux; actually, it seems that any debugging on Arduino boards (with or without segger) just won’t work because of a small VSCode bug, which has been reported back in 2017.

I wish this was a fluke. Unfortunately embedded development on Linux keeps lagging behind, and I keep having to switch back and forth between OS’s depending on which specific part of development I am at.

Giovanni Carmantini @giov