Sigrok: Freier Signalanalysator

Sigrok ist ein freier Signalanalysator der mit vielen unterschiedlichen Geräten zusammenarbeitet. So können Logikanalysatoren, Oszilloskope, Multimeter und viele weitere Geräte angesprochen und Messwerte ausgelesen werden.

Allgemein

Bei der Entwicklung von sigrok wurde darauf geachtet, dass die grundlegenden Funktionen wiederverwendbar sind. So bilden die Bibliotheken libsigrok und die libsigrokdecode die Basis auf der alle anderen Komponenten aufbauen. Erstere stellt einheitliche Schnittstellen für den Zugriff auf die unterschiedlichste Hardware zur Verfügung. So werden Beispielsweise Logikanalysatoren, Oszilloskope, Multimeter und viele weitere Geräte unterstützt. Auch das Lesen und Schreiben der Daten aus bzw. in unterschiedlichen Formaten wird mit ihr realisiert. Neben Formaten wie der sigrok session, Value Change Dumps und Gnuplot Daten werden weitere Im- und Exportformate bereitgestellt.

Verwendet werden können die beiden Bibliotheken über verschiedene Programme. Über das Konsolen-Programm kann zum jetzigen Zeitpunkt auf die meisten der über die Bibliotheken bereitgestellten Funktionen zugegriffen werden. Jedoch ist die Bedienung teilweise nicht intuitiv und war in unseren Tests relativ umständlich. Zusätzlich stehen natürlich auch grafische Benutzeroberflächen zur Verfügung. Ursprünglich gab es einen Client der auf GTK und einen zweiten der auf Qt setzte. Die Entwicklung dieser wurde jedoch zu Gunsten von einer neuen Oberfläche mit dem Namen PulseView eingestellt. Bei PulseView wird auch auf Qt gesetzt. In unserem Test mussten wird jedoch feststellen, dass die Aufzeichnung von Signalen zwar schon Funktioniert und das Ergebnis auch richtig angezeigt wird, jedoch stehen Funktionen wie der Protokolldecoder noch nicht zur Verfügung. Da sich PulseView jedoch noch in einem sehr frühen Stadium seiner Entwicklung befindet, Anfang diesen Jahres wurde Version 0.1 veröffentlicht, bleibt zu offen, dass die Funktionen in naher Zukunft komfortabel zur Verfügung stehen.

Die Decoder sind in Python 3 umgesetzt und können so leicht erweitert und weiterentwickelt werden. Eine weitere, wie wir finden sehr interessante Funktion, ist die Mehrstufigkeit der Decoder. Anwendung findet dies zum Beispiel wenn der erste Decoder das eigentliche I²C/TWI oder UART Signal aufbereitet und die Daten bereitstellt, welche durch einen weiteren Decoder weiter ausgewertet werden. So würden sich zum Beispiel Steuerbefehle für ein Display leichter auswerten lassen.

Neben der eigentlichen Anwendungen gibt es auch eine Firmware in verschiedenen Ausführungen mit der sich ein Logikanalysator entweder selbst bauen oder vorhandene Hardware in einen umwandeln lässt. Aufgrund fehlender Hardware konnten wir dies jedoch leider nicht testen, die Dokumentation sieht jedoch sehr vielversprechend aus.

Fazit

Momentan ist der Aufwand für die Einarbeitung noch sehr hoch und die Benutzeroberfläche PulseView, welche an dieser Situation etwas andern könnte, noch in einem sehr frühen Entwicklungsstadium. Auf der anderen Seite bietet die Bibliothek libsigrok Möglichkeiten die unterschiedlichsten Geräte anzusprechen und die erfassten Daten dieser Auszuwerten. Die verfügbaren Decoder decken auch schon ein recht breites Spektrum an verschiedenen Protokollen ab.

Wir finden das sich das Programm momentan noch nicht für Anfänger eignet, jedoch viel Potenzial hat. Ausprobieren lohnt sich auf jeden Fall und von Zeit zu Zeit lohnt sich auch ein Blick auf die Webseite, auf der in regelmäßigen Abständen Neuigkeiten und Verbesserungen angekündigt werden. Die Software könnte von zusätzlicher Unterstützung aus der Open Source Gemeinde weiter profitieren.

Screenshots

Verwandte Artikel