desc = 'Audio and modem control for PC systems.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['ac97']
+ outputs = []
tags = ['Audio', 'PC']
channels = (
{'id': 'sync', 'name': 'SYNC', 'desc': 'Frame synchronization'},
desc = 'Poly phase multifunction energy metering IC protocol.'
license = 'mit'
inputs = ['spi']
- outputs = ['ade77xx']
+ outputs = []
tags = ['Analog/digital', 'IC', 'Sensor']
annotations = (
('read', 'Register read commands'),
desc = 'Wideband synthesizer with integrated VCO.'
license = 'gplv3+'
inputs = ['spi']
- outputs = ['adf435x']
+ outputs = []
tags = ['Clock/timing', 'IC', 'Wireless/RF']
annotations = (
# Sent from the host to the chip.
desc = 'Bidirectional optical mouse sensor protocol.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['adns5020']
+ outputs = []
tags = ['IC', 'PC', 'Sensor']
annotations = (
('read', 'Register read commands'),
desc = 'Aosong AM230x/DHTxx/RHTxx humidity/temperature sensor.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['am230x']
+ outputs = []
tags = ['IC', 'Sensor']
channels = (
{'id': 'sda', 'name': 'SDA', 'desc': 'Single wire serial data line'},
desc = 'ARM ETM v3 instruction trace protocol.'
license = 'gplv2+'
inputs = ['uart']
- outputs = ['arm_etmv3']
+ outputs = []
tags = ['Debug/trace']
annotations = (
('trace', 'Trace info'),
desc = 'ARM Cortex-M / ARMv7m ITM trace protocol.'
license = 'gplv2+'
inputs = ['uart']
- outputs = ['arm_itm']
+ outputs = []
tags = ['Debug/trace']
options = (
{'id': 'objdump', 'desc': 'objdump path',
desc = 'Microchip ATSHA204A crypto authentication protocol.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['atsha204a']
+ outputs = []
tags = ['Security/crypto', 'IC', 'Memory']
annotations = (
('waddr', 'Word address'),
desc = 'Renesas/Hitachi Advanced User Debugger (AUD) protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['aud']
+ outputs = []
tags = ['Debug/trace']
channels = (
{'id': 'audck', 'name': 'AUDCK', 'desc': 'AUD clock'},
desc = 'Atmel AVR In-System Programming (ISP) protocol.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['avr_isp']
+ outputs = []
tags = ['Debug/trace']
annotations = (
('pe', 'Programming enable'),
desc = 'Atmel ATxmega Program and Debug Interface (PDI) protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['pdi']
+ outputs = []
tags = ['Debug/trace']
channels = (
{'id': 'reset', 'name': 'RESET', 'desc': 'RESET / PDI_CLK'},
desc = 'Field bus protocol for distributed realtime control.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['can']
+ outputs = []
tags = ['Automotive']
channels = (
{'id': 'can_rx', 'name': 'CAN RX', 'desc': 'CAN bus line'},
desc = 'HDMI Consumer Electronics Control (CEC) protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['cec']
+ outputs = []
tags = ['Display', 'PC']
channels = (
{'id': 'cec', 'name': 'CEC', 'desc': 'CEC bus data'},
desc = '100 Gigabit C form-factor pluggable (CFP) protocol.'
license = 'BSD'
inputs = ['mdio']
- outputs = ['cfp']
+ outputs = []
tags = ['Networking']
annotations = (
('register', 'Register'),
desc = 'Digital Addressable Lighting Interface (DALI) protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['dali']
+ outputs = []
tags = ['Embedded/industrial', 'Lighting']
channels = (
{'id': 'dali', 'name': 'DALI', 'desc': 'DALI data line'},
desc = 'European longwave time signal (77.5kHz carrier signal).'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['dcf77']
+ outputs = []
tags = ['Clock/timing']
channels = (
{'id': 'data', 'name': 'DATA', 'desc': 'DATA line'},
desc = 'Digital MultipleX 512 (DMX512) lighting protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['dmx512']
+ outputs = []
tags = ['Embedded/industrial', 'Lighting']
channels = (
{'id': 'dmx', 'name': 'DMX data', 'desc': 'Any DMX data line'},
desc = 'Dallas DS1307 realtime clock module protocol.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['ds1307']
+ outputs = []
tags = ['Clock/timing', 'IC']
annotations = regs_and_bits() + (
('read-datetime', 'Read date/time'),
desc = '1-Wire 8-channel addressable switch.'
license = 'gplv2+'
inputs = ['onewire_network']
- outputs = ['ds2408']
+ outputs = []
tags = ['Embedded/industrial', 'IC']
annotations = (
('text', 'Human-readable text'),
desc = 'Maxim DS243x series 1-Wire EEPROM protocol.'
license = 'gplv2+'
inputs = ['onewire_network']
- outputs = ['ds243x']
+ outputs = []
tags = ['IC', 'Memory']
annotations = (
('text', 'Human-readable text'),
desc = '1-Wire digital thermometer with Sequence Detect and PIO.'
license = 'gplv2+'
inputs = ['onewire_network']
- outputs = ['ds28ea00']
+ outputs = []
tags = ['IC', 'Sensor']
annotations = (
('text', 'Human-readable text'),
desc = 'Digital Serial Interface (DSI) lighting protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['dsi']
+ outputs = []
tags = ['Embedded/industrial', 'Lighting']
channels = (
{'id': 'dsi', 'name': 'DSI', 'desc': 'DSI data line'},
desc = 'Data structure describing display device capabilities.'
license = 'gplv3+'
inputs = ['i2c']
- outputs = ['edid']
+ outputs = []
tags = ['Display', 'Memory', 'PC']
annotations = (
('fields', 'EDID structure fields'),
desc = '24xx series I²C EEPROM protocol.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['eeprom24xx']
+ outputs = []
tags = ['IC', 'Memory']
options = (
{'id': 'chip', 'desc': 'Chip', 'default': 'generic',
desc = '93xx series Microwire EEPROM protocol.'
license = 'gplv2+'
inputs = ['microwire']
- outputs = ['eeprom93xx']
+ outputs = []
tags = ['IC', 'Memory']
options = (
{'id': 'addresssize', 'desc': 'Address size', 'default': 8},
desc = 'EM4100 100-150kHz RFID protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['em4100']
+ outputs = []
tags = ['IC', 'RFID']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
desc = 'EM4205/EM4305 100-150kHz RFID protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['em4305']
+ outputs = []
tags = ['IC', 'RFID']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
desc = 'IEEE-488 General Purpose Interface Bus (GPIB / HPIB).'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['gpib']
+ outputs = []
tags = ['PC']
channels = (
{'id': 'dio1' , 'name': 'DIO1', 'desc': 'Data I/O bit 1'},
desc = 'Accumulate rotary encoder increments, provide statistics.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['graycode']
+ outputs = []
tags = ['Encoding']
optional_channels = tuple(
{'id': 'd{}'.format(i), 'name': 'D{}'.format(i), 'desc': 'Data line {}'.format(i)}
desc = 'Guess the bitrate/baudrate of a UART (or other) protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['guess_bitrate']
+ outputs = []
tags = ['Clock/timing', 'Util']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
desc = 'Commodore serial IEEE-488 (IEC) bus protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['gpib']
+ outputs = []
tags = ['PC', 'Retro computing']
channels = (
{'id': 'data', 'name': 'DATA', 'desc': 'Data I/O'},
desc = 'NEC infrared remote control protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['ir_nec']
+ outputs = []
tags = ['IR']
channels = (
{'id': 'ir', 'name': 'IR', 'desc': 'Data line'},
desc = 'RC-5 infrared remote control protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['ir_rc5']
+ outputs = []
tags = ['IR']
channels = (
{'id': 'ir', 'name': 'IR', 'desc': 'IR data line'},
desc = 'Retrieves the timing jitter between two digital signals.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['jitter']
+ outputs = []
tags = ['Clock/timing', 'Util']
channels = (
{'id': 'clk', 'name': 'Clock', 'desc': 'Clock reference channel'},
desc = 'MIPS EJTAG protocol.'
license = 'gplv2+'
inputs = ['jtag']
- outputs = ['jtag_ejtag']
+ outputs = []
tags = ['Debug/trace']
annotations = (
('instruction', 'Instruction'),
desc = 'ST STM32-specific JTAG protocol.'
license = 'gplv2+'
inputs = ['jtag']
- outputs = ['jtag_stm32']
+ outputs = []
tags = ['Debug/trace']
annotations = (
('item', 'Item'),
desc = 'Local Interconnect Network (LIN) protocol.'
license = 'gplv2+'
inputs = ['uart']
- outputs = ['lin']
+ outputs = []
tags = ['Automotive']
options = (
{'id': 'version', 'desc': 'Protocol version', 'default': 2, 'values': (1, 2)},
desc = 'National LM75 (and compatibles) temperature sensor.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['lm75']
+ outputs = []
tags = ['Sensor']
options = (
{'id': 'sensor', 'desc': 'Sensor type', 'default': 'lm75',
desc = 'Protocol for low-bandwidth devices on PC mainboards.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['lpc']
+ outputs = []
tags = ['PC']
channels = (
{'id': 'lframe', 'name': 'LFRAME#', 'desc': 'Frame'},
desc = 'Maple bus peripheral protocol for SEGA Dreamcast.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['maple_bus']
+ outputs = []
tags = ['Retro computing']
channels = (
{'id': 'sdcka', 'name': 'SDCKA', 'desc': 'Data/clock line A'},
desc = 'Maxim MAX72xx series 8-digit LED display driver.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['max7219']
+ outputs = []
tags = ['Display']
annotations = (
('register', 'Registers written to the device'),
desc = 'Intel MCS-48 external memory access protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['mcs48']
+ outputs = []
tags = ['Retro computing']
channels = (
{'id': 'ale', 'name': 'ALE', 'desc': 'Address latch enable'},
desc = 'Musical Instrument Digital Interface (MIDI) protocol.'
license = 'gplv2+'
inputs = ['uart']
- outputs = ['midi']
+ outputs = []
tags = ['Audio', 'PC']
annotations = (
('text-verbose', 'Human-readable text (verbose)'),
desc = 'Miller encoding protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['miller']
+ outputs = []
tags = ['Encoding']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data signal'},
desc = 'Melexis MLX90614 infrared thermometer protocol.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['mlx90614']
+ outputs = []
tags = ['IC', 'Sensor']
annotations = (
('celsius', 'Temperature in degrees Celsius'),
desc = 'Demodulated morse code protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['morse']
+ outputs = []
tags = ['Encoding']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
desc = 'IEEE 802.15.4 2.4 GHz RF tranceiver chip.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['mrf24j40']
+ outputs = []
tags = ['IC', 'Wireless/RF']
annotations = (
('sread', 'Short register read commands'),
desc = 'Digital Thermal Orientation Sensor (DTOS) protocol.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['mxc6225xu']
+ outputs = []
tags = ['IC', 'Sensor']
annotations = (
('text', 'Human-readable text'),
desc = '2.4GHz RF transceiver chip.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['nrf24l01']
+ outputs = []
tags = ['IC', 'Wireless/RF']
options = (
{'id': 'chip', 'desc': 'Chip type',
desc = 'Nintendo Wii Nunchuk controller protocol.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['nunchuck']
+ outputs = []
tags = ['Sensor']
annotations = \
tuple(('reg-0x%02X' % i, 'Register 0x%02X' % i) for i in range(6)) + (
desc = 'Bluetooth RF module with Serial Port Profile (SPP).'
license = 'gplv2+'
inputs = ['uart']
- outputs = ['pan1321']
+ outputs = []
tags = ['Wireless/RF']
annotations = (
('text-verbose', 'Human-readable text (verbose)'),
desc = 'PS/2 keyboard/mouse interface.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['ps2']
+ outputs = []
tags = ['PC']
channels = (
{'id': 'clk', 'name': 'Clock', 'desc': 'Clock line'},
desc = 'Analog level encoded in duty cycle percentage.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['pwm']
+ outputs = []
tags = ['Encoding']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
desc = 'Protocol used by Qi receiver.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['qi']
+ outputs = []
tags = ['Embedded/industrial', 'Wireless/RF']
channels = (
{'id': 'qi', 'name': 'Qi', 'desc': 'Demodulated Qi data line'},
desc = 'HopeRF RFM12 wireless transceiver control protocol.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['rfm12']
+ outputs = []
tags = ['Wireless/RF']
annotations = (
('cmd', 'Command'),
desc = 'RGB LED string protocol (RGB values clocked over SPI).'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['rgb_led_spi']
+ outputs = []
tags = ['Display']
annotations = (
('rgb', 'RGB values'),
desc = 'RGB LED string protocol (WS281x).'
license = 'gplv3+'
inputs = ['logic']
- outputs = ['rgb_led_ws281x']
+ outputs = []
tags = ['Display', 'IC']
channels = (
{'id': 'din', 'name': 'DIN', 'desc': 'DIN data line'},
desc = 'Realtime clock module protocol.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['rtc8564']
+ outputs = []
tags = ['Clock/timing']
annotations = reg_list() + (
('read', 'Read date/time'),
desc = 'Serial nonvolatile 1-Kbit EEPROM.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['sda2506']
+ outputs = []
tags = ['IC', 'Memory']
channels = (
{'id': 'clk', 'name': 'CLK', 'desc': 'Clock'},
desc = 'Secure Digital card (SD mode) low-level protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['sdcard_sd']
+ outputs = []
tags = ['Memory']
channels = (
{'id': 'cmd', 'name': 'CMD', 'desc': 'Command'},
desc = 'Secure Digital card (SPI mode) low-level protocol.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['sdcard_spi']
+ outputs = []
tags = ['Memory']
annotations = \
tuple(('cmd%d' % i, 'CMD%d' % i) for i in range(64)) + \
desc = 'Serial bus for connecting digital audio devices.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['spdif']
+ outputs = []
tags = ['Audio', 'PC']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
desc = 'xx25 series SPI (NOR) flash chip protocol.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['spiflash']
+ outputs = []
tags = ['IC', 'Memory']
annotations = cmd_annotation_classes() + (
('bit', 'Bit'),
desc = 'Synchronous Serial Interface (32bit) protocol.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['ssi32']
+ outputs = []
tags = ['Embedded/industrial']
options = (
{'id': 'msgsize', 'desc': 'Message size', 'default': 64},
desc = 'Sitronix ST7735 TFT controller protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['st7735']
+ outputs = []
tags = ['Display', 'IC']
channels = (
{'id': 'cs', 'name': 'CS#', 'desc': 'Chip-select'},
desc = 'Absolute position and movement speed from step/dir.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['stepper_motor']
+ outputs = []
tags = ['Embedded/industrial']
channels = (
{'id': 'step', 'name': 'Step', 'desc': 'Step pulse'},
desc = 'T55xx 100-150kHz RFID protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['t55xx']
+ outputs = []
tags = ['IC', 'RFID']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
desc = 'Texas Instruments TCA6408A 8-bit I²C I/O expander.'
license = 'gplv2+'
inputs = ['i2c']
- outputs = ['tca6408a']
+ outputs = []
tags = ['Embedded/industrial', 'IC']
annotations = (
('register', 'Register type'),
desc = 'Calculate time between edges.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['timing']
+ outputs = []
tags = ['Clock/timing', 'Util']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
desc = 'Texas Instruments TLC5620 8-bit quad DAC.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['tlc5620']
+ outputs = []
tags = ['IC', 'Analog/digital']
channels = (
{'id': 'clk', 'name': 'CLK', 'desc': 'Serial interface clock'},
desc = 'Wiegand interface for electronic entry systems.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['wiegand']
+ outputs = []
tags = ['Embedded/industrial', 'RFID']
channels = (
{'id': 'd0', 'name': 'D0', 'desc': 'Data 0 line'},
desc = 'Xicor X2444M/P nonvolatile static RAM protocol.'
license = 'gplv2+'
inputs = ['spi']
- outputs = ['x2444m']
+ outputs = []
tags = ['IC', 'Memory']
annotations = (
('wrds', 'Write disable'),
desc = 'XFP I²C management interface structures/protocol'
license = 'gplv3+'
inputs = ['i2c']
- outputs = ['xfp']
+ outputs = []
tags = ['Networking']
annotations = (
('fieldnames-and-values', 'XFP structure field names and values'),
desc = 'Zilog Z80 microprocessor disassembly.'
license = 'gplv3+'
inputs = ['logic']
- outputs = ['z80']
+ outputs = []
tags = ['Retro computing']
channels = tuple({
'id': 'd%d' % i,