Quantcast
Channel: The ever-expanding world of sigrok
Viewing all 222 articles
Browse latest View live

New protocol decoder: ds243x

$
0
0

Another protocol decoder recently added to libsigrokdecode is ds243x, which decodes the Maxim/Dallas DS243x 1-Wire EEPROM protocol.

It currently supports the DS2432 (1-Wire 1Kbit protected EEPROM with SHA-1 engine) and the DS2433 (1-Wire 4Kbit EEPROM). Support for additional chips in the same family can be added relatively easily.

The PD stacks on top of the onewire_network decoder (and that one in turn on top of onewire_link).

The protocol decoder was contributed by Kevin Redon (DS2433 support added by Soeren Apel), thanks a lot!

 


New protocol decoder: maple_bus

$
0
0

If you're into game consoles you might want to check out the latest protocol decoder in libsigrokdecode: maple_bus.

This decodes the Maple bus, the protocol that peripherals of the Sega Dreamcast (controllers, memory cards, others) use.

The protocol decoder was contributed by Marcus Comstedt, thanks a lot!

Marcus also has documented both the low-level Maple bus wire protocol as well as the higher level frame format and the meaning of the bits and bytes involved in great detail.

As usual, there's also an example file in sigrok-dumps as well as a test-case in our sigrok-test repo to go along with it.

 

fx2grok-tiny: an 11x11mm FX2 based Open Hardware logic analyzer for use with sigrok

$
0
0

This blog post won't be about the sigrok software for a change. Instead, it is meant to introduce a little hobby project for a tiny DIY FX2 based Open Hardware logic analyzer (that you can use with sigrok, of course): fx2grok-tiny.

The original plan for a tiny logic analyzer was devised by me (Uwe Hermann) in 2012, but being a sigrok developer, I've concentrated on various more important tasks, features, and bugs in the sigrok stack for quite a while. Near the end of 2017 I finally got around to finishing this project.

So the plan was to make an 8-channel, 24MHz FX2 based logic analyzer that is
* Open Hardware (CC-BY-SA 4.0 license for schematics and layout),
* uses Open Source EDA tools (KiCad),
* uses Open Source software on the PC side (libsigrok, PulseView),
* uses Open Source firmware on the FX2 microcontroller (sigrok-firmware-fx2lafw),
* and is as tiny as possible

As you probably know, there are tons of (larger) FX2 based LAs around already, so there's no point to make just yet another one of those. What's unique about this one is that it's completely open, and it may just be the smallest logic analyzer on the planet (don't quote me on that, though).

The original plan was to fit all required components in a 13x13mm PCB, but the final device ended up being even a little smaller, 11x11mm. The limiting factors are the Cypress CY7C68013A (a.k.a. FX2) chip itself (QFN-56, 8x8mm) plus the micro USB connector and 24MHz crystal, so getting it even smaller than 11x11mm is not easily possible.

I'm using a 2-layer PCB (components on both sides), 5 mil traces, 6 mil trace clearance, 8 mil via drill hole diameter, 5 mil annular ring. The PCB has to be 0.8mm thick so that the 5x2 1.27mm PCB edge connector will fit. All passives are 0402.

The design intentionally sacrifices a lot of things (no EEPROM, no input protection, various Cypress hardware recommendations are ignored) in order to be able to make it very tiny.

This project was a lot of fun for me. Being a software guy, I learned quite a bit about creating schematics and doing PCB layouts (in KiCad), PCB manufacturing details, solder stencil and solder oven usage, and lots more. I also learned that when you screw up the FX2 footprint, you'll get magic smoke (that's why the final version is 0.2, I had to completely reroute the whole PCB after fixing the footprint).

If you're wondering whether you can order fx2grok-tiny devices or bare PCBs, the answer is no. This is a purely non-commercial hobby project by a single guy. You can, however, make your own devices since everything is open and documented.

As an "enclosure" of sorts you can simply use e.g. transparent heatshrink tube. I'm also working on a tiny 3D printable enclosure, we'll see how that goes.

As for the probe cables there are various options as well. You can use a nice Samtec cable or just solder a DIY cable out of generic ribbon cable. In both cases, you'll have to use a crimp tool so you can later attach the usual logic analyzer grippers.

The fx2grok wiki page has a lot more details and photos about the device (including a BOM, you can get pretty much all required parts from e.g. Digikey) and how to assemble it.

You can also get the whole KiCad project, schematics, layout, and Gerber files via git:

 $ git clone git://sigrok.org/fx2grok

There's also a blue LED on the PCB for the obligatory blinkenlights, btw. It'll blink during a logic analyzer acquisition and just light up constantly in idle.

For the future I'm looking into maybe creating an even smaller FX2 based logic analyzer named fx2grok-bga, which employs (you guessed it) the BGA version of the FX2. The BGA chip is 5x5mm (instead of 8x8mm for the QFN version). Soldering this is going to be a bit more tricky though, we'll see how it goes.

There are also other fx2grok variants being worked on, e.g. fx2grok-flat by Piotr Esden-Tempski, more about that in another blog post.

 

sigrok at 34C3

$
0
0

If you're at this year's CCC Congress (34C3) December 27-30 in Leipzig, Germany, please feel free to drop by at the sigrok assembly.

We'll be there all 4 days of the congress (with the usual set of random test & measurement devices) for hackathons and random development discussions.

We're always happy to chat with users and contributors, hear about your feature requests and ideas for improvements etc. You can also bring your own devices, chances are we might be able to write drivers for some of the "simpler" devices right then and there, or at least grab some relevant information (photos, lsusb, possibly teardowns if you want).

This post will be updated with the exact location of the assembly as soon as we know the details.

New protocol decoder: morse

$
0
0

libsigrokdecode yet again gained support for another protocol decoder: morse.

This decodes the well-known Morse code signals (recorded via oscilloscope or logic analyzer).

Have a look at the source code and/or the example file in the sigrok-dumps repo for details.

The decoder was contributed by Christoph Rackwitz, thanks a lot!

 

sigrok-firmware-fx2lafw 0.1.6 released!

$
0
0

We're happy to announce the sigrok-firmware-fx2lafw 0.1.6 release. This is an open-source firmware that allows you to use almost any of the popular Cypress FX2 based devices as logic analyzers. It also supports a number of FX2 based USB oscilloscopes/MSOs like the Hantek 6022BE/BL or the Sainsmart DDS120.

The source code and pre-built firmware files are available from the usual place:

This is a bugfix release (no new device support has been added), mainly fixing an issue that could cause non-working and/or prematurely aborted acquisitions with FX2 based logic analyzers on some systems (bug #655).

Additionally, FX2 based logic analyzers will now toggle pin PA1 during acquisition, and keep it high while idle. On fx2grok-tiny and fx2grok-flat devices there's a LED connected to PA1. Thus, those devices will visually indicate whether a firmware has been uploaded (LED will light up and stay like that while the device is idle). During any acquisition the LED will blink.

The NEWS file contains some more details.

 

New protocol decoder: graycode

libsigrokdecode 0.5.1 released!

$
0
0

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

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

The following new protocol decoders are now available:

  • ac97: Audio and modem control for PC systems
  • ds243x: Maxim DS243x series 1-Wire EEPROM protocol
  • maple_bus: Maple bus peripheral protocol for SEGA Dreamcast
  • morse: Demodulated morse code protocol
  • graycode: Accumulate rotary encoder increments, timing statistics
  • counter: Count number of edges
  • sda2506: Serial nonvolatile 1-Kbit EEPROM
  • rc_encode: PT2262/HX2262/SC5262 remote control encoder protocol

In total, we now support 85 different protocol decoders. If you're working on additional PDs, please send patches our way!

One of the more important changes to the backend is that the code has been changed to allow for multithreaded usage of the library (i.e., clients such as PulseView can now call libsigrokdecode API functions from different threads without any issues).

All protocol decoders shipped with libsigrokdecode have now been converted to the new PDv3 API that was introduced in libsigrokdecode 0.5.0. This usually means simpler and easier to understand protocol decoders as well as (quite massive, in some cases) performance improvements.

As mentioned in the 0.5.0 release notes, support for the old PD API has now been dropped, as all PDs have been converted to the PDv3 API. If you have any out-of-tree protocol decoders, please consider contributing them to mainline libsigrokdecode to benefit from such updates automatically. If that's not possible or desirable for some reasons, you can usually update your local PDs to the PDv3 API relatively easily (check the wiki page, or any of the 85 already converted PDs, for details).

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


MASTECH MS8250D support

$
0
0

libsigrok now supports the MASTECH MS8250D multimeter.

This is a USB-based, 6600 counts digital multimeter. It's connected to the PC via a Silicon Labs CP2102 USB to serial converter.

It uses an 18-byte custom protocol, the actual measurement values basically represent the 7-segment display(s), with some additional boolean flags in the remaining bytes.

The libsigrok driver for this DMM uses the common serial-dmm infrastructure, hooking up a newly written parser for the MS8250D protocol.

This driver has been contributed by Stefan Mandl, thanks a lot!

New protocol decoder: ac97

Intronix Logicport LA1034 input file format support

$
0
0

libsigrok now supports a new input format, the native file format used by the Intronix Logicport LA1034 logic analyzer.

These "LogicPort File" (*.lpf) files are created by the Intronix LogicPort Windows-only vendor software and you can now import them into sigrok frontends, e.g. sigrok-cli or PulseView:

  $ sigrok-cli -i foo.lpf -I logicport[...]

The code was contributed by Gerhard Sittig, thanks a lot!

 

Hantek 4032L support

$
0
0

libsigrok now supports the Hantek 4032L logic analyzer hardware.

This is a USB-based, 32-channel logic analyzer with a samplerate of up to 400MHz (150MHz bandwidth according to vendor), with 2Gbit internal memory (DDR2 RAM, 64Msamples x 32).

It supports configuring two different voltage threshold ranges for the two sets of channels (A0-A15, B0-B15), between -6V and 6V.

It also supports an external clock mode.

Teardown photos of the device are available in the sigrok wiki, as usual.

The driver was contributed by Andreas Zschunke, with various fixes and improvements by Andrej Valek, thanks a lot!

 

 

New protocol decoder: sda2506

$
0
0

lisigrokdecode has recently gained support for yet another protocol decoder: sda2506.

This PD decodes the Siemens SDA 2506-5 serial nonvolatile 1-Kbit EEPROM protocol.

This is a non-standard EEPROM (i.e., not one of the common I²C based 24xx series EEPROMs).

As usual there are a few example files in the sigrok-dumps repo and some test-cases in sigrok-test.

The decoder was contributed by Max Weller, thanks a lot!

 

libsigrokdecode 0.5.2 released!

$
0
0

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

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

The following new protocol decoders are now available:

  • mcs48: Intel MCS-48 external memory access protocol
  • st7735: Sitronix ST7735 TFT controller protocol
  • atsha204a: Microchip ATSHA204A CryptoAuthentication device
  • cfp: 100 Gigabit C form-factor pluggable (CFP) protocol
  • jtag_ejtag: MIPS EJTAG protocol
  • swim: STM8 Single Wire Interface Module (SWIM) protocol
  • cec: HDMI Consumer Electronics Control (CEC) protocol
  • miller: Miller encoding protocol
  • ook: On-off keying protocol
  • ook_oregon: Oregon Scientific weather sensor protocol
  • ook_vis: OOK visualisation in various formats

In total, we now support 93 different protocol decoders. If you're working on additional PDs, please send patches our way!

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

libsigrok 0.5.1 released!

$
0
0

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

This is a "minor" release that doesn't change or remove any existing 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: DreamSourceLab DSLogic Basic/Plus, Hantek 4032L, IPDBG (ipdbg.org FPGA IP debugger), Meilhaus Logian-16L, Saleae Logic Pro 16, ZEROPLUS Logic Cube LAP-C (16128+) / LAP-16032U
  • Oscilloscopes: Agilent MSO7034A, Hantek DSO-2250, Rigol DS4000 series, Siglent SDS1000/SDS2000 series
  • Programmable power supplies: GW Instek GPD series, HP 6631B/66332A/6633B/6634B, Korad KD3005P, RDTech DPS/DPH series, Rigol DP711/DP712, RND KA3005P, Tenma 72-2540
  • Electronic loads: ZKETECH EBD-USB
  • Multimeters: EEVblog 121GW, Fluke 45, HP 3478A, MASTECH MS8250D, Metex M-3860M, PeakTech 4390A, SparkFun 70C, Victor DMMs with Mini-USB connector, Voltcraft VC-96

Pretty much every existing hardware driver has also received numerous fixes and improvements.

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

There are some new API calls now, you can read up all the details in the API docs.

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


sigrok-cli 0.7.1 released!

$
0
0

We're happy to announce the release of sigrok-cli 0.7.1. Tarballs and binaries are available from the Downloads page, as usual.

In addition to the usual nightly binaries for Linux (AppImage) and Windows (.exe installer), we now also offer a stable set of binaries of this 0.7.1 sigrok-cli release. These binaries will stay unchanged (for easier debugging and problem analysis, if needed). They include the currently released versions of the required libraries/components: libserialport 0.1.1, libsigrok 0.5.1, libsigrokdecode 0.5.2, sigrok-firmware-fx2lafw 0.1.6.

This is a minor release with small additions (e.g. --protocol-decoder-samplenum), documentation fixes, performance improvements, random bugfixes, and a few other improvements.

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

 

PulseView 0.4.1 released!

$
0
0

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

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

It requires the recently released libsigrok 0.5.1 and libsigrokdecode 0.5.2.

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:

  • One of the most-often requested features has been implemented: Snapping cursors to signal edges. The current implementation snaps to edges of a specific channel if the mouse cursor is inside that channel, and it snaps to edges of any channel otherwise. When moving both cursors at the same time, only the left cursor will snap, while the overall distance between the cursors stays the same (which allows for easy measurements/comparisons).
  • There's a bunch of new command-line switches such as --driver or --dont-scan, as well as option support for --input-file, see manpage for details. You can now also load multiple files at once when starting Pulseview, e.g. via "pulseview *.sr" or the like.
  • There's support for converting analog channels to digital/logic channels now, either via a threshold or a schmitt-trigger method. This allows feeding the converted channels to protocol decoders, which was not possible before.
  • PulseView now has theme support and ships with the current (default) "light" theme and two new "dark"-style themes which some people might prefer.
  • There have been a bunch of UI improvements, such as showing a tooltip for the cursor measurement values if needed, logic high areas are now colored differently for clearer visualization, there's a convenience mouse hover vertical line now, you can enable/disable many channels more easily via buttons, and lots more.
  • Protocol decoder annotations can now be exported in a user-configurable format, either all annotations, or only those of a certain annotation row, or only those between the cursors, etc.
  • Protocol decoder channel name auto-mapping has been improved, so it'll probably match your desired channel setup more often without requiring manual channel assignment.

There's also a new PulseView HTML manual as well as a PDF manual with a bunch of explanations and help. If you're missing something in there, please let us know and/or provide patches!

Additionally, there have been quite a few performance and memory usage improvements. E.g. files should load quite a bit faster now, some painting operations are faster as well, various memory leaks and inefficiencies have been fixed, and so on.

Of course there have also been a huge amount of fixes for some rather annoying bugs (e.g. UI lag when changing decoder options/channels) and also many smaller ones. A bunch of crash conditions on various OSes have also been fixed.

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

 

sigrok at 35C3

$
0
0

If you're at this year's CCC Congress (35C3) December 27-30 in Leipzig, Germany, please feel free to drop by at the sigrok assembly.

We'll be there all 4 days of the congress (with the usual set of random test & measurement devices) for hackathons and random development discussions.

We're always happy to chat with users and contributors, hear about your feature requests and ideas for improvements etc. You can also bring your own devices, chances are we might be able to write drivers for some of the "simpler" devices right then and there, or at least grab some relevant information (photos, lsusb, possibly teardowns if you want).

There will also be an Introduction to sigrok lightning talk (2018-12-29, 12:05–12:10, Borg) by Soeren Apel (abraxa on IRC), make sure to check it out.

Assembly location: I2, Exhibition Hall 2, Level 0.

Introduction to sigrok lightning talk @ 35C3

$
0
0

As mentioned previously, there was a short "Introduction to sigrok" lightning talk by Soeren Apel at the 35C3 congress in Leipzig, Germany recently.

The video of the talk is now up on various platforms:

Have fun!

PulseView now has session setup save/restore support

$
0
0

PulseView recently gained initial support for a feature that has been requested quite a bit in the past: saving and restoring a specific session setup.

There was support for restoring (most of) the state from the last PulseView run already; it would re-open your last-used *.sr file, the decoders that were used, and so on.

However, in the current nightly builds you can now also save a specific session to a new file type with the .pvs extension, and restore settings from that file at a later point in time.

For example, if you're working with a foo.sr file and a bar.sr file, different settings and decoders in each, you can now also save a foo.pvs and/or bar.pvs file, and restore those specific session setups a few weeks later, without having to remember the exact setup, without having to click a whole bunch of times to restore all decoders and so on...

Feedback (e.g. on IRC, #sigrok on Freenode) and bug reports for this feature are welcome, as always.

Viewing all 222 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>