I work in Silicon Valley in the networking field and electronics are just a hobby. One that I am not that great at yet, but nevertheless a fun one.
I recently got an Open Bench Logic Sniffer from the Gadget Factory and found it to be a very handy device, even though I haven't had any direct experience with commercial logic analyzers.
Initially I had looked around for an Arduino based logic analyzer since I had a handy Arduino board and an interest in making a simple signal / function generator, but needing a way to very the timing. Sadly I didn't find any ready to work projects and what little I found was Windows only and I have a Mac laptop.
Eventually I stumbled across the SUMP project, discussions of the Bus Pirate and of course the OLS. At that point I realized the Bus Pirate I had already would work with SUMP and set about upgrading it. Reading through the SUMP docs the protocol looked simple enough that I thought "Why not try implementing this on the Arduino?" and set about it. After getting my code to respond appropriately and kind of working with the client I went about trying to get some accuracy. That is when I ordered an OLS of my own.
Ultimately I was able to get some fairly precise sampling on the Arduino by watching a debug pin with the OLS and eventually I had a really basic working SUMP compatible logic analyzer!
I call it the "Arduino Generic Logic Analyzer" or AGLA. The code is available under a BSD license here: http://github.com/gillham/logic_analyzer
and I also posted about it over here: http://arduino.cc/forum/index.php/topic,52881.0.html
I asked Jawi for some help on the client adding a few tweaks to make it easier to use an Arduino. Things like a configurable delay after opening the serial port to allow the Arduino to auto-reset and become ready again. Also a toggle for the DTR pin which I found was pretty necessary under Linux. I've created a device profile for the AGLA with Jawi's client and once I have it all working I'm hoping he'll add it to the distribution if people find it useful.
I've tried to keep the code simple, mostly because I'm not that great of a programmer, but also so it is easier to follow and somewhat consistent with the ease of use goals of the Arduino project. I'm able to record 1024 samples at 1MHz with decent accuracy. (this "accuracy" comment from an inexperienced logic analyzer person remember) Basic parallel triggers seem to work ok and right now I have no plans to add more complex triggering since the Arduino is pretty limited hardware and barely has the cycles for what it is doing now.
Anyway, it might seem odd to use a good logic analyzer to make a cheap one, but I guess to some degree that was how the OLS came about, and maybe the BP SUMP mode. Now to push the feature down into even less capable hardware we have the AGLA. ;)
The BP initially and then the OLS were invaluable for my work and getting accurate timing. I've used my OLS to look at an SPI connection from my Arduino to a graphical LCD and frankly the OLS can't be beat for the price. That being said, the AGLA has some usefulness as well, I think, and I'm hoping it will serve to whet people's appetites for using logic analyzers and positively contribute to the SUMP & OLS community.