For Christmas I got a 16 channel Logic Analyzer from Saleae:
I’ve known I should get one of these some day but it didn’t seem very pressing. Then I saw someone at the local Makerspace using one and I realized that it would have helped me with several problems I had had, one just being a few days earlier.
While my oscilloscope will monitor voltage changes on one or two lines, the logic analyzer can monitor logic changes (0 or 1) across up to 16 lines. It can also decode certain types of logic like serial.
My first test with the logic analyzer was to connect it to an arduino’s TX pin where I would transmit ‘Hello World!’ every second. With a little fooling around I captured that one signal:
I then turned on the analyzer and it decoded the serial signal which can be seen above the signal: ‘Hello World!’.
This is the first time I’ve ever seen a serial signal at the bit level, outside of books, so of course I wanted to make sure I could decode the bits into the characters myself.
Looking at the letter H, I got the bits 00010010 which is not an H but a control-R. I had to go learn a little about what I was looking at. Turns out the stream of bits is from least significant to most significant (https://www.sparkfun.com/tutorials/215). I reversed the bits from 00010010 to 01001000 and that is binary for the letter ‘H’!
When I finally use the logic analyzer on a real problem, I’ll try to remember to report how it works.
I decided to try and watch the serial data on my oscilloscope. Never did that before so it would be a good exercise. After some screwing around this is the best I could do:
You can see the first couple of letters on the scope though it is definitely not as neat and there is no analyzer telling you where each letter begins and what it is. There is also no way to really see more than a few characters into a stream of data. As I capture more characters, the width of each bit gets more narrow and harder to accurately detect.