samtal - "Does anyone know of a similar Maple option?"
No. I haven't searched actively recently, but I have wanted a Maple-based logic analyser for a while.
I did find SUMP:
http://www.sump.org/projects/analyzer/
but it is FPGA based, and skipped it until (if) LeafLabs release Oak.
I'd also looked at GadgetFactory FPGA boards, but I don't think I'd spotted the "Open Bench Logic Sniffer", so thanks for that link.
I assume the goal is to use http://www.lxtreme.nl/ols/
and so implement the SUMP protocol.
I've had a quick skim of the code at https://github.com/gillham/logic_analyzer/blob/master/logic_analyzer.ino
There are lots of in-line asm statements, but AFAICT, they are all 'no ops', to soak-up CPU cycles, and get the timing right. You'd have to futz around with the equivalent for ARM, however I think that is practical to convert the code; the time consuming part will be getting the delays just right (unless you have access to reasonably good frequency measuring test equipment). I might be able to get access to that sort of equipment, so please ask if you'd like some help.
Other ATmega specific parts are direct access to digital I/O pins and timers.
The direct timer stuff doesn't look too difficult. Direct timer access seems to be in their for debugging, so that could be made to work. It seems to generate a 100KHz 'tick' which should be okay for Maple's STM32F103 if its okay for an ATmega.
Using individual digital I/O pins shouldn't be too awful to port, especially if you use the faster_write/faster_read stuff.
However there is (at least) one major area which looks slightly sneaky. The code reads a port-worth of pins (8 pins on the ATmega), with a single direct access. So it looks like it has packed the logic-data samples into one byte. Then the code both uses the 'packed data' (read from the entire 8-bit port) for triggering, and data storage.
If all of the signals being sampled came into one STM32F port, you could use the same technique. You'd likely have to change the size of some variables as int is different for gcc targeted at ATmega vs gcc targeted at ARM.
To make it easier, you'd probably have to use the upper or lower 8bits from one of the STM32F's 16-bit ports.
So if that restriction is okay, then I'd WAG that it is practical to do the translation. Otherwise you are probably going to retain the code which talks to the host PC's logic analyser user interface, and re-engineer the code that does the triggering, sampling and storage.
Edit: I've skimmed over the SUMp protocol at http://www.sump.org/projects/analyzer/protocol/
It looks like the protocol would handle 32 channels, so you could use an entire 16bit port. It would be possible to use two ports-worth of pins, but the trigger function would get a bit more complex, and all the capture code would need a rewrite.
There are a bunch of 'captureXXXX' functions, each engineered to work within different constraints of the ATmega and Arduino software. With a bit of care, you might get enough functionality from translating one of them to make the entire exercise worthwhile. That might not be good enough for general use, as the logic analyser UI might be set to ask for an un-translated function. However as a starting point, one working capture function may be BRILLIANT!-)
If you do decide to try to do the port, please keep us 'in the loop', and I'm sure we'll try to help you; it would be a lovely project.
If you decide not to do it, please tell us too. I am very busy 'till January, but I might be able to make some time then to have a crack at it.