X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=NEWS;h=f61727f8c75edf52e1f306983070a5eda629fd2e;hp=bd21b02955e4629f5ee8b70d77d4d4922627c2e2;hb=97991a3919da6a07c4c87308ae66fb441bd512e3;hpb=91fe57918dc2c030ab5e68e861ecd2f4abe92f20 diff --git a/NEWS b/NEWS index bd21b02..f61727f 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,507 @@ +0.5.3 (2019-12-11) +------------------ + +Note: This release does NOT change the libsigrokdecode public C API in +incompatible ways. This means existing frontends should not require any +changes. However, individual PDs and their output changed, which may +require some adaptations on the user's side in some cases. + + * New supported protocol decoders: + - lin Local Interconnect Network (LIN) protocol + - x2444m Xicor X2444M/P nonvolatile static RAM protocol + - ds2408 1-Wire 8-channel addressable switch + - cc1101 Low-power sub-1GHz RF transceiver chip + - enc28j60 Microchip ENC28J60 10Base-T Ethernet controller protocol + - pca9571 NXP PCA9571 8-bit I²C output expander + - seven_segment 7-segment display protocol + - amulet_ascii Amulet Technologies LCD controller ASCII protocol + - tdm_audio TDM multi-channel audio protocol + - signature Annotate signature of logic patterns + - nes_gamepad NES gamepad button states + - flexray Automotive network communications protocol + - ir_rc6 RC-6 infrared remote control protocol + - ieee488 IEEE-488 General Purpose Interface Bus (GPIB/HPIB or IEC) + - hdcp HDCP protocol over HDMI + * All decoders must implement a reset() method now. It should reset all + PD-internal state and will be called when the decoder is restarted from + scratch (by frontends) with new data. + * Fix various memory leaks and bad memory accesses (e.g. bug #1374). + * Build system: Add support for Python 3.8 (bug #1438). + * Various compiler warning fixes. + * Slightly more detailed and easier to read log messages in some places. + * Fix incorrect decoder 'output' metadata. + * Improve annotation row ordering in various PDs. + * ook: + - Fix two typos causing decode issues. + * uart: + - Add support for break condition detection. + - Add 'FRAME' Python output type that communicates frame validity. + - Add '[rx|tx]_packet_delimiter' options. + - Add '[rx|tx]_packet_len' options. + - Communicate periods of idle frames to stacked decoders. + - Add 'ignore' parity type, remove unsupported 'check_parity' option. + - Shorten/rename various decoder option names. + * spiflash: + - Add support for Winbond W25Q80DV and Atmel AT25xxx. + - Add support for the chip erase commands (CE, CE2). + - Add support for write enable state tracking. + - Remember write protection latch from status registers. + - Fix WRSR incorrectly using MISO for register decodes. + - Add "EEPROM" to descriptions to increase discoverability in UIs. + * i2s: + - Fix incorrect channel assignment. + - Fix usage of the incorrect edge for the data sampling. + * ds1307: + - Fix incorrect unit for frequencies above 1Hz. + - Fix incorrect AM/PM flag handling. + * ir_rc5: + - Fix an incorrect command value. + - Massively improve performance via proper self.wait() usage. + * onewire_network: + - Add support for the 'Resume ROM' command. + - Add a 'Disable Test Mode' command for DS2408. + * sdcard_spi: + - Add support for CMD24 including payload data (bug #1365). + - Fix duplicated 'End bit' annotation emission. + - Fix incorrect handling of CMD17 (bug #1377). + - Add "Card is busy" annotations for CMD24 (bug #1376). + * spi: + - Add support for "transfer" annotations. + * atsha204a: + - Add support for ATECC508A. + - Display OtherData parameter correctly when Verify command is executed + in Validate mode. + - Only call output_tx_bytes() when the bytes buffer is not empty. + * usb_request: + - Append OUT data only if it has been ACK'd. + - Always keep IN and OUT transfers separate. In case the transfer is an + IN transfer, set the high bit as used in the endpoint descriptors (i.e. + 0x81 is IN enpoint 1, 0x01 is OUT endpoint 1). + - Use separate annotation rows for IN, OUT and CONTROL (bug #1046). + - Allow configuration of BULK IN transfer display via an option. + * modbus: + - Make C->S and S->C configurable via options. + - Add a 'framegap' option. + * mrf24j40: + - Add RX/TX frame annotations. + - Add TX retries/fails and CCAFAIL support. + * eeprom93xx: + - Add ASCII format support. + - Add OUTPUT_BINARY support. + * can: + - Add CAN-FD support. + - Add new 'fast_bitrate' option. + - More robust sample point position for low sample rates. + * gpib, iec: + - Removed in favor of the new ieee488 decoder. + * ir_nec: + - Fix decoder when running it multiple times (bug #1243). + +0.5.2 (2018-09-12) +------------------ + +Note: This release does NOT change the libsigrokdecode public C API in +incompatible ways. This means existing frontends should not require any +changes. However, individual PDs and their output changed, which may +require some adaptations on the user's side in some cases. + + * New supported protocol decoders: + - mcs48 Intel MCS-48 external memory access protocol + - st7735 Sitronix ST7735 TFT controller protocol + - atsha204a Microchip ATSHA204A CryptoAuthentication device + - cfp 100 Gigabit C form-factor pluggable (CFP) protocol + - jtag_ejtag MIPS EJTAG protocol + - swim STM8 Single Wire Interface Module (SWIM) protocol + - cec HDMI Consumer Electronics Control (CEC) protocol + - miller Miller encoding protocol + - ook On-off keying protocol + - ook_oregon Oregon Scientific weather sensor protocol + - ook_vis OOK visualisation in various formats + * Various minor performance improvements in the backend. + * Fix an issue causing decoder termination to take a long time. + * Fix multiple self.put() memory leaks (bug #329). + * Fix multiple memory leaks reported by scan-build. + * Show a backtrace when the decode aborts due to an error (bug #1158). + * Perform the log level check for non-default handlers as well (bug #698). + * Fix multiple compiler warnings. + * Compiler: Add -Wshadow -Wformat=2 -Wno-format-nonliteral -Wfloat-equal. + * Build system: Add Python 3.7 support. + * Fix a 'make install' issue that happens with Python >= 3.7. + * Add two missing Python GIL release operations. + * libsigrokdecode API changes: + - Add the srd_log_callback_get() API call. + - Add the SRD_ERR_TERM_REQ error code. + * dcf77: + - Annotate invalid dow and month fields, do not abort execution (bug #1173). + - Annotate unexpected bit numbers and values, do not abort execution. + * spiflash: + - Add basic Adesto AT45DBxx support (WRITE1/2, STATUS). + - Add Adesto AT45DB161E metadata. + * jtag: + - Fix shifting of registers (bug #1066). + * jtag_stm32: + - Fix handling of boundary scan TAP and incorrect state transitions. + * eeprom24xx: + - Add ON Semi CAT24C256 and CAT24M01 support. + * counter: + - Emit wider annotations to improve readability in UIs (bug #1210). + - Add support for user specified initial counter values (bug #1229). + - Add an option to ignore a certain number of edges. + - Let the user decide how to handle the initial dead_cycles state. + * mdio: + - Accept MDIO READ without previous ADDRESS command (bug #1258). + * edid: + - Add support for extension blocks. + - Various annotation improvements. + * spi: + - Fix an issue causing an AttributeError during certain decodes. + * usb_power_delivery: + - Emit more details in annotations (power, PDO type, RDO info). + - Add PPS support. + - Add better USB Power Delivery 3.0 support. + +0.5.1 (2018-04-12) +------------------ + +Note: This release does NOT change the libsigrokdecode public C API in +incompatible ways. This means existing frontends should not require any +changes. However, individual PDs and their output changed, which may +require some adaptations on the user's side in some cases. + + * New supported protocol decoders: + - ac97 Audio and modem control for PC systems + - ds243x Maxim DS243x series 1-Wire EEPROM protocol + - maple_bus Maple bus peripheral protocol for SEGA Dreamcast + - morse Demodulated morse code protocol + - graycode Accumulate rotary encoder increments, timing statistics + - counter Count number of edges + - sda2506 Serial nonvolatile 1-Kbit EEPROM + - rc_encode PT2262/HX2262/SC5262 remote control encoder protocol + * Updated build requirements: + - libglib >= 2.34 + * New API calls: + - srd_searchpaths_get(): Retrieve PD search paths. + - srd_session_terminate_reset(): Terminate currently executing decoders + in a session, reset internal state. Allows re-using a session. + * can: + - Introduce clock synchronization (bug #990). + - Fix incorrect stuff bit handling (bug #1085). + * i2c: + - Don't drop the first sample of input data. + - Make input samplerate optional (bug #1076). + * i2s: + - Binary output: Make 32-bit WAV files, set file size to 4GB. + - Fix unportable use of struct.pack(). + - Make samplerate meta data optional. + * stepper_motor: + - Make samplerate meta data optional. + * pwm: + - Fixup sample numbers for binary output. + * onewire_network: + - Fixup start samplenumber for annotations. + * lpc: + - Improve robustness when decoding unexpected input data. + * ir_nec: + - Make timing margin relative. + - Optionally accept input signals that include the carrier. + * usb_request: + - Handle CONTROL transfer protocol stalls. + * usb_power_delivery: + - Enforce numerical order of RDO/PDO flag annotations, enforce check + order for start-of-packet sequences (bug #1090). + * parallel: + - Cope with sparse input maps, assume zero for unconnected pins (bug #1088). + - Unbreak and improve "word" de-multiplexing. + - Implement consistent number formatting. + - Expand 'wordsize' description (bits vs cycles). + * spi: + - Cope when a sample rate of 0 was configured (bug #1118). + * Acquire/release the Python GIL where needed to avoid threading issues. + This allows frontends to call libsigrokdecode API functions from different + threads without running into issues. + * Convert all protocol decoders to PD API version 3. + * Support for the old PD API version 2 has been removed. + * Unbreak the execution of Decoder.wait() with empty condition. + * self.wait(): Accept more forms of "unconditional wait" (None, no args). + * Fix a compiler warning on Mac OS X. + * configure.ac: Add missing PKG_PROG_PKG_CONFIG and AC_C_BIGENDIAN. + * Add a reset() method to all PDs which resets internal variable state. + * Clarify and improve channel mapping debug output. + * Print decoder and system search paths in debug output. + * Drop overly verbose log messages about (un)loading PDs. + * HACKING: Prefer git pull requests over mailing list patches. + +0.5.0 (2017-06-12) +------------------ + +Note: This release DOES change the libsigrokdecode public C API. This +means it is NOT backwards-compatible and frontends will need updates. + + * New supported protocol decoders: + - ade77xx Poly phase multifunction energy metering IC protocol + - adf435x Wideband synthesizer with integrated VCO + - aud Renesas/Hitachi Advanced User Debugger (AUD) protocol + - avr_pdi Atmel proprietary interface for the ATxmega MCU + - dali DALI lighting control protocol + - dsi DSI lighting control protocol + - dmx512 Professional lighting control protocol + - eeprom93xx 93xx series Microwire EEPROM protocol (bug #931) + - em4305 EM4205/EM4305 100-150kHz RFID protocol + - gpib IEEE-488 GPIB / HPIB protocol + - iec Commodore serial IEEE-488 (IEC) bus protocol + - microwire 3-wire, half-duplex, synchronous serial bus (bug #931) + - ps2 PS/2 keyboard/mouse interface + - rgb_led_ws281x RGB LED string protocol (WS281x) + - ssi32 Synchronous Serial Interface (32bit) protocol + - t55xx T55xx 100-150kHz RFID protocol + - wiegand Wiegand interface for electronic entry systems + * Add support for the new query-based PD v3 decoder API. + - Decoders using PD v3 API can benefit from both readability improvements + as well as performance improvements. Up to 10x speedup has been measured + in some situations (depends a lot on the decoder, the amount of data, + the amount of edges in the signals, and the amount of oversampling). + - The majority of all decoders have been converted to PD API v3. + - For the time being, both APIs (2 and 3) will remain supported until all + decoders have been converted to API version 3. Then, support for API + version 2 will be dropped. + * Add support for specifying the (assumed) initial pin states before the + first sample that is being decoded. This can be set to 0/low, 1/high, or + to "use the same value as in the first sample". + * Add support for adding multiple instances of a decoder (bug #868). + * Introduce a decoders/common facility for code shared between PDs (bug #804). + * Supply metadata to all stacked decoders, not just low-level ones (bug #664). + * Various Doxygen/documentation improvements. + * Factor out a srd_decoder_apiver() internal helper function. + * srd_inst_decode(): Return SRD_ERR_ARG if unitsize is 0. + * Print error messages when decoders fail load time checks (bug #704). + * Fix multiple valgrind warnings (memory leaks and such). + * Build system: Sort PD list alphabetically in "make install". + * mdio: + - Replace PD with a new implementation that also supports Clause 22 and 45. + - Improve annotations slightly. + * xfp: + - Move various constants to common/plugtrx for reusability purposes. + * sdcard_{sd,spi}: + - Move various constants to common/sdcard for reusability purposes. + * usb_request: + - Drop hardcoded samplerate (workaround for the fixed bug #664). + * spiflash: + - Handle CS# transitions, allow variable-length transfers. + - Handle "Fast Read Dual I/O" commands. + - Add a "format" decoder option. + - Implement Release Power-down / Device ID (0xAB) command (bug #845). + - Remove hardcoded Macronix references. + - Add initial FIDELIX FM25Q32 metadata/support. + - Implement WRSR, RDSR2 commands. + - Various annotation improvements. + * timing: + - Add frequency and averaging support. + - Disable averaging feature if it's set to zero. + - Add edge-edge mode and delta calculation. + * midi: + - Decode note names and percussion names (e.g. 'G2', 'Tambourine'). + - Decode instrument names and drum_kit names (e.g. 'GS Orchestra Kit'). + - Handle Polyphonic Pressure / Aftertouch (message 0xAn). + - Handle Program Change (message 0xCn). + - Handle Channel Pressure / Aftertouch (message 0xDn). + - Handle Channel Mode (message 0xBn mm where mm is 120 through 127). + - Handle System Common messages (message 0xF1 through 0xF6), including + full time code decoding. + - SysEx decoding now decodes the 1-3 byte manufacturer field, payload + is now displayed as hex. + - 'undefined' fields now display the value (e.g. 'undefined 0xf4'). + - Add 'MSB' and 'LSB' to many control_functions entries. + - Fix "trapped in state X" bug with handle_channel_msg_generic(), + though this might be dead code. + - Fix bug in sysex_manufacturer_ids; 1-byte manufacturers were not + tuples due to missing comma. + - Fix bug in SysEx state machine; 0xF7 now sent to handle_sysex_msg(). + - Annotations: Provide multiple string versions (shorter and longer ones). + - chromatic_notes in list.py was off by 1 octave. + - Handle "Running Status" where status byte can be omitted. + - SysEx message can be terminated by status byte, not just EOX. + - Handle SysReal messages that interrupt in-progress message transmission. + - Identify and print garbage / truncated data. + - Add 2 new annotations: text-sysreal-verbose and text-error. + * usb_power_delivery: + - Drop problematic exception in us2samples() function (bug #758). + * uart: + - Fix a bug in the output for stacked PDs (when there's RX/TX overlap). + - Various output formatting improvements (e.g. for ASCII and octal). + - Skip frames with invalid start bits. + - Emit 2 bytes for 9-bit UART binary output (bug #708). + - Default to hex format datavalue annotations. + * spi: + - Fix binary output for wordsizes > 8 (bug #686). + * sdcard_sd: + - Don't try to decode commands that are not yet supported. + - Always show CMD argument in hex. + - Fix incorrect CMD8 annotations. + * can: + - Add warnings for various invalid bits and fields. + - Skip stuff bit inspection where not applicable (bug #656). + * eeprom24xx: + - Add Xicor X24C02 support. + * onewire_link: + - Replace PD with a new, improved implementation (bugs #666, #926). + - Overdrive speed is now detected automatically. + - Some no longer needed decoder options have been dropped. + * Various decoders: + - Fix some incorrect PD license metadata fields. + - Fix typos, whitespace issues and random other cosmetics in some PDs. + - Use consistent __init__() format across all PDs. + - Move some duplicated code snippets/lists to decoders/common. + * Rename the maxim_ds28ea00 decoder to ds28ea00. + * Show library versions in the debug output. + * configure: Also check for Python 3.6. + * configure summary: Show build type (static/shared) and linker flags. + * Remove FSF postal address from boiler plate license text. + * HACKING: Update URL to Linux kernel coding style. + +0.4.0 (2016-01-29) +------------------ + +Note: This release DOES change the libsigrokdecode public C API. This +means it is NOT backwards-compatible and frontends will need updates. + + * New supported protocol decoders: + - adns5020 Bidirectional command and data over an SPI-like protocol + - am230x Aosong AM230x/DHTxx/RHTxx humidity/temperature sensor + - arm_etmv3 Decode ETM instruction trace packets + - arm_itm Trace data from Cortex-M / ARMv7m ITM module + - arm_tpiu Filter TPIU formatted trace data into separate streams + - eeprom24xx 24xx series I²C EEPROM protocol + - em4100 EM4100 100-150kHz RFID protocol + - jitter Retrieves the timing jitter between two digital signals + - max7219 8-digit LED display driver + - mdio Half-duplex sync serial bus for MII management (MAC/PHY) + - modbus Modbus RTU protocol for industrial applications + - mrf24j40 IEEE 802.15.4 2.4 GHz RF tranceiver chip + - nrf24l01 2.4GHz transceiver chip + - pwm Analog level encoded in duty cycle percentage + - qi Async serial protocol for Qi charger receivers + - rfm12 HopeRF RFM12 wireless transceiver control protocol + - sdcard_sd Secure Digital card (SD mode) low-level protocol + - spdif Serial bus for connecting digital audio devices + - stepper_motor Absolute position and movement speed from step/dir + - swd Two-wire protocol for debug access to ARM CPUs + - tca6408a Texas Instruments TCA6408A 8-bit I²C I/O expander + - timing Calculate time between edges + - usb_power_delivery USB Power Delivery protocol + - usb_request USB (low-speed and full-speed) transaction/request protocol + * The 'mx25lxx05d' decoder was renamed to 'spiflash' and made more generic. + * arm_itm: + - Use objdump instead of addr2line (bug #564). + * can: + - Emit bit value annotations. + - Improve stuff bit annotation placement. + * ds1307: + - Emit per-bit annotations for registers. + - Add more annotation classes (and annotation rows). + - Handle register 0x07 (control register). + - Handle SRAM register accesses. + - Correctly handle address wrap-around. + - Warn about (and ignore) non-DS1307 traffic. + * edid: + - Handle more EDID structure sections. + - Add annotation rows. + * jitter: + - Avoid Unicode string literals (bug #569). + * jtag: + - Fix/enable OUTPUT_PYTHON output. + - Add more annotations, fix a SHIFT-IR/-DR issue. + * jtag_stm32: + - Fix incorrect handling of registers. + - Decode more fields, improve IDCODE handling. + - Decode IDCODE contents as strings (not just hex values). + * midi: + - Fix two incorrect sample numbers. + - Update for a change (emit databyte/bits at the same time) in the uart PD. + * mrf24j40: + - Fix a register address typo. + * nunchuk: + - Fix inverted button press logic. + * pan1321: + - Update for a change (emit databyte/bits at the same time) in the uart PD. + * onewire_link: + - Fix a bug when the samplerate is too low for the PD (bug #357). + * parallel: + - Enforce that at least one pin must be provided. + * pwm: + - Avoid Unicode string literals (bug #569). + * spi: + - OUTPUT_PYTHON docs: Fix order of MISO/MOSI data items. + - Tell stacked decoders about missing CS# signal. + - Add binary output facilities for MISO/MOSI (bug #424). + - Don't decode data lines if CS# isn't asserted (bug #559). + - Add a 'TRANSFER' output type. + * spiflash: + - Implement FAST READ command. + - Add a 'chip' option in preparation for supporting more devices. + - Fix incorrect 'inputs' field. + * tlc5620: + - Fix incorrect DAC selection decode, add more annotations. + - Only decode the last 11 bits, ignore the rest. + - Properly handle LOAD and LDAC based operations. + - Handle the case of less than 11 bits in a command. + - Add options for per-DAC Vref, show voltages. + * uart: + - Add signal inversion options 'invert_tx' and 'invert_rx'. + - Emit databyte and bits list at the same time to simplify stacked PDs. + - Improve sample positions at high data rates. + - Handle framing errors better. + - Performance-optimize handling of samples when TX and RX are both idle. + * usb_packet: + - Fix incorrect DATA*/MDATA handling (bug #623). + - Handle invalid packets more gracefully (bug #186). + - Calculate and check CRC5/CRC16. + - Handle errors from usb_signalling. + - Handle PREamble transmissions. + * usb_request: + - Handle transmission timeouts. + - Handle PREamble transmissions. + * usb_signalling: + - Track USB symbol width to compensate frequency errors. + - Detect bit stuffing errors. + - Handle symbol errors in EOP state. + - Use explicit positions for packet start/end (avoids glitches). + - Decode RESET and Keep-Alive signalling conditions. + - Add option to automatically set signalling speed. + - Fix SOP detection after an error condition. + - Add signalling states needed after LS PREamble PID. + - Detect PREamble PID. + * Drop the PD testing framework. It's in the 'sigrok-test' repository now + (and is not meant for "end users" or distro packages anyway; it's a pure + developer tool/system). This also fixes some PD test related build issues. + * Makefile.am: Use libtool's -no-undefined option (fixes MinGW shared build). + * Support loading decoders stored in ZIP files. + * Updated build requirements: + - libglib >= 2.28.0 + - Drop obsolete (optional) dependencies: python3-coverage, libsigrok. + * README: Use clearer descriptions for the dependencies. + * Remove all references to the obsolete sigrok-commits mailing list. + * Fix incorrect doxygen comment for srd_decoder_list() function (bug #378). + * configure.ac: + - Fix a shell portability issue ("==" vs. "="). + - Use AM_CFLAGS instead of CFLAGS. + - Only link the 'check' library into the unit tests (not the lib). + * Unit tests: + - Fix out-of-tree build. + * libsigrokdecode.pc (pkg-config) file: + - Fix an issue related to the Python lib dependencies. + - Publish decodersdir variable. + * Add "-git-" suffix to development version numbers. + * Pass unitsize per sample chunk (bug #352). + * Modernize the whole autotools setup. + * Build with _POSIX_C_SOURCE=200112L per default. + * Build: Show CC and CFLAGS in configuration summary. + * Also look for decoders in XDG data directories. + * Restrict Python code to stable ABI subset (PEP 384). + * Fix various memory leaks. + * Fix an issue with PDs not being properly removed upon unload. + * Don't let Python override signal handlers (bug #461). + * configure: Also check for Python 3.5 (bug #739). + 0.3.0 (2014-05-06) ------------------ @@ -64,10 +568,10 @@ means it is NOT backwards-compatible and frontends will need updates. - Either MISO or MOSI can be optional now, but not both (bug #175). - The CS# pin is optional now. If the pin is supplied, it is honored (decoding only happens when the pin is asserted). Otherwise decoding will - use every CLK edge, regardless of CS# state or CS# existance (bug #152). + use every CLK edge, regardless of CS# state or CS# existence (bug #152). - Rename the 'SCK' pin to the more common 'CLK'. - Output bit-exact annotations and data for use by stacked PDs. - - Fix a bug occuring when only MOSI (but not MISO) was supplied. + - Fix a bug occurring when only MOSI (but not MISO) was supplied. * transitioncounter: - Drop the obsolete 'transitioncounter' dummy protocol decoder. * uart: