What is the purpose of the C++ qualifier volatile
, what does it have to do with race conditions, and what are Heisenbugs?

Everything about debugging
What is the purpose of the C++ qualifier volatile
, what does it have to do with race conditions, and what are Heisenbugs?
Debugging classic AVRs in the Arduino IDE 2 is finally possible! It took a while to implement this feature, but now it is just a piece of cake to enable debugging and start using the debugger.
Continue readingThe featured picture of this blog post is by rawpixel.com on Freepik.
AVR MCUs sometimes appear to restart without you having pressed the RESET button or any other obvious reason. Is that a sign of resilience or of looming danger? How can you find the root cause?
Continue readingThe featured image of this blog post is based on vector graphics by captainvector at 123RF.
What keeps people from using a debugger? Well, it is mostly that one has initial costs in terms of setting up the debugging environment and of learning how to use the debugging tool. Hopefully, the next iteration of my hardware debugging tool dw-link, which is able to debug classic ATtinys and ATmegaX8s, will somewhat ease that burden, in particular, because you can buy the accompanying hardware now at Tindie.
Make it Fail
(David J. Agans)
The quote is from Dave’s book Debugging: the 9 indispensable rules for finding even the most elusive software and hardware problems, which I recommend to everybody who has to debug a technical artifact.
Another xkcd comic that hits the spot. Except, with my new hardware debugger, this is the past 😎. Recently, I debugged one of my electronic geocaching gadgets and was positively surprised how easy it was to figure out ones own mistakes and to come up with the right fix.
Continue readingThe featured image of this post is based on a picture by Florian-if published on Wikipedia under CC-BY-SA-3.0
Is it possible to build a hardware debugger for debugWIRE for less than €10? As it turns out, it is. You just have to make a few compromises and also do a bit of soldering and gluing.
Continue readingdw-link can turn your Arduino board into a hardware debugger, and dw-probe connects it to any target board.
Continue readingThe featured image of this post is by WikiImages on Pixabay
You want to make a single step in your program, but the debugger takes you to some unknown area of the program. This was, in fact, my first experience when I tried out Microchip’s MPLAB X IDE debugger on the innocent blinking sketch. Is this a bug or a feature?
Continue readingThere has never been an unexpectedly short debugging period in the history of computers
… but the periods might have become shorter with the right tools
Copyright © 2025 Arduino Craft Corner
Theme by Anders Noren — Up ↑