0.5.0 (2017-06-12) ------------------ Note: This release DOES change the libsigrok API. That means it is NOT backwards-compatible and frontends will need updates. * New supported hardware: - Logic analyzers: - CWAV USBee ZX (bug #764) - DreamSourceLab DSLogic - DreamSourceLab DSLogic Pro - FTDI LA (simple, limited logic analyzer using FTDI chips directly) - Oscilloscopes: - Hameg HMO3524 - Hantek 6022BE - LeCroy X-Stream series - Rigol DS1074Z Plus - Rigol DS1104Z Plus - Rigol MSO2000A series - Rocktech BM102 - Rohde&Schwarz HMO 1002 - Sainsmart DDS120 - Logic analyzers / oscilloscopes (but not MSOs): - Hantek 6022BL - Programmable power supplies: - Agilent N5763A - HP 6633A - Rohde&Schwarz HMC8043 - Electronic loads: - Arachnid Labs Re:load Pro - Multimeters: - Agilent U1241C - Agilent U1242C - Fluke 289 - HP 3457A - Keysight U1281 - Keysight U1282 - Metrix MX56C - PeakTech 3330 - Sound level meters: - PCE PCE-322A - LCR meters: - PeakTech 2170 - Signal generators: - Rohde&Schwarz SME0x series * New build dependencies (libsigrokcxx C++ library): - libsigrok >= 0.5.0 (the libsigrok C library) - A C++ compiler with full C++11 support (g++ >= 4.8.1 or clang++ >= 3.3) * New config keys: - SR_CONF_ADC_POWERLINE_CYCLES - SR_CONF_PROBE_FACTOR - SR_CONF_SIGNAL_GENERATOR - SR_CONF_TRIGGER_LEVEL - SR_CONF_UNDER_VOLTAGE_CONDITION - SR_CONF_UNDER_VOLTAGE_CONDITION_ACTIVE * New measurement quantity keys: - SR_MQ_HARMONIC_RATIO * New measurement quantity flags: - SR_MQFLAG_FOUR_WIRE * agilent-dmm: - Fix handling of AC/DC flags in volts mode. - Add support for AC/DC flags in current mode. - Add support for Keysight branded meters. - Add support for reading secondary display and temperature. - Add support for dBm/dBV modes. - Rework job management to allow for faster and configurable samplerate. - Add support for Log-Hand/-Trig/-Auto/-Export data sources. - Fix handling of the second channel of 2 channels models. - Add support for Vsense (Non-Contact Voltage). * asix-sigma: - Fix RLE decoder. - Disable support for triggers, they don't work right now (bug #359). - Properly decode data gathered at 100 and 200 MHz (bug #840). - Only download firmware when necessary. - Enforce optionally specified sample count (bug #838). - Fixup the download of the last data acquisition chunk (bug #838). - Various other bugfixes and internal code improvements. * demo: - Add "cable squid" logic waveform (works-with logo, many channels). - Add walking one/walking zero pattern. * deree-de5000: - Rename the driver to serial-lcr, allow support for multiple devices. * fx2lafw: - CWAV USBee SX: Add support for one analog channel. - Fix analog scaling. - Fix a -Wself-assign compiler warning (bug #793). - Warn on fail to open plausible devices (bug #867). - Use wide_sampling only if necessary (depends on channel config). * hameg-hmo: - Support triggering on either falling or rising edge (bug #740). - Terminate all commands with a linefeed for all transports (bug #784). - Add PATTern and BUS1/BUS2 trigger sources. - Fix index access for models with 2 pods / 16 digital channels. - Support BE format for SCPI sample downloads. * hantek-6xxx: - Fix some issues by using power-of-two data sizes (bug #821). - Fix AC/DC coupling selection (bug #836). - Only list DC coupling once (bug #822). * lecroy-xstream: - Fix config_list() capabilities listing (bug #913). * openbench-logic-sniffer: - Fix acquisition restart with trigger enabled (bug #809). * rigol-ds: - Add support for getting/setting the trigger level. - Properly report which channel is enabled. - Add probe factor support. - Send *OPC? after commands that don't return a value (bug #933). * saleae-logic16: - Add 20MHz and 50MHz to samplerate preset list (bug #799). * uni-t-ut32x: - Accept SR_CONF_CONN to fix the device scan. * ut71x: - Fix float printing issue in a debug message (bug #700). - Fix incorrect resistance values on some DMMs. * session: - Fix memory allocation issue in sr_packet_copy(). - Increase chunk size for slightly better performance. - Fix a segfault when input files were read multiple times. - Fix missing data when input files were read multiple times (bug #944). * analog: - Improve output readability by using SI prefix. * scpi: - Fix remote locking according to USBTMC spec (bug #783). - Various internal improvements to better handle corner cases. * scpi/vxi: - Fix incomplete reads (bug #790). * input/vcd: - Skip BOM at beginning of file (bug #755). * input/trace32_ad: - Make the sample rate an option. * output/srzip: - Add support for storing analog channels. * output/analog: - Drop obsolete and duplicate functions (bug #636). - Fix incorrect displaying of the values for certain digits settings. * output/csv: - Fix a segfault when using non-hardware input. - Fix a segfault due to a g_malloc() allocating too few bytes. - Add an option to output units for column labels. - Fix segfaults related to incorrect indices and unitsizes (bug #844). - Fix a false negative after successful import causing frontend issues. - Skip leading UTF-8 BOM in the input stream (bug #756). - Correctly skip over last processed end-of-line sequence and accept absence of last end-of-line termination sequence (bug #635). - Send larger datafeed chunks, to speed up import. * output/ascii: - Add support for user configurable character set. * output/gnuplot: - Remove, obsoleted by the improved CSV module. * bindings: - Link C++ code with gnustl_shared if it exists (Android). - Flesh out the analog payload bindings. * bindings/cxx: - Fixup memory leak in input module receive() calls (bug #976). - Fix various -Wundefined-var-template clang warnings (bug #915). * bindings/ruby: - Fix out-of-tree build (bug #797). - Fix distribution of Ruby bindings (bug #741). - Fix Ruby bindings build on Mac OS X and FreeBSD (bug #800). - Fix the build with BSD Make (bug #801). - Make the Ruby bindings build with Ruby 2.0 again. * bindings/java: - Use correct JNI function when calling Vector.add. * Build system: - Use latest AX_CXX_COMPILE_STDCXX (bug #795). - Fix linker issues related to --whole-archive (bug #802). - Don't access the sr_driver_list with no driver compiled (bug #820). - Fix a build issue related to C++ compiler flags (bug #865). - configure summary: Show whether shared/static build is enabled. - configure summary: Show linker flags. - uninstall: Remove empty include directories (bug #861). * udev rules file: - Add TAG+="uaccess" for systemd, keep plugdev group as well (bug #665). - Use 660 permissions (bug #665). - Add various new USB VID/PID pairs for newly-supported hardware. * Add a MIME info file (and icons) for sigrok session files (bug #857). * Various internal refactorings and improvements. - Add sr_sw_limits_*() helper functions for software limits. - Add and use the standard cleanup helper std_cleanup(). - Add std_scan_complete() helper function for scan completion. * All drivers were converted to use the new SR_DF_ANALOG format, support for SR_DF_ANALOG_OLD has been dropped (bug #728). * Many drivers now report the correct number of digits in analog packets. * resource: Improve logging output (bug #806). * Fix an issue with analog packets with digits=0 (bug #815). * Fix a crash when scanning for devices with no options provided (bug #786). * Fix a segfault with input/ouput modules (bug #813). * Fix various compiler warnings. * Fix various memory leaks. * Remove FSF postal address from boiler plate license text. * Various Doxygen fixes and improvements. * README.devices: Update firmware related (and other) information. * HACKING: Update URL to Linux kernel coding style. 0.4.0 (2016-01-29) ------------------ Note: This release DOES change the libsigrok API. That means it is NOT backwards-compatible and frontends will need updates. * New supported hardware: - Logic analyzers: - AKIP-9101 - BeagleLogic - LeCroy LogicStudio - mcupro Logic16 clone - Pipistrello OLS - SysClk LWLA1016 - Oscilloscopes: - Rigol/Agilent DS1000Z series - Yokogawa DLM2000 series - Yokogawa DL9000 series - Hung-Chang DSO-2100 - GW Instek GDS-800 - Multimeters: - Agilent U1241A/B - Agilent U1242A/B - Brymen BM25x series - MASTECH MS8250B - Metrahit 16T/16U/KMM2002 - PeakTech 3415 - Tenma 72-7730 - Tenma 72-7732 - Tenma 72-9380A - Testo 435-4 - UNI-T UT372 - UNI-T UT71x series (UT71A/B/C/D/E) - Velleman DVM4100 - Voltcraft VC-870 - Voltcraft VC-920 - Voltcraft VC-940 - Voltcraft VC-960 - Programmable power supplies: - Fluke/Philips PM2800 series - HP 663xx series - Manson HCS-3xxx series - Motech LPS-30x series - Rigol DP800 series - Korad KAxxxxP series (a.k.a Velleman LABPS3005D and others) - AC/DC sources: - Agilent N5700A series (DC sources) - Chroma 61600 series (AC sources) - Chroma 62000 series (DC sources) - Electronic loads: - Maynuo M97 (and compatibles) - LCR meters: - DER EE DE-5000 - Scales: - KERN EW 6200-2NM - BeagleBone Black capes: - BayLibre ACME (revA and revB) * New input modules: - raw_analog: Raw analog signals in various formats - trace32_ad: Lauterbach Trace32 logic analyzer data * New output modules: - wav: Waveform audio file format - srzip: Native ZIP-based sigrok file format * Add libsigrok language bindings based on SWIG + doxygen: - C++ language bindings - Python language bindings - Ruby language bindings - Java language bindings * Add a Modbus framework in order to be able to support Modbus based devices. - Add a Modbus RTU backend. * Add a new, more flexible trigger framework. * Add a generic software-trigger framework usable by any driver, currently used by fx2lafw and saleae-logic16. * Add a (Linux-only) GPIB SCPI backend using linux-gpib and libgpib. * Add a generic scpi-pps driver which supports various power supplies. * Add an experimental framework for "transforms" which can perform operations on libsigrok session packets. This will be changed and improved upon in later releases. Currently implemented tranforms: - nop: Do nothing, pass on packets unmodified. - scale: Scale all analog values by a specified factor. - invert: Invert all the data values. - An analog value of x becomes 1/x. - A digital value of 0 becomes 1 (and vice versa). * input: - Introduce a new input module API. - Rename "input format" to "input module" everywhere. - Add a preferred file extension field (bug #541). * output: - Fix output option enumeration. - Fix a double-free issue. - Add a preferred file extension field (bug #541). * input/csv: - Avoid a segfault related to the obsolete mimetype format match (bug #681). * input/vcd: - Chunk up samples in 1MB blocks for better performance (bug #551). - Allow optional index items (bug #322). - Add support for 1 bit vectors (bug #723). * input/wav: - Fix an offset calculation error. - Properly initialize the channel list early enough (bug #387). * output/analog: - Fix channel deinterleaving. * output/csv: - Match format based on .csv extention in the filename. - Add support for analog data/packets. * New or updated build dependencies: - New build dependencies (libsigrok C library): - libgpib (optional) - libieee1284 (optional) - Updated build dependencies (libsigrok C library): - libserialport >= 0.1.1 (optional) - librevisa >= 0.0.20130412 (optional) - libftdi >= 0.16 or libftdi1 >= 1.0 (optional) - New build dependencies (libsigrokcxx C++ library): - libsigrok >= 0.4.0 (the libsigrok C library, see above) - A C++ compiler with C++11 support (g++ >= 4.7 or clang++ >= 3.1) - doxygen (required for building the C++ library!) - graphviz (optional, only needed for C++ API docs) - Python (2 or 3) executable (development files are not needed) - glibmm-2.4 (>= 2.32.0) - New build dependencies (libsigrok Python bindings): - libsigrokcxx >= 0.4.0 (the libsigrok C++ bindings, see above) - Python >= 2.7 or Python >= 3 (including development files!) - Python setuptools (for Python 2 or 3) - pygobject >= 3.0.0 (for Python 2 or 3), a.k.a python-gi - numpy (for Python 2 or 3) - SWIG >= 2.0.0 - doxygen (optional, only needed for the Python API docs) - graphviz (optional, only needed for the Python API docs) - doxypy (optional, only needed for the Python API docs) - New build dependencies (libsigrok Ruby bindings): - libsigrokcxx >= 0.4.0 (the libsigrok C++ bindings, see above) - Ruby >= 1.9.3 (including development files!) - SWIG >= 3.0.8 - YARD (optional, only needed for the Ruby API docs) - New build dependencies (libsigrok Java bindings): - libsigrokcxx >= 0.4.0 (the libsigrok C++ bindings, see above) - SWIG >= 2.0.0 - Java JDK (for JNI includes and the javac/jar binaries) - doxygen (optional, only needed for the Java API docs) - graphviz (optional, only needed for the Java API docs) * Build system: - Modernize the whole autotools setup. - Add --with-libserialport, --with-libftdi, --with-libusb, --with-librevisa, --with-libgpib, --with-libieee1284. - Add --enable-bindings, --enable-cxx, --enable-python, --enable-ruby, and --enable-java. - Support both libftdi >= 0.16 and libftdi1 >= 1.0. - configure: Show SCPI backends that'll be compiled. - Unconditionally build src/lcr/es51919.c (bug #545). - Compile with -std=c99 and _POSIX_C_SOURCE=200112L by default. - Only link the 'check' library against the unit tests. - Fix various out-of-tree build issues (e.g. bug #473). - Don't set CFLAGS, LDFLAGS, etc. in configure.ac or Makefile.am (bug #578). - Check for the numpy Python module (bug #533). - Check for zip_discard(), provide alternative if not available (bug #674). * Portability: - Android: Add fallbacks for missing stoi()/stod(). - FreeBSD: Fix a libusb related compiler error. - FreeBSD: Fix an issue with libusb_get_port_numbers(). - FreeBSD: Fix an issue with BSD Make (bug #556). - FreeBSD: Fix an issue with SWIG detection (bug #557). - FreeBSD: Fix a build issue related to isascii() (bug #649). - Mac OS X: Fix 'sed' invocation in autogen.sh (bug #516). - Mac OS X: Fix a usb_get_port_path() related issue (bug #673). - Windows: Fix some thread-related issues causing hangs (bugs #343, #328). - Windows: Fix a USB/thread related issue (bug #343). - Windows: Fix shared (non-static) build. - Windows: Fix various warnings related to a missing LIBUSB_CALL item. - Windows: Add a missing WSAStartup() call to fix scpi/tcp (bug #692). - Fix an issue with non-GNU Make (bug #628). - Avoid std::map::emplace() for GCC 4.7 compatibility (bug #720). - Avoid g_close() to not unnecessarily require glib >= 2.36 (bug #724). * Language bindings: - Support new output API. - Add Doxygen docs for all language bindings. - C++: Fix a C++ bindings linking issue (bug #534). - Python: Fix mapping of vector & map attributes to Python types (bug #382). - Python: Implement equality checks for EnumValue derived classes (bug #443). - Python: Handle import failures without crashing. - Python: Fix an installation issue (bug #644). - Python: Prevent a numpy deprecation warning (bug #417). - Python: Fix a ConfigKey.parse_string() crash (bug #483). - Python: Fix the build for Python 3 (bug #645). - Python: Fix some string conversion issues for Python 3 (bug #478). - Python: Fix a SWIG related memory leak (bug #479). - Python: Make device.config_keys() act like a Python dict (bug #480). - Python: Provide sensible __str__() and __repr__() for enums (bug #688). - Java: Install files into DESTDIR (bug #537). - Java: Fix some SWIG warnings due to %extend redefinitions (bug #417). - Java: Fix an issue related to C/C++ style casts (bug #688). - Java: Fix a reference leak (bug #690). - Session::set_trigger(): Fix segfault conditions (bugs #491, #496). * Various API changes, additions and removals (see API docs for details). * Add various new config keys, config info types, measurement quantity keys, measurement quantity flags, units, device instance types, and error codes. * udev rules file: Add entries for newly supported hardware. * Add/use a new resource access API, defaults to XDG data dirs. * Switch to a new SR_DF_ANALOG format (bug #640). * All drivers: - Publish config key capabilities. - Gather connection info and serial number, if any. - Cleanups of serial port based drivers wrt (non-)blocking reads/writes. * Various drivers: - Use physical USB connection instead of sdi->index. - Fix blocking serial write timeout (bugs #436, #437, #433, #428, #427, #430, #432, #434, #438). * agilent-dmm: - Fix value parser to consider 0.0 to be a valid result. - Correctly parse negative overload. - Add RMS flag to AC voltage modes. - Add provisional support for the U124xx. - U124xx/U125xx: Support 5 more modes (resistance, capacitance, frequency, continuity, and temperature). - Add current loop sensor support. - Fix frequency support. * beaglelogic: - Add SR_CONF_CAPTURE_RATIO support. * brymen-bm86x: - Add current loop sensor support. * chronovu-la: - Properly handle multiple ChronoVu devices being attached (bug #504). * colead-slm: - Properly check acquisition sample limit. * demo: - Add support for continuous acquisition. - Fix a memory leak related to channel groups. - Support changing the amplitude of analog channels. - Adds a new channel group "Analog", which has all analog channels in it. - Attach analog generator to channel, not channel group. - Provide a separate property list for the analog group (bug #505). - Fix an issue by always honoring sample limit changes (bug #314). - Fix square pattern output being shorter than other patterns. - Fix analog output at low samplerates. - Fix SR_CONF_DEVICE_OPTIONS variant type. - Fix an infinite loop when 0 channels of one type were used. * fx2lafw: - Fix continuous mode usage with output modules (bug #380). - Check for a valid samplerate before trying to set it (bug #386). - Fix wide (16bit) sampling case (bug #373). - Add SR_CONF_CAPTURE_RATIO support. - Set up the transfer first, then start the acquisition (bug #574). - Avoid the need to run "rmmod usbtest" on Linux for devices with the standard Cypress FX2 USB VID/PID of 04b4:8613 (bug #445). - Add support for the official fx2lafw sigrok VID/PID pairs and firmware (this requires sigrok-firmware-fx2lafw >= 0.1.3): - 1D50:608C: fx2lafw-sigrok-fx2-8ch.fw - 1D50:608D: fx2lafw-sigrok-fx2-16ch.fw * gmc-mh-1x-2x: - Add support for the Metrahit Metrahit 16T, 16U, and KMM2002. - Complete energy measurement ranges (V, A, W) for Metrahit 29S. * hameg-hmo: - Implement SR_CONF_SCAN_OPTIONS. - Make sure the enabled_channels list is empty before populating it. - Fix reading of analog data from an HMO1024 (Firmware 04.527). - Fix a double-free issue. - Fix a floating point comparison issue (bug #731). * hantek-dso: - Properly zero out MQ flags. - Fix driver/global/channel group config keys. * ikalogic-scanalogic2: - Fix a segfault condition (bug #440). * ikalogic-scanaplus: - Fix a memory leak and a memory allocation issue. * kecheng-kc-330b: - Fix missing time/frequency weighting. * lascar-el-usb: - Fix issues caused by copy-paste errors. * ols: - Fix a serial port related issue on FreeBSD (bug #414). - Fix detection and acquisition on Windows (bug #562). - Fix an event source related acquisition issue (bug #678). - Fix a portability issue due to direct use of FDs (bug #205). * rigol-ds: - Fix duplicated vendor string for Agilent devices. - Replace magic numbers by appropriate constant or variable (bug #406). - Handle POSITIVE/NEGATIVE (instead of POS/NEG) correctly (bug #558). - Add missing 20/50/100V vdiv entries. - Fix an issue related to the search for the closest vdiv. - Return the actual hardware num_vdiv and vdiv list. - Fix the smallest supported vdiv for the DS2000 series. - Fix a double-free issue. - SR_CONF_DATA_SOURCE is a device option, not per channel group. * saleae-logic16: - Recognize the FPGA FIFO overflow status. - Downgrade error during capture to a message (bug #466). - Add SR_CONF_CAPTURE_RATIO support. - Support new bitstream version 1.3 with renumbered registers. - Publish samplerates according to selected channels (bug #646). * serial-dmm: - Fix RadioShack 22-812 DMM incorrect readings (bug #657). - Implement request timeout feature (bug #345). * sysclk-lwla: - Do not create channels in reverse order. - Fix an issue related to sdi->connection_id (bug #441). - Various robustness improvements. - Fix a compile issue (bug #714). - Work around some vendor FX2 firmware issues. * zeroplus-logic-cube: - Fix an issue when trying to trigger on a channel being 0/low. * README: Drop obsolete sigrok-commits mailing list. * Fix a Doxyfile issue which caused build failures e.g. on buildroot. * Fix a USB timeout related sr_session_iteration() issue (bug #571). * Fix various gcc/clang compiler errors/warnings (e.g. bugs #637, #721). * Fix an issue related to multiple sr_init()/sr_exit() calls (bug #565). * Fix an issue with transform packet passing (bug #631). * Rename sr_dev_driver.priv to .context (bug #442). * serial: Re-implement sr_serial_find_usb() using new libserialport APIs. * Unit tests: Add some checks for session handling. * scpi and scpi/usbtmc: - Accept *IDN responses with more than 4 tokens (some devices need this). - Fix incomplete data issue for e.g. Hameg HMO1024. - Support the RL1 feature. - Implement Rigol DS1000 workaround on any firmware version (bug #354). * Various session related changes and improvements. * The code now uses the Glib main loop as backend. * Logging: Add a timestamp (at DBG/SPEW loglevel) to all log messages. * Fix a trigger related segfault (bug #550). * Don't check the libusb_get_device_descriptor() return code (bug #658). * Fix various memory leaks in the code (e.g. bugs #629, #630, #632). * session_file: Enable only probes listed in metadata (bugs #410, #495). 0.3.0 (2014-05-06) ------------------ Note: This release DOES change the libsigrok API. That means it is NOT backwards-compatible and frontends will need updates. * New supported hardware: - Logic analyzers: - ChronoVu LA16 - Sysclk LWLA1034 - Oscilloscopes: - Agilent DSO1000 series (various models) - Hameg HMO compact series (various models) - Rigol DS2000 series (various models) - Rigol VS5000 series (various models) - Multimeters: - BBC Goerz Metrawatt M2110 - Brymen BM869 - Fluke 189 - Gossen Metrawatt MetraHIT 1x/2x series (various models) - Tenma 72-7745 (rebadged UNI-T UT60E) - Tenma 72-7750 (rebadged UNI-T UT60G) - UNI-T UT60G - UNI-T UT61B - UNI-T UT61C - V&A VA40B - Voltcraft M-3650CR - Voltcraft ME-42 - Thermometers: - APPA 55II - Programmable power supplies: - Atten PPS3000 series (various models, tested on PPS3203T-3S). - Conrad DIGI 35 CPU * Add support for channel groups. * Add generic SCPI backend code which can be used via various transports: - Serial ports - USBTMC - TCP/RAW - TCP/Rigol (Rigol-VS5000 series specific) - VXI - librevisa * udev rules file: Add entries for newly supported hardware. * New config keys: - SR_CONF_DEMODULATOR - SR_CONF_CENTER_FREQUENCY - SR_CONF_NUM_LOGIC_CHANNELS - SR_CONF_NUM_ANALOG_CHANNELS - SR_CONF_CLOCK_EDGE - SR_CONF_POWER_SUPPLY - SR_CONF_OUTPUT_VOLTAGE - SR_CONF_OUTPUT_VOLTAGE_MAX - SR_CONF_OUTPUT_CURRENT - SR_CONF_OUTPUT_CURRENT_MAX - SR_CONF_OUTPUT_ENABLED - SR_CONF_OUTPUT_CHANNEL - SR_CONF_OVER_VOLTAGE_PROTECTION - SR_CONF_OVER_CURRENT_PROTECTION - SR_CONF_DEVICE_MODE - SR_CONF_TEST_MODE * New config info types: - SR_T_INT32 * New measurement quantity keys: - SR_MQ_TIME * New measurement quantity flags: - SR_MQFLAG_DURATION - SR_MQFLAG_AVG * New device instance types: - SR_INST_SCPI * New error codes: - SR_ERR_CHANNEL_GROUP ∗ The SR_T_CHAR config type has been renamed to SR_T_STRING. * New build dependencies: - libserialport >= 0.1.0 (optional). - All drivers that talk to serial ports now require libserialport. - If libserialport is not found, those drivers will not be built. - librevisa >= 0.0.20130812 (optional, only used by some drivers). * Dropped build dependencies: - libasound2 is no longer required (only the removed alsa driver used it). - libudev is no longer required (only the removed link-mso19 driver used it). * Serial port handling code: - Add support for 5/6 data bits and non-standard baud rates. - Fix an issue related to nonblocking reads (bug #188). - Fix an 'invalid arguments' condition causing problems (bug #192). * alsa: This driver was removed (also fixes bugs #28, #61, #96, #114). * asix-sigma: - Publish SR_CONF_CAPTURE_RATIO correctly (bugs #287, #291). - Don't set invalid config options (bug #86). - Various other bugfixes. * cem-dt-885x: Fix a code portability issue (bug #267). * chronovu-la: - Rename the 'chronovu-la8' driver to 'chronovu-la'. - Add support for the ChronoVu LA16. - Fix a segfault when doing multiple acquisitions on an LA8 (bug #247). - Document that streaming is not possible for LA8/LA16 (bug #261). * demo: - Add support for analog channels (bug #11). - Make the number of channels user-configurable. - Add per-channel-group options. - Implement analog sample patterns: sine, triangle, sawtooth. - Fix a samplerate related issue with rates >= 50kHz (bugs #294, #295). - Fix an issue causing data glitches every 40ms (bug #297). - Fix an issue related to channel group handling (bug #262). * digitek-dt4000zc: Fix driver on NetBSD due to missing DTR=1 (bug #189). * fx2lafw: - Fix incorrect unitsize when a trigger fires (bug #182). - Implement config_get() for SR_CONF_LIMIT_SAMPLES. - Don't send more samples than requested to the session bus. * gmc-mh-1x-2x: - Add new (sub)driver 'gmc-mh-2x-bd232'. - Add support for the SI232-II interface. * hameg-hmo: - Fix a build issue on Mac OS X (bug #216). - Various fixes related to frame limit, samplerate, options, etc. * link-mso19: Drop unfinished driver for now (until it starts working). * openbench-logic-sniffer: - Fix a serial port related issue/hang, seen on (e.g.) NetBSD. - Fix an SR_CONF_PATTERN_MODE related problem (bugs #184, #190). - Fix a serial (non)blocking mode issue (bug #231). - Temporarily disable the driver on Windows (needs portability fixes). - Fix an endianness issue in the protocol handling (bug #135). - Fix a sampling issue when (samples % 4) != 0 (bug #200). - Fix an issue occurring when all channels were disabled (bugs #316, #347). - Add an option to turn test patterns off again (bug #293). * rigol-ds: - Rename the 'rigol-ds1xx2' driver to 'rigol-ds'. - Add support for more models and unify the driver code (bug #212). - Add support for RS232 connectivity (previously only USBTMC worked). - Enable the driver on non-Linux platforms since all transports the driver uses are provided by cross-platform code/libs now (e.g. serial, USBTMC). - Add support for 4 channels (required by some models). - Add support for channel groups. - Advertise SR_CONF_LIMIT_FRAMES support. - Fix an issue with SR_DF_END sending. - Enable/disable LA pod when (de)selecting digital channels. - Disable key lock when closing device. - Work around issues due to DS1000 specific protocol changes (bug #283). - Fix incorrect digital channel numbers on some models (bug #269). - Fix an issue with partial data reads (bugs #220, #209, #207). * saleae-logic16: - Fix an issue related to USB device claiming (bug #159). - Don't send more samples than requested to the session bus (bug #350). - Use unitsize 1 (not 2) if none of channels 8-15 are used. * serial-dmm: Fix some parse issues by increasing a timeout. * sysclk-lwla: Fix a sampling issue related to a glib API call (bug #270). * uni-t-ut32x: Fix typo which prevented usage with multiple devices. * victor-dmm: Fix MIN/MAX always being reported (bug #228). * zeroplus-logic-cube: - Add support for 32-channel models and additional memory sizes. - Fix a frontend issue due to missing SR_CONF_CAPTURE_RATIO. - Fix an issue causing pre-trigger garbage data to be sent (bug #222). - Add initial voltage threshold support. * Various drivers: - Expose missing SR_CONF_TRIGGER_TYPE. - Report max. possible number of samples (bugs #197, #258, #263). * Output modules: - Skip analog channels in logic-only output formats. - Remove the obsolete output module API, add wrapper calls for the new one. - Stop using the obsolete output API (bugs #288, #47, #48). - Properly receive and handle samplerate metadata (bug #46). * input/vcd: Abort with an error upon > 64 channels (bug #194). * output/vcd: - Fix output for more than 8 channels. - Output timestamp only once per change. - Minor whitespace changes of output files to make them more readable. - Remove bogus $dumpvars and $dumpoff commands. - Various bugfixes and portability fixes. * output/csv: - Remove a 64-channel limit (bug #193). - Fix an issue resulting in incorrect trailing commas (bug #230). - Fix an issue where all timestamps would be zero (bug #35). * Rename 'probe' to 'channel' in all places, since libsigrok supports a lot of gear where 'channel' fits better (bug #259). * Change TRIGGER_SLOPE from SR_T_UINT64 to SR_T_STRING. * Windows support improvements: - Use libserialport (+other backend code) to fix serial devices (bug #91). - Add serial source addition/removal backend code (bug #206). - Add backend code for properly supporting USB based devices. * Fix various memory leaks in the backend code. * Fix some incorrect parsing of floating point numbers in the strutil code. * Fix various endianness issues in backend code and drivers (bug #266). * Fix a few issues related to incorrect parsing with non-ANSI-C locales (bugs #271, #272, #273, #274). * Fix an issue related to data being sent to the libsigrok session which was not a multiple of the unit/sample size (bugs, #289, #290). * Drop the es51922 DMM parser (replaced by the generic es519xx parser). * libsigrok session files: - The libsigrok session file format (for *.sr files) has changed, and the file format 'version' field is bumped to 2. Older libsigrok versions will not be able to handle version 2 files, but new libsigrok versions can handle both version 1 and version 2 files. New libsigrok versions will always write/output version 2 files. - Fix an issue resulting in left-over temporary files (bug #276). - Fix an issue with analog probes (unsupported) in *.sr files (bug #277). - Fix an issue with missing samplerate from session files (bug #275). * Improved API documentation. * Major API changes (overview): - Change various function/macro names related to the probe->channel rename. - Change various functions due to the new channel group feature. - All enums in the public API now have names (e.g. 'enum sr_mqflag'). - The lib no longer defines names with _t suffix (POSIX reserved). - New API calls: - sr_session_dev_list() - sr_session_save_init() - sr_session_append() - sr_config_commit() - sr_output_new() - sr_output_send() - sr_output_free() - Obsoleted and removed API calls: - sr_filter_channels() - 'struct sr_session' is now opaque (contents shouldn't be used directly). - Please see the Doxygen API documentation for further details. * Build system: - Switch to a non-recursive automake setup (fewer files, faster builds). - configure: Clearly mark required and optional libs. 0.2.2 (2013-11-04) ------------------ Note: This release does NOT change the libsigrok API. While new config keys, config info types, and unit codes have been added (additional enum entries / numbers), no existing interfaces were added/changed/removed. Frontends should continue to work fine without recompiling or relinking. * New supported hardware: - Logic analyzers: - Saleae Logic16 - Thermometers: - Center 309 - UNI-T UT325 - Voltcraft K204 - Multimeters: - ISOTECH IDM103N - Metex M-4650CR - Norma DM950 - Voltcraft M-4650CR - Energy meters: - EDF Teleinfo * New config keys: - SR_CONF_VOLTAGE_THRESHOLD - SR_CONF_EXTERNAL_CLOCK - SR_CONF_SWAP - SR_CONF_ENERGYMETER * New config info types: - SR_T_DOUBLE_RANGE * New units: - SR_UNIT_REVOLUTIONS_PER_MINUTE - SR_UNIT_VOLT_AMPERE - SR_UNIT_WATT - SR_UNIT_WATT_HOUR * New input modules: - csv (comma-separated values) * Bump required libzip version to >= 0.10. * uni-t-dmm: This driver now requires the specification of the USB VID/PID of the cable that is used. Example for sigrok-cli: - Old: sigrok-cli --driver voltcraft-vc820 ... - New: sigrok-cli --driver voltcraft-vc820:conn=1a86.e008 ... * openbench-logic-sniffer: - Initial test pattern support (SR_CONF_PATTERN_MODE). - Initial external clock support (SR_CONF_EXTERNAL_CLOCK). - Initial channel swap support (SR_CONF_SWAP). - Various minor fixes and improvements. * When a frontend adds a device instance to a running session, start acquisition on it. This helps with the collectd use-case where devices can be removed and added dynamically while a session is running. * rigol-ds1xx2: Support newer Linux kernels with USBTMC in /sys/class/usbmisc. * rigol-ds1xx2: Also detect the Rigol DS1152E/DS1152D. * agilent-dmm: Fix a segfault happening in certain cases. * output/analog: Support all currently known MQFLAGs. * Fix a minor compile issue due to an incorrect #include. * Fix two compile issues on FreeBSD (bug #185). * es519xx: New generic parser for various Cyrustek DMM ICs. * es51922/fs9721/fs9922/metex14: Use diode MQFLAG (bug #141). * voltcraft-vc830: Fix diode mode handling (bug #142). * Add the missing HACKING file to the tarball. * README.devices: Updates/notes for newly added devices. 0.2.1 (2013-08-07) ------------------ Note: This release does NOT change the libsigrok API. While new config keys, config info types, and error codes have been added (additional enum entries / numbers), no existing interfaces were added/changed/removed. Frontends should continue to work fine without recompiling or relinking. * New supported hardware: - Logic analyzers: - IKALOGIC Scanalogic-2 - IKALOGIC ScanaPLUS - Sound level meters: - CEM DT-8852 - Kecheng KC-330B - Multimeters: - UNI-T UT60A - UNI-T UT60E - Voltcraft M-3650D - Voltcraft VC-830 * Drop the Tecpel DMM-8060 (doesn't have PC connectivity). * New config keys: - SR_CONF_SPL_WEIGHT_FREQ - SR_CONF_SPL_WEIGHT_TIME - SR_CONF_SPL_MEASUREMENT_RANGE - SR_CONF_HOLD_MIN - SR_CONF_HOLD_MAX - SR_CONF_POWER_OFF - SR_CONF_DATA_SOURCE * New config info types: - SR_T_UINT64_RANGE * New error codes: - SR_ERR_TIMEOUT * Always link against libm, the math library (bug #115). * Fix a bug in sr_si_string_u64() at al (bug #73). * output/csv: Fix incorrect probe order. * alsa: Fix a double-free issue (bug #129). * zeroplus-logic-cube: Fix a bug in the driver cleanup code. * ikalogic-scanalogic2: Use GET_REPORT (bug #130). * uni-t-dmm: Fix a bug breaking the UNI-T UT61E (bug #136). * Various internal consistency fixes and code cleanups. * Improved Doxygen documentation. * Fixed various memory leaks. 0.2.0 (2013-05-04) ------------------ Note: This release DOES change the libsigrok API. That means it is NOT backwards-compatible and frontends will need updates. * Support for analog sources (oscilloscopes, DMMs, data loggers) was added. * New supported hardware: - Logic analyzers: - CWAV USBee DX - ZEROPLUS LAP-16128U - Oscilloscopes: - Hantek DSO-2090 (USB scope) - Rigol DS1052D - Rigol DS1052E - Rigol DS1102D - Rigol DS1102E - Multimeters: - Agilent U1231A - Agilent U1232A - Agilent U1233A - Brymen BM857 - Digitek DT4000ZC - Fluke 187 - Fluke 189 - Fluke 287 - Fluke 289 - Fluke ScopeMeter 199B - MASTECH MAS345 - Metex ME-31 - Metex M-3640D - PCE PCE-DM32 - PeakTech 3410 - PeakTech 4370 - RadioShack 22-168 - RadioShack 22-805 - RadioShack 22-812 - Tecpel DMM-8060 - Tecpel DMM-8061 - TekPower TP4000ZC - UNI-T UT61D - UNI-T UT61E - V&A VA18B - Victor 70C - Victor 86C - Voltcraft VC-820 - Voltcraft VC-840 - Sound level meters: - Colead SL-5868P - Tondaj SL-814 - Temperature/humidity/CO loggers: - Lascar EL-USB and EL-USB CO series (various models) - MIC 98581 - MIC 98583 * The limitation of max. 64 digital probes has been removed in many places. * Added generic DMM protocol parsers usable for various DMMs, over various cables and/or transports (e.g. same protocol over serial or USB/HID): - Cyrustek ES51922 binary protocol. - Fortune Semiconductor FS9721_LP3/FS9721B binary protocol. - Fortune Semiconductor FS9922-DMM3/DMM4 binary protocol. - Metex 14-byte ASCII protocol. - RadioShack 22-812 binary protocol. * zeroplus-logic-cube driver: - Fix acquisition at some specific samplerates. Only report valid ones. - Default to a samplerate of 1MHz. - Fix trigger code. - Add pre-trigger (capture ratio) setting. - Add support for the ZEROPLUS LAP-16128U. * fx2lafw driver: - Add support for the CWAV USBee DX. This requires the latest version of the fx2lafw firmware files. - Add support for wide sampling (i.e. 16 probes instead of just 8). - Fix multi-stage (software) triggers. - Fix various memory leaks, firmware upload timeout bugs, and other issues. - Various performance and memory usage improvements in the driver. * chronovu-la8 driver: - Add support for newer LA8 versions with USB VID/PID 0403:8867. * demo driver: - Various bugfixes when setting time/sample limits. * openbench-logic-sniffer driver: - Don't try to scan all available serial ports for OLS devices. Instead, the serial port to use now has to be specified by the user. - Allow disabling RLE. * udev rules file: Add many new entries for additional devices. * New output formats: - analog: Prints analog values and their unit (e.g. from scopes or DMMs). * New input formats: - vcd: Value Change Dump format - wav: Waveform audio file format (for analog data) * 'binary' input format: Add support for a 'samplerate' option. * API related changes: - There is generated Doxygen API documentation now. - The header that frontends should include is: <libsigrok/libsigrok.h>. There are other headers which are installed, but those are not meant to be included directly by the frontends. - There were numerous API changes, additions and removals, too many to list here. Please check the source code or Doxygen API documentation for the current set of API functions. * Serial port code: - Various improvements and fixes related to multiple parameters such as directions, baudrate, flow control, and others. - Add support for more baudrates (e.g. very low ones such as 600/1200) that are used in some devices. - Add support for setting DTR/RTS. * gnuplot files: Add sample files for CWAV USBee DX (for 8/16 bit sampling). * Documentation updates: - Add a README.devices file which contains various notes for users of libsigrok about device- and/or driver-specific issues. - Update README, HACKING, and other documents. - Updated build dependencies list. - The following libs are needed in more recent versions now: - glib (required): Now must be >= 2.32.0. - libusb-1.0 (optional): Now must be >= 1.0.9. - The following new libs were added as (optional) dependencies: - libasound / alsa-lib (optional): >= 1.0 - check (optional, only needed for unit tests): >= 0.9.4 * Portability: - Various compile fixes for Windows, FreeBSD/NetBSD/OpenBSD, and Mac OS X. - Simplify/allow/fix cross-compilation of libsigrok. - Various bugfixes for 32bit systems. - Various endianness fixes. * configure: - Add a --disable-all-drivers option. This can be overridden by additional --enable-<drivername> options to selectively enable only some. - Improve autodetection of libraries, and only enable drivers for which all required libraries were found. * Add a test suite for libsigrok with a few unit tests (the list will grow). 0.1.1 (2012-05-30) ------------------ Note: This release does NOT change the libsigrok API. * The 'saleae-logic' driver (which depends on the Saleae firmware), has been replaced with the new 'fx2lafw' driver, which uses an open-source firmware for Cypress FX2 chips which is also named 'fx2lafw'. Details: http://sigrok.org/wiki/Fx2lafw This new driver (+ firmware) currently supports the following devices: - ARMFLY AX-Pro - Braintechnology USB-LPS - EE Electronics ESLA100 - EE Electronics ESLA201A - Robomotic MiniLogic - Robomotic BugLogic 3 - Saleae Logic - USBee AX - USBee SX - All Cypress FX2 eval boards with stock Cypress VID/PID, including: - Lcsoft Mini Board - Braintechnology USB Interface V2.x Only acquisition with 8 probes is supported so far. Support for 16 probes and support for analog signal acquisition (on devices which have these capabilities) will be added later. * ASIX SIGMA driver: - Add support for the ASIX SIGMA2. This requires the latest version of the SIGMA/SIGMA2 firmware files. Details: http://sigrok.org/wiki/Firmware - Various bugfixes. * ZEROPLUS Logic Cube LAP-C (16032): Fix a segfault. * udev file: Add entries for Robomotic BugLogic 3, Velleman PCSU1000, Ideofy LA-08, ARMFLY AX-Pro, and Braintechnology USB Interface V2.x. * The zlib dependency has been removed (no longer needed). * Fix compiling with "Homebrew" (Mac OS X). * libsigrok now expects firmware files in $prefix/share/sigrok-firmware by default (was $prefix/share/libsigrok/firmware before). * Fix a Makefile.am bug which caused the generated ChangeLog files being accidentally deleted upon 'make distclean'. * ChronoVu LA8 input file format: Improve autodetection of the file format. We now only accept files of the size 8388613 bytes (all LA8 files have exactly this amount of bytes). 0.1.0 (2012-04-17) ------------------ * Initial release.