Really nice work JTR! I've done some development with the Microchip USB stack myself, so I understand the level of complexity you were dealing with. I really hope this project will become THE open source alternative to the Microchip stack that the community has so long been waiting for.
Personally, I don't have the time to help you with the development, but next time I need USB in some project I'll try your stack first. It's up to the people of DP now to make this a mature stack! Maybe we could ask/propose Microchip to put some development effort into this stack, so they could offer it as their default USB stack. I've heard they were unhappy with the current licensing issues of their current stack, so they might be very interested...
For a major speedbump consider using a ENC424J600 or ENC624J600 in combination with a processor with enough I/O to interface with the ENC424J600's parallel port instead of over SPI. I've sampled it in combination with a DSPIC33FJ128GP804 but I haven't found time to play with these, yet.
Here also no intrest in Arduino compatibility either, and another vote for mounting holes. Further: break out all free I/O.
Looking good, although I had only a small test-run. I do, however, have some , mostly GUI related, comments.
After I've done an I2C analysis, two channels are labeled SCL and SDA. These labels remain there as long as the program continues to run, even after a UART or SPI analysis. The prettiest thing to do is to make these labels user editable, if possible.
This is a minor OSX issue: the program doesn't respond to CMD+W
Another small (OSX-only?) issue: sometimes when I open a dropdown list, the options don't come on the right places. (ie somewhere else then beneath the dropdown menu)
Maybe there's a bit to much info in the labels on top of the data: now it's Read/Write data: Hex (ASCII). Maybe a sober color-scheme to point out the nature of a label (read/write ack/nack) and the raw data inside the label in one format; either hex, ASCII, binary, octal, whatever, ... (but easy to change trough a menu behind a right click on the labels) would be clearer? This would would also allow to zoom further out and still see relevant data.
Another nice thing, is that the user would be able to drag and drop the channels in a more convenient order. I know you could physically change the probes, but sometimes its convenient to place them as the user for whatever reason did, or the user saw afterwards that a channel isn't where it belongs, or he/she is just plain lazy
I find protocol analysis a pretty handy feature, don't these analyzers deserve their own button? Their settings can remain in a settings-window.
Your graphical implementation of the i2c analyzer is way cooler/better then the html-report. I'd rather didn't see that report until after I've specifically asked for it. However I can imagine cases where it is handy, I find myself using only the new annotation in the main screen. I hope you soon implement it for the other analyzers too.
Maybe a short synopsis of the "chattering" on the bus somewhere in the main screen? Without all the small details, like this (like a msn-window):
slave: blablabla
master: blablabla
slave: bladieblie
etc.
[/li]
These are just suggestions, no criticism, so let me know what you think;) BTW: I think you're doing great! I hope you continue to develop your client this way, kudo's to you!
Artemis:~ Ward$ bash /Users/Ward/Downloads/ols-0.8.2-b3/run.sh : command not foundds/ols-0.8.2-b3/run.sh: line 2: Exception in thread "main" java.lang.NoClassDefFoundError: nl/lxtreme/ols/runner/Runner Caused by: java.lang.ClassNotFoundException: nl.lxtreme.ols.runner.Runner at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Artemis:~ Ward$
fwiw: beta 2 gives the same error...
[sub:]edit: oops, just noticed that this is not the appropriate topic, sorry![/sub:]