Это не совсем обзор программатора, потому что мои познания в данной области, мягко скажем, ограничены моими умственными способностями. Но это повествование о том, как будучи полным «чайником» в данной теме, тем не менее, немножко разобравшись, можно справиться, на первый взгляд, с абсолютно безнадёжным делом.
Понимаю, что многие наши гуру электроники с Мусек, починили бы эту камеру, возможно, просто силой мысли. Но тут особый случай, потому что за дело берётся человек не особо в этом разбирающийся и обладающий минимальными знаниями в том, что собирается делать.
И если это сделал я, то могут сделать и другие, не шарящие люди. Возможно этот недообзор, кому-то пригодится. Если вы например убили китайскую камеру неудачной прошивкой.
В общем это очередное моё ОНО — обзор не обзорщика. Подробности под катом.
Предыстория
История этого обзора уходит своими корнями в далёкий 2019 год, как раз в то время, когда только-только в наши страны начинал проникать короновирус. И к делу это никакого отношения не имеет.
Заказал мой друг себе комплект видеонаблюдения на Али. Взял регистратор на 8 каналов и несколько уличных видеокамер. Заказывал он в магазине
Besder. Я несколько раз брал там камеры и регистраторы, и проблем не было. В общем получили мы посылочки, всё подключили (на столе разумеется) и начали прописывать камеры в регистраторе. И одна камера не завелась. То есть она была вообще мёртвая. Регистратор её не определял, утилиты, которые ищут IP камеры в сети по Onvif или другому протоколу, тоже её не находили. На фишке RJ45 у камеры есть светодиод «пинга», и он тоже не светился и не моргал. В общем кирпич.
Мы отсняли подробное видео для китайца, в качестве доказательства и китаец ответил, что нет проблем, пришлю другую камеру. И собственно прислал. Нормальную и работающую.
Камеру мы конечно разбирали и долго тупили глядя на печатную плату. Визуально с ней было всё ок. Подкидывали провода от другой камеры. Не помогло. Так эта камера и лежала мёртвым грузом. Периодически мы возвращались к идее её оживления. Одним из явных вариантов было заказать на Али плату с матрицей и всем остальным. Но плата со схожими характеристиками стоит около 80% стоимости от камеры. Есть варианты и подешевле, но с более слабыми параметрами. Но это всё были размышления моего товарища. У меня же мысли шли в другом направлении. Я был уверен, что проблема в прошивке камеры. И я предлагал более авантюрный вариант. Выпаять микросхему флеш памяти из работающей камеры, считать с неё прошивку, и залить в флеш память неработающей камеры. И таким образом, ушатать ещё и рабочую камеру)))
Подкреплялась моя уверенность в успехе ещё и тем, что камера, как мы выяснили, пингуется через командную строку по своему стандартному из коробки IP адресу, 192.168.1.10. А это значит, что часть прошивки, которая не меняется при обновлении, живая. Да и светодиоды подсветки в камере включались без проблем, если закрыть датчик. То есть проблема, явно программного характера.
Периодически я возвращался к этой теме и вот в один из таких моментов, когда захотелось оживить, по сути, бесплатную камеру, я наткнулся на пост на 4pda, где человек, на много и во много раз умнее меня, восстановил видеоглазок. Который он «окирпичил» неудачной прошивкой. Симптомы в результате он получил схожие. Камера пингуется, но web-интерфейс, а с ним и всё остальное недоступны. Так вот, этот умный товарищ смог оживить свою камеру, примерно таким же методом, над которым я размышлял в теории. Только он не клонировал чип с другой камеры, а собрал вручную дамп прошивки. Звучит всё это дико сложно, для человека, который в этом не разбирается. То есть для меня. Теоретически, в общих словах, мне понятно что он сделал. Но вот применить на практике — это совсем другое дело. К тому же он использовал там программатор, который стоил около полусотни баксов. Что тоже ставило под сомнение и без того сложное, для меня, дело.
Но потом, он дополнил свой пост, что эти микросхемы можно прошивать и дешёвым программатором, если его чуть-чуть допилить. А дешёвый программатор стоил 5$, что на фоне камеры и программатора за 50 это просто пыль на сапогах, поэтому я его не задумываясь сразу же и заказал.
Программатор был заказан и пришёл на удивление очень быстро. Менее чем за две недели. Вот собственно и он
Я заказывал полную комплектацию, с адаптером и прищепкой. Как вы уже могли догадаться фундаментального обзора от меня на программатор ждать не стоит. Только применение на практике, для своей задачи. В конце обзора я выложу ссылки на инструкцию на программатор и весь необходимый софт.
Итак, в чём собственно состоит суть оживление камеры. Объясню «колхозным» языком, как умею. У камеры есть флеш память. Это микросхема XT25F6B-S. Их можно купить на Алике, десять баксов за десяток. Туда записывается прошивка камеры. И когда вы прошивку обновляете она записывается поверх старой, но есть одна область, которая при этом не перезаписывается. В этой области хранится MAC-адрес камеры, сетевые и другие настройки. А также серийный номер камеры, по которому она регистрируется на облачном сервере. В нашем случае это облако Xmeye. И если бы я перезалил прошивку с другой камеры, то у нас бы получился полный клон. И я не знаю смог бы он работать в одной сети или нет. Понятное дело, что одинаковые IP адреса конфликтуют. Но адрес можно сменить. А МАС-адрес нельзя. И конфликтуют ли одинаковые МАС-адреса в одной сети, я если честно точно не знаю, но по идее проблемы могут возникнуть. Но нам собственно это и не нужно. Мы же будем собирать дамп прошивки вручную.
Так вот, если предположить, что в нерабочей камере, вот эта область прошивки живая, то её можно взять и вставить в рабочую прошивку, которыми обычно и прошиваются камеры. И такая прошивка у нас есть. Продавец присылал её моему товарищу, когда у него лагала одна из камер. Звучит сложно, но на самом деле всё не так страшно. Если немножко вникнуть и разобраться. Начнём.
Итак, вот наша камера
Уличная камера на 3Мп, в алюминиевом кожухе, с ИК подсветкой и вариофокальным объективом 2.8-12 мм. С очень удобной регулировкой. Не нужно откручивать «морду» камеры, всё регулируется винтиками прямо на кожухе.
Вот плата камеры
Наша флеш память, это маленькая микросхема слева на 8 ножках
Её нужно выпаять и вставить в прищепку. Без выпаивания считать-записать не получится. Поскольку я раздолбай, то не сфоткал микросхему в прищепке. Поэтому это иллюстрационное фото, взятое в инструкции
Оставим пока микросхему в покое и вернёмся к программатору. Его нужно немного доработать. По словам умных людей с 4pda программатор не работает с микросхемами на 3.3В. И в официальном софте нашей микросхемы нет. Зато она есть в софте NEOPROGRAMMER. А для того что бы всё работало прекрасным образом, нужно 28 ножку микросхемы на программаторе, перекинуть на проходящую рядом дорожку. Вот эта дорожка уже зачищенная
Ножку разумеется нужно припаять
Получилось так себе, но проверка мультиметром показала, что всё ок. Со старым контактом ножка не коротит и контакт доходит куда надо.
Подключаем программатор к компьютеру и заходим в диспетчер устройств
Автопоиск драйверов в сети тут не поможет. Нужно вручную указать путь к папке с драйверами.
Весь необходимый софт и драйвера, будут по ссылкам в конце обзора.
После установки драйверов имеем следующее устройство
Теперь нужно подключить прищепку с микросхемой к программатору. И тут нужно соблюсти ряд правил, что бы не напутать куда идут какие контакты. На программаторе есть два слота. Для микросхем 25-й серии и 24-й. Нам нужен для 25-й, он ближе к USB. Устанавливаем туда комплектный адаптер, как на фото
Обратите внимание на нумерацию клемм. 1 это первая ножка микросхемы. На шлейфе это красный провод. Соответственно втыкаем шлейф в адаптер так, что бы красный провод был на 1-й клемме
Микросхему тоже нужно вставить правильно в прищепку. На микросхеме первая ножка обозначена точкой на корпусе
Эта ножка должна совпадать с красным проводом со стороны прищепки. Теперь перейдём к программной части. Запускаем NEOPROGRAMMER
Нажимаем кнопку Поиск
Выбираем нашу микросхему
И нажимаем на пиктограмму «Читать чип», на панели справа от кнопки сохранить. Начинается считывание прошивки
Если прошло всё хорошо, а у меня прошло без проблем, получаем такой результат
Сохраняем скачанную прошивку на жёсткий диск. Далее нам нужно собрать дамп. Запускаем программу Dump builder, указываем там размер флешки 8 Мб и нажимаем Create dump и указываем путь и имя файла для сохранения
Далее нам нужно добавить рабочую прошивку для камеры (полученную в нашем случае от китайца). Нажимаем Open frimware и выбираем файл прошивки
Нажимаем добавить и все компоненты прошивки добавляются в наш дамп и он автоматически сохраняется
Закрываем Dump builder. Далее нам нужен любой HEX редактор. Я взял Free Hex Editor Neo. Он условно бесплатный. Работает 14 дней. Но прежде чем в нём что-то изменять в дампе, нужно подтвердить пробный период. Например открыть файл прошивки (любой), повыделять там, покопировать и повставлять, пока не выскочит окно в котором нужно будет подтвердить или купить. После этого закрыть редактор и открыть заново два раза. Ну лично я делал так. На одном мониторе открыл одно окно на втором другое. Он без проблем запускается параллельно. В одном редакторе мы открываем созданный нами в программе Dump builder дамп
Во втором открываем скачанную в NEOPROGRAMMER и сохранённую прошивку с микросхемы. В сохранённой прошивке мы выбираем «крипту», это как раз тот раздел, в котором прописан МАС-адрес и прочее. Находится этот раздел по адресу 0002fc00 — 0002fff0. Выделяем его полностью. Нажимаем правой кнопкой мыши и выбираем копировать
Возвращаемся к первому окну, где открыт наш дамп, и находим там этот же адрес строки 0002fc00. Кликаем правой кнопкой по первой ячейке и выбираем Вставить
Скопированная часть прошивки переносится в наш дамп
Далее сохраняем нашу сборку на диск. Запускаем NEOPROGRAMMER и опять находим нашу микросхему. Здесь же кликаем на пиктограмму Открыть и выбираем только что сохранённую сборку. И находим пиктограмму Записать
Нажимаем на треугольник рядом с ней
Здесь нужно поставить галочки
Снять защиту
Стереть
Проверка на чистоту
Записать
Сравнить содержимое — галочку убрать. Далее нажать на саму пиктограмму Записать. Начнётся процесс записи на флеш память. По окончанию записи будет выглядеть так
После всей проделанной работы, мы впаяли микросхему обратно на плату
Да, выглядит корявенько, но это паял не я, а мой товарищ. Его же камера. Так что с меня взятки гладки. Закончив с пайкой и собрав камеру, мы подали на неё напряжение и подкинули патч-кордом к ноутбуку. Приятным для нас сигналом был светящийся диод на разъёме RJ45 на шнуре камеры. Первым делом я пинганул камеру через командную строку
Камера пингуется. Потом запустил утилиту от Geovision и она определила камеру по Onvif
Ну а далее ввёл адрес в IE и с радостью увидел до боли знакомую картину
Камера заработала
Мы пожали руки и поздравили друг друга с удачей.
Ну, а если, у кого то после прочтения, закрались мысли, что автор, а это я, шибко-больно умный, раз раскидывается тут разными мудрёными понятиями и прочим непонятным. То я спешу вас успокоить. Я просто начитался в этих ваших интернетах всякого, на умных форумах. А с языка этих слов уже не снимешь, поэтому и выпендриваюсь тут перед вами.
Итог. Мой друг получил абсолютно бесплатную рабочую камеру (за программатор платил я), а она на скидках стоила больше тридцатки. Я получил программатор, который возможно пригодится мне в будущем, скилл в прошивке микросхем и сборке дампа, а так же материал для дилетантского обзора. На этой позитивной ноте, пожалуй, и закончим.
Ссылки:
Тема посвящённая программатору CH341A на 4pda
Ссылка на пост автора со схожей проблемой (с которой я собственно и начинал)
Инструкция к программатору (на русском)
Драйвера для программатора
Официальный софт для программатора
Не официальный софт NeoProgrammer 2.2.0.7
Dump builder
Free hex editor
Всем спасибо за внимание
за обзор зелень
Делал дамп с похожей камеры, чип того же производителя на 128 — пришлось снимать дамп раз 10 и вычислять средне-статистические значения плавающих байтов.
А способ ремонта оригинальный)
Убогая контора. Поддержки нет, по любому косяку вымораживаются.
Автору спасибо за обзор. Где то в коробке тоже лежит Бездарь, который даже не моргает сетевым индикатором. Прост в один прекрастный день перестал работать — ИК-подсветка работает, а всё остальное на нуле.
Подумаю, может и прикуплю сабж.
Вот нормальная камера XM в металлическом корпусе без лишних надписей, с матрицей Sony IMX335.
Сплав… :)
Именно потому дешевые камеры не имеют опции принудительного выключения подсветки.
Вот когда у человека глаза округляются на этапе озвучки слов «паяльник, командная строка, дамп и 16-ричная система», то да, дело плохо и подвиг будет разобраться с полного 0.
Мой старый друг и одноклассник, отличный портной, работал в ателье, а там одни деффки.Издевался он над ними частенько таким макаром- кто либо из них говорит ему: Дим, подкинь ножницы.Димка берёт ножницы со стола, подбрасывает их в воздух невысоко, ловит и кладёт обратно.
Если не подан ток на камеру, то какая разница выпаяна память и вставлена в крокодил или вставлена в крокодил прямо в составе платы?
Плата то обесточена?
Вот раньше микросхемы были в кроватках, красота. Но, видимо, развести гребёнку обходится на пару центов дешевле.
Более опытные сварщики наверняка подскажут какую ногу надо отпаять и/или чего на неё подать, но мне проще и быстрее было сдуть феном.
А вот использование прищепки — вовсе не обязательно. У автоар и на переходнике и на самом программаторе есть площадки под этот тип корпуса. Достаточно установить микросхему на них (соблюдая нумерацию) и прижать ее обычной бельевой прищепкой…
Впрочем — если уж взяли программатор с прищепкой, то почему бы и не воспользоваться…
:-)
Плюс, конечно
Его лучше сразу выбросить и воспользоваться Colibri, AsProgrammer, flashrom, Postal… тысячи их
github.com/boseji/CH341-Store — тут есть практически всё.
И, как сказали — не скромничайте. Дело сделано — а значит, знания не совсем «минимальные». :)
Не понимаю.
Бесплатный.
2. Плата вашей видеокамеры была банально не прошита. Такое случается на заводах. В отделе прошивки и сборки сидят люди и они совершают ошибки.
3. На пайку смотреть больно. Попросите чтобы вам поправили нормальными руками и припоем с флюсом.
да это уже пусть товарищь мой решает, это же его камера. Но он придерживается мнения, что работает и хорошо.
А если она у вас одна такая красивая то всем будет совершенно пофигу какой у нее MAC адрес.
Допустим, у Вас в сети два устройства с одинаковым маком (назовём его для определённости «М1») и разными ай-пи (для определённости «А1» и «А2»). Свич с железом общается не по ай-пи, а по макам, думаю, Вы это знаете. Когда приходит запрос от чего-то в сеть на адрес А1 и маршрутизатор отправляет его в тот сегмент, где расположены эти две железки со свичом, на какой порт счич отправит пакеты?
Учтите, что я Вам писал о проблемах вообще, а не о потере соединения в частности.
Специально для Вас нашёл эксперимент почти двадцатилетней давности. Но уже со свичами, не с хабами.
Всё вполне закономерно: те 300 секунд, про которые Вы пишете (5 минут) это максимальное время жизни информации о маке, если устройство неактивно. А если оно активно, то в таблице свича информация меняется каждый раз, когда проходят пакеты. И две видеокамеры, которые постоянно передают сигнал, устроят Вам на свиче проблемы с гораздо большей периодичностью, чем 5 минут :)
Вывод неверный. Нет, я не теоретик. Мне, как раз, на практике частенько приходится искать проблемы в относительно крупных сетях, что остаются после таких диванных практиков, которые теорию вообще не изучают (а зачем? и так же всё работает!).
В итоге, одна из частых проблем, когда подобные диванные практики, не изучая теории, по различным причинам (будь-то виртуальные машины; бездумное копирование прошивок на всевозможные сетевые устройства; накатывание образов винды, в которых сетевому адаптеру мак задан вручную был и т.п.) оставляют в одной сетке несколько устройств с одним маком. И сразу после завершения их работы сеть даже может функционировать, т.к. нагрузки не было, конкретная железяка (компьютер, регистратор, раутер, сетевая камера и т.д.) с дубликатом мака была не активна и т.п. А через время в рабочем режиме при соответствующей нагрузке начинается чехарда и ахтунг. Но эти исполнители, даже после нахождения их косяков, кричат, что дело совсем не в этом, ведь оно ж с самого начала работало!!!
Но общаться дальше на эту тему с вами не имею ни малейшего желания. Тем более, что она очень далеко ушла от предмета обзора.
Если запросы шлются достаточно редко и ответы успевают приходить без пересечений, то все будет как бы работать.
«Прищепка», собственно, и нужна для внутрисхемного программирования.
Если в разрыв общего контакта 1117-3.3 впаять красный светодиод и параллельный ему джампер, то можно выбирать 3.3v/4.9v питание ch341a.
Выпаивать всего «жука» ради перишивки? как то странно…
Потом купить сплава Розе, и аккуратно вымазать с помощью паяльника все лапы микросхемы, можно даже, чтоб они слиплись. Главное, на другие детали не наляпать.
Прогреваете все ноги и снимаете микросхему, олово не успеет застыть. Потом убираете все остатки этого олова и выкидываете — паять получившимся расплавом нельзя, он слишком хрупкий.
Ну а потом на место припаиваете обычным оловом.
Ну и кроме того. Даже я, хоть и считаю, что паяю обычным паяльником неплохо. Но вот с деталями, которые надо паять феном вообще ничего не могу сделать, может нижний нагрев нужен, незнаю. (Вот самая обычная DDR3 память планками). Поэтому в деталях, у которых есть хоть какие-то ноги сплав Розе моё единственное спасение! (Например если надо выпаять плату впаянную в другую плату, типа как намнекоторых мониторах Samsung электроника ламп).
а если программатор нормальный то шить можно без выпайки если схема позволяет
Кроме того, кроме колодки на 200mil, полезно еще будет прикупить колодку на 150mil — она еще более востребована (разные размеры микросхем)
На вскидку: https://aliexpress.ru/item/item/32827349954.html
возможно, Вам цена отображается как 4,99 всего
но для моей страны она 4,99 + 2,36 доставка
так что для некоторых мой вариант выйдет все таки дешевле
И отдельная благодарность за обзор, думаю кому-то точно пригодится!
Недаром нет данных о матрице в pdf IVG-85HF30PS-S.
Довольно много хвалебных отзывов о СТАРВИС СОНИ 335 307 итп (Вашу даже не рассматриваю). Но когда сравниваешь с дешевыми imou от Dahua, да даже с зависящими от китайских серверов Xiaomi то сравнение сразу не в сторону Xm. После того как попользовался чем-то другим на Xm больше смотреть не хочется. Восстановили — и дальше ламерам на авито на продажу. Я, кстати, попробовал что-то чуть подороже, после того как нужен был звук. Оказалось микрофон подключать к Хм бесполезно — сплошной шум.
Очень приятно осознавать что проделанная мной работа и потраченное время приносит пользу все большему и большему количеству людей…
"… я наткнулся на пост на 4pda, где человек,..." — я автор этого поста☺
Было забавно читать Ваш обзор/повествование и обнаружить в нем упоминание меня и моего поста на 4PDA.
Кстати вот ссылка на этот пост: 4pda.ru/forum/index.php?showtopic=632275&st=6000#entry99802862
думаю в нем также есть полезная информация(включая ссылки на источники от которых отталкивался я в свое время), которая может быть полезна многим читающим этот пост или решающим подобную задачу.
Считаю что ее можно было бы добавит в раздел ссылок Вашей статьи.
Спасибо.
Кстати, я точно такой же «чайник» в этой области как и Вы...☺ просто мой путь был немного сложнее…
Да, Вы правы. Добавил ссылку на Ваш пост в перечень ссылок.
Спасибо за проделанную Вами работу. Именно Ваш пост и структурировал в моей голове дальнейший алгоритм моих действий. А то до этого у меня просто был набор догадок и предположений. Как оказалось верных, но всё же на догадках без скилла далеко не уедешь)))
4PDA
А так то про этот адрес в моей ссылке и написано)