]> sigrok.org Git - libsigrokdecode.git/blob - NEWS
configure.ac: Bump package version to 0.5.3.
[libsigrokdecode.git] / NEWS
1 0.5.3 (2019-12-11)
2 ------------------
3
4 Note: This release does NOT change the libsigrokdecode public C API in
5 incompatible ways. This means existing frontends should not require any
6 changes. However, individual PDs and their output changed, which may
7 require some adaptations on the user's side in some cases.
8
9  * New supported protocol decoders:
10    - lin              Local Interconnect Network (LIN) protocol
11    - x2444m           Xicor X2444M/P nonvolatile static RAM protocol
12    - ds2408           1-Wire 8-channel addressable switch
13    - cc1101           Low-power sub-1GHz RF transceiver chip
14    - enc28j60         Microchip ENC28J60 10Base-T Ethernet controller protocol
15    - pca9571          NXP PCA9571 8-bit I²C output expander
16    - seven_segment    7-segment display protocol
17    - amulet_ascii     Amulet Technologies LCD controller ASCII protocol
18    - tdm_audio        TDM multi-channel audio protocol
19    - signature        Annotate signature of logic patterns
20    - nes_gamepad      NES gamepad button states
21    - flexray          Automotive network communications protocol
22    - ir_rc6           RC-6 infrared remote control protocol
23    - ieee488          IEEE-488 General Purpose Interface Bus (GPIB/HPIB or IEC)
24    - hdcp             HDCP protocol over HDMI
25  * All decoders must implement a reset() method now. It should reset all
26    PD-internal state and will be called when the decoder is restarted from
27    scratch (by frontends) with new data.
28  * Fix various memory leaks and bad memory accesses (e.g. bug #1374).
29  * Build system: Add support for Python 3.8 (bug #1438).
30  * Various compiler warning fixes.
31  * Slightly more detailed and easier to read log messages in some places.
32  * Fix incorrect decoder 'output' metadata.
33  * Improve annotation row ordering in various PDs.
34  * ook:
35    - Fix two typos causing decode issues.
36  * uart:
37    - Add support for break condition detection.
38    - Add 'FRAME' Python output type that communicates frame validity.
39    - Add '[rx|tx]_packet_delimiter' options.
40    - Add '[rx|tx]_packet_len' options.
41    - Communicate periods of idle frames to stacked decoders.
42    - Add 'ignore' parity type, remove unsupported 'check_parity' option.
43    - Shorten/rename various decoder option names.
44  * spiflash:
45    - Add support for Winbond W25Q80DV and Atmel AT25xxx.
46    - Add support for the chip erase commands (CE, CE2).
47    - Add support for write enable state tracking.
48    - Remember write protection latch from status registers.
49    - Fix WRSR incorrectly using MISO for register decodes.
50    - Add "EEPROM" to descriptions to increase discoverability in UIs.
51  * i2s:
52    - Fix incorrect channel assignment.
53    - Fix usage of the incorrect edge for the data sampling.
54  * ds1307:
55    - Fix incorrect unit for frequencies above 1Hz.
56    - Fix incorrect AM/PM flag handling.
57  * ir_rc5:
58    - Fix an incorrect command value.
59    - Massively improve performance via proper self.wait() usage.
60  * onewire_network:
61    - Add support for the 'Resume ROM' command.
62    - Add a 'Disable Test Mode' command for DS2408.
63  * sdcard_spi:
64    - Add support for CMD24 including payload data (bug #1365).
65    - Fix duplicated 'End bit' annotation emission.
66    - Fix incorrect handling of CMD17 (bug #1377).
67    - Add "Card is busy" annotations for CMD24 (bug #1376).
68  * spi:
69    - Add support for "transfer" annotations.
70  * atsha204a:
71    - Add support for ATECC508A.
72    - Display OtherData parameter correctly when Verify command is executed
73      in Validate mode.
74    - Only call output_tx_bytes() when the bytes buffer is not empty.
75  * usb_request:
76    - Append OUT data only if it has been ACK'd.
77    - Always keep IN and OUT transfers separate. In case the transfer is an
78      IN transfer, set the high bit as used in the endpoint descriptors (i.e.
79      0x81 is IN enpoint 1, 0x01 is OUT endpoint 1).
80    - Use separate annotation rows for IN, OUT and CONTROL (bug #1046).
81    - Allow configuration of BULK IN transfer display via an option.
82  * modbus:
83    - Make C->S and S->C configurable via options.
84    - Add a 'framegap' option.
85  * mrf24j40:
86    - Add RX/TX frame annotations.
87    - Add TX retries/fails and CCAFAIL support.
88  * eeprom93xx:
89    - Add ASCII format support.
90    - Add OUTPUT_BINARY support.
91  * can:
92    - Add CAN-FD support.
93    - Add new 'fast_bitrate' option.
94    - More robust sample point position for low sample rates.
95  * gpib, iec:
96    - Removed in favor of the new ieee488 decoder.
97  * ir_nec:
98    - Fix decoder when running it multiple times (bug #1243).
99
100 0.5.2 (2018-09-12)
101 ------------------
102
103 Note: This release does NOT change the libsigrokdecode public C API in
104 incompatible ways. This means existing frontends should not require any
105 changes. However, individual PDs and their output changed, which may
106 require some adaptations on the user's side in some cases.
107
108  * New supported protocol decoders:
109    - mcs48            Intel MCS-48 external memory access protocol
110    - st7735           Sitronix ST7735 TFT controller protocol
111    - atsha204a        Microchip ATSHA204A CryptoAuthentication device
112    - cfp              100 Gigabit C form-factor pluggable (CFP) protocol
113    - jtag_ejtag       MIPS EJTAG protocol
114    - swim             STM8 Single Wire Interface Module (SWIM) protocol
115    - cec              HDMI Consumer Electronics Control (CEC) protocol
116    - miller           Miller encoding protocol
117    - ook              On-off keying protocol
118    - ook_oregon       Oregon Scientific weather sensor protocol
119    - ook_vis          OOK visualisation in various formats
120  * Various minor performance improvements in the backend.
121  * Fix an issue causing decoder termination to take a long time.
122  * Fix multiple self.put() memory leaks (bug #329).
123  * Fix multiple memory leaks reported by scan-build.
124  * Show a backtrace when the decode aborts due to an error (bug #1158).
125  * Perform the log level check for non-default handlers as well (bug #698).
126  * Fix multiple compiler warnings.
127  * Compiler: Add -Wshadow -Wformat=2 -Wno-format-nonliteral -Wfloat-equal.
128  * Build system: Add Python 3.7 support.
129  * Fix a 'make install' issue that happens with Python >= 3.7.
130  * Add two missing Python GIL release operations.
131  * libsigrokdecode API changes:
132    - Add the srd_log_callback_get() API call.
133    - Add the SRD_ERR_TERM_REQ error code.
134  * dcf77:
135    - Annotate invalid dow and month fields, do not abort execution (bug #1173).
136    - Annotate unexpected bit numbers and values, do not abort execution.
137  * spiflash:
138    - Add basic Adesto AT45DBxx support (WRITE1/2, STATUS).
139    - Add Adesto AT45DB161E metadata.
140  * jtag:
141    - Fix shifting of registers (bug #1066).
142  * jtag_stm32:
143    - Fix handling of boundary scan TAP and incorrect state transitions.
144  * eeprom24xx:
145    - Add ON Semi CAT24C256 and CAT24M01 support.
146  * counter:
147    - Emit wider annotations to improve readability in UIs (bug #1210).
148    - Add support for user specified initial counter values (bug #1229).
149    - Add an option to ignore a certain number of edges.
150    - Let the user decide how to handle the initial dead_cycles state.
151  * mdio:
152    - Accept MDIO READ without previous ADDRESS command (bug #1258).
153  * edid:
154    - Add support for extension blocks.
155    - Various annotation improvements.
156  * spi:
157    - Fix an issue causing an AttributeError during certain decodes.
158  * usb_power_delivery:
159    - Emit more details in annotations (power, PDO type, RDO info).
160    - Add PPS support.
161    - Add better USB Power Delivery 3.0 support.
162
163 0.5.1 (2018-04-12)
164 ------------------
165
166 Note: This release does NOT change the libsigrokdecode public C API in
167 incompatible ways. This means existing frontends should not require any
168 changes. However, individual PDs and their output changed, which may
169 require some adaptations on the user's side in some cases.
170
171  * New supported protocol decoders:
172    - ac97             Audio and modem control for PC systems
173    - ds243x           Maxim DS243x series 1-Wire EEPROM protocol
174    - maple_bus        Maple bus peripheral protocol for SEGA Dreamcast
175    - morse            Demodulated morse code protocol
176    - graycode         Accumulate rotary encoder increments, timing statistics
177    - counter          Count number of edges
178    - sda2506          Serial nonvolatile 1-Kbit EEPROM
179    - rc_encode        PT2262/HX2262/SC5262 remote control encoder protocol
180  * Updated build requirements:
181    - libglib >= 2.34
182  * New API calls:
183    - srd_searchpaths_get(): Retrieve PD search paths.
184    - srd_session_terminate_reset(): Terminate currently executing decoders
185      in a session, reset internal state. Allows re-using a session.
186  * can:
187    - Introduce clock synchronization (bug #990).
188    - Fix incorrect stuff bit handling (bug #1085).
189  * i2c:
190    - Don't drop the first sample of input data.
191    - Make input samplerate optional (bug #1076).
192  * i2s:
193    - Binary output: Make 32-bit WAV files, set file size to 4GB.
194    - Fix unportable use of struct.pack().
195    - Make samplerate meta data optional.
196  * stepper_motor:
197    - Make samplerate meta data optional.
198  * pwm:
199    - Fixup sample numbers for binary output.
200  * onewire_network:
201    - Fixup start samplenumber for annotations.
202  * lpc:
203    - Improve robustness when decoding unexpected input data.
204  * ir_nec:
205    - Make timing margin relative.
206    - Optionally accept input signals that include the carrier.
207  * usb_request:
208    - Handle CONTROL transfer protocol stalls.
209  * usb_power_delivery:
210    - Enforce numerical order of RDO/PDO flag annotations, enforce check
211      order for start-of-packet sequences (bug #1090).
212  * parallel:
213    - Cope with sparse input maps, assume zero for unconnected pins (bug #1088).
214    - Unbreak and improve "word" de-multiplexing.
215    - Implement consistent number formatting.
216    - Expand 'wordsize' description (bits vs cycles).
217  * spi:
218    - Cope when a sample rate of 0 was configured (bug #1118).
219  * Acquire/release the Python GIL where needed to avoid threading issues.
220    This allows frontends to call libsigrokdecode API functions from different
221    threads without running into issues.
222  * Convert all protocol decoders to PD API version 3.
223  * Support for the old PD API version 2 has been removed.
224  * Unbreak the execution of Decoder.wait() with empty condition.
225  * self.wait(): Accept more forms of "unconditional wait" (None, no args).
226  * Fix a compiler warning on Mac OS X.
227  * configure.ac: Add missing PKG_PROG_PKG_CONFIG and AC_C_BIGENDIAN.
228  * Add a reset() method to all PDs which resets internal variable state.
229  * Clarify and improve channel mapping debug output.
230  * Print decoder and system search paths in debug output.
231  * Drop overly verbose log messages about (un)loading PDs.
232  * HACKING: Prefer git pull requests over mailing list patches.
233
234 0.5.0 (2017-06-12)
235 ------------------
236
237 Note: This release DOES change the libsigrokdecode public C API. This
238 means it is NOT backwards-compatible and frontends will need updates.
239
240  * New supported protocol decoders:
241    - ade77xx          Poly phase multifunction energy metering IC protocol
242    - adf435x          Wideband synthesizer with integrated VCO
243    - aud              Renesas/Hitachi Advanced User Debugger (AUD) protocol
244    - avr_pdi          Atmel proprietary interface for the ATxmega MCU
245    - dali             DALI lighting control protocol
246    - dsi              DSI lighting control protocol
247    - dmx512           Professional lighting control protocol
248    - eeprom93xx       93xx series Microwire EEPROM protocol (bug #931)
249    - em4305           EM4205/EM4305 100-150kHz RFID protocol
250    - gpib             IEEE-488 GPIB / HPIB protocol
251    - iec              Commodore serial IEEE-488 (IEC) bus protocol
252    - microwire        3-wire, half-duplex, synchronous serial bus (bug #931)
253    - ps2              PS/2 keyboard/mouse interface
254    - rgb_led_ws281x   RGB LED string protocol (WS281x)
255    - ssi32            Synchronous Serial Interface (32bit) protocol
256    - t55xx            T55xx 100-150kHz RFID protocol
257    - wiegand          Wiegand interface for electronic entry systems
258  * Add support for the new query-based PD v3 decoder API.
259    - Decoders using PD v3 API can benefit from both readability improvements
260      as well as performance improvements. Up to 10x speedup has been measured
261      in some situations (depends a lot on the decoder, the amount of data,
262      the amount of edges in the signals, and the amount of oversampling).
263    - The majority of all decoders have been converted to PD API v3.
264    - For the time being, both APIs (2 and 3) will remain supported until all
265      decoders have been converted to API version 3. Then, support for API
266      version 2 will be dropped.
267  * Add support for specifying the (assumed) initial pin states before the
268    first sample that is being decoded. This can be set to 0/low, 1/high, or
269    to "use the same value as in the first sample".
270  * Add support for adding multiple instances of a decoder (bug #868).
271  * Introduce a decoders/common facility for code shared between PDs (bug #804).
272  * Supply metadata to all stacked decoders, not just low-level ones (bug #664).
273  * Various Doxygen/documentation improvements.
274  * Factor out a srd_decoder_apiver() internal helper function.
275  * srd_inst_decode(): Return SRD_ERR_ARG if unitsize is 0.
276  * Print error messages when decoders fail load time checks (bug #704).
277  * Fix multiple valgrind warnings (memory leaks and such).
278  * Build system: Sort PD list alphabetically in "make install".
279  * mdio:
280    - Replace PD with a new implementation that also supports Clause 22 and 45.
281    - Improve annotations slightly.
282  * xfp:
283    - Move various constants to common/plugtrx for reusability purposes.
284  * sdcard_{sd,spi}:
285    - Move various constants to common/sdcard for reusability purposes.
286  * usb_request:
287    - Drop hardcoded samplerate (workaround for the fixed bug #664).
288  * spiflash:
289    - Handle CS# transitions, allow variable-length transfers.
290    - Handle "Fast Read Dual I/O" commands.
291    - Add a "format" decoder option.
292    - Implement Release Power-down / Device ID (0xAB) command (bug #845).
293    - Remove hardcoded Macronix references.
294    - Add initial FIDELIX FM25Q32 metadata/support.
295    - Implement WRSR, RDSR2 commands.
296    - Various annotation improvements.
297  * timing:
298    - Add frequency and averaging support.
299    - Disable averaging feature if it's set to zero.
300    - Add edge-edge mode and delta calculation.
301  * midi:
302    - Decode note names and percussion names (e.g. 'G2', 'Tambourine').
303    - Decode instrument names and drum_kit names (e.g. 'GS Orchestra Kit').
304    - Handle Polyphonic Pressure / Aftertouch (message 0xAn).
305    - Handle Program Change (message 0xCn).
306    - Handle Channel Pressure / Aftertouch (message 0xDn).
307    - Handle Channel Mode (message 0xBn mm where mm is 120 through 127).
308    - Handle System Common messages (message 0xF1 through 0xF6), including
309      full time code decoding.
310    - SysEx decoding now decodes the 1-3 byte manufacturer field, payload
311      is now displayed as hex.
312    - 'undefined' fields now display the value (e.g. 'undefined 0xf4').
313    - Add 'MSB' and 'LSB' to many control_functions entries.
314    - Fix "trapped in state X" bug with handle_channel_msg_generic(),
315      though this might be dead code.
316    - Fix bug in sysex_manufacturer_ids; 1-byte manufacturers were not
317      tuples due to missing comma.
318    - Fix bug in SysEx state machine; 0xF7 now sent to handle_sysex_msg().
319    - Annotations: Provide multiple string versions (shorter and longer ones).
320    - chromatic_notes in list.py was off by 1 octave.
321    - Handle "Running Status" where status byte can be omitted.
322    - SysEx message can be terminated by status byte, not just EOX.
323    - Handle SysReal messages that interrupt in-progress message transmission.
324    - Identify and print garbage / truncated data.
325    - Add 2 new annotations: text-sysreal-verbose and text-error.
326  * usb_power_delivery:
327    - Drop problematic exception in us2samples() function (bug #758).
328  * uart:
329    - Fix a bug in the output for stacked PDs (when there's RX/TX overlap).
330    - Various output formatting improvements (e.g. for ASCII and octal).
331    - Skip frames with invalid start bits.
332    - Emit 2 bytes for 9-bit UART binary output (bug #708).
333    - Default to hex format datavalue annotations.
334  * spi:
335    - Fix binary output for wordsizes > 8 (bug #686).
336  * sdcard_sd:
337    - Don't try to decode commands that are not yet supported.
338    - Always show CMD argument in hex.
339    - Fix incorrect CMD8 annotations.
340  * can:
341    - Add warnings for various invalid bits and fields.
342    - Skip stuff bit inspection where not applicable (bug #656).
343  * eeprom24xx:
344    - Add Xicor X24C02 support.
345  * onewire_link:
346    - Replace PD with a new, improved implementation (bugs #666, #926).
347    - Overdrive speed is now detected automatically.
348    - Some no longer needed decoder options have been dropped.
349  * Various decoders:
350    - Fix some incorrect PD license metadata fields.
351    - Fix typos, whitespace issues and random other cosmetics in some PDs.
352    - Use consistent __init__() format across all PDs.
353    - Move some duplicated code snippets/lists to decoders/common.
354  * Rename the maxim_ds28ea00 decoder to ds28ea00.
355  * Show library versions in the debug output.
356  * configure: Also check for Python 3.6.
357  * configure summary: Show build type (static/shared) and linker flags.
358  * Remove FSF postal address from boiler plate license text.
359  * HACKING: Update URL to Linux kernel coding style.
360
361 0.4.0 (2016-01-29)
362 ------------------
363
364 Note: This release DOES change the libsigrokdecode public C API. This
365 means it is NOT backwards-compatible and frontends will need updates.
366
367  * New supported protocol decoders:
368    - adns5020       Bidirectional command and data over an SPI-like protocol
369    - am230x         Aosong AM230x/DHTxx/RHTxx humidity/temperature sensor
370    - arm_etmv3      Decode ETM instruction trace packets
371    - arm_itm        Trace data from Cortex-M / ARMv7m ITM module
372    - arm_tpiu       Filter TPIU formatted trace data into separate streams
373    - eeprom24xx     24xx series I²C EEPROM protocol
374    - em4100         EM4100 100-150kHz RFID protocol
375    - jitter         Retrieves the timing jitter between two digital signals
376    - max7219        8-digit LED display driver
377    - mdio           Half-duplex sync serial bus for MII management (MAC/PHY)
378    - modbus         Modbus RTU protocol for industrial applications
379    - mrf24j40       IEEE 802.15.4 2.4 GHz RF tranceiver chip
380    - nrf24l01       2.4GHz transceiver chip
381    - pwm            Analog level encoded in duty cycle percentage
382    - qi             Async serial protocol for Qi charger receivers
383    - rfm12          HopeRF RFM12 wireless transceiver control protocol
384    - sdcard_sd      Secure Digital card (SD mode) low-level protocol
385    - spdif          Serial bus for connecting digital audio devices
386    - stepper_motor  Absolute position and movement speed from step/dir
387    - swd            Two-wire protocol for debug access to ARM CPUs
388    - tca6408a       Texas Instruments TCA6408A 8-bit I²C I/O expander
389    - timing         Calculate time between edges
390    - usb_power_delivery USB Power Delivery protocol
391    - usb_request    USB (low-speed and full-speed) transaction/request protocol
392  * The 'mx25lxx05d' decoder was renamed to 'spiflash' and made more generic.
393  * arm_itm:
394    - Use objdump instead of addr2line (bug #564).
395  * can:
396    - Emit bit value annotations.
397    - Improve stuff bit annotation placement.
398  * ds1307:
399    - Emit per-bit annotations for registers.
400    - Add more annotation classes (and annotation rows).
401    - Handle register 0x07 (control register).
402    - Handle SRAM register accesses.
403    - Correctly handle address wrap-around.
404    - Warn about (and ignore) non-DS1307 traffic.
405  * edid:
406    - Handle more EDID structure sections.
407    - Add annotation rows.
408  * jitter:
409    - Avoid Unicode string literals (bug #569).
410  * jtag:
411    - Fix/enable OUTPUT_PYTHON output.
412    - Add more annotations, fix a SHIFT-IR/-DR issue.
413  * jtag_stm32:
414    - Fix incorrect handling of registers.
415    - Decode more fields, improve IDCODE handling.
416    - Decode IDCODE contents as strings (not just hex values).
417  * midi:
418    - Fix two incorrect sample numbers.
419    - Update for a change (emit databyte/bits at the same time) in the uart PD.
420  * mrf24j40:
421    - Fix a register address typo.
422  * nunchuk:
423    - Fix inverted button press logic.
424  * pan1321:
425    - Update for a change (emit databyte/bits at the same time) in the uart PD.
426  * onewire_link:
427    - Fix a bug when the samplerate is too low for the PD (bug #357).
428  * parallel:
429    - Enforce that at least one pin must be provided.
430  * pwm:
431    - Avoid Unicode string literals (bug #569).
432  * spi:
433    - OUTPUT_PYTHON docs: Fix order of MISO/MOSI data items.
434    - Tell stacked decoders about missing CS# signal.
435    - Add binary output facilities for MISO/MOSI (bug #424).
436    - Don't decode data lines if CS# isn't asserted (bug #559).
437    - Add a 'TRANSFER' output type.
438  * spiflash:
439    - Implement FAST READ command.
440    - Add a 'chip' option in preparation for supporting more devices.
441    - Fix incorrect 'inputs' field.
442  * tlc5620:
443    - Fix incorrect DAC selection decode, add more annotations.
444    - Only decode the last 11 bits, ignore the rest.
445    - Properly handle LOAD and LDAC based operations.
446    - Handle the case of less than 11 bits in a command.
447    - Add options for per-DAC Vref, show voltages.
448  * uart:
449    - Add signal inversion options 'invert_tx' and 'invert_rx'.
450    - Emit databyte and bits list at the same time to simplify stacked PDs.
451    - Improve sample positions at high data rates.
452    - Handle framing errors better.
453    - Performance-optimize handling of samples when TX and RX are both idle.
454  * usb_packet:
455    - Fix incorrect DATA*/MDATA handling (bug #623).
456    - Handle invalid packets more gracefully (bug #186).
457    - Calculate and check CRC5/CRC16.
458    - Handle errors from usb_signalling.
459    - Handle PREamble transmissions.
460  * usb_request:
461    - Handle transmission timeouts.
462    - Handle PREamble transmissions.
463  * usb_signalling:
464    - Track USB symbol width to compensate frequency errors.
465    - Detect bit stuffing errors.
466    - Handle symbol errors in EOP state.
467    - Use explicit positions for packet start/end (avoids glitches).
468    - Decode RESET and Keep-Alive signalling conditions.
469    - Add option to automatically set signalling speed.
470    - Fix SOP detection after an error condition.
471    - Add signalling states needed after LS PREamble PID.
472    - Detect PREamble PID.
473  * Drop the PD testing framework. It's in the 'sigrok-test' repository now
474    (and is not meant for "end users" or distro packages anyway; it's a pure
475    developer tool/system). This also fixes some PD test related build issues.
476  * Makefile.am: Use libtool's -no-undefined option (fixes MinGW shared build).
477  * Support loading decoders stored in ZIP files.
478  * Updated build requirements:
479    - libglib >= 2.28.0
480    - Drop obsolete (optional) dependencies: python3-coverage, libsigrok.
481  * README: Use clearer descriptions for the dependencies.
482  * Remove all references to the obsolete sigrok-commits mailing list.
483  * Fix incorrect doxygen comment for srd_decoder_list() function (bug #378).
484  * configure.ac:
485    - Fix a shell portability issue ("==" vs. "=").
486    - Use AM_CFLAGS instead of CFLAGS.
487    - Only link the 'check' library into the unit tests (not the lib).
488  * Unit tests:
489    - Fix out-of-tree build.
490  * libsigrokdecode.pc (pkg-config) file:
491    - Fix an issue related to the Python lib dependencies.
492    - Publish decodersdir variable.
493  * Add "-git-<hash>" suffix to development version numbers.
494  * Pass unitsize per sample chunk (bug #352).
495  * Modernize the whole autotools setup.
496  * Build with _POSIX_C_SOURCE=200112L per default.
497  * Build: Show CC and CFLAGS in configuration summary.
498  * Also look for decoders in XDG data directories.
499  * Restrict Python code to stable ABI subset (PEP 384).
500  * Fix various memory leaks.
501  * Fix an issue with PDs not being properly removed upon unload.
502  * Don't let Python override signal handlers (bug #461).
503  * configure: Also check for Python 3.5 (bug #739).
504
505 0.3.0 (2014-05-06)
506 ------------------
507
508 Note: This release DOES change the libsigrokdecode public C API. This
509 means it is NOT backwards-compatible and frontends will need updates.
510
511  * New supported protocol decoders:
512    - guess_bitrate  Guess the bitrate/baudrate of a signal
513    - ir_nec         NEC infrared remote control protocol
514    - ir_rc5         RC-5 infrared remote control protocol
515    - midi           Musical Instrument Digital Interface
516    - parallel       Parallel synchronous bus decoder
517    - rgb_led_spi    RGB LED string decoder (SPI)
518    - xfp            10 Gigabit Small Form Factor Pluggable Module
519    - z80            Zilog Z80 microprocessor disassembly
520  * Add support for annotation rows, i.e. groups of annotation classes that
521    are supposed to be displayed on the same GUI "row" together.
522  * Add support for the new OUTPUT_BINARY feature, which allows PDs to output
523    decoded data in various file formats (for loading and further processing
524    in other tools, or for direct live piping into other tools).
525  * Add support for the OUTPUT_META output type. This is used by PDs for
526    reporting various data points to the frontends, allowing them to perform
527    various post-processing and statistics tasks on them (e.g. simple counts,
528    average/mean values, min/max values, and so on).
529  * The OUTPUT_PROTO output type is now called OUTPUT_PYTHON.
530  * All protocol decoders:
531    - Bump the 'api_version' field of all decoders to 2. They are no longer
532      compatible (and cannot be used with) older libsigrokdecode versions.
533    - Updates to emit proper annotation classes, annotation sample numbers,
534      and annotation rows for GUI usage (bugs #146, #148, #150, #151, #154,
535      #155, #162, #147, #163, #168, #156, #309, and #344).
536    - Longer and shorter annotations are now supplied for GUI usage (frontends
537      can for example always show the longest annotation per zoom-level).
538    - Extensive protocol information has been moved from the PDs to the wiki.
539      Example: http://sigrok.org/wiki/Protocol_decoder:Uart
540    - Use correct I²C / I²S names in user-visible texts (not I2C/I2S).
541  * dcf77:
542    - Fix a bug in the handling of DCF77 bit 0.
543    - Drop handling of the 'PON' pin, this is not DCF77 related (bug #153).
544    - Fix the data parity check (bug #157).
545  * i2c:
546    - Fix corner case that can yield issues when using triggers on LAs.
547    - Drop unneeded 'addressing' option.
548    - Output bit-exact annotations and data for use by stacked PDs.
549  * i2s:
550    - Add OUTPUT_BINARY support for dumping the decoded data in WAV format.
551  * lpc:
552    - Various fixes to make the PD work better (or at all).
553    - Fix the handling of optional channels.
554    - Make the RESET# pin optional.
555  * onewire_link:
556    - Split 'reset' and 'presence' annotations.
557  * pan1321:
558    - Support the JSEC, JPRO, JAAC, and JSDA commands.
559    - Various internal fixes and improvements.
560  * parallel:
561    - Fix internal use of the obsolete 'metadata' parameter (bug #202).
562  * rtc8564:
563    - Properly handle register 0x06 (weekday) and the 'century' bit.
564  * sdcard_spi:
565    - Emit bit-exact annotations for the register fields that need them.
566    - Fix a Python issue with duplicate keys in a dict (bug #191).
567  * spi:
568    - Either MISO or MOSI can be optional now, but not both (bug #175).
569    - The CS# pin is optional now. If the pin is supplied, it is honored
570      (decoding only happens when the pin is asserted). Otherwise decoding will
571      use every CLK edge, regardless of CS# state or CS# existence (bug #152).
572    - Rename the 'SCK' pin to the more common 'CLK'.
573    - Output bit-exact annotations and data for use by stacked PDs.
574    - Fix a bug occurring when only MOSI (but not MISO) was supplied.
575  * transitioncounter:
576    - Drop the obsolete 'transitioncounter' dummy protocol decoder.
577  * uart:
578    - Fix corner case that can yield issues when using triggers on LAs.
579    - Use 'T' for stop bits and 'P' for parity bits (shortest annotations).
580    - Add a data format selection option.
581    - Annotations for RX and TX are now emitted in different annotation rows.
582    - Either the RX or TX signal can be optional now (but not both).
583    - Fix incorrectly displayed characters (bug #201).
584    - Add support for OUTPUT_BINARY output for RX, TX, or both.
585    - Output bit-exact annotations and data for use by stacked PDs.
586  * uart_dump:
587    - Drop the obsolete 'uart_dump' decoder (the feature is now included
588      in the 'uart' protocol decoder itself via OUTPUT_BINARY).
589  * usb_packet:
590    - The 'usb_protocol' decoder has been renamed to 'usb_packet'.
591    - Various bugfixes and decoding improvements.
592  * usb_signalling:
593    - Fix decoding of individual bits, sample in the middle of bits (bug #158).
594  * libsigrokdecode API changes overview:
595    - Add srd_session_new(), srd_session_destroy(), and a session context.
596    - Add srd_session_metadata_set().
597    - The name 'probe' has been renamed to 'channel' everywhere.
598    - The lib no longer defineѕ names with _t suffix (POSIX reserved).
599    - Drop the obsolete SRD_MAX_NUM_PROBES.
600    - Add the SRD_CONF_SAMPLERATE config key.
601    - Please see the Doxygen API documentation for further details.
602  * Protocol decoder API:
603    - Metadata is passed to PDs at runtime now (not at decoder start).
604      PDs now have a new optional metadata() method to receive it.
605    - Output types are now registered via Decoder.register(), not Decoder.add().
606    - The report() method is now obsolete. This kind of information will be
607      passed to the frontends via the OUTPUT_META output type, allowing the
608      frontends to perform various post-processing and statistics tasks.
609    - PDs can now define BINARY_OUTPUT types via the 'binary' tuple.
610    - PDs can now define annotation rows via the 'annotation_rows' tuple.
611    - PD options are now a tuple of dicts. Each option is a dict containing
612      the keys 'id', 'desc', 'def', and 'values'. Valid option types are
613      UTF-8 strings, integers, and floats (bugs #254, #306, #317, #165).
614    - Channels, optional channels, and annotations are now tuples (not lists).
615    - Only load PDs of API version 2, all other versions are incompatible.
616  * srd_inst_channel_set_all(): Report an error if not all channels required
617    by the respective protocol decoder have been supplied.
618  * Remove some internal limitations to max. 64 channels (bug #120).
619  * Add a unit test suite framework for libsigrokdecode ('make check').
620  * Add a protocol decoder test-suite framework for developers (tests/pdtest).
621  * Various bugfixes:
622    - srd_inst_option_set(): Properly return an error on exceptions.
623    - srd_inst_option_set(): Fix setting of instance options, caused by class
624      variable clobbering or releasing borrowed references (bugs #170, #174).
625    - srd_decoder_load(): Error out upon invalid module names (bug #176).
626    - srd_decoder_load(): Don't try to load an already loaded PD twice.
627    - srd_decoder_load_all(): Avoid issues without prior srd_init() (bug #178).
628    - srd_decoder_doc_get(): Fix an issue in the unit test suite (bug #179).
629    - srd_pd_output_callback_add(): Honor cb_data value (bug #143).
630    - Fix issues with PDs not getting the samplerate (bugs #97, #132, #166).
631    - Don't incorrectly decrease a borrowed reference (bug #177).
632    - Fix various memory leaks and segfault conditions.
633  * Build system:
634     - Use pkg-config (not python3-config) to check for Python libs.
635       This enables (better) libsigrokdecode cross-compile support.
636     - PDs no longer have an extra Makefile.am, and 'make install' now
637       happens via a Python script.
638     - configure: Clearly mark required and optional libs.
639     - Fix an issue with DESTDIR support (bug #215).
640     - Add the HACKING file to the tarball.
641  * Updated or new build-time and runtime requirements:
642    - Python >= 3.2 (required)
643    - check >= 0.9.4 (optional, only needed for the libsigrokdecode testsuite)
644    - libsigrok >= 0.3.0 (optional, only needed for the developer PD testsuite)
645    - python3-coverage (optional, only needed for the developer PD testsuite)
646  * New 'make install'-time requirement:
647    - Python >= 3.2 (required)
648
649 0.2.0 (2013-05-04)
650 ------------------
651
652 Note: This release DOES change the libsigrokdecode public C API. This
653 means it is NOT backwards-compatible and frontends will need updates.
654
655  * New supported protocol decoders:
656    - Dallas DS1307 RTC
657  * Library: Decoders now expose their options via the GSList *options field
658    in struct srd_decoder.
659  * API related changes:
660    - Various API documentation fixes.
661    - srd_decoder_list() now returns 'const GSList *' instead of 'GSList *'.
662    - Added new srd_strerror() and srd_strerror_name() API calls.
663  * Added support for optional probes for PDs.
664
665 0.1.1 (2013-01-27)
666 ------------------
667
668 Note: This release does NOT change the libsigrokdecode public C API. This
669 means existing libsigrokdecode frontends should not require any changes.
670 However, individual PDs and their output changed, which may require
671 some adaptations on the user's side in some cases.
672
673  * New supported protocol decoders:
674    - avr_isp              AVR In-System Programming
675    - can                  Controller Area Network
676    - jtag                 Joint Test Action Group (IEEE 1149.1)
677    - jtag_stm32           Joint Test Action Group / ST STM32
678    - lm75                 National LM75
679    - lpc                  Low-Pin-Count
680    - maxim_ds28ea00       Maxim DS28EA00 1-Wire digital thermometer
681    - onewire_link         1-Wire serial communication bus (link layer)
682    - onewire_network      1-Wire serial communication bus (network layer)
683    - sdcard_spi           Secure Digital card (SPI mode)
684    - tlc5620              Texas Instruments TLC5620
685    - uart_dump            UART dump
686  * i2cfilter: Now outputs 'i2c' packets instead of just data bytes, so
687    other PDs can stack on top of it. It filters by I2C slave address.
688  * edid: Now takes 'i2c' packets as input.
689  * pan1321:
690    - Various bugfixes to make the PD actually work.
691    - Now features 'Text (short)' and 'Text (verbose)' outputs.
692  * usb:
693    - The PD is split into 'usb_signalling' and 'usb_protocol' (stacked on top).
694    - Various bugfixes to make the PD work (better).
695    - The DP/DM probes were swapped, this is now fixed.
696    - Preliminary support for USB low-speed (in addition to full-speed).
697  * mlx90614: Minor bugfixes.
698  * dcf77:
699     - Major bugfix, this PD was not working correctly at all.
700     - Handle PON signal.
701  * nunchuk: Complete rewrite, works (better) now.
702  * spi: Update docs, send CS# change packets, change output API slightly.
703    If you have a PD which stacks on top of SPI, it'll need to be adapted.
704    The PDs that ship with libsigrokdecode are updated already.
705  * mx25lxx05d:
706    - Implement support for the READ, RDSR, and PP commands.
707    - Decode status register bits.
708    - Fix SE command handling.
709    - Fix inverted SRWD bit handling.
710  * Various smaller style and consistency changes in code and PD descriptions.
711  * Fix the build with Homebrew on Mac OS X.
712  * Performance improvements in some PDs.
713  * Documentation: Update website and git URLs.
714  * pkg-config file: Small fix to improve behaviour on Windows with cmake.
715  * All PD implementation files are now named 'pd.py' consistently.
716  * configure script:
717    - Also check for python3.3-config in addition to python-config and others.
718    - Add missing -fvisibility=hidden to default CFLAGS.
719    - Fix CFLAGS handling (configure.ac amends CFLAGS, doesn't overwrite now).
720  * The minimum required glib version is 2.24.0 now.
721  * We now ship a standard INSTALL file which documents the 'configure' options.
722
723 0.1.0 (2012-04-17)
724 ------------------
725
726  * Initial release.
727