Embedded built-in test (BIT) software typically provides a system-level go/no-go indication and, in the presence of a failure, may provide some level of sub-system isolation. This level of reporting, while meeting the customer's operational requirements, does little to support system integration, production, and repair. To support these other needs, "instrumentation code" is added to the BIT software to provide detailed test data through an external interface. Since the BIT software already accesses the hardware parameters for testing, it becomes the most logical component for the instrumentation. This paper describes the techniques of embedding instrumentation during BIT design and development to support a broad range of program test needs. It explains the costs and benefits associated with the use of instrumentation. It gives specific examples of instrumented software and describes how instrumentation data can be used during environmental tests, factory test, and depot test. The impact instrumentation has on software development time, code size, execution time, and reliability is discussed as well as the cost of retrofitting BIT software to add instrumentation. Some of the benefits as well as the challenges to developing effective embedded instrumentation is also examined.