When debugging resource-limited embedded systems, traditional tools like log files or single-stepping through code are often impractical. A lightweight alternative is toggling GPIO pins at key points in the code and observing the signals with an oscilloscope or logic analyzer. This lets developers measure function execution times, trace control flow, and monitor ISR activity in real time with minimal overhead. The technique can be made non-invasive by writing directly to ports instead of using function calls, and by using conditional compilation with #defines to easily enable or disable the tracing code. With 8 bits of free IO and a logic analyzer, developers can also output state variables, track multiple functions simultaneously, or combine state and timing data.