logicmso

Analyze Saleae Logic MSO binary captures and decode UART, SPI, I2C, and 1-Wire protocols.

824|126|Updated Nov 17, 2025
One-click install
npx skills add https://github.com/BrownFineSecurity/iothackbot --skill logicmso
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: logicmso
Source: https://github.com/BrownFineSecurity/iothackbot/tree/main/skills/logicmso
Command: npx skills add https://github.com/BrownFineSecurity/iothackbot --skill logicmso

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires saleae-mso-api, numpy, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Analyzing raw logic analyzer captures from Saleae Logic MSO devices requires manually inspecting transition timings and reverse-engineering protocol encodings, which is slow and error-prone when dealing with unknown signals in hardware reverse engineering or CTF challenges.

Core Features & Use Cases

  • Binary Capture Loading: Parse Saleae .bin export files using the saleae-mso-api library to access transition timestamps, sample rates, and initial signal states.
  • Timing Analysis & Protocol Detection: Use the included analyze_protocol.py script to compute pulse duration statistics, detect timing clusters, generate histograms, and automatically guess protocols like UART (with baud rate) or 1-Wire.
  • Protocol Decoding: Follow documented workflows and code examples to decode UART, SPI, I2C, and 1-Wire signals from transition data.
  • Use Case: During a hardware CTF, you capture an unknown signal from a device. Run the analyzer with --clusters to identify a 115200 baud UART pattern, then apply the provided decoding example to extract the transmitted bytes.

Quick Start

Analyze the attached capture.bin file to identify the protocol and decode any UART data it contains.

Frequently Asked Questions about logicmso

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I decode UART from a Saleae logic analyzer capture?

Export the channel as a .bin file from Saleae Logic, load it with saleae.mso_api.binary_files.read_file, then sample the signal at 1.5, 2.5, 3.5 bit periods after each start bit using the known baud rate. The skill provides a complete decode_uart_byte example for this.

How to identify an unknown protocol from a logic analyzer capture?

Run analyze_protocol.py with --clusters and --histogram to see the timing distribution of pulse durations. Consistent bit periods that are multiples of a base period suggest UART, reset pulses around 480us suggest 1-Wire, and regular clock patterns suggest SPI or I2C.

What Python library reads Saleae Logic MSO binary files?

The saleae-mso-api package provides read_file in saleae.mso_api.binary_files for loading .bin exports. It exposes chunks containing transition_times, initial_state, sample_rate, and capture begin/end times.

Why does my Saleae capture show no transitions?

No transitions usually means the signal is stuck high or low, the wrong channel was exported, or the trigger settings in the original capture missed the activity. Verify the correct channel and re-export from the Saleae Logic software.

Can I export Saleae transition data to CSV for external analysis?

Yes, run analyze_protocol.py with --export output.csv to write all transitions with timestamps, states, and durations to a CSV file for analysis in spreadsheets or other tools.