USB Watchdog (как его готовить?)
Китаец прислал кучу вотчдогов, скинул на почту ПО.
в ПО куча малваров, но суть не в этом.
Запускаю ПО, жму кнопку Reset — реле щелкает, ага значит работает.
ПО отсчитывает секунды ватчдог мигает.
Выключаю ПО вотчдог горит но не ресетит ферму.
Отключаю хард от системы делаю мертвый висяк, вотчдог молчит, не ресетит.
Что за дерьмо?
Потом опытным путем выяснил что резет срабатывает через 3 минуты после отключения ПО, хотя я ставлю что 10 секунд.
Он что не обновляет в вотчдог инфу о том что теперь надо через 10 секунд щелкать?
Кароче странное устройство пока не понимаю ему применение, а главное спасет ли оно в случае чего.
Риги в 500 км от дома, прав на ошибку нет, а риги постоянно зависают.
USB WatchDog ONE сторожевой таймер

После окончания вуза я вернулся в родной город и пошел работать на градообразующее предприятие системным администратором. Предыдущий уволился, т.к. не выдержал “рваного” режима работы, о чем честно предупредил меня. Решил он, что лучше и, самое главное спокойнее ему будет каждый день ездить за 30 километров, чем ходить на работу пешком.
Уже через неделю я понял почему. В 3 часа ночи раздался телефонный звонок: встала весовая на отгрузке продукции, иди и поднимай ее вручную. Быстро разобрался, почему это происходит: сервер, на который замкнуты все контроллеры АСУ, виснет при скачках питания, а они там происходят постоянно. Мелочь, а делать-то что-то надо. Институтский приятель подсказал: поставь на сервер вотч-дог. Устройство-то копеечное, но в 99% случаев восстановит работу сервера само без твоего вмешательства. Совет оказался дельным. Вот что у меня получилось.
Сначала посмотрел, что предлагают на рынке. Имеется много китайской продукции такого рода. Но я этой технике не доверяю в принципе. А вот отечественный USB WatchDog ONE из Зеленограда, мне почему-то приглянулся сразу и на нем я и остановился. И, считаю, что не прогадал.
Аппаратная часть WatchDog
USB WatchDog ONE, как, впрочем, все остальные сторожевые таймеры, непрерывно отслеживает состояние компьютера по поступлению с него тестового сигнала. При его отсутствии принимается решение о зависании контролируемой техники и производится ее жесткий или мягкий автоматический аппаратный перезапуск по двум независимым цепям.
Все “железо” устройства уместилось на печатной плате шириной 30 – 41 мм, на которой находится микросхема, миниатюрное реле и несколько без корпусных резисторов с емкостями. Спасибо разработчикам, имеется также многоцветный светодиод, полезный при отладке работы устройства. Диод всего один, но за счет трех цветов (красный, желтый, зеленый), а также наличию непрерывного и мигающего режима свечения в различных режимах он дает массу информации о текущем состоянии. При написании скрипта я немного ошибся, так с помощью светодиода и хорошо структурированного и грамотного Руководства пользователя, рассчитанного на системного администратора средней квалификации, устранил ошибку за пять минут.
Установка выполняется на материнскую плату, поэтому корпус у таймера не предусмотрен.
В продаже доступны два функционально идентичных варианта устройства, которые отличаются друг от друга входными интерфейсами. Они представлены
• USB WatchDog ONE с разъемом USBA. 4-контакная розетка USB-соединителя типа А;
• USB WatchDog ONE с разъемом PBD. 10-контактная двухрядная розетка USB-PBD10 (у нее, естественно, активны только четыре контакта из десяти).
Выходной интерфейс реализован на двух обычных двухштырьковых вилках, на которые подключены выводы управляющего реле. Приятная мелочь: для удобства работы эти вилки, в отличие от USB-розеток, ориентированы перпендикулярно плоскости печатной платы.


Как подключать сторожевой таймер
Простота конструкции сочетается с простотой подключения. Все интуитивно понятно, но все-таки имеется пара особенностей.
Рекомендую сначала подключить USB WatchDog ONE к материнке. Если на нем имеется USB-разъем, то сложностей нет, а для входного порта PDP-10 возникает неопределенность по ориентации. Здесь нужно обязательно совмещать ключи материнки и устройства. Они визуально выделяются тем, что находятся с краю и не имеют металлического контакта.
Вторая особенность: схема таймера начинается функционировать немедленно после подачи на него напряжения питания. Поэтому, если сервер загружается достаточно долго, то может возникнуть режим неконтролируемого перезапуска. Следовательно, все программные настройки нужно завершить до подключения таймера к кнопкам сброса и перезапуска сервера.
Само подключение проблем не вызвало. Для соединения использовал обычные провода, соблюдать порядок подключения к кнопкам сервера и ориентацию проводов необходимости не возникло.
Потребляемый ток не превышает 30 мА, т.е. можно не беспокоиться за перегрузку блок питания компьютера.
Надежность использования
Простота схемы вотч-дога косвенно свидетельствует о его высокой эксплуатационной надежности: в нем просто мало точек отказа. Кроме того, сразу же видно, что он будет нормально функционировать не только в офисе, но и в производственном цеху. Тут я разработчикам на всякий случай не доверился и, вспомнив советы своего дипломного руководителя, не поленился найти в интернете параметры микросхемы. Это небольшое исследование показало, что она рассчитана на расширенный температурный диапазон, характерный для производственного помещения.
Контакты микросхемы и иных электронных компонентов хорошо и, самое главное, полноценно пропаяны.
Надежность аппаратной части дополнена надежностью софта, о чем речь пойдет дальше.
Управляющее программное обеспечение
Приятно удивила хорошо развитые для такого простого специализированного устройства возможности управления. Для этого можно использовать
- бесплатное вспомогательное ПО с развитым и интуитивно понятным графическим интерфейсом.
- виртуальный последовательный порт, который эмулируется самим контроллером и наиболее удобен его интеграции в различные скрипты и самостоятельно написанные программы.
Лично мне в режиме текущей эксплуатации более удобным показался вариант работы через ПО. Этому способствовало в том числе то, что его графический интерфейс имеет привычное для последних версий Windows оформление, а правила работы не отличаются от общепринятых.
Сразу же бросилось в глаза то, что для каждой разновидности ОС контролируемого компьютера предназначен свой вариант управляющего софта. Всего доступно пять вариантов, их можно скачать с сайта производителя (соответствующие адресные ссылки имеются в Руководстве пользователя). Такой подход разработчиков увеличивает устойчивость к различным сбоям.
При использовании с довольно популярным UNIX можно не производить установку ПО, а просто запустить скачанный файл в формате AppImage как исполняемый.
Апгрейд софта при выходе новых версий производится по обычной для Windows схеме через пункт меню “Обновить сторожевой таймер” папки “Инструменты”. Дополнительно указывается пути к файлу с обновлением и выполняется последующее подтверждение кнопкой “Открыть”. Какие-либо особенности при этом отсутствуют.
Контролируемый компьютер настраивается так, что ПО сторожевого таймера запускается автоматически при его включении.
Функционал ПО USB WatchDog
Отдельное спасибо разработчикам за простоту управляющего софта, который содержит два основных окна Файл” и “Инструменты”, дополненные окном “Справка”.
На левую половину основного меню выводятся наименование и серийный номер (SN) устройства, сведения о настройках (четыре основных параметра), а также время функционирования программы с момента последнего ее запуска. Правая часть занята журналом команд, для его просмотра предназначены типовые для Windows линейки прокрутки.
С помощью управляющего ПО в процессе работы осуществлялся
• ручной перезапуск контролируемого компьютера;
• формирование отчета и его отправка на внешний ftp-сервер (адрес задается отдельно);
• просмотр логов программы и команд.
Понравилось, что операционная система позволяет прямо работать с виртуальным COM-портом без необходимости установки на компьютер основного управляющего ПО. Для этого требуется только запустить соответствующий драйвер, файл которого доступен на сайте производителя.
После одной из непреднамеренных ошибок, допущенных во время первой установки USB WatchDog ONE, была выявлена его эффективная защита от загрузки некорректной прошивки. Для дополнительной проверки попытался загрузить не ту версию софта: столь полезное для практики свойство распространяется также на этот случай.

Что можно регулировать таймером
Аппаратная простота сторожевого таймера ограничивает количество регулируемых параметров. К таковым относятся
- состояние встроенного таймера (включено/выключено);
- максимальное время ожидания сигнала сброса таймера в исходное состояние;
- время замыкания контактов выходных реле J2 и J3 (продолжительность импульса перезагрузки).
Время сброса определяется в минутах (от 1/6 до 21 минуты), длительность импульса перезагрузки – в миллисекундах.
Значение времени таймера обязательно должно превышать время загрузки ОС с учетом штатных системных автоматических проверок.
Amin 's Blog
Сегодня я расскажу о паре устройств, предназначенных для аварийной перезагрузки зависших компьютеров — аппаратных вотчдогах. Если вам интересно, что это и как подключать — прошу под кат.
Применяются такие устройства там, где в случае зависания более желательно сразу же ребутнуть машину, а не ждать, пока к ней приедет техник. Платёжные терминалы, майнинговые фермы, компьютеры для опроса установленных в труднодоступных местах датчиков — прекрасные кандидаты для установки таких модулей.
Я рассмотрю два очень похожих девайса —
USB Watch Dog Pro2 от Open-Dev.ru и очень на него похожий, но немного отличающийся
Bitroleum Watchdog
Они настолько похожи, что сложно сказать, кто у кого позаимствовал. Но что хорошо — у них совершенно одинаковый протокол управления.
Принцип работы прост до безобразия:
— одной частью таймер включается в порт USB
— второй частью проводными шлейфиками таймер подкючается параллельно кнопкам Reset и Power.
Будучи USB-RS232 портом по сути, он видится в системе как /dev/ttyACM0, куда можно отправлять команды — обычные текстовые последовательности. Текстовый протокол — это изумительно ! Нам не надо писать сложный код на каких-то сложных языках и фреймворках. Основной сигнал
U, который мы может периодически отправлять таймеру вот таким скриптом:
while true
do
echo -n «
U» > $PORT;
sleep 5;
done
Скрипт запускаем в фоне, и он в бесконечном цикле каждые 5 секунд шлет команду «
U» в порт таймера. Опция -n нужна в echo, чтобы туда не отправлять перенос строки, он не нужен.
Получив такой сигнал, таймер понимает, что комп жив, и понимает, что ничего делать не надо. Если же в течении трёх минут сигналов такого типа не было — таймер активирует оптопару на линии резета примерно на полсекунды. Если и следующий защитный интервал будет без сигналов — будет на 3 секунды включена оптопара линии питания.
Текстовый протокол воистину прекрасен, что позволяет на том же bash реализовать весьма заковыристые сценарии по сути встроенными средствами ОС.
Но есть ряд важных ньюансов аппаратного толка.
Первый и самый важный — распиновка линий питания/резета.

У оригинального опен-девовского таймера линии независимы, и контактные колодки кнопки / шлейфа ставятся перепендикулярно плате, тогда как у битролеума — параллельно плате. Эти отличия я постарался наглядно пометить на фотке.
Второй важный момент — полярность. Оптопара — девайс полупроводниковый, и при подаче сигнала она пропускает ток только в одну сторону. Тут есть второе важное отличие — если у опен-девовского деваса (черного) подключить линию резета/питания не той полярностью, то система на это никак не отреагирует вообще. Лучше проверить корректность подключения ручной подачей команды:
# Manual Reset:
echo -n «
# Manual Power:
echo -n «
То есть у опендевовского таймера просто стоят две совершенно независимые оптопары на каналах.
Вотчдог от битролеума (красный) имеет общую землю между каналами и дополнительные диоды. Поэтому в случае неправильного подключения битролеумовский ватчдог будет держать материнку в вечном резете, что сразу сигнализирует о неправильной полярности включения.
Второй важный ньюанс именно с полярностью — на разных материнках полярность линий резета / питания на контактной площадке может отличаться, и часто вообще не указана, поскольку там ожидается механическая кнопка, а не оптопара.

Можно заметить, что на самой материнке полярность определить можно только подбором.
Третий важный момент — USB, в варианте для установки на плату.
На разъёме под материнку у вотчдогов нет глухого отверстия, и надо быть очень внимательным при подключении в материнку. Я выделил USB-Key (позиция для отсутствующего контакта) на первой фотке. Иногда разъём немного шире окантовки — в этом случае окантовку можно аккуратно снять.
Из мелких отличий — у опен-девовского вотчдога два светодиода — зеленый мигает, когда приходит сигнал
U или иное управление, а красный — когда сигнал пропущен. Перед самым резетом красный сигнал мигает гораздо чаще. У битролеумовского же таймера только один желтый светодиод, который мигает от любого сигнала и не такой яркий.
Но опен-дев также упоминает в мануале, что возможно и полностью ручное управление каналами, что даёт возможности прикручивать всякую более интересную автоматику.
Как работает usb watchdog




Eсли вы используете HiveOS, то устанавливать ПО не требуется.
Поддержка USB WatchDog уже реализована разработчиками Hive OS.
Более подробно с возможностями можно ознакомиться на сайте ОС.
RaveOS, NiceHash по нашим сведениям также имеют встроенное ПО для работы, но у нас нет подробной информации об этом. За подробностями, лучше обращаться в ТП данных дистрибутивов.
WatchDog имеет сразу два USB интерфейса:
USB HID — для тех, кто хочет простой установки (драйвер не требуется, минималистичная программа).
USB CDC — для тех, кто хочет иметь больший контроль и гибкость работы или использовать скрипты.
Программа wdtmon3-mini работает с интерфейсом USB HID.
Программа wdtmon3 работает с интерфейсом USB CDC.
Программа wdtmon4 работает с интерфейсом USB CDC.
Устанавливать нужно только одну из этих программ.
Программа, которая работает с USB WatchDog и позволяет:
1. Изменять настройки USB WatchDog;
2. Управлять каналами вручную;
3. Смотреть информацию об устройстве;
4. Следить за доступностью интернета;
5. Следить за процессом.
Скачать Win/Linux/macOS
Страница подробной инструкции по программе доступна по ссылке.
Перед работой с wdtmon3, возможно, понадобится установить драйвер.


Автозапуск материнской платы после подачи питания
После настройки сторожевого таймера необходимо зайти в настройки БИОСа материнской платы и включить там две опции:
1. «Включение компьютера после подачи питания» (доступна ли эта опция и как она называется зависит от конкретной модели мат. платы — эта информация должна быть в инструкции к мат. плате).
2. Подача питания на порты USB при выключенном компьютере (опять же — обратитесь к инструкции к мат. плате). Например, для мат. платы Asus Z370-P необходимо включить в BIOS опцию «USB Charger in state S5«. Возможно питание будет подаваться не на все USB порты — необходимо подключить WatchDog к тому порту, на который подается питание. Проверить это можно подключив вачдог (или например мышь со световой индикацией питания) к порту на выключенном компьютере. WatchDog Pro2 должен через какое-то время замигать красным.
Тогда после потери электропитания компьютер включится сам (если настроена опция 1.). Если опция 1 по какой-то причине не сработала, вачдог через определенное время (два раза по T1 — см. инструкцию к устройству) запустит систему (при условии что настроена опция 2).
Обратите внимание, что WatchDog Pro2 запустит систему не сразу, а через время 2*T1.
Если на вашей материнской плате питание на USB не включается, то вам поможет «источник бесперебойного питания для WatchDog Pro2» USB PS.

1. После установки и настройки программного обеспечения на устройстве должен начать мигать зелёный светодиод — это означает, что устройство видит свою управляющую программу и находится в штатном режиме. Если устройство мигает красным — программа не запущена или не настроена.
2. В wdtmon3-mini и wdtmon3 есть кнопки для тестовой проверки работы перезагрузки пк.
Необходимо в ручном режиме убедиться, что провода reset и power подключены правильно. Для этого можно нажать кнопку «Reset»/»Перезагрузка» для тестирования канала «Reset» и (в серии Pro) «Power»/»Жёсткая перезагрузка» для тестирования канала «Power». Если после нажатия перезагрузки не произошло, нужно проверить, что подключение сделано верно или поменять полярность подключения проводов на каналах «Reset» и «Power» .
Ко входу Вх/In USB WatchDog Pro2 можно подключить внешний термодатчик на базе DS18B20. Для этого к «-» входа подключаются объединённые контакты GND и VDD датчика DS18B20, а к «+» DQ датчика.
Входу в программе wdtmon3 (параметр IN channel) необходимо установить значение «Temperature».

G (см. таблицу 1 раздела «Продвинутое управление устройством»). Данные о температуре следует считывать не чаще, чем 1 раз в 3 секунды.
Автоматическая перезагрузка при превышении температуры
Если значение Temperature treshold (критический порог температуры) установить больше 0, то включается режим автоматического контроля за температурой.
В этом режиме USB WatchDog анализирует значение температуры каждые 3 секунды.
При превышении температуры выполняются те же действия, что и при переполнении таймера, которые определяются конфигурацией каналов. Например, возможна настройка автоматического перезапуска или выключения устройства при перегреве.
К сторожевому таймеру можно подключить какой-либо дискретный сигнал: кнопку, геркон и т.п.
Для активации режима следует настроить вход на режим работы с внешним сигналом в программе wdtmon3.
Ко входу Вх/In USB WatchDog возможно подключение нормальнозамкнутого/нормальноразомкнутого концевого датчика согласно рисунку.
Значение данного входа можно программно считывать с помощью текстового протокола.
Следует помнить, что вход идет напрямую на процессор. Подача на этот вход сигналов напряжением выше 3.6В и ниже -0.6В приведет к порче процессора.

Connect.UnitX — облачный минималистичный сервис для удалённого контроля сенсорных устройств.
Облачный сервис не является частью данного продукта, но может пригодиться, если нет другой возможности узнать о состоянии устройства через интернет.
- История работы устройства.
- Контроль температуры (для USB Watchdog Pro2 с термодатчиком).
- Автоматические оповещения при перезагрузке или превышении температуры.
На графике мы видим сигналы «столбцы» от сторожевого таймера: это значит, что сторожевой таймер online и исправно отсылает свой статус.
Если произошла включение/перезагрузка — «столбец» будет вдвое выше.
Если компьютер выключен или нет сети — появится промежуток между столбцами, по которому можно будет понять, сколько не было работы.

Это один из самых частых вопросов, поступающих в техподдержку. Попробуем разобраться, что приводит к такой ситуации и как ее решать.
Спойлер: не настроено (или настроено неверно) программное обеспечение.
Во-первых — почему вачдог перезагружает систему, раз она не повисла?
Вачдог сам ничего не знает о работоспособности системы. У него есть таймер (настроенный, по-умолчанию, как раз на 5 минут). Если вачдог не получит сигнал от программы (или bat-файла) в течение этого времени, система будет перезагружена.
Как решать проблему?
Убедитесь, что вы выполнили все пункты по настройке вачдога, драйвера вачдога и программы, перечисленные в статье.
Далее, проверяйте по шагам этапы настройки:
1. В диспетчере устройств вачдог определяется как последовательный порт (COMx), рядом со значком устройства нет восклицательного знака, в свойствах написано что «Устройство работает нормально».
2. В программе (или bat-файле) указан верный порт (COMx). COM1 — зарезервирован в о.с. Windows, если указан COM1 — точно работать не будет.
3. В случае программы, должна мигать зеленая лампочка справа от кнопки Scan, при этом на самом вачдоге тоже должна мигать зеленая лампочка. Если что-то из этого не работает, проверьте пункт 1, затем проверьте что (если включен мониторинг сети) указан существующий интернет-адрес и ваша система подключена к сети, если включен мониторинг процесса — убедитесь, что указан существующий процесс и этот процесс не повис. На этапе настройки, особенно если что-то пошло не так, лучше отключить обе галочки — их можно будет включить потом, когда все заработает.
4. Убедитесь, что настройки программы (в первую очередь номер порта) сохранились.
5. Убедитесь, что настроен автозапуск программы — перезагрузите систему и убедитесь, что программа запускается при старте системы.
Вероятнее всего, вам придется настроить правила udev для устройства.
Вы можете взять готовый файл для HID инетрфейса https://software.open-dev.ru/software/98-odhid.rules.
Если нужен доступ к CDC, можно дописать ещё строку:
KERNEL==»ttyACM[0-9]*», SUBSYSTEM==»tty», ATTRS
В первую очередь, нужно иметь в виду, что перезагрузка происходит не сразу, а через t1 (по-умолчанию 5 минут) нажимается Reset и еще через t1 нажимается Power.
В очень редких случаях может происходить одна из следующих ситуаций:
1. Неправильная полярность подключения проводов от USB WatchDog к материнской плате, но тестовая перезагрузка проходит, а при реальном повисании — эффекта нет. Решение: поменять полярность, проверить, работает ли тестовая перезагрузка и дождаться следующего повисания.
2. Настройки t2-t5 не подходят для данной мат.платы. Решение: попробовать другие параметры нажатий Reset и Power с помощью программы wdtmon3.
Варианты решения проблемы:
1. Отключить обновления системы или перевести их в ручной режим
2. Создать скрипты в редакторе локальной групповой политики, которые ставят вачдог на паузу при выключении ПК и снимают с паузы при включении. Для этого в редакторе локальной групповой политики необходимо добавить в раздел «Сценарии (запуск/завершение)» -> «Завершение работы» bat-скрипт со следующим содержанием: set /p x=»
P1″ <nul >\\.\%PORT%, где %PORT% — имя последовательного порта вачдога. Для снятия с паузы при включении необходимо добавить в раздел «Автозагрузка» добавить bat-скрипт со следующим содержанием: set /p x=»
P0″ <nul >\\.\%PORT%, где %PORT% — имя последовательного порта вачдога.
Если для отрисовки окна приложения wdtmon3 недостаточно ресурсов системы (например, если видеокарты загружены, или осуществляется доступ к системе через TeamViewer), в окне программы может ничего не отображаться (пустое белое окно).
- Производить работу с программой напрямую (без использования удаленного доступа, например, программы TeamViewer).
- Снизить загрузку системы, временно остановив исполнение ресурсоемких приложений.
- Запустить программу wdtmon3 в режиме «Программный рендеринг». В этом режиме программа менее требовательна к ресурсам системы, однако отрисовка окна программы может производиться с задержкой и с артефактами.
- открыть командную строку (cmd.exe для о.с. Windows, gnome-terminal/konsole/. для о.с. Linux, Terminal.app для о.с. macOS)
- перейти в папку, где находится исполняемый файл программы:
- windows: cd C:\Path\to\wdtmon3_win32\
- linux: cd /path/to/wdtmon3_lin64/
- macOS: cd /path/to/wdtmon3.app/Contents/MacOs/
- windows: wdtmon3.exe —softgl
- linux, macOS: wdtmon3 —softgl
Отключить режим «Программный рендеринг» можно выключив соответствующую опцию во вкладке About (О приложении). Режим будет выключен при следующем запуске приложения.
Обратите внимание, что при включенном программном рендеринге возможны артефакты отображения окна программы