Доработка адаптера захвата видео hdmi->usb на контроллере Macro silicon MS2109


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


Упакован в коробку:


Идентификаторы на usb одинаковы:

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

Шахматное расположение, вертикальные и горизонтальные линии.

В hd различия столбцов появлялось, но все равно оставалось подмешивание.

А вот новый экземпляр удивил вполне четкой картинкой в fhd.


Картинка посложнее.
«Старый», fhd-mjpg/hd-mjpg/hd-yuv:

fhd по горизонтали размыт, hd четкие, в yuv нет характерных артефактов сжатия jpg.

«Новый», fhd-mjpg/fhd-yuv:

тут все четко и в fhd.

Из странностей — при частоте 60Гц захватывается полное горизонтальное разрешение, при 59.94Гц — 1800 с полями до 1920. Долго не мог понять от чего зависит появление полей — оказалось из-за частоты.

Из дополнительных отличий — на выходе первый поддерживает 1080/30fps, а новый — 60fps (только в mjpeg, в yuv максимум 5fps).


Но по факту захваченное «новым» содержит только 30 кадров, дополненных пустыми (vdub почему-то их отображает как ключевые (K), а не пропущенные (D), но размер у них околонулевой).
На вход оба понимают максимум 4096*2160*60.

Поток сильно зависит от характера картинки, при плохо сжимаемой битрейт дорастает до 20-22MByte/s, и далее начинает падать частота кадров.
При хорошо сжимаемой (условно — однотонная заливка) падает примерно до мегабайта/с.
Примеры
Старый, hd:
Новый, fhd:


По внутренностям — плата идентична,«новый»:

Старый:

В новой версии «оптимизировали» защиту hdmi от статики — сборки tvs диодов 0524P не распаяны, так же нет и радиатора. Необходимость радиатора не очевидна, голый контроллер во время захвата палец терпит, даже и замерять незачем.

Установлена i2c флешка на 16kbit, вместо 8kbit в старой, собственно она и есть главный обьект приложения усилий.
Обе флешки были считаны (в принципе можно и прищепкой, но подлезть из-за соседних элементов сложно и черевато поломкой ее зацепов, проще и дешевле выпаять).
в 8k было обнаружено ~0.75kB информации, а вот в 16k целых 1.75kB. т.е. запихнуть все в меньшую не получится.
При проверке работы с отпаянной флешкой все запустилось, vid/did не изменились, картинка стала такой же печальной, как и у первого экземпляра, более того, через некоторое время работы горизонтальная синхронизация становилась неустойчива.

Для проверки кто виноват поменял местами флешки и поведение поменялось на противоположное — старый экземпляр стал захватывать нормально, а новый плохо.

В процессе была неудачная попытка приспособить 24c32n, снятую с платки rtc на ds3231, и прошитую аналогично «новой», обе платы вели себя аналогично полному ее отсутствию, хотя программатор считывал ранее записанное без проблем, связано ли это с обьемом или чем еще — не разобрался, а дополнительных 24c16 в закромах не обнаружилось.

Дамп прошивок:
filetransfer.io/data-package/F665d0IS
(где бы их лучше перевыложить? здесь обещан всего 21 день хранения).
дубль2: files.catbox.moe/gget9r.rar
и еще 4 места: mySKU.me/blog/aliexpress/99854.html#comment4473799

upd. посмотрел на потребление от usb (5В) на «старом» экземпляре с прошивкой от «нового»:
75мА — с отключенным hdmi
160мА — с подключенным hdmi/fhd
175мА — во время захвата fhd/yuv/5fps
195мА — во время захвата fhd/mjpeg/30-«60»fps
Максимум ~1Вт.

upd2. в комментариях накидали интересных ссылок по теме:
habr.com/ru/articles/669578/ — более древнее исследование по теме
github.com/sandbox-pokhara/ms2109-firmware?tab=readme-ov-file — про формат прошивки и программное ее обновление, в том числе про использование i2c бОльших (32/64k) обьемов.
github.com/BertoldVdb/ms-tools — про программное обновление
Планирую купить +5 Добавить в избранное +68 +87
+
avatar
+4
В процессе была неудачная попытка приспособить 24c32n, снятую с платки rtc на ds3231, и прошитую аналогично «новой», обе платы вели себя аналогично полному ее отсутствию, хотя программатор считывал ранее записанное без проблем, связано ли это с обьемом или чем еще — не разобрался, а дополнительных 24c16 в закромах не обнаружилось.
Протоколы обмена могут отличаться. У 24С16 скорее всего не используются выводы выбора адреса, с той целью чтоб впихнуть в первые 2 байта адрес микросхемы на шине и адрес ячейки. У 24c32n такой фокус не проходит и для передачи адреса требуется уже 3 байта.
+
avatar
  • sosag75
  • 24 апреля 2024, 12:38
+3
Нашел частичное описание и софтину для прошивки github.com/sandbox-pokhara/ms2109-firmware?tab=readme-ov-file
за размер EEPROM отвечают первые 2 байта (A5 5A для 24c01/02/04/08/16 или 96 69 для 24c32/64, запаял 24с32 и прошил прямо из этой программы полет нормальный :)
+
avatar
  • VecH
  • 21 апреля 2024, 17:34
0
На старом или новом и что то надо доработать
+
avatar
+5
где бы их лучше перевыложить?
Загрузить на гугл-диск, открыть общий доступ на чтение.
И выложить ссылку для скачивания.
+
avatar
  • vlo
  • 21 апреля 2024, 18:05
0
вот чего нет, того нет.
+
avatar
+3
Нажать пару кнопок и всё будет)
accounts.google.com/SignUp?hl=ru
+
avatar
  • Chatter
  • 21 апреля 2024, 19:50
+1
не переживай, сейчас поможем:
habr.com/ru/articles/669578/
github.com/BertoldVdb/ms-tools
+
avatar
  • Himmler
  • 21 апреля 2024, 21:07
+3
На форуме IXBT практиковалось склеивание джипега с архивом (с нужным файлом) внутри темы. Как показало время (а там есть темы, которым более 15 лет), метод чертовски надёжный.
Годы идут, файлообменники мрут, а тут открыл тему из прошлого с картинками о, скачал картинку и открыл её архиватором — внутри твоя прошивка на какие-нибудь 10-100 килобайт.

Касательно прибора — тоже купился и тоже китаец прислал на старом чипе, а именно ms2109. Поднял спор, прикладывал тестовые видео и скрины из даташитов, подтверждающие фейковые 60 FPS. В итоге полностью вернули деньги.

Битрейт у прибора как-то не очень, шрифты выглядят коряво.
+
avatar
  • 00svd00
  • 23 апреля 2024, 03:57
+3
rarjpeg называется метода. Родом из нулевых ещё, смысл в том что jpeg читается до последнего валидного блока и весь «мусор» на конце файла игнорится. А winrar ищет тело архива по метаданным и может игнорировать «мусор» в начале. Соотв. для изготовления нужно просто скопировать rar архив в конец jpeg картинки. Но для муськи способ не канает, т.к. фотки пережимаются. Да и в целом надёжность такая себе, стоит администрации ресурса решить «оптимизировать» старые картинки пережав старые фото — и архивное прилодение помрёт.
ИМХО такие штуки правильнее всего выкладывать на гитхабе, тупо завести репку и закинуть туда фотки, описание в ридми и бинарники с дампами. Будет кучеряво.
Или вообще смешной вариант — прямо тут, в пост, под спойлер в base64. Только что чекнул, всего то 2768 символов для 2кб дампа
+
avatar
+6
где бы их лучше перевыложить?
catbox.moe один из немногих сервисов, где можно выложить бесплатно без регистрации и смс
+
avatar
  • dimats
  • 21 апреля 2024, 19:22
+5
Выкладывать рекомендую на mega.nz

Дают 20 гб бесплатно (но есть лимиты на объемы скачиваний, впрочем для выкладывания мелких файлов — не критично)
Без дурных ожиданий сетчиков (только на дешифровку), без рекламы (хотя у меня резалки, могу не видеть, даже если таковая есть)
Без проблем регистрируется на одноразовые почты, лишнего не спрашивает.
mega.nz поддерживается rclone и прочими утилитами работы с облачными дисками вроде air-explorer.
Не удаляют и через год.
+
avatar
  • R42
  • 21 апреля 2024, 19:29
+3
Статья 2022 (2021) года на Хабре habr.com/ru/articles/669578/
+
avatar
  • vlo
  • 21 апреля 2024, 19:39
+1
«плохая» там идентична, а вот «хорошая» отличается примерно на половину обьема. значит есть еще один вариант.
+
avatar
  • Latte
  • 21 апреля 2024, 20:23
+1
Надо будет попробовать свой зашить, спасибо!

где бы их лучше перевыложить?
За последние 10 лет файлы остались доступны в двух местах — мс вандрайв и mediafire. Так что могу рекомендовать последний, но надо регистрироваться.
+
avatar
0
Спор не открывали?
+
avatar
  • vlo
  • 21 апреля 2024, 21:30
0
не. там вроде уже было написано про случайный выбор из 2х вариантов.
+
avatar
  • bdima
  • 21 апреля 2024, 22:12
-2
Меня в этом девайсе огорчило то, что он питание берет с USB, а не с HDMI, из-за чего затея использовать в качестве «второго монитора» ненужный планшет пошла прахом по причине вороха проводов (USB-хаб с доп.питанием), т.к. планшет его «кормить» не выдерживает
+
avatar
0
Паяльником не решается?
+
avatar
  • puzoid
  • 21 апреля 2024, 22:36
-1
Питание в hdmi ограничено 50мкА, паяльник ничего не решит.
+
avatar
  • bdima
  • 21 апреля 2024, 22:39
+1
Все же мА, а стандарте 2.1а уже 300мА, нешто этому поделию больше надо?
+
avatar
  • vlo
  • 21 апреля 2024, 22:47
0
часто попадается 2.1a?
о потреблении добавил.
+
avatar
  • bdima
  • 21 апреля 2024, 22:37
0
Возможно, но разбирать схемотехнику китайского поделия рискуя спалить либо видеокарту за 35К либо планшет (ладно хоть старый и ненужный :) — что-то боязно
+
avatar
  • dimats
  • 21 апреля 2024, 22:34
0

OTG кабель с доп. питанием, у меня с таким завелось на одном из планшетов.
+
avatar
  • bdima
  • 21 апреля 2024, 22:36
+1
В курсе, но все равно доп. «сопли». Те же HDMI-VGA конверторы прекрасно питаются от HDMI.
+
avatar
0
Там нагрузка меньше в разы, по сути, просто ЦАП. А тут — видео-кодер. Ну, и в планшете же не usb-a, значит, один переходник всё равно будет.
+
avatar
0
ну не всегда прям прекрасно, у меня был случай когда пришлось повесить на питание конденсатор ибо питания не хватало и были глюки
+
avatar
+6
а где доработка?
+
avatar
  • greydog
  • 22 апреля 2024, 01:57
+2
где бы их лучше перевыложить?
github?
+
avatar
+4
перезалил на мегу гугл диск яндекс.диск облако мейл.ру и на дружественный сайт
+
avatar
0
вот бы еще как-то vid/did поменять (или какой-то другой параметр), так как сталкивался, что на одном usb хабе, даже корневом (в моноблочном компьютере), два таких стика одновременно работать отказывались
+
avatar
  • vlo
  • 22 апреля 2024, 13:48
0
скриншот с ними снят с подключенных одновременно, и перетыкая hdmi между ними они работали. правда насколько логически разнесена конкретная пара портов не обращал внимания.
выше была ссылка на гитхаб с какимито разборками, может там чего и было на тему.
+
avatar
0
вот бы еще как-то vid/did поменять (или какой-то другой параметр), так как сталкивался, что на одном usb хабе, даже корневом (в моноблочном компьютере), два таких стика одновременно работать отказывались
Ну это явно какой-то косяк в самом софте или драйверах, потому как десяток преобразователей USB-UART не только с идентичными VID/DID но и серийными номерами, нормально работают на одной системе.
+
avatar
  • vlo
  • 22 апреля 2024, 14:55
0
прикол девайса (хоть и весьма распространенный) в том, что он использует стандартный интерфейс и драйвера от ms.
+
avatar
  • vlo
  • 22 апреля 2024, 22:30
0
посмотрел еще раз — чипсет q87, подключены оба к root hub'у из xhci, как и все остальное.
оба гонят картинку одновременно (второй 8 цветных полос из-за отсутствия входного сигнала, но по usb он их передает).
но, повторюсь, тут все драйвера — от ms, ничего стороннего нет.
+
avatar
0
еще могло быть дело в том, что девайс usb2.0 и выжирает чуть ли не всю пропускную полосу шины. поэтому 2 девайса на одном хабе ожидаемо не работают.
+
avatar
  • Uri62
  • 24 апреля 2024, 18:34
0
Но по факту захваченное «новым» содержит только 30 кадров, дополненных пустыми (vdub почему-то их отображает как ключевые (K), а не пропущенные (D), но размер у них околонулевой).
А как это доказать в споре на Али? В VirtualDub не нашёл, как посмотреть размеры кадров. Да, при покадровом просмотре видно, что чётные кадры дублируют нечётные. Но как (какой программой) «увидеть» (и показать в споре), что чётные кадры околонулевого размера?
+
avatar
  • sosag75
  • 25 апреля 2024, 09:26
0
Просто покажи офф страничку "ссылка" где указано что «Max output resolution: 1920×1080@30Hz» или скрин из datasheet
Дополнительная информация
на конвертер, там расписано что он умеет. может и проканает.