I2C Extension Idea + Sources for Extensions?

What are the main sources for Logic 2 Extensions? I’m asking because the extensions listed in Logic’s Extensions screen seem too few. The I2C Extension I’m thinking of putting together seems too obvious for someone else to not have done it as well. So it feels like I’m missing a place to look.

As to the I2C Extension Idea, I’m thinking of making an extension which will add some extra processing to the I2C transactions and give some extra filtering as well. The features I plan on implementing are:

  • Filtering based on address
  • Filtering based on register (for those chips where the 1st data byte is really an internal register address)
  • Color coding writes and reads in the data terminal
  • Pairing Reads with writes
  • Intelligently displaying sequential reads/writes (for those chips where multi-byte writes or reads just increment the internal register pointer)

I really would have thought someone would have done these already, seeing as I’ve needed this and done it manually across several projects now. The I2C Transactions extension is a start, but it is missing a lot of what I listed above.

@seth.kazarians Thanks for writing in! All published and available extensions can be found via the Extensions tab in our software, which sounds like where you have looked. We don’t have any other place that we list them, not including users that may not have shared or published their extension onto our Extensions Marketplace.

The I2C Transactions extension does look like a good place to start. You might be able to utilize ideas and concepts from other extensions as well, such as I2C Device Finder, which looks to have implemented some filtering functions.

Ok, thanks for confirming.

The I2C Device Finder is a good resource as well. I’ll check it out further when I get a chance.

Regarding the settings, what’s the official way to set the settings? Is it the get_capabilities()/set_settings() methods mentioned in this repo? The I2C Device Finder seems to use class variables for the settings.

Also, is there a resource describing how information is displayed in the Data Table and Terminal views? Ideally, I’d like the extension to integrate into those views.

Well, I started the repo. GitHub - SK-Electronics-Consulting/i2c-transactions-analyzer: An I2C Transactions Analyser for Saleae Logic software

Let’s see how far I get!

@seth.kazarians Glad to hear you’ve gotten started!

Yes, those are the correct places to configure the editable settings for your HLA.

Data Table entries will be printed based on the section below, under “Data Processing.”

In this case we are outputting a new frame of type 'mytype' , which spans the same period of time as the input frame, and has 1 data value 'input_type' that contains the value of the type of the input frame.

In the example above, frames will be printed in the data table column called ‘input_type’.

Terminal messages can be printed based on calling the print() function as mentioned above as well. Hope that helps!