Приветствую всех!
Те, кто долго жил в Москве, наверняка вспомнят метропоезда типа «Яуза». Хоть они и вызывали самые противоречивые мнения что у пассажиров, что у работников метрополитена, можно с уверенностью сказать, что для своего времени в нашей стране они были уникальными.



Итак, в сегодняшней статье попробуем запустить часть приборной панели от теперь уже навсегда исчезнувшей модели поезда метро. Узнаем, как всё это устроено и работает. Традиционно будет много интересного.

Суть такова




Многие из жителей Москвы (где и эксплуатировались такие поезда) успели застать их в работе. Появившиеся в девяностые годы, эти поезда проработали на линии двадцать с лишним лет. Было выпущено немало модификаций, среди которых были как опытные, так и современные. Позднее их наработки использовались при создании более поздних вагонов — «Русич» и «Юбилейный», также кузов аналогичной конструкции имеет рельсовый автобус РА1.

Летом 2019 года их поголовно списали, тем самым завершив их пассажирскую эксплуатацию. Остался только один экземпляр, который хотели оставить для музея московского транспорта.

Обзор оборудования


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

А достался мне цифровой скоростемер из кабины машиниста. Он же блок индикации АЛС-АРС.



На просторах удалось найти фото пульта машиниста (на КДПВ, он хоть и в лучшем качестве, но другой модификации). Чёрная панель со шкалами и есть тот самый блок индикации.



А вот и мой экземпляр. Девайс в отличном состоянии, если не считать слоя пыли и потёртостей. Характерный запах метро тоже в наличии.

Итак, на передней части находятся три светодиодные шкалы трёх цветов: красная показывает предельную скорость, зелёная — текущую, жёлтая — предупредительную. Правее светодиодный индикатор, отображающий текущую скорость, шкала ускорения и индикатор направления движения.



На обратной стороне и с боков ничего интересного, только отверстия для вентиляции.



На правом торце находятся разъёмы 2РМ, обозначенные как X1 и X2. Можно предположить, что один из них служит для питания, а другой для управления. Ну что же, скоро разберёмся.



Заводская табличка. Мой блок имеет номер 13.

Внутренности


Первоначально я понятия не имел, с какой стороны подступиться к этой штуке. В интернете удалось найти документацию на систему АЛС-АРС вагонов «Яуза» и «Русич», однако принципы работы отдельных её блоков там не отражались. Поэтому оставалось только экспериментировать.

Что мы делаем, когда к нас в руки попадает интересная железка? Правильно: мы её разбираем.



Для разборки необходимо открутить два винта слева (один из которых под пломбой, которая у меня давно выкрошилась) и шесть со стороны разъёмов (по периметру корпуса). После этого весь металлический кожух легко снимается.

Внутри нас ждут три платы. Условно их можно разделить на плату управления, плату драйверов и плату индикации.



От разъёмов идут жгуты проводов.



Чтобы разделить эти платы, необходимо выкрутить шесть винтов под плоскую отвёртку, стягивающих их вместе. На фото самая нижняя плата. Увы, с другого ракурса заснять не вышло, иначе мешают провода. Но позднее я это постараюсь компенсировать более детальными фото.



Промежуточная плата.



А вот и плата индикации.





Децимальные номера на платах.



В первую очередь нас интересует, конечно, самая нижняя плата. Именно к ней приходят жгуты проводов от разъёмов. А это значит, что исследовать надо в первую очередь её.
На плате микроконтроллер КР1830ВЕ31, рядом чип памяти от Atmel. Вообще, эти две микросхемы — единственные два пластиковых корпуса во всём устройстве. Всё остальное — металлокерамика. По линиям питания микроконтроллера находим питание и землю. Они действительно выведены на маленький разъём, как я и думал.
Ну что же, пробуем включать?

Первый запуск


Для начала нам понадобится ответная часть от разъёма. В данном случае — 2РМД18КУН4Г5В1. Маркировка на блочной части стёрта, так что выбирал чисто по размеру и числу контактов. Второй разъём имеет модель 2РМДТ30Б24Ш5В1В. Ответная часть к нему — 2РМД30КПН24Г5В1. Вообще, необязательно использовать именно такие, они имеют несколько модификаций, отличия которых (устойчивость к температурам, экранирование, прямой или угловой патрубок) для нас несущественны.

Итак, припаиваем провода и подаём пять вольт. И ничего. Некоторое изучение схемы выявило ещё один толстый провод, идущий от одного из штырьков этого разъёма. Подача на него пяти вольт дала результат. Как можно понять, одна линия служит для питания электроники, другая — для индикации.



Блок сразу после подачи питания. Видно некое подобие самотестирования — все шкалы зажжены.



Через секунду текущая скорость и ускорение гаснут. Всё, больше ничего не происходит. Ну что же, уже какой-то результат.
Распиновка маленького разъёма, таким образом, получилась следующая:

  1. Питание индикации
  2. Земля
  3. Питание логики
  4. Земля

Для запуска необходимо запараллелить линии питания и земли и подать на них пять вольт.

Интерфейс


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



Осмотр нижней платы выявил наличие двух очень похожих цепей на оптопарах 3ОД129А. Выводы светодиода были подключены напрямую к внешнему разъёму.

Попытка замкнуть выводы фотодиода была успешной — на шкалах что-то изменилось. По-видимому, входной сигнал подаётся именно сюда. Осталось только понять, что это.
Подключим через резистор в 220 Ом источник сигнала. Но на простой прямоугольный сигнал устройству было всё равно — шкалы только мерцали. По-видимому, это какой-то интерфейс.
«Скорее всего, это UART...» — подумалось мне. С этими мыслями я подключил блок к последовательному порту и стал пробовать отправлять что-то на разных скоростях, попутно наблюдая цветомузыку на шкалах.

Чего-то осмысленного удалось добиться на скорости в 9600 бод — отправка пары сотен байт 0x01 вызвала зажигание одного сегмента на шкале ускорения. 0x02 смог зажечь два. Всё, больше ничего не было.

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

Оживляем шкалы


Для проверки я решил отправить последовательно байты от 0x00 до 0xFF. И это оказалось неплохим решением — на основных шкалах стали заметны какие-то изменения. Далее я слал байты уже «прицельно» — не в таких больших количествах и определённые значения. Осложняло то, что, получив байт, панель сразу реагирует на него, а не ждёт, пока все данные придут.
Итак, в итоге я пришёл к выводу, что отправлять надо нечто вроде:

<data><00h><00h><00h>

Это давало какой-то эффект, но не отправляло девайс в разнос.



Практически тут же удалось оживить зелёную шкалу. За неё отвечает первый байт пакета. Каждые четыре единицы символизируют одно деление шкалы.



Далее поддалась жёлтая. Оказалось, что жёлтая и красная работают не на возрастание, а на убывание, то есть максимальное значение означает погашенную шкалу, а минимальное — полностью горящую.



Потыкав ещё немного, запустил красную.
В итоге формат пакета данных оказался такой:

<green><00h><00h><00h><red><00h><00h><00h><yellow><00h><00h><00h>


Ускорение


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

<green><00h><00h><00h><red><00h><acceleration><00h><yellow><00h><00h><00h>

Значение этого байта может лежать в одном из двух диапазонов — 99-F5 — разгон, 00-0F — торможение. Всю линию сразу засветить нельзя. Одной единице байта соответствует одно деление шкалы.

Пробуем посылать пакет, и вот результат:





Индикаторы


Как можно было заметить, в течение всех опытов два светодиодных индикатора не горели. А это значит, что самое время попробовать их оживить.



И для начала посмотрим поподробнее на плату индикации. Для этого откручиваем винты по периметру передней части и снимаем сначала металлическую рамку, а затем и пластину из оргстекла с надписями. Тут нас встречает куча светодиодных линеек, а также два индикатора. Всё импортное, никаких отечественных АЛСов с их никакущей яркостью.



Отдельного внимания заслуживает указатель направления движения. Это не просто световое поле, это матричный светодиодный индикатор. Изначально они выпускались для использования в качестве знакосинтезирующих, но тут почему-то он выполняет роль единичного. Что мешало поставить два обычных светодиода или два световых поля, мне неведомо.



Резисторные сборки, установленные на плате индикации.

Индикаторы


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



На нижней плате обнаружились две микросхемы 514ИД2, являющиеся драйверами семисегментных индикаторов. Прозвонка выявила, что четвёрка линий данных от каждого чипа ведёт напрямую к тому же 2РМу. Но тут тоже не всё так очевидно: как оказалось, питание на них подаётся отдельно. И выведено оно не на маленький разъём, а на большой. Это тоже необходимо учесть при подключении. По сути схема с семисегментными индикаторами — отдельная независимая цепь.



Пробуем подать какую-то комбинацию, и… индикатор оживает! Индикаторы управляются независимо, то есть всего для их подключения надо восемь проводов.

Световое поле


Настала очередь последнего элемента — указателя направления движения.



И, как оказалось, с ним всё ещё проще — достаточно притянуть к земле одну из ножек разъёма, чтобы оно заработало.

Распиновка


Теперь, когда назначение всех контактов известно, можно определить и распиновку управляющего разъёма. Она тут оказалась вот такая:

  1. D0 первого индикатора
  2. D1 первого индикатора
  3. D2 первого индикатора
  4. D3 первого индикатора
  5. D0 второго индикатора
  6. D1 второго индикатора
  7. D2 второго индикатора
  8. D3 второго индикатора
  9. Вперёд
  10. Назад
  11. -
  12. -
  13. Корпус
  14. -
  15. RX-
  16. RX+
  17. -
  18. -
  19. -
  20. 5 В (инд.)
  21. Земля (инд.)
  22. -
  23. -
  24. -

Что же с этим всем не так?


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

Вот как-то так




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

Такие дела.

Возможно, захочется почитать и это:



Комментарии (56)


  1. dlinyj
    26.06.2023 08:16
    +9

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


    По теме реверса, самый верный путь — это внимательно посмотреть распиновку ПЗУ (убедится что линии адреса приходят на соответствующие ножки контроллера), и затем отпаять её и сдампить. После чего дизассемблировать. Это предок 8051 архитектуры, и там ассемблер весьма простенький и легко читаемый. За одно можно понять формат пакетов, понимая архитектуру контроллера. Размер ОЗУ там небольшой, значит куда-то всю посылку он должен распихивать и после парсить.


    Задачка, только на первый взгляд кажется сложной, но она очень интересная.


    1. MaFrance351 Автор
      26.06.2023 08:16
      +1

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


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


      1. dlinyj
        26.06.2023 08:16
        +1

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


        Из химических способов (прошу только понять, что я не истина последней инстанции, может кто посоветует что-то более полезное), можно использовать ИПП-8А. Только работать в полиэтиленовых перчатках (остальное растворяет), и глаза защищать (слепота).
        В общем, это в любом случае будет полезным опытом.


        1. MaFrance351 Автор
          26.06.2023 08:16
          +1

          Но сначала всё же стоит потренироваться на дохлых. Так как запороть плату этого устройства ну вообще не хочется.


          1. dlinyj
            26.06.2023 08:16

            Запороть двухслойку надо иметь недюжий талант :). Но тренировка никогда не будет лишней;)


            1. MaFrance351 Автор
              26.06.2023 08:16
              +4

              По закону подлости именно на какой-то редкой/дорогой/сложной плате этот талант обычно и удаётся проявить...


            1. iliasam
              26.06.2023 08:16
              +3

              Бывает гадкий текстолит, от которого дорожки при нагреве очень легко отрываются.


              1. dlinyj
                26.06.2023 08:16

                К сожалению, очень часто...


      1. iliasam
        26.06.2023 08:16

        А что, если Reset контроллера зажать, и подключить ПЗУ к программатору проводами?


        1. MaFrance351 Автор
          26.06.2023 08:16

          Кстати, тоже можно попробовать.


          1. dlinyj
            26.06.2023 08:16

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


            1. MaFrance351 Автор
              26.06.2023 08:16

              Это относится ко всем ПЗУ с параллельным интерфейсом?


              1. dlinyj
                26.06.2023 08:16

                Я бы не рисковал, потому что надо давать питание, питание если подавать на микросхему с программатора, то будут питаться и другие микросхемы, тока может не хватить. Если питать внешне, может поплохеть программатору. В общем, если хочется рискнуть, понимая что на тот свет может отправится плата и программатор, то можно.


                Но риска больше, чем выпаять и впаять панельку.


      1. VelocidadAbsurda
        26.06.2023 08:16
        +2

        Поскрести лак скальпелем со стороны пайки, дальше греть (с той же стороны), пока ROM не выпадет, не прикладывая к нему больших усилий, ничего не случится. Даже в самом крайнем случае (вырвалась металлизация отверстия) при установке назад (можно и в панельку, кстати) просто хорошо припаять ножку с обеих сторон к тому, что осталось на поверхностях - сама ножка заменит утраченное. Ну и в пределе - это два слоя, всегда можно «малой кровью» кинуть перемычку откуда угодно куда угодно, риск невелик и более предсказуем, в отличие от «внутрисхемного» подхода выше.


        1. dlinyj
          26.06.2023 08:16

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


          1. MaFrance351 Автор
            26.06.2023 08:16

            Не, места не хватит. Разве что на шлейфе эту панельку вынести, чтобы в более удобном месте запихнуть.


            Ну и тут отказ от панельки понятен — чтобы не вывалилось от вибраций и тряски.


            1. roman901
              26.06.2023 08:16

              По высоте?

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


              1. dlinyj
                26.06.2023 08:16

                Что за цанговые гребенки?


                1. MaFrance351 Автор
                  26.06.2023 08:16


                  1. dlinyj
                    26.06.2023 08:16

                    Есть готовые панельки такие же.



                    Другое дело, что высота всё равно будет.


        1. makkarpov
          26.06.2023 08:16
          +1

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


          1. MaFrance351 Автор
            26.06.2023 08:16

            Тоже возможно. У анализатора должны быть достаточно высокоомные входы, чтобы работе схемы это не помешало.


            1. dlinyj
              26.06.2023 08:16

              Это может занять годы, реально.


              1. MaFrance351 Автор
                26.06.2023 08:16

                Анализ того, что было считано?


                1. dlinyj
                  26.06.2023 08:16
                  +1

                  Логический анализатор — это последний путь, когда другие методы не помогают. В вашем случае, самый правильный — считать прошивку и дизассемблировать её. Проще говоря, есть пути реверса, которые проходят все:


                  1. Метод тыка. Он весёлый, но, как правило, малоэффективный.
                  2. Попытка найти документацию, как правило, даже обрывок рекламной листовки может дать очень много полезной информации.
                  3. Попытка считать прошивку и дизассемблировать. Самый верный путь. Обычно я ищу прошивки на сайте производителя, и ковыряю их. Быстрый и верный способ.
                  4. Самый хардкор — логический анализатор. Рабочий метод, но очень трудоёмкий, и используется когда уже ничего не помогает.


              1. makkarpov
                26.06.2023 08:16
                +1

                Что именно? У EEPROM-а обычный параллельный интерфейс, парсер его не должен представлять существенную сложность. Единственная проблема - обычных 16 каналов будет недостаточно. Нужен будет либо анализатор на 32 канала, либо два синхронизированных 16-канальных. Результат - такой же бинарник прошивки (не будет только адресов, к которым МК никогда не обращался), но полностью неизвазивным методом. Без выпаивания, отрезания дорожек, снятия лака и прочих подозрительных операций.


                1. dlinyj
                  26.06.2023 08:16

                  1. Никто не гарантирует, что у вас будет доступ ко всем областям памяти. То есть, вы не сможете заставить работать так, чтобы все области памяти были задействованы, и не факт что сможете переходами получить все константы.
                  2. Таким образом вы можете никогда не получить полный функционал изделия.
                  3. Можно встрять в цикле и получать кучу данных, всякие переходы по памяти, и т.п. Анализировать такое сложно, допускаю что есть готовые скрипты.

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


                  1. makkarpov
                    26.06.2023 08:16
                    +1

                    1. Перерезание питания - это инвазивная операция. Пусть и небольшая.

                    2. Если МК за время работы (когда на него подавали данные и он исполнял программу) не обращался к какому-то адресу памяти - значит, этот адрес памяти для исполнения программы не очень важен. Но да, есть шанс потерять ветку, на которую не зашли (хотя условие её достижимости будет видно).

                    3. Не очень понял, какую кучу данных мы получим, если встрянем в цикл. Да, будет чтение повторяющихся ячеек, но EEPROM на то и EEPROM, что ячейку достаточно увидеть один раз. Не нужно анализировать всю трассу исполнения, достаточно просто узнать содержимое памяти по конкретному адресу. Сколько раз этот адрес будет прочитан - дело десятое.

                    4. Я не уверен, какая была схемотехника микросхем того времени (тем более советских), но с современными микросхемами даже при отрезанном питании я бы ожидал паразитной запитки процессора через ESD диоды на I/O ножках. Допускаю, что на советских микросхемах их могли не ставить.


                    1. dlinyj
                      26.06.2023 08:16

                      У автора задача, получить парсинг данных. Если дёт сравнение с областями памяти, то если автор не сможет сгенерировать последовательности, которые попадут в те области, которые он хочет получить (чтобы узнать эти самые последовательности), то он их не получит. Нельзя себя за косичку из болота вытащить.


                      Я не уверен, какая была схемотехника микросхем того времени (тем более советских), но с современными микросхемами даже при отрезанном питании я бы ожидал паразитной запитки процессора через ESD диоды на I/O ножках. Допускаю, что на советских микросхемах их могли не ставить.

                      Вот, да, это мне и не нравится. Я об этом тоже писал.


                      1. IDDQDesnik
                        26.06.2023 08:16
                        +1

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


                      1. MaFrance351 Автор
                        26.06.2023 08:16

                        Не думаю. Если даже пакеты данных без этого сделаны.


                      1. XenRE
                        26.06.2023 08:16
                        +1

                        Да нормальная тема с пассивным дампером. Можно использовать отладку с ПЛИС, написать прошивку чтобы она сразу раскладывала данные по адресам — и останется погонять девайс чтобы выполнились все ветки. Что не выполниться — то и не нужно, либо при изучении будут выявлены условия захода в эти ветки — тогда просто додампить недостающее.
                        Приконнектиться тоже несложно — можно взять любую микросхему в похожем корпусе, высверлить кристалл, припаять провода к ее выводам и просто надеть вторым этажeм на ПЗУ.


                      1. MaFrance351 Автор
                        26.06.2023 08:16

                        Суть-то в том, что надо узнать, что ему хочется получить для полноты пакета. Методом подбора это добыть не вышло. Так что есть возможность, что по нужному адресу он не зайдёт никогда. А то, возможно, он просто крутится в одном цикле, откуда потом вылетает, получив не то, что ожидалось.
                        Можно, конечно, пробовать отправлять все возможные варианты пакетов заданной длины, тогда, конечно, задача только в одном — угадать нужный формат меньше чем за время тепловой смерти вселенной.


                        О чём, собственно, и говорил dlinyj, что на это запросто могут уйти годы.


                      1. makkarpov
                        26.06.2023 08:16
                        +1

                        Да увидите вы и условия циклов, и условия ветвлений. Вы не увидите тела неисполненных веток. Условно, вы видите следующий код (допустим, на x86, а не 8051, в него я не умею):

                          mov ax, [64]
                          cmp ax, 123
                          jne skip
                          ?? ?? ??
                          ?? ?? ??
                        skip:
                          nop

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


                      1. XenRE
                        26.06.2023 08:16
                        +1

                        Именно так, в первом заходе например будет видна проверка на сигнатуру ожидаемого пакета (либо ее 1й байт), далее посылаем эту сигнатуру - ветка раскрывается и т.д. За несколько итераций будет сдамплено все нужное, годы тут тратить совершенно не на что.


    1. mpa4b
      26.06.2023 08:16
      +1

      Это не "предок", а самая натуральная mcs-51 архитектура, аналог 80c31.


      1. dlinyj
        26.06.2023 08:16
        +1

        Прошу прощения, вы совершенно правы. Тем более, тогда всё сильно проще.


        1. VT100
          26.06.2023 08:16
          +1

          А есть ли у "тридцатьпервого", как у "пятьдесятпервого"?

          ONCE<sup>TM</sup> Mode.
          The ONCE (“on-circuit emulation”) mode facilitates testing and debugging of systems using the device without the device having to be removed from the circuit. The ONCE mode is invoked by:

          - Pull ALE low while the device is in reset and PSEN is high;

          - Hold ALE low as RST is deactivated.

          While the device is in ONCE mode the Port0 pins go into a float state, and the other port pins and ALE and !PSEN are weakly pulled high. The oscillator circuit remains active. While the device is in this mod an emulator or test CPU can be used to drive the circuit. Normal operation is restored after a normal reset is applied.

          P.S. Какой же микроЦАП (uDAC) сделал хабру новый редактор!? Гоните его ссаными трапками!


          1. dlinyj
            26.06.2023 08:16
            +1

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


          1. MaFrance351 Автор
            26.06.2023 08:16

            микроЦАП

            Спасибо, запомню.


  1. KotovladeletsGT
    26.06.2023 08:16
    +2

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

    У вас тут опечатка. А вообще большое вам спасибо за такой прекрасный отчёт о представителе отечественной транспортной электроники - было очень увлекательно читать. Надо будет купить мне резисторных сборок планарных отечественных, они на платах очень неплохо смотрятся.


    1. MaFrance351 Автор
      26.06.2023 08:16
      +2

      Исправлено, спасибо.


      Вообще, очень люблю отечественные чипы в металлокерамике. Как раз из-за этого тоже.


  1. vindy123
    26.06.2023 08:16
    +5

    Как это "некуда применить"!? Сам собой напрашивается плагин для винампа который бы делал из этой красоты трёхполосный визуализатор звука


    1. MaFrance351 Автор
      26.06.2023 08:16
      +4

      А когда ничего не играет, то отображать загрузку ЦП, использование памяти и ещё что-то.


  1. kafeman
    26.06.2023 08:16
    +4

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

    Пробовали сделать break? Довольно частый разделитель пакетов/кадров в подобных протоколах.


    1. MaFrance351 Автор
      26.06.2023 08:16
      +1

      О! А вот это надо попробовать. Даже не думал с этим поиграться...


    1. MaFrance351 Автор
      26.06.2023 08:16
      +2

      Увы, не прокатило. После повторной отправки пакета всё так же гаснет.


      1. kafeman
        26.06.2023 08:16
        +2

        Жаль. Был уверен, что сработает :-(


  1. Vlad-sl
    26.06.2023 08:16
    +2

    С впаяной пзу прошивку можно считать прищепкой, но перед этим надо перерезать дорожку питания.

    или придется подпаиваться проводами к ножкам если не прищепки.

    Тоже надо будет считать прошивку с редкого учебного стенда на мпк 589.


  1. sergio_nsk
    26.06.2023 08:16
    +1

    Мне кажется, что жёлтая рекомендованная скорость не должна пересекаться с красной максимальной, то есть жёлтая шкала вообще не должна начинаться от правого края.


    1. MaFrance351 Автор
      26.06.2023 08:16

      Ну так она и не заходит. Даже больше скажу: даже на 90 она не заходит, максимальная скорость в метрополитенах этой страны — 80 км/ч.
      На последнем фото я попытался изобразить, как примерно это выглядело в работе.


      1. sergio_nsk
        26.06.2023 08:16

        На последнем изображении рекомендованная скорость от 68 до 100, а недопустимая от 90 до 100. Может быть я не так понимаю жёлтую шкалу, тогда какой смысл рекомендации от 0 до 68 км/ч?


        1. MaFrance351 Автор
          26.06.2023 08:16
          +1

          Это скорее ещё одно ограничение. На картинке вон стоит 68. Наваливать, скажем, 80 можно, но уже с предельной бдительностью.
          То есть красная шкала — та, выше которой вообще нельзя, жёлтая — можно, но с осторожностью.


          1. firyst
            26.06.2023 08:16
            +2

            На просторах интернета можно найти принцип работы данных скоростемеров. Все три шкалы задействуются только на линиях с определенной системой сигнализации АЛС-АРС. Если не вдаваться в подробности, работает это следующим образом: в метро весь путь разделён на блок-участки с разным ограничением скорости. Красная шкала показывает предельную скорость на текущем участке; при превышении этой скорости срабатывает автоматическое торможение. Желтая шкала показывает ограничение скорости на следующем блок-участке, то есть машинист знает, с какой скоростью он должен ехать, чтобы не превысить скорость при переходе на следующий участок. Есть картинка, описывающая работу сигнализации, однако сами шкалы показаны не совсем верно (почему-то их сделали на возрастание, а не на убывание, как на вашем экземпляре).

            Есть даже видео с работой этой системы на "Русиче" (на нем используется аналогичный скоростемер). В данном случае поезд скорее всего начал догонять впереди идущий, поэтому система постепенно снижала допустимую скорость.

            Про системы сигнализации почитать чуть подробнее можно тут.


  1. p0isk
    26.06.2023 08:16
    +2

    Всё импортное, никаких отечественных АЛСов с их никакущей яркостью.

    И тут же фотография матричного индикатора АЛС340, ну как так...


    1. MaFrance351 Автор
      26.06.2023 08:16

      Ну, по сравнению с цифровыми индикаторами эти ещё более-менее.