summaryrefslogtreecommitdiff
path: root/NEWS
blob: d30199c41a031a277e458bb066fa9ee8a3477b0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
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.