0.5.2 (2019-12-23) ------------------ Note: This release does NOT change the libsigrok public C API in incompatible ways. While new config keys have been added (additional enum entries / numbers), no existing interfaces were changed or removed. Frontends should continue to work fine without recompiling or relinking. * New supported hardware: - Logic analyzers: - Microchip PICkit2 - Sysclk SLA5032 - Multimeters: - Agilent 34405A - Agilent U1271 - Agilent U1272 - Agilent U1273 - HP 34401A - Keysight 34465A - MASTECH MS2115B - Mooshimeter - Power supplies: - BK Precision 9130 - HP 6611C - HP 6612C - HP 6613C - HP 6614C - HP 66312A - HP 6632A - HP 6634A - Korad KA3005P (with 0xBC as extra byte in the model ID). - Korad KD6005P - Manson HCS-3300 - Manson HCS-3302 - RND 320-KD3005P - Stamos S-LS-31 - TENMA 72-2535 V2.1 - Voltcraft DPPS-32-15 - Oscilloscopes: - Agilent DSO1000B series - Hameg HMO3522 - Rigol MSO5000 series - Rohde&Schwarz HMO1000 series (e.g. bug #1286) - Rohde&Schwarz RTA4000 series - Rohde&Schwarz RTB2000 series - Rohde&Schwarz RTC1000 series - Rohde&Schwarz RTM3000 series - YiXingDianZi MDSO - LCR meters: - MASTECH MS5308 - PeakTech 2165 - UNI-T UT612 - Voltcraft 4080 - Thermometers: - MASTECH MS6514 * New config keys: - SR_CONF_OFFSET - SR_CONF_TRIGGER_PATTERN - SR_CONF_HIGH_RESOLUTION - SR_CONF_PEAK_DETECTION - SR_CONF_LOGIC_THRESHOLD - SR_CONF_LOGIC_THRESHOLD_CUSTOM - SR_CONF_RANGE - SR_CONF_DIGITS * New output modules: - wavedrom: WaveDrom JSON-based digital timing diagrams. * Build dependencies: - hidapi >= 0.8.0 (optional, used for some HID based "serial cables") - bluez/libbluetooth >= 4.0 (optional, used for Bluetooth/BLE; Linux-only) - libgio >= 2.32.0 (optional, used by some drivers) * C++ bindings: - Add Output::format(). - Avoid "using namespace" in headers (bug #1354). * Python bindings: - Add data array for logic packet payload. - Add override for Context.create_logic_packet(). - Add new Context::create_end_packet() method. * Backend: - Add support for "serial over USB HID" transport, e.g. in DMMs (bug #555). Supported chips/protocols: WCH CH9325, SiLabs CP2110, Brymen BU-86X IR adapter, Victor DMM chip. - Add support for Bluetooth and BLE (currently Linux-only). - Add support for "serial over Bluetooth/BLE" transport (used e.g. in DMMs). - serial: Add support for optional "RX chunk" callback. - Remove sr_dev_close call from std_serial_dev_acquisition_stop (bug #1271). * input/trace32_ad: - Add support for new file format (BINHDR2). * input/csv: - Unbreak re-import of CSV files. - Various parsing robustness improvements. - Introduce generic "column processing" support. - Various module option changes and renames. - Add support for analog input data. - Add support for timestamp columns, auto detect samplerate. - Add automatic format match support. - Set default "header" option value to true. - Fix incorrect/incomplete startline/newline handling (bug #968). * output/analog: - Also print meta strings (not just numbers). * output/vcd: - Use larger data type to internally store frequency. - Support smaller timescales with higher resolution. * output/csv: - Set default "time" option value to false. * scpi: - Add connenction_id() function to all SCPI drivers. - scpi_libgpib: Add mutex to SPoll. * dmm/bm86x: - Unbreak temperature modes for two probes and no probes (bug #1394). * brymen-bm86x, victor-dmm: - Removed in favor of serial-dmm based driver support. * scpi-pps: - Add support for various config keys for HP 66xxB power supplies. - Add init_acquisition() and update_status() for HP 66xxB power supplies. - Set device and channel group feature for HP 66xxB. - Don't use SCPI_CMD_REMOTE/_LOCAL for HP 66xxB devices when in GPIB mode. - Add support for various config keys for HP 66xxA power supplies. - Add configurable sr_mqflags. - Add missing frequency channel settings for acquisition. * hantek-4032l: - Fix broken triggering on low signal (bug #1402). * hameg-hmo: - Use g_byte_array_free() instead of g_free() (bug #1324). - Remove invalid HMO2522, add missing HMO3522 (bug #1322). - Add support for 16 digital (logic) channels, i.e. two pods. - Add support for various new config keys. - Avoid getting stuck upon SCPI timeouts (bug #1323). - Try to find a valid serialcomm if none is supplied (bug #1321). - When setting slope, also set trigger type to edge (bug #1328). - Use 1-based (not 0-based) POD numbers. - Fix for an incorrect samplerate being returned. - Fix the upper limit for the vertical scale. * agilent-dmm: - Fix support for Agilent/Keysight U1252A. * asix-sigma: - Fix a compiler warning (bug #1411). * beaglelogic: - Fix mismatched printf specifiers. * saleae-logic16: - Warn (instead of erroring out) if FPGA is unsupported. * demo: - Set an initial MQ, MQ flag and digits to the analog package. - Get/set measurement quantity for the analog channels. - Get/set amplitude while data acquisition is running. - Get/set new config key SR_CONF_OFFSET. - Add random analog signal generation. * korad-kaxxxxp: - Add SR_MQFLAG_DC flag to the current channel packet. - Fix bug when setting values while acquisition is running. - Send META packet when states have changed. * lecroy-xstream: - Remove header read, which caused issues on some devices (PR #33). * uni-t-ut32x: - Pre-set to default conn= spec. - Use common code for sample/time limits. - Improve robustness of packet parser, more diagnostics. * chronovu-la: - Fix broken triggering (#1369). * openbench-logic-sniffer: - Use 32bit for handling sample counts. - Extend reponse delay when scanning device (helps on Pepino). - Add feature to support >256K memory. - Introduce metadata quirks support, unbreak Logic Shrimp. * ftdi-la: - Added FTDI FT232H device ID. - Do enter the error path upon VID:PID mismatch (bug #1390). * hp-3478a: - Check via GPIB serial poll if new data is available. - Add get/set/list of measurement ranges. - Add get/set/list of digits. - Check for measurement value overflow. * manson-hcs-3xxx: - Add support for some models with changes ID string (e.g. bug #1441). * fx2lafw: - Add support for 48MHz sampling (for very short intervals only). * ipdbg-la: - Check if limit samples is valid. - Improve acquisition speed. - Fix various issues on Windows. - Fix an issue when capture rate is 100% (bug #1393). * scpi-dmm: - Accept serialcomm= scan options. - Run OPC queries immediately before essential commands. * brymen-bm86x: - Fix incorrect channel indices. * dmm/eev121gw: - Add missing scale items for sub display in power modes. * rigol-ds: - Fix memory buffer readout on DS4000 series. * fluke-45: - Avoid NULL dereference in the probe routine. - Disable ECHO test, it confuses other SCPI devices (bug #1272). ∗ fluke-dmm: - Fix use-after-free bugs (bug #1423). * rdtech-dps: - Synchronize read and write operations. - Retry sr_modbus_read_holding_registers() up to 3 times. - Handle different per-model current/voltage digits (bug #1385). - Send META package when states have changed. * udev: - Add an additional Rohde&Schwarz HMO VID/PID. - Add Siglent SDS1104X-E VID/PID (bug #1357). - Add Lecroy WaveRunner VID/PID. * Build system: - Fix an issue when building in directories that are symlinks (bug #547). - Fix C++ bindings compilation with Doxygen >= 1.8.16 (bug #1422). * Fix various memory leaks in the backend and in drivers. * README.devices: Update/amend docs, add more examples. 0.5.1 (2018-10-14) ------------------ Note: This release does NOT change the libsigrok public C API in incompatible ways. While new config keys have been added (additional enum entries / numbers), no existing interfaces were changed or removed. Frontends should continue to work fine without recompiling or relinking. * New supported hardware: - Logic analyzers: - DreamSourceLab DSLogic Basic - DreamSourceLab DSLogic Plus - Hantek 4032L - IPDBG (ipdbg.org FPGA IP debugger) - Meilhaus Logian-16L - Saleae Logic Pro 16 (experimental) - ZEROPLUS Logic Cube LAP-16032U - ZEROPLUS Logic Cube LAP-C (16128+) (bug #1045) - Oscilloscopes: - Agilent MSO7034A (experimental, digital channels not yet supported) - Hantek DSO-2250 (experimental) - Rigol DS4000 series (bug #1208) - Siglent SDS1000 series - Siglent SDS2000 series - Multimeters: - EEVblog 121GW (supports serial connection, requires BLE-serial bridge) - Fluke 45 - HP 3478A - MASTECH MS8250D - Metex M-3860M - PeakTech 4390A - SparkFun 70C - Victor DMMs with Mini-USB connector - Voltcraft VC-96 - Power supplies: - GW Instek GPD series - HP 6631B - HP 66332A - HP 6633B - HP 6634B - Korad KD3005P - RDTech DPS/DPH series - Rigol DP711 - Rigol DP712 - RND KA3005P - Tenma 72-2540 - Electronic loads: - ZKETECH EBD-USB * New config keys: - SR_CONF_POWERMETER - SR_CONF_UNDER_VOLTAGE_CONDITION_THRESHOLD - SR_CONF_EXTERNAL_CLOCK_SOURCE * Build dependencies: - Drop libftdi 0.x support, require libftdi 1.x (bug #959). * dreamsourcelab-dslogic: - Split DSLogic devices into this new driver (were in fx2lafw previously). - Handle SR_CONF_TRIGGER_MATCH in config_list() (bug #1032). - Fix incorrect default/initial threshold setting. - Fix deinterleaving when non-contiguous set of channels is enabled. - Fix a triggering issue (bug #1188). * demo: - Unbreak execution with all analog channels disabled (bug #625). - Only send average result data when averaging is active (bug #930). - Don't generate analog output data for disabled channels (bug #923). - Skip generating data when all channels in a group are disabled (bug #923). - Mask out logic data for disabled channels in datafeed packets. - Add multi-frame and frame-count (development) feature. - Properly handle low samplerates. - Add graycode generator mode. - Add triggering support. * conrad-digi-35-cpu: - Add SR_CONF_LIST for voltage_target and current_limit. * arachnid-labs-re-load-pro: - Stop monitoring when open/close device. - Add SR_DF_META packets for changed values/states. - Change serial read in acquisition mode to prevent data loss. - Fix a rounding issue when setting a current limit. - Add SR_CONF_UNDER_VOLTAGE_THRESHOLD support. - Make SR_CONF_REGULATION listable. - Get a response when in acquision mode. - Set an encoding "digits" value for analog packets. * asix-sigma: - Propagate errors from firmware upload (bug #471). - Only change number of channels after successful firmware upload (bug #471). - Only open the USB device once; fails with newer libftdi (bug #471). - Download sample data upon user initiated stop, too. * serial-lcr: - Fix a double-free error (tested with PeakTech 2170). - Support channel selection (enable/disable P1/P2). * brymen-bm86x: - Support channel selection (enable/disable channels). - Fix a crash upon device closing. * manson-hcs-3xxx: - Add new name for the HCS-3304 (adjustment for new Manson firmware). * chronovu-la: - Silence overly verbose and confusing log messages. * beaglelogic: - Update scan() to return all 14 channels by default. - Enable seamless continuous capturing. - Use a flexible sampleunit depending on enabled channels. - Add TCP protocol support. - Fix a crash on device connection closing. - Correctly advertise samplerates via SR_CONF_SAMPLERATE/SR_CONF_LIST. - Fix a compiler warning (bug #1094). * lecroy-xstream: - Fix COMM_HEADER and COMM_FORMAT. - Use best-effort strategy for models unknown to the driver. - Fix trigger source/slope handling. - Implement config_channel_set API callback. - Fix sample rate handling. - Keep acquiring infinitely if no frame limit is set. - Properly handle a stopping acquisition. - Wait for trigger before acquiring additional frames. * hantek-6xxx: - Use lower MAX_PACKET_SIZE on Windows (bug #1048). - Use FIFO-based sampling, don't buffer all samples before send (bug #1214). - Hantek 6022BE: Add VID/PID 04b5:6022 support (bug #918). - Hantek 6022BL: Add VID/PID 04b5:602a support (bug #1295). * scpi-pps: - Add channel group device options for HP 663xx. - Use thread safe SCPI functions, return float not double (bug #779). - Improve switching of channel groups (PSU channels). - Add missing functionality for the HP 6632B power supply. - Add listable OVP/OCP threshold for HP 66xxx and prepared all others. - Don't block waiting for a value on capture stop. - Use software sample and time limits. - Fix broken channel selection code (bug #1279). * hameg-hmo: - Forward internal channel state to sigrok channel state (bug #883). * sysclk-lwla: - Fix a segfault in dev_close(). - Fix a regression with (at least) the LWLA1034. * rigol-ds: - Fix crash when fetching logic channels (bug #1073). - Fix a memory leak. - Fix an issue causing only one channel to be acquired (bug #1018). - Store trigger sources and their number for each model (bug #299). * hantek-dso: - Fix segfault when accessing already free()d memory (bug #458). * korad-kaxxxxp: - Add two channels "V" and "I", remove channel "CH1". - Synchronize read and write operations. * serial-dmm: - Add support for multiple channels per DMM. - Count analog DMM channels starting at 1. - Print data bytes according to specific meter's packet length. * siglent-sds: - Fixed timebase problem where "ns" could not be selected (bug #1120). - Add an averaging function. - Partial fix for a USB connection problem (bug #1130). - Fix samplerate and memory depth calculation. - Better support for *-E series devices (more work might be needed). - Fix SR_CONF_AVERAGING/SR_CONF_AVG_SAMPLES handling. * hantek-4032l: - Various data acquisition fixes (bug #1190). - Add support for cleanly aborting an acquisition. * fx2lafw: - Silence message in query for channel group's device options (bug #1267). - Add usb-c-grok IDs for upcoming device support. * input/wav: - Fix incorrect memset() call. - Fix module reset issue (bug #1167). - Don't assume CHUNK_SIZE >= total_samples. * input/raw_analog: - Fix module reset issue (bug #1167). - Set appropriate precision digits for sample format (bug #950). * input/vcd: - Fixup VCD timestamp to sigrok samplenum mapping (bug #1075). - Abort VCD import when timestamp counts backwards (bug #1250). - Expand the reset() logic (bug #1306). - Add channel list checks for file re-read (bug #1306). * input/csv: - Make the data format option a list. * input/logicport: - Add input module for LogicPort File (*.lpf) files. * input/chronovu_la8: - Only send data to the session, don't send the header. - Also claim responsibility for ChronoVu LA16 files (.kdt/.kd1). * input/null: - Add this new input module (used for testing and benchmarking purposes). * Input modules: - Improve option names and descriptions. - Increase chunk sizes to 4MB in most cases for improved performance. - Add confidence (detection strength) to format_match() (bug #1200). * output/null: - Add this new output module (used for testing and benchmarking purposes). * output/analog: - Display SR_DF_META packets. - Convert binary to digital digits of precision (bug #950). * output/vcd: - Assign adjacent names to enabled channels (bug #519). - Assume packed input data image, unbreak 2nd+ channel (bug #519). * output/wav: - Change default for scale factor from 0.0 to 1.0. * output/csv: - Fix out-of-bounds array access in process_analog() (bug #1124). - Make the label values option a list. - Disable the dedup option by default. * Output modules: - Fixup trigger marker position in ascii/bits/hex output modules. * Fix various compiler warnings, scan-build issues, and memory leaks. * soft-trigger: - Fix a memory allocation issue (bug #1000). - Fix an issue causing triggers to not work. * session_driver: Fix an issue causing incorrect analog data reads. * Logging: - Flush log lines to cope with non-terminal output (pipes). - Move log level check so that it affects all handlers (bug #698). * SCPI: - Fix an issue caused by trailing whitespace handling (bug #788). - Synchronize read, write and write+read operations. * Various DMMs: Set DC flag for diode mode (bug #144). * All drivers: - Use serial_write_blocking() everywhere (bug #962). - Fix locale dependent string to float conversion (bug #1064). - Show firmware name when loading fails (bug #1262). * FreeBSD: - Ensure device is closed before usb_get_port_path() (bug #1109). * Metex DMMs: - Add missing modes and set correct digits values. - Add power factor measurement mode. - Fix incorrect measurement modes. * DTM0660 DMMs: - Do not apply the exponent twice on the value (bug #1236). * libsigrok API: - Add sr_a2l_threshold(). - Add sr_a2l_schmitt_trigger(). - Add sr_sprintf_ascii(). - Add sr_snprintf_ascii(). - Add sr_vsprintf_ascii(). - Add sr_vsnprintf_ascii(). - Add sr_resourcepaths_get() (bug #1128). - Add sr_input_module_get(). - Add sr_log_callback_get(). - Add sr_packet_copy(). - Add sr_packet_free(). - sr_parse_boolstring(): Assume bool is true when no value is specified. - sr_voltage_string(): Add a space before the unit. - sr_parse_rational(): - Bugfix for integral parts between -0 and -1. - Bugfix in an error path (bug #1093). - Various parsing robustness improvements/fixes. - Accept leading whitespace. - Insist on some mantissa. - sr_analog_si_prefix_friendly(): Fix read past end of array (bug #950). - sr_parse_sizestring(): Support tera/peta/exa suffixes (bug #763). * libsigrokcxx API: - Add Analog::get_logic_via_threshold(). - Add Analog::get_logic_via_schmitt_trigger(). - Add Context::input_format_match(). - Add Option::parse_string(). - Add ConfigKey::parse_string(). * backend: Emit firmware search paths in a log message. * Fix a driver-independent firmware loading issue (bug #1140). * modbus: Improve error handling. * Multiple internal refactorings to massively reduce per-driver boilerplate. * Also check $SIGROK_FIRMWARE_DIR for firmware files. * udev rules file: - Add Brymen BU-86X adapter IDs. - Add Rigol DP800 series IDs. - Add usb-c-grok IDs. - Rename file for correct rule ordering on systemd systems (bug #1059). - Split device access policy from the device database. New files: 60-libsigrok.rules, 61-libsigrok-{plugdev,uaccess}.rules. * Build system: - Emit a warning if the C++ bindings are not being built. - Install MIME info file in $(datadir)/mime/packages (bug #983). 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: . 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- 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.