New in PV: Tabular Decoder Output View

A while ago we added a feature that has been requested often in the past: a way to view decoder output in list form. This is now implemented and generally working, so try it out by clicking on the small arrow next to the "New View" toolbar icon!

It's still in its infancy, with more features to come, but the important things are working:

  • You can hide or re-arrange the colums by left-/right-clicking the table header
  • You can save the output of the table to disk
  • You can choose to see all annotations or only those which you also see in the main trace view - meaning hidden annotations will also be hidden in the table

Also, hovering over the annotations in the main trace view will highlight the corresponding annotations in the table and double-clicking (or pressing Enter on) an annotation in the table will focus on that particular annotation in the main trace view.

In the future, you'll be able to add additional filters to the table (e.g. showing only annotations where "value >= 40") and searching will be possible, too.

As always, if you have features you find amiss or you discover bugs that you want to see fixed, let us know!

New protocol decoder: xy2-100

libsigrokdecode now supports yet another protocol decoder: xy2-100.
 

This is a protocol used to communicate with laser scanner galvanometers, used for laser shows, laser engravers and similar applications.


Some example traces are available in the sigrok-dumps repo but we'd love to have some where we can verify proper operation of the enhanced mode (i.e. where command/parameter pairs are sent). The status/feedback signal also has only pretty basic decoding for now, so if you have dumps where the status/feedback signal is included, please let us know!

The decoder was initially written by Uli Huber, thanks a lot!

New protocol decoder: nrf905

libsigrokdecode now supports yet another protocol decoder: nrf905.

This one stacks on top of the SPI decoder, and decodes the protocol of the Nordic Semiconductor nRF905 433/868/933MHz transceiver chip.

Some example traces are available in the sigrok-dumps repo and some test-cases in the sigrok-test repo, as usual.

The decoder was contributed by Jorge Solla Rubiales, thanks a lot!

 

 

New protocol decoders: ad5626, ad79x0, adxl345, ltc242x, ltc26x7

libsigrokdecode now supports a few additional protocol decoders: ad5626, ad79x0, adxl345, ltc242x, and ltc26x7.

This is a set of decoders (that stack upon the SPI or I²C decoders) that were contributed by Analog Devices Inc.:

  • ad5626: Analog Devices AD5626 12-bit nanoDAC
  • ad79x0: Analog Devices AD7910/AD7920 12-bit ADC
  • adxl345: Analog Devices ADXL345 3-axis accelerometer
  • ltc242x: Linear Technology LTC2421/LTC2422 1-/2-channel 20-bit ADC
  • ltc26x7: Linear Technology LTC26x7 16-/14-/12-bit rail-to-rail DACs

Some example traces are available in the sigrok-dumps repo and some test-cases in the sigrok-test repo, as usual.

The decoders were contributed by Teo Perisanu of Analog Devices, thanks a lot!

PulseView 0.4.2 released!

We're happy to announce the new PulseView 0.4.2 release!

This is quite a major release with loads of new features and bugfixes.

We provide various binary builds for Linux (AppImage), Windows (.exe installer) and Mac OS X (DMG) for the release version over at the Downloads page (in addition to the usual nightly builds).

Major new features and improvements:

  • PulseView session setups can now be saved/restored to and from *.pvs files.
  • Translation support was added to the GUI elements (and a first translation, German, is available). Please check the wiki for details on how you can contribute further translations.
  • There's a new protocol decoder selection subwindow with filtering capabilities, browing by decoder tags, auto-stacking of decoders where required, and more.
  • A new decoder "binary" output subwindow can show/save "OUTPUT_BINARY" type decoder data in various (decoder-specific) formats (WAV, PCAP, PNG, and many others). This also features a simple "hex view" for the data.
  • It is now possible to show/hide individual decoder annotation rows, and individual annotation classes. This is very handy when you're debugging a specific issue and only want to see certain classes of decoder annotations, e.g. "show me only CRC errors", "show me only parity errors and frame errors", or "show me only I²C NACKs" etc. etc.
  • Lots of UI and functionality improvements regarding cursors and markers.
  • Various new handy key shortcuts for zooming, moving around in the data, placing cursors, etc.
  • Various drawing and decoder/annotation performance improvements.

For further information about some of the new features please also check out these recent blog posts:

And of course, as usual, there are also quite a number of bugfixes and other minor improvements all over the place.

See the NEWS file for a much more detailed list of changes, or browse the git history for even more details.

Even more PulseView features you might have missed

In this last installment of the "features you should know about" series of posts before the upcoming PulseView release, we'd like to first show you the current state of our decoder output view. As you may have guessed from the name, it's a new type of view and with that it can be created using the "create new view" button which you can find on the left of the toolbar.

Once opened, you need to select a decoder for it to show anything. Not any decoder will do, however, it has to be a decoder that emits binary data - for example I2C, I2S, EEPROM24xx, SPI or UART. Having acquired some I2S data and using the I2S protocol decoder lets you have the sound data as raw .wav file data, for example:

Using the save icon at the top then lets you save this data either as a binary file (in this case creating a valid .wav file) or various types of hex dumps. If you want to only save a certain part of the binary data, simply select that part before saving.

You may have noticed that the bytes are grouped by color somehow. The meaning behind this is that every chunk of bytes emitted by the protocol decoder receives one color, the next chunk another color and so on. As there are currently three colors, the cycle repeats. This makes it easier to visually organize the data that you see - in the case of the I2S decoder, the header has one color because it's sent out in one go and following that, every sample for left/right consists of 4 bytes with the same color since they're sent out one by one.

In the future, we'll use this view to let you do more things. For example, it would be useful to reconstruct EEPROM contents from observing the wire and so that's just what we'll allow you to do. Also, we're going to support MIME types so that protocol decoders can describe the binary data they're sending out. In the case of I2S, this will allow PulseView to offer media playback directly and in the case of LCD display decoders will allow you to immediately see what the display would show.


Last but not least, we'd like to point out that you now can show and hide not only individual protocol decoder rows but also the annotation classes that are assigned to them. To do so, simply click on the arrow or label of the row you want to customize.

From that menu, you can either show/hide the entire row or choose the annotation classes you want to see. Everything is visible by default but if you want to focus on specific protocol messages or status annotations like warnings or errors, this should help. Also, if you are examining really long traces, disabling annotations for the most-often occuring type (e.g. bit annotations for SPI) then drawing performance will increase, too.

In the future, we'll also let you do more things from there, like exporting annotations. If there's something else you'd like to see available from there, let us know!


 

More PulseView features you might have missed

Just like in the previous blog post, we would like to make you aware of features that you may not have known about yet. The first one seems kind of minor but may not be so minor to people that don't speak English - translations. Currently, only German is supported (because we're German, duh) and so we'd appreciate if you'd supply translation files for other languages that we can include. Please check https://sigrok.org/wiki/PulseView#Translations for instructions on how to do that.

Next up we have some additional marker functions that were supplied by Martin Miklos. He added an auto-delta feature that shows you the time difference to all other timer markers when you hover over one:


Also, he added quick-access hotkeys for the left and right cursor boundaries which we have attached to the keys '1' and '2', respectively. This means that instead of having to re-arrange the cursor boundaries right after enabling it, you may now simply press '1' and have the left side of the cursor follow your mouse. Clicking or pressing escape puts it down. Then, you may do the same with the other side by pressing '2'. This should make using the cursor much faster.

In the spirit of efficiency, we also elimiated the need to enable the cursor altogether. Simply press '1' or '2' and the cursor will be enabled automatically with the left or right boundary following your mouse.

We appreciate his and all other contributions, so if you have something you'd like to implement, swing by our IRC channel to discuss and we'll help you make most efficient use of your skills when contributing :)
 

PulseView features you might have missed

Users of the nightly PulseView builds may have noticed a while ago but we haven't publicly documented it up until now: decode traces now have a context menu that you can access by right-clicking on a decoder trace.

The most prominent feature here is to export annotations to a text file and this is what I want to highlight in this post. With this feature, you can export annotations and post-process them, allowing you to use the data in whatever way you need. Aside from the obvious choices presented to you by the context menu, you can customize the output in the settings dialog using a format string:

The default format string probably contains more than you need, so feel free to adjust it to your liking. For example, the string "%s %d: %1" will generate the following output for the example above: "253-471 DS1307: Read date/time: Sunday, 10.03.2013 23:35:30"
 

Unannounced until now as well was the new protocol decoder selection subwindow. Clicking on the "Add Decoder" button or simply pressing its hotkey 'd' will now get you this:

From there, you can either start typing away to apply a filter or browse through the available protocol decoders. Do note that in contrast to the previous menu that you were shown, you now see all protocol decoders - both stacked and unstacked. If you choose to add a stacked one, PulseView will try to figure out which stacked decoder you need. In case it's ambiguous, it'll ask you which one you want to use.

In case you already know what you want, you can simply press 'd', type the name of the protocol decoder, press enter and when followed up by the escape key, the selection subwindow will close again. Then, you'll have added the decoder of your choice without having to click even once.


We hope you find these features useful and as always: if there's something you find amiss or that doesn't work the way you expect, please file a bug in the bug tracker so we can talk about it: https://sigrok.org/bugzilla.
 

libsigrok 0.5.2 released!

We're happy to announce the release of libsigrok 0.5.2. Tarballs are available from the Downloads page, as usual.

This is a "minor" release that doesn't add, change or remove any public API functions, so all existing clients will continue to work (without even the need to recompile).

The following hardware is now (additionally) supported:

  • Logic analyzers: Microchip PICkit2, Sysclk SLA5032
  • Multimeters: Agilent 34405A, Agilent U127x, HP 34401A, Keysight 34465A, MASTECH MS2115B, Mooshimeter
  • Programmable power supplies: BK Precision 9130, HP 661xC, HP 66312A, HP 663xA, Korad KA3005P/KD6005P, Manson HCS-330x, 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, R&S HMO1000/RTA4000/RTB2000/RTC1000/RTM3000 series, YiXingDianZi MDSO
  • LCR meters: MASTECH MS5308, PeakTech 2165, UNI-T UT612, Voltcraft 4080
  • Thermometers: MASTECH MS6514

Various existing hardware drivers have also received numerous fixes and improvements.

This release also includes improved (and portable) USB HID support via HIDAPI, and Bluetooth/BLE support (currently Linux-only via BlueZ).

There have also been quite a few bugfixes, documentation fixes, portability fixes, build system improvements, performance improvements, and so on.

See the NEWS file for a much more detailed list of changes, or browse the git history for even more details.

MASTECH MS6514 support

libsigrok now supports the MASTECH MS6514 digital thermometer.

This is a device with two thermocouple inputs and USB connectivity (SiLabs CP2102 based). It supports K,J,T,E,R,S,N thermocouple types.

A teardown and the protocol description are available on the device's wiki page, if you're interested.

The driver was contributed by Dave Buechi, thanks a lot!

Pages

Subscribe to The ever-expanding world of sigrok RSS