custom-allocators
Custom allocator skill for memory allocation strategies. Use when implementing…
Protocol analysis skill for serial bus debugging. Use when decoding I2C/SPI/UART with logic analyzer concepts, sigrok/PulseView, or Python capture scripts. Activates on queries about logic analyzer, sigrok, PulseView, decode I2C SPI UART, or bus protocol capture.
$ npx -y skills add mohitmishra786/low-level-dev-skills --skill protocol-analysis --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/protocol-analysisContext preview
The summary Claude sees to decide when to auto-load this skill.
Protocol analysis skill for serial bus debugging. Use when decoding I2C/SPI/UART with logic analyzer concepts, sigrok/PulseView, or Python capture scripts. Activates on queries about logic analyzer, sigrok, PulseView, decode I2C SPI UART, or bus protocol capture.
name: protocol-analysis description: Protocol analysis skill for serial bus debugging. Use when decoding I2C/SPI/UART with logic analyzer concepts, sigrok/PulseView, or Python capture scripts. Activates on queries about logic analyzer, sigrok, PulseView, decode I2C SPI UART, or bus protocol capture.
Guide agents through software-side serial bus analysis: logic analyzer workflow, sigrok/PulseView decoding, correlating captures with firmware drivers, and Python-based parsing — bridging `skills/baremetal/spi-i2c-baremetal` and hardware bring-up.
Physical probe → logic analyzer hardware (or GPIO bit-bang) ├── sigrok-cli / PulseView GUI ├── Protocol decoder (i2c, spi, uart) └── Export VCD/CSV for scripts
Open-source: [sigrok](https://sigrok.org/) with cheap FX2LA boards.
# List devices pulseview # CLI capture (device-dependent) sigrok-cli --driver fx2lafw --config samplerate=1MHz \ --channels 0=SDA,1=SCL \ --samples 1m \ --protocols i2c
| Phase | Lines | |-------|-------| | START | SDA fall while SCL high | | Address + R/W | 7 bits + ACK | | Data bytes | ACK per byte | | STOP | SDA rise while SCL high |
NACK at address → wrong `0x48` or device held in reset.
Check mode (CPOL/CPHA), bit order (MSB first typical), CS polarity, and word size. Compare to `spi_setup()` in `skills/kernel-dev/bus-drivers-i2c-spi`.
Set baud (9600/115200), frame (8N1), and signal polarity. Async — sample rate must be ≥ 4× baud for LA.
import csv
with open("capture.csv") as f:
for ts, ch0, ch1 in csv.reader(f):
# edge detect, reconstruct bits
passLogic capture timestamp ├── Match driver reg write sequence ├── Compare inter-byte delay vs datasheet max └── Flag extra clock pulses (mode fault)
/protocol-analysis Decode this I2C capture — device NACKs after register 0x0F write
| Symptom | Cause | Fix | |---------|-------|-----| | Garbage decode | Wrong samplerate | ≥ 4× bus speed | | Floating lines | Missing pull-ups | Enable internal pull or external | | SPI shifted bits | Mode mismatch | CPOL/CPHA table from RM | | UART framing errors | Baud drift | Measure actual bit time | | No decoder | Missing sigrok build | Install `sigrok-cli` + decoders |
A curated suite of AI agent skills for systems and low-level programming — C/C++, Rust, Zig, GPU, bare-metal firmware, Linux kernel/driver development, computer architecture, compiler internals, HPC, and more.
Repo: mohitmishra786/low-level-dev-skills
Custom allocator skill for memory allocation strategies. Use when implementing…
NUMA programming skill for multi-socket memory locality. Use when detecting NUMA topology,…
AF_XDP skill for high-performance XDP sockets. Use when creating AF_XDP sockets, configuring…
DPDK skill for userspace packet I/O. Use when initializing EAL, configuring PMD drivers,…
io_uring skill for Linux async I/O. Use when building high-performance servers with liburing,…
Bare-metal ADC and DAC skill. Use when configuring analog sampling, DMA-driven ADC,…