blob: d30199c41a031a277e458bb066fa9ee8a3477b0d [file] [log] [blame]
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 OUT_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:
- OUT_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-<hash>" 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)
------------------
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:
- guess_bitrate Guess the bitrate/baudrate of a signal
- ir_nec NEC infrared remote control protocol
- ir_rc5 RC-5 infrared remote control protocol
- midi Musical Instrument Digital Interface
- parallel Parallel synchronous bus decoder
- rgb_led_spi RGB LED string decoder (SPI)
- xfp 10 Gigabit Small Form Factor Pluggable Module
- z80 Zilog Z80 microprocessor disassembly
* Add support for annotation rows, i.e. groups of annotation classes that
are supposed to be displayed on the same GUI "row" together.
* Add support for the new OUTPUT_BINARY feature, which allows PDs to output
decoded data in various file formats (for loading and further processing
in other tools, or for direct live piping into other tools).
* Add support for the OUTPUT_META output type. This is used by PDs for
reporting various data points to the frontends, allowing them to perform
various post-processing and statistics tasks on them (e.g. simple counts,
average/mean values, min/max values, and so on).
* The OUTPUT_PROTO output type is now called OUTPUT_PYTHON.
* All protocol decoders:
- Bump the 'api_version' field of all decoders to 2. They are no longer
compatible (and cannot be used with) older libsigrokdecode versions.
- Updates to emit proper annotation classes, annotation sample numbers,
and annotation rows for GUI usage (bugs #146, #148, #150, #151, #154,
#155, #162, #147, #163, #168, #156, #309, and #344).
- Longer and shorter annotations are now supplied for GUI usage (frontends
can for example always show the longest annotation per zoom-level).
- Extensive protocol information has been moved from the PDs to the wiki.
Example: http://sigrok.org/wiki/Protocol_decoder:Uart
- Use correct I²C / I²S names in user-visible texts (not I2C/I2S).
* dcf77:
- Fix a bug in the handling of DCF77 bit 0.
- Drop handling of the 'PON' pin, this is not DCF77 related (bug #153).
- Fix the data parity check (bug #157).
* i2c:
- Fix corner case that can yield issues when using triggers on LAs.
- Drop unneeded 'addressing' option.
- Output bit-exact annotations and data for use by stacked PDs.
* i2s:
- Add OUTPUT_BINARY support for dumping the decoded data in WAV format.
* lpc:
- Various fixes to make the PD work better (or at all).
- Fix the handling of optional channels.
- Make the RESET# pin optional.
* onewire_link:
- Split 'reset' and 'presence' annotations.
* pan1321:
- Support the JSEC, JPRO, JAAC, and JSDA commands.
- Various internal fixes and improvements.
* parallel:
- Fix internal use of the obsolete 'metadata' parameter (bug #202).
* rtc8564:
- Properly handle register 0x06 (weekday) and the 'century' bit.
* sdcard_spi:
- Emit bit-exact annotations for the register fields that need them.
- Fix a Python issue with duplicate keys in a dict (bug #191).
* spi:
- 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# 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 occurring when only MOSI (but not MISO) was supplied.
* transitioncounter:
- Drop the obsolete 'transitioncounter' dummy protocol decoder.
* uart:
- Fix corner case that can yield issues when using triggers on LAs.
- Use 'T' for stop bits and 'P' for parity bits (shortest annotations).
- Add a data format selection option.
- Annotations for RX and TX are now emitted in different annotation rows.
- Either the RX or TX signal can be optional now (but not both).
- Fix incorrectly displayed characters (bug #201).
- Add support for OUTPUT_BINARY output for RX, TX, or both.
- Output bit-exact annotations and data for use by stacked PDs.
* uart_dump:
- Drop the obsolete 'uart_dump' decoder (the feature is now included
in the 'uart' protocol decoder itself via OUTPUT_BINARY).
* usb_packet:
- The 'usb_protocol' decoder has been renamed to 'usb_packet'.
- Various bugfixes and decoding improvements.
* usb_signalling:
- Fix decoding of individual bits, sample in the middle of bits (bug #158).
* libsigrokdecode API changes overview:
- Add srd_session_new(), srd_session_destroy(), and a session context.
- Add srd_session_metadata_set().
- The name 'probe' has been renamed to 'channel' everywhere.
- The lib no longer defineѕ names with _t suffix (POSIX reserved).
- Drop the obsolete SRD_MAX_NUM_PROBES.
- Add the SRD_CONF_SAMPLERATE config key.
- Please see the Doxygen API documentation for further details.
* Protocol decoder API:
- Metadata is passed to PDs at runtime now (not at decoder start).
PDs now have a new optional metadata() method to receive it.
- Output types are now registered via Decoder.register(), not Decoder.add().
- The report() method is now obsolete. This kind of information will be
passed to the frontends via the OUTPUT_META output type, allowing the
frontends to perform various post-processing and statistics tasks.
- PDs can now define BINARY_OUTPUT types via the 'binary' tuple.
- PDs can now define annotation rows via the 'annotation_rows' tuple.
- PD options are now a tuple of dicts. Each option is a dict containing
the keys 'id', 'desc', 'def', and 'values'. Valid option types are
UTF-8 strings, integers, and floats (bugs #254, #306, #317, #165).
- Channels, optional channels, and annotations are now tuples (not lists).
- Only load PDs of API version 2, all other versions are incompatible.
* srd_inst_channel_set_all(): Report an error if not all channels required
by the respective protocol decoder have been supplied.
* Remove some internal limitations to max. 64 channels (bug #120).
* Add a unit test suite framework for libsigrokdecode ('make check').
* Add a protocol decoder test-suite framework for developers (tests/pdtest).
* Various bugfixes:
- srd_inst_option_set(): Properly return an error on exceptions.
- srd_inst_option_set(): Fix setting of instance options, caused by class
variable clobbering or releasing borrowed references (bugs #170, #174).
- srd_decoder_load(): Error out upon invalid module names (bug #176).
- srd_decoder_load(): Don't try to load an already loaded PD twice.
- srd_decoder_load_all(): Avoid issues without prior srd_init() (bug #178).
- srd_decoder_doc_get(): Fix an issue in the unit test suite (bug #179).
- srd_pd_output_callback_add(): Honor cb_data value (bug #143).
- Fix issues with PDs not getting the samplerate (bugs #97, #132, #166).
- Don't incorrectly decrease a borrowed reference (bug #177).
- Fix various memory leaks and segfault conditions.
* Build system:
- Use pkg-config (not python3-config) to check for Python libs.
This enables (better) libsigrokdecode cross-compile support.
- PDs no longer have an extra Makefile.am, and 'make install' now
happens via a Python script.
- configure: Clearly mark required and optional libs.
- Fix an issue with DESTDIR support (bug #215).
- Add the HACKING file to the tarball.
* Updated or new build-time and runtime requirements:
- Python >= 3.2 (required)
- check >= 0.9.4 (optional, only needed for the libsigrokdecode testsuite)
- libsigrok >= 0.3.0 (optional, only needed for the developer PD testsuite)
- python3-coverage (optional, only needed for the developer PD testsuite)
* New 'make install'-time requirement:
- Python >= 3.2 (required)
0.2.0 (2013-05-04)
------------------
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:
- Dallas DS1307 RTC
* Library: Decoders now expose their options via the GSList *options field
in struct srd_decoder.
* API related changes:
- Various API documentation fixes.
- srd_decoder_list() now returns 'const GSList *' instead of 'GSList *'.
- Added new srd_strerror() and srd_strerror_name() API calls.
* Added support for optional probes for PDs.
0.1.1 (2013-01-27)
------------------
Note: This release does NOT change the libsigrokdecode public C API. This
means existing libsigrokdecode 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:
- avr_isp AVR In-System Programming
- can Controller Area Network
- jtag Joint Test Action Group (IEEE 1149.1)
- jtag_stm32 Joint Test Action Group / ST STM32
- lm75 National LM75
- lpc Low-Pin-Count
- maxim_ds28ea00 Maxim DS28EA00 1-Wire digital thermometer
- onewire_link 1-Wire serial communication bus (link layer)
- onewire_network 1-Wire serial communication bus (network layer)
- sdcard_spi Secure Digital card (SPI mode)
- tlc5620 Texas Instruments TLC5620
- uart_dump UART dump
* i2cfilter: Now outputs 'i2c' packets instead of just data bytes, so
other PDs can stack on top of it. It filters by I2C slave address.
* edid: Now takes 'i2c' packets as input.
* pan1321:
- Various bugfixes to make the PD actually work.
- Now features 'Text (short)' and 'Text (verbose)' outputs.
* usb:
- The PD is split into 'usb_signalling' and 'usb_protocol' (stacked on top).
- Various bugfixes to make the PD work (better).
- The DP/DM probes were swapped, this is now fixed.
- Preliminary support for USB low-speed (in addition to full-speed).
* mlx90614: Minor bugfixes.
* dcf77:
- Major bugfix, this PD was not working correctly at all.
- Handle PON signal.
* nunchuk: Complete rewrite, works (better) now.
* spi: Update docs, send CS# change packets, change output API slightly.
If you have a PD which stacks on top of SPI, it'll need to be adapted.
The PDs that ship with libsigrokdecode are updated already.
* mx25lxx05d:
- Implement support for the READ, RDSR, and PP commands.
- Decode status register bits.
- Fix SE command handling.
- Fix inverted SRWD bit handling.
* Various smaller style and consistency changes in code and PD descriptions.
* Fix the build with Homebrew on Mac OS X.
* Performance improvements in some PDs.
* Documentation: Update website and git URLs.
* pkg-config file: Small fix to improve behaviour on Windows with cmake.
* All PD implementation files are now named 'pd.py' consistently.
* configure script:
- Also check for python3.3-config in addition to python-config and others.
- Add missing -fvisibility=hidden to default CFLAGS.
- Fix CFLAGS handling (configure.ac amends CFLAGS, doesn't overwrite now).
* The minimum required glib version is 2.24.0 now.
* We now ship a standard INSTALL file which documents the 'configure' options.
0.1.0 (2012-04-17)
------------------
* Initial release.