I created a photo montage below showing how to use a mixed signal oscilloscope as a logic analyzer.
![](https://i0.wp.com/www.biophysicslab.com/wp-content/uploads/2024/07/MSO64B-Scope-Arduino-UART-Montage-1024x948.jpg?resize=1024%2C948&ssl=1)
First, I establish a UART bus by connecting the analog probes to the Rx/Tx pins on the Uno board. This setup allows me to monitor the data transfer between the board and the IDE.
Then, I use the scope’s “data rate” measure option to find the boot loader baud rate 115,200.
Alternatively the baud rate can be found in boards.txt file.
Extract from {ide}/hardware/Arduino/avr/boards.txt
uno.upload.tool=avrdude uno.upload.protocol=arduino uno.upload.maximum_size=32256 uno.upload.maximum_data_size=2048 uno.upload.speed=115200
Then, I set up my scope’s single event trigger options to capture all transferred data – about 2.5 seconds.
Finally, I use the bus table to navigate the captured waveform and digital data. In this case, at the beginning, where the board and IDE exchange handshake information starts.
The RS-232 decoder bus for Tektronix MSO6 series oscilloscopes can use two analog scope channels. I found this to be a great combination of detail and flexibility
References:
- Arduino (UNO R3 not R4) as ISP (In-circuit Serial Programmer) and Arduino Bootloaders: https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP/
- What happens when code is uploaded using the bootloader? https://arduino.stackexchange.com/questions/15936/
- 6 Series B MSO Mixed Signal Oscilloscope: https://www.tek.com/en/products/oscilloscopes/6-series-mso