Archive

Posts Tagged ‘sigrok’

BayLibre ACME Cape for BeagleBone Black Measures Power and Temperature with Sigrok

February 1st, 2016 No comments

Sigrok open source signal analysis software suite had a major release last week-end with libsigrok 0.4.0, libsigrokdecode 0.4.0, sigrok-cli 0.6.0, and PulseView 0.3.0. The new version added numerous bug fixes for supported hardware such as UNI-T UT61E digital multimeter or USBee AX Pro logic analyzer, and added support for several logic analyzers, oscilloscopes, multimeters, programmable power supplies, an electronic load, an LCR meter, a scale, and one BeagleBone Black cape, namely BayLibre ACME.

Click to Enlarge

Click to Enlarge

The ACME initiative was launched in order to get rid of the limitations of proprietary solutions, and provide an open source hardware and software multi-channel power and temperature measurements solution to the community.

BayLibre ACME cape supports up to 8 probes to measure VBUS (0 to +36V), VSHUNT ( 2.5uV up to 81.92mV), CURRENT AND POWER. Three current / power probes have been developed with all featuring TI INA226 for the ADC conversion:

  • ACME HE10 Power Probe
    • 6-pin HE10 header with up to 6A max current, 13mΩ contact resistance
    • 3 possible current ranges:
      • 0.005Ω for 1.5A < Current < 10A
      • 0.05Ω for 150mA < Current < 1.5A
      • 0.5Ω for 0 < Current < 150mA
  • USB Power Probe
    • Power Control – Power switching capability  through TPS22929
    • High precision resistor – 0.08Ω for Current up to 1A
  • Jack Power Probe
    • Power Control – Power switching capability  through TPS22929; 6A current limitation;20.5V transil for voltage protection
    • High precision resistor – 0.01Ω for Current up to 6A

There’s no much details about the temperature probe except it’s based on Texas Instruments TMP435 temperature sensor.

Click to Enlarge

Click to Enlarge

A custom Buildroot BBB Linux distribution is available with upstream ACME HW drivers, Sigrok software Suite, and low-level hardware interface interface. You can check the measured data on the command line, or a graphical user interface (PulseView) via HDMI or vncviewer. The solution also works with Xoscope digital oscilloscope application. You can find more technical details on BayLibre ACME Wiki and Sigrok Wiki.

ACME cape and the probes are said to be available now, but for some reasons you need to contact them via the form at the end of BayLibre ACME page in order to purchase them.

Using USB123 USBee AX Pro $5 USB Logic Analyzer with PulseView in Linux

September 27th, 2015 11 comments

I recently wrote about an ultra low cost USB logic analyzer called USB123 USBee AX Pro, which I bought for $9.58 on DX, but I was later informed it also goes for $5.44 on Aliexpress including free shipping to most countries, and a few dollars extra for shipping to some other countries. Nevertheless, I’ve now received it, and instead of testing it with a closed source (and cracked) Windows software, I installed and ran PulseView open source graphical interface for sigrok, which I previously tested on UNI-T UT61E digital multimeter.

USB123_USBee_AX_ProThe package includes USBee AX PRO mini logic analyzer, 10 dupont wires for 8 channels (digital only) and 2 ground pins, as well as a mini USB to USB cable for connection to a computer.

The instructions to use the logic analyzer can be found on Sigrok Wiki. My computer runs Ubuntu 14.04, but Sigrok and PulseView can also be installed on other Linux distributions, as well as Windows, Mac OS, FreeBSD, and Android.

If you are using Ubuntu 15.04 or greater, you can simply install pulseview as follows:

However with Ubuntu 14.04 and earlier, you’ll either have to build Sigrok and PulseView from source, or much easier use sigrok PPA:

USBee AX PRO device relies on FX2 logic analyzer firmware, which is not installed by default, so you’ll also need to install it either from the ppa

or source @ http://sigrok.org/download/source/sigrok-firmware-fx2lafw/:

You can now connect the logic analyzer to one of your computer USB port, and start PulseView by typing pulseview in a terminal (where you’ll get some output in case of issues).

The program will start with a “Demo Device” by default, so you’ll need to click on File->Connect to Device in the top menu, select fx2lafw (generic driver for FX2 based LAs) (fx2lafw), and finally Scan for Devices.

USB123_USBee_AX_Logic_Analyzer_Sigrok
CWAV USBee AX with 8 channels should appear in the list of device and you can click OK.

The logic analyzer only works up to 24MHz, so you would not be able to use it to debug DRAM for example, but for low speed interface such as I2C, SPI or UART it should do the job. For testing purpose, I created a small board to capture UART console data from Orange Pi 2 mini while still having access to the serial console on a computer.

Orange_Pi_2_mini_logic_analyzerI used my main computer, but I could also have used the Orange Pi board to have a complete logic analyzer system for less than $30…

I just plan to run “ls” an capture the output. Since the UART speed is 115000 baud, 500 kHz capture would be enough, and I selected 1 million samples for capture for 2 seconds. 8 channels will show up at the beginning, but I disabled channels 2 to 7 for clarity.

Sigrok_UART_Capture

Click to Enlarge

We can see the captured data after I typed ls. Somehow, there’s nothing on the UART TX… I also enabled and configured the UART decoder (Decoders->UART) to analyze the data. Clicking on the red UART icon will popup the configuration window, where you can assign the relevant channels to TX and RX, configure the UART connection, and define how you want the data to be decoded (ascii, dec, hex…)

Pulseview_UART_configuration

Click to Enlarge

Then I verified that file names – generated by ls command – were indeed captured, and zoomed in the last part of the captured data, which correctly shows the command prompt: [email protected]:~$.

Pulseview_UART_Decoding

Click to Enlarge

Zooming further shows the binary representation of data, as well as the start (S) and stop (T) bits.

Pulseview_UART_Binary

Click to Enlarge

Not bad for a $5 device, and neat features for PulseView and Sigrok open source software.

USB123 USBee AX PRO is a $10 USB Logic Analyzer Clone Compatible with Sigrok

August 25th, 2015 7 comments

A few months ago, I wrote about low cost logic analyzers selling for $75 and up, but yesterday, I stumbled upon an even cheaper, and admittedly lower end, logic analyzer called USB123 USBee AX PRO, allegedly a clone of the original USBee AX PRO minus the analog inputs, that sells for $9.99 on Dealextreme. [Update: It can also be bought for $5.60 on Aliexpress including shipping to most countries]

USBee_AX_ProUSBee AX PRO specifications:

  • Sampling rate – 24Msps
  • Sample rate – 24MHz @ 8 channels
  • Input voltage range: 0~5V
  • Digital channel: 8
  • Low input voltage: < 0.8V; High input voltage: >1.4V
  • Supported Protocols – SPI, IIC, UART, SMBus, I2S, CAN, Parallel, Custom, Search, Async, 1-Wite, PS/2
  • Dimensions – 5.4 cm x 2.7 cm x 1.8 cm
  • Weight – 60 grams

The tool ships with 10 Dupont cables and a USB cable to transfer data to your PC. DealExtreme also provides CDROM image with a user’s manual and utilities such as USBee program and a key generator… But many users report either that the program does not work, or it’s difficult to setup, requires changing the PID/VID, and so on. DX first listed the device in 2012, and it’s become relatively popular, with one person writing a review that year.

PulseViewWith USB123 USBee AX Pro Mini Logic Analyzer (Click to Enlarge)

PulseViewWith USB123 USBee AX Pro Mini Logic Analyzer (Click to Enlarge)

Luckily you don’t have to use (cracked) proprietary software as USBee AX PRO mini logic analyzer is compatible with Sigrok, and users’ feedback is that it work in Windows and Linux both with the command line and PulseView graphical user interface.

Sigrok and Pulseview in Ubuntu 14.04 with UNI-T UT61E Digital Multimeter

March 7th, 2015 14 comments

A couple of months ago, I received a new digital multimeter UNI-T UT61E that can send data to a computer via a serial cable, and allows you draw some nice charts. I’ve already done that in Windows 7 with the provided tools, and reported on the power consumption of some Chinese Android TV boxes. However, since I use Ubuntu 14.04 as my main operating system, Linux based tools would be more convenient, and open source sigrok-cli command line client and its graphical interface pulseview are supposed to support UT61E DMM, so I had to give it a try.

A Quick Look at UNI-T UT61 Digital Multimeter

Before going into Sigrok, I’ll quickly show what the multimeter received from DealExtreme . It took longer than expected to ship because of of  included 9V battery, and at the first shipping attempt it was returned to DX, but after 8 weeks or so, I finally received the package.
UNI-T_UT61E_Package
The multimeter came with test leads, an adapter for transistor and capacitor, D02 serial cable to connect between the multimeter and the serial port of your PC, and an operating manual in English. Most sellers don’t include the required 9V PP3, but DX did. It seemed more convenient at the time of purchased, but as mentioned above custom issues completely ruined this little convenience.

UNI-T UT61E Digital Multitmeter with Cables, Adapter, and User's Manual (Click to Enlarge)

UNI-T UT61E Digital Multitmeter with Cables, Adapter, and User’s Manual (Click to Enlarge)

I had read review saying test leads where pretty poor, so I performed a continuity test, and the results were pretty bad, so I asked a partial refund from DX to buy another pair of test leads which are much better.

Linux issues with CH340/CH341 USB to Serial Adapters

DB9 serial connector are a thing of the past in most computers and laptops, so I had to use that RS232 to Serial USB adapter between UNI-T D02 cable and a USB port of my computer. I’ve been using with Wandboard and SABRE Lite boards a few time without any issues, but when I started run sigrok-cli, I got some error messages:

So I mentioned the issue to Sigrok developers, who could not reproduce the issue. But then I shared some details about the adapter:

And HL-340 USB-Serial adapter are known not to work properly. Why is that? While in most case you’d use some baud rate with 8N1 (8-bit / no parity / 1-stop bit), UNI-T multimeters are using 19200 7O1 connection (with odd parity), and so far the parity bit is simply ignored in ch341.ko driver, so my PC would just receive incorrect data.

Luckily there’s now a patch, and I’ve shown how to build the driver for Ubuntu 14.04 with Linux kernel 3.18, and that part is working fine.

Sigrok-cli Command Line

Installing sigrok-cli command is very easy as sigrok is part of Ubuntu 14.04 package repositories:

At first, you may want to check the vesion as it will also list supported drivers, and available options:

The libraries version are still 0.2.0, while the latest release is 0.3.0. So I tried to build sigrok-cli 0.5.0 from github instead with 0.3.0 version libs (more on that later), but it failed to scan my DMM, so I kept using the version packaged for Ubuntu 14.04.

The good news is that the client can detect UT61e:

and even better I could capture a few samples

If you want to capture more, simply changed the samples value, or use “continuous” instead.

But if you want to draw a chart in a spreadsheet, or other software the analog output is not really suitable. Fortunately sigrok-cli support multiple output formats with csv (comma-separated values), gnuplot, or its own default format that can be loaded in pulseview GUI. In theory, you could capture 10 sample in csv format and load the resulting file into a spreadsheet with the following command.

But in my case, all formats others than Analog failed, and all I got was empty files.

Pulseview in Ubuntu 14.04

Contrary to sigrok, pulseview graphical user interface is not part of Ubuntu 14.04 packages, and can only be found in Ubuntu Utopic (14.10) or Vidid (15.04):

I completely forgot to look for PPA before I built from source, and there’s already pulseview & sigrok packages for Ubuntu 13.10 and 14.04, so that would make it much easier. Instead I decided to build, as I though it should probably straightforward, but it turned out there are quite a few dependencies, and libraries to buid, and that’s the steps I had to follow in Ubuntu 14.04:

  1. Install dependencies

    sudo apt-get install build-essential cmake git autoconf-archive qt4-dev-tools libboost-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-test-dev libglibmm-2.4-dev doxygen python-gobject-dev swig clang python-numpy

  2. Retrieve libsigrok source code:
  3. Since autoconf-archive packahe is too old, you’ll need to manually download ax_cxx_compile_stdcxx_11.m4, copy it in a directory (e.g. m4), before completing the build:

    at this stage make sure the configure ends with C++ and Python bindings enabled

    Please note that I had some issues at first during make due to doxygen generating duplicate enums, but I was finally able to compile and install libsigrok:
  4. Now do the same with libsigrokdecode:
  5. And pulseview:
  6. You can now run pulseview, and for some reasons (installation prefix of libsogrok?) I also add to define LD_LIBRARY_PATH:
PulseView with Demo Device (Click to Enlarge)

Pulseview Demo Device (Click to Enlarge)

By default Pulseview will “connect” to a demo device emulating a logic analyzer. You can then click on Run and see a few signals as shown in the screenshot above. But obviously it’s more interesting to play with a real device like UT61E multimeter.

Pulseview_Ubuntu_14.04So you can go to the top menu to select File->Connect to Device to select your instrument. It seems I was out of luck again, as UNI-T drivers are not listed at all, despite being shown in the “About” section. I have not been able to investigate the reason, but if you have one of the device above it should work.

PulseView and Sigrok can also automatically decode signals like CAN, I2C, UART, USB, S/PDIF, and so on, which would be most interesting for logic analyzers.

So Pulseview and Sigrok look quite promising on paper, but the combination Ubuntu 14.04 + UNI-T UT61E multimeter + HL-340 USB to serial adapter made it quite challenging to setup, and mostly unusable after installation. I’ve also tried it in the development version of Ubuntu 15.04 with Linux 3.19, and both sigrok and pulseview install easily, but I would have to re-build ch341 driver again, which I’m too lazy to do for now. Maybe I’ll give it another try lateron.