LINUX.ORG.RU

Большое обновление в проекте sigrok

 , ,


5

3

Команда разработчиков sigrok рада представить очередное крупное обновление всех компонентов проекта: libsigrok 0.5.0, libsigrokdecode 0.5.0, sigrok-firmware-fx2lafw 0.1.5, sigrok-cli 0.7.0 и PulseView 0.4.0.

Целью проекта sigrok является создание модульного переносимого кросс-платформенного СПО для захвата и анализа сигналов, поддерживающего большое количество различных устройств (логических анализаторов, осциллографов, мультиметров и т. п.). Основная лицензия проекта — GPL версии 3 или выше.

Релиз включает в себя множество обновлений, связанных с поддержкой новых устройств, новых декодеров различных протоколов, значительные усовершенствования графического интерфейса и большое количество других улучшений и исправлений.

libsigrok

Поддержка новых устройств в этом выпуске библиотеки:

  • Логические анализаторы: CWAV USBee ZX, DreamSourceLab DSLogic and DSLogic Pro, FTDI LA (простой, базовый логический анализатор с использованием чипов FTDI напрямую).
  • Осциллографы: Hameg HMO3524, Hantek 6022BE, LeCroy серии X-Stream, Rigol DS1074Z Plus, Rigol DS1104Z Plus, Rigol серии MSO2000A, Rocktech BM102, Rohde&Schwarz HMO 1002, Sainsmart DDS120.
  • Логические анализаторы / Осциллографы (но не MSO): Hantek 6022BL.
  • Программируемые источники питания: Agilent N5763A, HP 6633A, Rohde&Schwarz HMC8043.
  • Электронные нагрузки: Arachnid Labs Re:load Pro.
  • Мультиметры: Agilent U1241C/U1242C, Fluke 289, HP 3457A, Keysight U1281/U1282, Metrix MX56C, PeakTech 3330.
  • Шумомеры: PCE PCE-322A.
  • LCR-метры: PeakTech 2170.
  • Генераторы сигналов: серия Rohde&Schwarz SME0x.

Практически каждый существующий драйвер подвергся многочисленным исправлениям и улучшениям.

Формат файла сессии sigrok (.sr) теперь сохраняет аналоговые данные, в дополнение к цифровым. Также он обзавёлся зарегистрированным в IANA официальным MIME-типом: application/vnd.sigrok.session.

Осуществлено исправление множества багов, касающихся переносимости, правок документации, улучшений в системе сборки и так далее.

Значительные изменения в API, подробности можете узнать в соотв. документации.

Более подробный список изменений предоставлен в файле NEWS, а также в истории коммитов.

libsigrokdecode

В этом выпуске добавлено 17 новых декодеров протоколов:

  • ade77xx: протокол микросхемы для многофазного измерения и учёта электроэнергии.
  • adf435x: широкополосный синтезатор с встроенным управляемым осциллятором (VCO).
  • aud: протокол Renesas/Hitachi Advanced User Debugger (AUD).
  • avr_pdi: проприетарный интерфейс Atmel для микроконтроллеров ATxmega.
  • dali: протокол управления освещением DALI.
  • dsi: протокол управления освещением DSI.
  • dmx512: протокол управления освещением.
  • eeprom93xx: протокол Microwire для EEPROM серии 93xx.
  • em4305: протокол RFID EM4205/EM4305 100-150кГц.
  • gpib: протокол IEEE-488 GPIB / HPIB.
  • iec: протокол управления шиной Commodore serial IEEE-488 (IEC).
  • microwire: трёхпроводная синхронная последовательная шина с полудуплексом.
  • ps2: интерфейс подключение компьютерных мышей и клавиатур PS/2.
  • rgb_led_ws281x: протокол светодиодных RGB-лент (WS281x).
  • ssi32 протокол Synchronous Serial Interface (32bit).
  • t55xx протокол T55xx 100-150kHz RFID.
  • wiegand интерфейс Wiegand для систем контроля доступа.

Таким образом, общее количество декодеров для поддерживаемых протоколов доведено до 77. Ещё несколько находятся в разработке в данный момент, их появление ожидается в следующих выпусках. Проект имеет стабильный приток декодеров от сторонних разработчиков, что не может не радовать. Если вы работаете над разбором других протоколов и реализацией декодера для них — смело направляйте проекту свои патчи.

Этот выпуск добавляет поддержку нового API декодеров протоколов (PD v3), основанного на запросах. Среди его особенностей:

  • Повышение читаемости исходных текстов декодеров.
  • Значительный прирост производительности. В отдельных случаях было зафиксировано десятикратное ускорение работы основанных на нём декодеров (зависит от специфики протокола, объёма данных, количества фронтов в сигналах, оверсемплинга).
  • Поддержка указания (предполагаемого) начального состояния канала перед тем, как был декодирован первый отсчёт. Допустимые значения уровней: 0/низкий, 1/высокий, либо «использовать значение первого отсчёта». Это очень полезно для декодеров, ожидающих смену фронта.

Большинство декодеров уже переписано на PD API v3. На данный момент реализована совместная поддержка обеих версий API (2 и 3); она сохранится до полного переписывания всех декодеров на новую версию интерфейса, после чего поддержка PD API v2 будет прекращена.

Подробности: файл NEWS, история коммитов.

sigrok-firmware-fx2lafw

В данном выпуске представлена открытая FX2-прошивка для USB-осциллографа/анализатора Hantek 6022BL (подобная, но не совсем совместимая с той, которая применяется для Hantek 6022BE).

Подробности: файл NEWS, история коммитов.

sigrok-cli

Утилита командной строки также получила порцию улучшений, среди которых:

  • Новый параметр -L|--list-supported для отображения перечня поддерживаемых драйверов, модулей ввода/вывода и декодеров (ранее эта информация отображалась в -V|--version).
  • При захвате появилась поддержка одновременного запуска нескольких декодеров разных уровней, с помощью параметра -P|--protocol-decoders, указанного несколько раз; старая опция -S более не требуется и была удалена.

Подробности: файл NEWS, история коммитов.

PulseView

Огромное количество изменений коснулось и основного графического интерфейса проекта — PulseView (Qt5).

Например, появилась возможность работы с несколькими сеансами и областями просмотра одновременно (скриншот):

  • Сеансы являют собою отдельные экземпляры файлов или устройств. Каждый сеанс представлен в виде вкладки в главном окне PulseView.
  • Области просмотра — отдельные представления данных в рамках текущего сеанса. Например, разные области просмотра в текущем сеансе могут иметь разные уровни увеличения, могут перемещаться на различные позиции и т. п. Каждая область просмотра представляет собой стыкуемое окно в рамках вкладки своего сеанса.
  • Стыкуемые области просмотра данных могут перемещаться, изменять размер и извлекаться в отдельные окна.
  • Сеансы и области просмотра частично сохраняются и восстанавливаются при выходе/запуске PulseView. На данный момент сохраняется не вся информация (например, про декодеры).

Добавлены и/или усовершенствованы различные возможности:

  • Поддержка сохранения аналоговых данных в файлы .sr.
  • Поддержка отображения точек выборки на диаграммах.
  • Различные усовершенствования в интерфейсе и эргономике.
  • Усовершенствования в отображении аналоговых диаграмм.
  • Появилось меню глобальных настроек с различными опциями поведения PulseView.

Подробности: файл NEWS, история коммитов.

Как можно заметить, список TODO неиссякаем; проект постоянно стремится увеличивать количество поддерживаемых устройств, модулей ввода/вывода, декодеров протоколов и т. д. Ваш вклад всегда приветствуется!

Не обошлось и без некоторого количества регрессий, известных багов и недостающего функционала. Команда проекта уже работает над следующим выпуском, устраняющим ошибки. Если вы обнаружите ошибку, о которой ещё никто не сообщил — пожалуйста, зарегистрируйте её в Bugzilla.

Команда проекта выражает огромную благодарность всем, кто внёс свой вклад в развитие проекта sigrok. Этот релиз не состоялся бы без помощи и поддержки большого числа сторонних разработчиков.

>>> Подробности

★★

Проверено: Shaman007 ()

Осциллографы: Hameg HMO3524, Hantek 6022BE, LeCroy серии X-Stream, Rigol DS1074Z Plus, Rigol DS1104Z Plus, Rigol серии MSO2000A, Rocktech BM102, Rohde&Schwarz HMO 1002, Sainsmart DDS120.

NICE!!! затестирую!

wieker ★★ ()
Ответ на: комментарий от DR_SL

у меня были проблемы в экспорте импорте в VCD из GtkWave в Sigrok

Если что, на freenode есть очень живой официальный канал #sigrok со всеми основными разработчиками, так что можно описать проблему там, а далее посоветуют — либо непосредственно решение подскажут, либо добавят соотв. запись в багтрекер.

TwisteR ★★ ()
Ответ на: комментарий от RazrFalcon

Нету зеркала на гитхабе?!

Есть. Кроме того, у многих разработчиков есть собственные репозитории, где ведётся разработка и откуда изменения перетекают в официальные репы. Найти такие можно в поиске, отсортировав по дате обновления.

TwisteR ★★ ()

Господа, а посоветуйте какой-нибудь не шибко дорогой USB-недоосциллограф-перемультиметр, который можно было бы использовать в паре с компьютером в качестве дисплея и анализатора (например, с помощью сабжа)? Если s/компьютером/телефоном на Android/ — будет вообще замечательно.

intelfx ★★★★★ ()
Ответ на: комментарий от intelfx

Слишком размытые требования. Что конкретно нужно?

  • Автономный прибор (со своими органами управления и экраном) или USB-приставку?
  • Узнать форму сигнала (осцил) или получить набор значений с заданным интервалом (мультиметр)?
  • Если форма сигнала, то какого? Цифрового, аналогового, комбо?
  • Регистрация данных по «кадрам» (триггер+записанный буфер) или в непрерывном режиме?

Это лишь базовые вопросы, которые помогут определить тип искомого оборудования. А дальше пойдут расширенные вопросы — количество каналов, частота дискретизации, разрядность, объём встроенной памяти и т.п.

Я бы ориентировался на список уже поддерживаемых осциллографов/приставок для ПК. И затем уже выбирал бы согласно потребностям и бюджету.

TwisteR ★★ ()
Ответ на: комментарий от TwisteR

Слишком размытые требования. Что конкретно нужно?

«Я ненастоящий радиотехник» (т. е. сильно начинающий). Нужно дебагать всякие простенькие учебные девайсы — и аналоговые сигналы, и цифровые (с декодированием, если это применимо).

И я не знаю, что мне может пригодиться завтра, поэтому разыскивается как можно более универсальный девайс (а-ля «jack of all trades, master of none»).

Автономный прибор (со своими органами управления и экраном) или USB-приставку?

USB-приставку, если это поможет ей быть дешевле.

Узнать форму сигнала (осцил) или получить набор значений с заданным интервалом (мультиметр)?

Мм, а есть разница между «узнать форму сигнала» и «получить набор значений с заданным (малым) интервалом»? Тогда, наверное, было бы неплохо узнать про примеры того и другого.

Если форма сигнала, то какого? Цифрового, аналогового, комбо?

Это имеет значение? Или под получением цифрового сигнала понимается логический анализатор? Тогда что-либо наиболее универсальное.

Регистрация данных по «кадрам» (триггер+записанный буфер) или в непрерывном режиме?

Наверное, второе (опять же, что-либо наиболее универсальное).

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Можешь тот же Hantek 6022BL посмотреть. Но под винду софт под него совсем плохой. Sigrok же только ещё сегодня посмотрю. Для себя я свой писал, осцил не очень хорошо работает на частотах больше 10 мегагерц, но для простых задач вполне достаточен.

Другое дело, что можно дешевле найти с подобной функциональностью. Если же хочется чего-то покруче, то нужно смотреть прибор с fpga.

wieker ★★ ()
Ответ на: комментарий от intelfx

В таком случае присоединяюсь к совету wieker, посмотри в сторону Hantek 6022BL. Это двухканальный комбинированный осциллограф+лог. анализатор. Обращаю внимание на тот факт, что это не Mixed Signal Scope (MSO), т.е. в один момент времени он может быть либо осциллографом (и записывать аналоговые сигналы на двух каналах), либо 8-/16-канальным лог. анализатором (на данный момент в sigrok поддерживает лишь 8 каналов в этом приборе). На корпусе есть переключатель режима работы.

В любом из режимов поддерживается анализ записанных данных любым набором декодеров. Совсем недавно в PulseView был добавлен код, позволяющий «оцифровать» аналоговые сигналы, применяя для выделения фронтов логику, подобную триггеру Шмитта. Пока только с фиксированными пороговыми значениями (10%/90%, если не ошибаюсь), в будущем пороги можно будет менять.

TwisteR ★★ ()
Ответ на: комментарий от olibjerd

До чего техника дошла.

Улавливаю нотки сарказма в этой фразе :) Если я не ошибся, то парирую его следующим аргументом: проект зарождался как софт для управления исключительно логическими анализаторами. Возможность работы с аналоговыми данными появилась гораздо позже, в ответ на появление значительного количества доступных широким массам USB-осциллографов.

От себя замечу, что обработка аналоговых данных явно прикручена сбоку и не очень вписывается в стройную архитектуру прочих компонентов. Мне кажется, оцифровку следовало-бы производить в libsigrok, а не в графическом интерфейсе (pulseview), как это сделано сейчас. Не очень понятно, например, как получить эту оцифровку в консольной утилите, sigrok-cli...

TwisteR ★★ ()

Ваще крутые чуваки. Не было бы у меня доступа в лабу, заставленную всякими анализаторами под потолок, непременно взял бы что-нибудь из их списка поддерживаемого.

zabbal ()
Ответ на: комментарий от TwisteR

Я делал свой видеозахват на основе их прошивки. Что-то у меня не получилось в свое время с ними связаться через IRC, поэтому до меня далеко не сразу дошло, что для работы под оффтопиком они используют пропатченную версию libusb.

Rupricht ()
Ответ на: комментарий от Rupricht

Ого, крутой проект! И отличное применение существующей прошивки :)

По поводу libusb, у этого проекта был серьёзный кризис в своё время. Возможно, ситуация с портом под Windows — его следствие. Рекомендую посмотреть это видео. Там информация из первых рук о причинах того кризиса и демонстрация того, как порой непросто рулить крупными открытыми проектами...

TwisteR ★★ ()
Ответ на: комментарий от intelfx

Для совсем начинающих - отлаживать там всякие усилители - бери dso 150 с Али - там и прошивки опенсорсные и стоит недорогоа. Для более серьезных дел - бери rigol

anonymous ()
Ответ на: комментарий от intelfx

«Я ненастоящий радиотехник» (т. е. сильно начинающий). Нужно дебагать всякие простенькие учебные девайсы — и аналоговые сигналы, и цифровые (с декодированием, если это применимо).

Приставки и всякие карманного формата - это игрушки. Я свой DSO203 подарил ребёнку коллеги, осваивающего мир радиоэлектроники. Не пожлобься, купи полноформатный осциллограф, с ручкми и крутилками - это важно! Можно б/у аналоговый.

Декодеры протокола навороченные цифровые осциллографы умеют, но дешевле и удобней китайская 10-баксовая подделка Saleae Logic.

mv ★★★★★ ()

Блин, афтор, а кто должен писать, что эа херня консольная???

Поставил сдуру, и тут же снес ее нахрен. Не представляю, как вообще можно пользоваться осциллографом в консоли.

Еще одна команда замшелых мазохистов.

chukcha ★★ ()
Ответ на: комментарий от chukcha

Уважаемый, добрая треть новости посвещена описанию изменений в графическом интерфейсе проекта (одним из, в вики есть другие), даже скриншот прилинкован. Читать нужно внимательнее :)

TwisteR ★★ ()
Последнее исправление: TwisteR (всего исправлений: 2)
Ответ на: комментарий от chukcha

Так это пакет с библиотекой+декодерами+консольным клиентом. Наиболее активно развиваемый графический клиент называется pulseview, который, скорее всего, будет в отдельном, одноимённом пакете.

Вот список остальных GUI: https://sigrok.org/wiki/GUI

И речь не в замшелом мазахизме. Это типичная модульная архитектура, в полном соответствии с unix-философией.

TwisteR ★★ ()
Последнее исправление: TwisteR (всего исправлений: 3)
Ответ на: комментарий от TwisteR

Ну да, был там pulseview, но он установился по зависимостям, т.е. вел себя не как основное приложение, а вспомогательное.

И естественно, раз проект называется 'sigrok', то я запускал именно его, а не какой-то там pulseview.

А замшелостью я называл не структуру, а «консольность».

Фиг с ним, попробую еще раз его установить.

chukcha ★★ ()
Ответ на: комментарий от TwisteR

Удивительно, но этот pulseview взлетел в графике! :)

И все же, что за дурацкая привычка разработчиков называть проект одним термином, а запускаемый файл - совсем другим?

Итак, подключил к компу свой IDS220, запустил pulseview, но в списке его устройств его не нашлось, сканирование устройств тоже ничего не дало.

Наверное, так и должно быть, поскольку даже на офсайте среди поддерживаемых им устройств IDS220 отсутствует, только IDS205.

Опять сносить придется... :(

chukcha ★★ ()
Ответ на: комментарий от chukcha

Так это и есть воспомогательное. А в отдельном пакете оно находится по целому ряду причин:

  • Пишется отдельным автором
  • Тянет за собой отнюдь не легковесный Qt5
  • Это лишь один из пяти существующих GUI. Там есть дифференциация как по тулкитам, так и по предназначениям.

Так что нет совершенно никаких предпосылок к выделению его в разряд основного приложения проекта.

Кроме того, именно благодаря такой архитектуре sigrok может комфортно себя чувствовать где угодно. Я, например, использовал его на openwrt-роутере, к которому был подключен лог. анализатор по USB. Всё это находилось в весьма удалённом и не удобном для присутствия человека месте. Отладка в полевых условиях. А я принимал уже декодированные результаты дома, попивая чайок :)

TwisteR ★★ ()
Последнее исправление: TwisteR (всего исправлений: 1)
Ответ на: комментарий от TwisteR

Выходит, получилось, как обычно у линуксоидов получается - замахнулись на мега-проект, а о конечном пользователе забыли.

Тоже самое получилось в CUPS и NUT - нагородили мощнейшую сетевую поддержку, а чтобы запустить всего один принтер или UPS, так обычно целая проблема.

В-общем, и от 'sigrok' я не получил ничего, кроме потерянного времени.

chukcha ★★ ()
Ответ на: комментарий от chukcha

В-общем, и от 'sigrok' я не получил ничего, кроме потерянного времени.

О том, что на данный момент не поддерживается ни единого устройства от Instrustar, говорят следующие факторы:

  • их упоминания нет в списке поддерживаемых устройств;
  • в wiki проекта некоторые модели всё-же представлены, найти их можно через поиск. Однако совершенно чётко отмечен их статус: один в разработке, за второй пока ещё даже не брались;
  • конкретно твоего устройства нет ни в первом списке, ни в вики вообще, т.е. его поддержка даже не планируется. Тут возможны варианты — либо стоимость добавления его в проект очень высока (например, трудоёмкий реверс), либо разработчики о нём не в курсе, либо ни у кого из них этого устройства нет физически.

Какие претензии к проекту при такой степени детализации состояния поддержки? И кто виноват в потерянном времени? :)

TwisteR ★★ ()
Ответ на: комментарий от intelfx

Если планируешь и дальше заниматься электроникой и есть средства, то нужно брать нормальный осциллограф. Смотри в сторону siglent sds1000X sds1000X-E серии (только учти, у свежих продуктов есть некоторые баги и недочёты в прошивке, смотри на форуме eevblog), rigol 1054z (хакается в 100 МГц), ну или аналоговый, если живёшь во дворце.

ramon13666 ★★★ ()