I have been having problems with the I2C interface on a chip I have been playing with. Since I do not have an I2C bus analyzer (nor can I afford one!), I have been using my scope to decode bus transactions. That that gets old very quickly. So why not automate the process? Why not put the scope under PC control, collect the data with the scope, transfer it to the PC, and then run a software bus analyzer there? So for the last few days I have been writing a Python library to interface with the RS-232 port on my Rigol DS1102D mixed signal DSO. It has taken some time, but tonight I think I have make some very good process. I am able to control most aspects of the scope, and I can even download various quality data streams (600, 16k, or 500K) from each channel.
Now I am left to plot the data using MatPlotLib and then write an I2C bus analyzer. The plotting should be a piece of cake. The I2C analyzer sounds easy, but I am sure that will be the tougher nut to crack.
All this to finish the lighting detector so I can get back to what I really want to do and that is finish my AVC project.
If you are not familiar with Yak Shaving, that is the situation where a simple job keeps getting interrupted by other jobs that must be done first. Consider the average home project. You go to change a light bulb, but the drawer is stuck closed, and in the process of opening you break it. Then on the way to the store to buy the part you need to fix it, you have a car accident, and before you know it, you are in Siberia shaving a yak.