Past Meetup

(Real) Debugging of Arduino Sketches with debugWire

This Meetup is past

11 people went

Location visible to members

Details

This is an intermediate to advanced level Arduino topic. Contact me if you want to get up to speed on basic Arduino operations or have any questions. Who should attend?

• Developers that have used professional C/C++ development environments on heavier platforms and miss the advantages of source-level debugging while writing code for Arduino

• Arduino hackers that have a number of projects under their belt, but find themselves running into the limits of the Arduino IDE

• Electronics gurus who can set up the hardware for their projects, but struggle with the software side of their projects

Do you write perfect code for your Arduino sketches? I don’t. So after many hours of frustration using the official recommended Arduino debugging techniques (read: print statements!), I bit the bullet and figured out how to set up a hardware debugger (https://en.wikipedia.org/wiki/Joint_Test_Action_Group) in order to do “source-level debugging” of Arduino sketches, including breakpoints, watchpoints, and live data inspection.

In this tech talk, I will share the motivations, process, and results of setting up the debugWire form of debugging. What is debugWire (https://en.wikipedia.org/wiki/DebugWIRE)? It is the on-chip debugger (OCD) mechanism built into every Atmel AVR processor used on the Arduino boards. Once enabled, an external tool can communicate with the inner workings of the microcontroller by manipulating the RESET pin, leaving all other pins available for use by your project.

A special thanks to Atmel for supplying the ICE (http://store.atmel.com/PartDetail.aspx?q=p:10500269#tc:description) in support of the IPSO alliance contest (http://www.ipso-alliance.org/challenge2013/ipso-challenge-2013-interviews/ipv6-retro-futurism).