I recently became interested in developing a logic analyzer expansion card for Framework laptops. I just think it’s a really cool idea to have a logic analyzer almost seamlessly integrated into a laptop.
I originally started with the idea of using low-cost/low-performance hardware like a RP2040 - there’s some precedent for using them as logic analyzers. However, the performance is severely handicapped by the slow USB 1.1 interface.
Then I came across CNLohr’s fantastic video demonstrating how a Cypress FX3, a USB 3 microcontroller, can be used as a logic analyzer. (Side note: This is actually what the original Saleae logic analyzer and its many clones are based on as far as I can tell). Since then the software support has gotten very good - the FX3 is (unofficially) supported by the free/open source signal analysis software suite sigrok, and official support looks like it may soon be merged. There’s even an official guide to setting up an FX3 devboard as a logic analyzer.
Now one major question remains: Is it possible to fit an entire high-performance 16 channel USB 3.2 logic analyzer into an expansion card?
Yes- just barely.
(Note that this is not a final design yet - I need to replace the headers with some that will fit better, and I will likely remove the debug header since the FX3 has a rock-solid USB bootloader.)
This design allows for 16 channels at 100+MHz. It has software selectable input voltages from 1.1V-5V. There’s even a possibility of adding analog input functionality to some of the channels with a few extra passive components.
I’m currently tinkering with a FX3 dev kit to work out the final design before I build the first prototype. In the meantime, you can take a look at my design files here. If anyone has advice or features they’d like to see, please let me know!