Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /data/sigrok.org/apache/blog/includes/menu.inc).

Blogs

New protocol decoder: PWM

We're happy to announce that libsigrokdecode now supports the pwm protocol decoder.

The PD was contributed by Torsten Duwe and Sebastien Bourdelin, thanks a lot!

This decoder will show the duty cycle of any signal, which in practice can mean various things. E.g. Class-D amplifiers can use PWM to encode audio data.

We have a test file in the sigrok-dumps repository containing audio data.

The decoder also supports a binary output facility which you can use to decode the audio (a direct export to WAV is planned as well, though).

 $ sigrok-cli -i pwmtest.sr -P pwm:data=4 -B pwm=raw > PWM.raw
 $ sox -t raw -e unsigned -b 8 -r 64000 PWM.raw PWM.wav
 $ aplay PWM.wav

 

New protocol decoder: Aosong AM230x / DHT11

We're happy to announce that libsigrokdecode now supports the am230x protocol decoder.

This PD decodes the custom protocol of the Aosong AM230x and DHT11 temperature and humidity sensors.

A short description of the protocol is available on the respective wiki page, along with pointers to further reading.

There are also a bunch of teardown photos of these sensors, in case you were wondering what those look like inside. Turns out they usually use some ST STM8S (or other) microcontroller and measure temperature and humidity "directly" without further ICs. The exception being the Aosong AM2303 which actually uses a Dallas/Maxim DS18B20 (1-Wire) sensor for the measurement.

Thanks a lot to Johannes Roemer for contributing the decoder!

sigrok at the Chaos Communication Congress (31C3)

As in previous years various sigrok developers will be at the Chaos Communication Congress (31C3) in Hamburg, Germany. The conference takes place December 27th to 30th, 2014.

There will be a sigrok assembly (on all 4 days) with a few tables and chairs to allow for sigrok hacking and development planning, various demos and Q&A for visitors, and so on.

Apart from sigrok hacking the conference also features the usual set of awesome talks related to security, hardware hacking, and lots of other interesting topics that you shouldn't miss.

If you're interested in sigrok as user or developer, please drop by and say hello. Bring your gear (if possible) for reverse engineering and driver writing purposes. Chat with us, give us your suggestions which features you'd like to see, which devices you want to be supported, which protocol decoders you'd like to have, or even help us write some drivers/decoders!

 

sigrok + UNIX = Awesome! - part III - Fun and Games with gpsd

So here I am hanging out at the local hacker space in Richmond. We, the group that meet up every Tuesday evening are small, yet perfectly formed. This evening Paul (MØTZO), a friendly radio ham, and co-founder of our group brought along an interesting device to encode GPS location data in APRS (Automatic Packet Reporting System) packets. These packets are fed into to a VHF radio transmitter which transmits the signal at 144.8 MHz. A network of receivers, run by amateur radio operators receives the packets, and streams them over the internet. An interesting device indeed.

Tonight we were just playing with Paul's GPS board, which contains a U-Blox Neo 6 GPS receiver. As with most GPS receivers, simply powering it on is enough to make it emit coordinates encoded in NMEA 0183 sentences transmitted over UART at 9600bps.

These are trivial to receive with an fx2-based logic analyzer and sigrok-cli:

$ sigrok-cli --driver=fx2lafw --config samplerate=50k \
    --continuous -P uart:baudrate=9600:tx=0 -B uart=tx

With the UART protocol decoder and the ASCII binary output, we can see the NMEA sentences:

Here we can see that we're locked on and receiving coordinates. "cat -v" is used to protect the terminal state from being clobbered by any errant binary data being emitted.

Yawn. Let's make this more interesting.

There is a very interesting package called gpsd. This is a GPS location server than can connect to various types of GPS devices, and can serve the position information over the network. And best of all, thanks to the power of UNIX pipes, we can feed the data from sigrok directly into it:

$ gpsd -N <(sigrok-cli --driver=fx2lafw --config samplerate=50k \
    --continuous -P uart:baudrate=9600:tx=0 -B uart=tx)

There are a variety of gpsd clients available. There's a nice ncurses based client, gpsmon:

And best of all, KDE's Marble integrates with gpsd. Here we see Marble, showing a live stream of location data captured by the fx2lafw firmware, decoded by sigrok, handled by gpsd, plotted by Marble on OpenStreetMap map data - a complete free-software stack! Pretty freetarded:

New protocol decoder: rfm12

libsigrokdecode now supports yet another protocol decoder, rfm12.

This one decodes the SPI-based protocol of the HopeRF RFM12 and RFM12B wireless FSK transceiver modules. These devices can transmit and receive in the 433MHz, 868MHz and 915MHz bands (depending on chip).

Thanks a lot to Sławek Piotrowski for contributing the decoder (as well as an example file for sigrok-dumps)! We've also added a small test-case in the sigrok-test repository to be able to keep track of any potential regressions that might occur later.

Manson HCS-3xxx series programmable power supply support

We're happy to announce that libsigrok now supports the Manson HCS-3xxx series of programmable power supplies (PPS).

Thanks a lot to Matthias Heidbrink for improving the driver and extending it to support more models in this series! See the model overview for more details. There are various rebadged versions sold by Conrad/Voltcraft, PeakTech, and probably other resellers.

All power supplies in this series have one channel only, featuring various voltage/current/power combinations though. They're connected to the PC via a (built-in) USB-to-serial IC (e.g. the SiLabs CP2102 in the Manson HCS-3202). A relatively simple ASCII-based protocol is used to communicate with the devices and control them.

You can control the power supplies e.g. via sigrok-cli like this:

 $ sigrok-cli -d manson-hcs-3xxx:conn=/dev/ttyUSB0 --show
 manson-hcs-3xxx - Manson HCS-3202 with 1 channel: CH1
 Supported configuration options:
    output_current: 0.000000
    output_current_limit: 0.000000
    output_enabled: on (current), off
    output_voltage: 3.390000
    output_voltage_target: 0.000000

 $ sigrok-cli -d manson-hcs-3xxx:conn=/dev/ttyUSB0 --samples 2 -O analog
 CH1: 3.300000 V DC
 CH1: 0.000000 A
 CH1: 3.380000 V DC
 CH1: 0.000000 A

 $ sigrok-cli -d manson-hcs-3xxx:conn=/dev/ttyUSB0 --config output_voltage_target=5.0 --set

 $ sigrok-cli -d manson-hcs-3xxx:conn=/dev/ttyUSB0 --config output_enabled=yes --set

The code was tested on the Manson HCS-3202 and the Voltcraft PPS-11815. Please let us know if you are able to test any of the other devices the driver is supposed to support, and/or whether you experience any issues.

 

New protocol decoder: spdif

libsigrokdecode now supports the spdif decoder.

The Sony/Philips Digital Interface Format (S/PDIF) is a (nowadays standardized in IEC 60958) digital audio protocol that is used in various devices and supported by a number of ICs, such as the TI PCM2707 and many others.

A short description of the protocol is available on the respective wiki page, along with pointers to further reading.

Thanks a lot to Guenther Wenninger for contributing the decoder!

Yokogawa DLM2000 series oscilloscope support

We're happy to announce even more hardware support in libsigrok. It now supports the Yokogawa DLM2000 series oscilloscopes / mixed-signal scopes.

Thanks a lot to Soeren Apel for writing the code and testing on a Yokogawa DLM2054! We're especially happy about this new driver since it's the first Yokogawa device at all that we now support.

The DLM2000 series features 2 or 4 analog channels, and the 4-channel models can alternatively capture 3 analog channels + 8 digital ones. The scopes sample at 2.5GSa/s and feature a bandwidth of 200MHz-500MHz (depending on the model) and up to 250 Mpoints of memory.

The DLM2000 devices seem to specifically target various industrial uses and include some interesting analysis/reporting features like a "history search" and "replay" function, enhanced trigger facilities, Go / No-Go functions, a power-supply analysis feature, and more.

While the device can do some simple decoding of certain digital protocols such as SPI (apparently those are optional add-ons to buy), you can of course widely broaden the range of protocols by using the sigrok protocol decoders on the PC side.

The devices can be connected to a PC via either USB (USBTMC protocol), Ethernet (LXI), or GPIB. The protocol itself is SCPI-based, have a look at the source code if you're interested in this kind of stuff.

It might be possible to support the DLM4000 series with some minor updates of the driver at some point, probably even others. Patches and testers for that are highly welcome, if you own such a device please let us know!

 

 

 

A new, better Openbench Logic Sniffer

The venerable Openbench Logic Sniffer has long been a popular logic analyzer: it's cheap, capable and entirely open source. Unfortunately the project was abandoned long ago, so no new features were ever added. The one major problem with the OLS was always its limited available memory: it has no memory chip on the board, using only the small amount of memory available on the FPGA to store samples. Its slow, PIC-based USB interface made it impossible to use a streaming architecture, like the fx2lafw devices.

Enter the Saanlima Pipistrello: an inexpensive but very capable FPGA development board. It has a newer Spartan-6 FPGA, 16MiB flash, 64MiB DRAM and an FTDI-based USB interface. It also comes with lots of ports: HDMI, audio, Micro-SD, PMOD, and 48 GPIO pins in a Papilio Wing configuration. The board is completely open source: schematics and Eagle design files are available under the CC-BY-SA 4.0 license. The board itself sells for $155 at the Saanlima Store.

A buffer wing is also available. This protects the FPGA with 5V-tolerant transceivers. Highly recommended: I destroyed many unbuffered pins on my OLS board long ago.

The original OLS verilog code couldn't use DRAM for storage, so the Saanlima folks adapted it. Proper edge triggers were also added to the FPGA code, something that was cumbersome on the OLS. They also contributed a sigrok driver, which has been merged into libsigrok. Thanks, Magnus!

New protocol decoder: nrf24l01

libsigrokdecode has gained support for a new protocol decoder recently, the nrf24l01 PD.

Thanks a lot to Jens Steinhauser for contributing the decoder, as well as a bunch of test files that we're using for some automated decoder tests (and that you can use to easily try out the decoder as well).

This decoder stacks on top of the SPI PD, decoding some higher-level commands used by the Nordic Semiconductor nRF24L01(+) 2.4GHz RF transceiver ICs.

A short description of the chip and its protocol and pins is available on the respective wiki page, along with pointers to further reading.


Pages

Subscribe to RSS - blogs