13

Ответ peacemakerv в «Реверс-инжиниринг печатной платы»

Продолжаю потихоньку пилить мало кому полезное поделие ..

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

Сейчас доделываю формат экспорта в Альтиум и в ДипТрейс.

Оказывается нашелся способ как передать туда любой профиль микросхемы:

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Волна постов, Ответ на пост

Аналогично файл импортируется и в DipTrace

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Волна постов, Ответ на пост

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

Может действительно в опенсорс закинуть??

Показать полностью 2
26

Продолжение поста «Реверс-инжиниринг печатной платы»

В последней версии программы PCBComparer2 появилась возможность загружать реально большие фотки, но только если комп под Windows теперь будет обязательно с памятью от 4 ГБ RAM.

На удивление, много народу в голосовании отметили, что версия под Linux - интересна, и я сделал было попытку запускать эту мою программу, написанную в среде Java + JavaFX под Linux Mint 21 на ноуте что есть под рукой.
И даже поправив мелочи очевидные, обязательные для работы - я разочаровался: приложение JavaFX с графическим интерфейсом работает под Win10 - отлично, как планировалось, и в плане графики, и в плане поведения окошек и сообщений, но при этом ведет себя совсем не так же под Linux (в плане zoom-а фоток).

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

Это demo-версия, вероятно, она глючная, и невозможно использовать, в плане zoom графики, хотя у меня при каких-то сочетаниях версий java и javafx (пробовал 14, 19 как Java, так и JavaFX, хотя по умолчанию последняя публичная OpenJFX устанавливается 11я) - работало нормально, как и под Windows10, но я так и не запомнил при каком сочетании - попробуйте, кому интересно, ссылка с авторской страницы.

Пока инструкции для Линукс такие:

  1. установить Java (тестировал с OpenJDK 14 и 19)

  2. установить JavaFX: sudo apt-get install openjfx
    (установка должна получиться в /usr/share/openjfx)

  3. запускать как-то так, если поместить .jar-файл программы в подкаталог pcbc2 в домашнем каталоге:


    java -jar --module-path /usr/share/openjfx/lib --add-modules ALL-MODULE-PATH ~/pcbc2/pcbcomparer2.jar

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

Показать полностью 1
9

Ответ peacemakerv в «Реверс-инжиниринг печатной платы»

Ну и раз пошла такая пьянка .. запилил метод для формирования компонентов налету.

Используем метод главных компонент для получения основного направления из облака точек. Далее формируем прямоугольник с заданным Margin (хз как это по русски).

Дальше задача только схему объективно нарисовать и передать ее в какой нибудь сапр типа diptrace. )))

Ну и ссыль если кому интересно: https://disk.yandex.ru/d/9-BTiMIkXWSZOQ

Показать полностью
12

Ответ peacemakerv в «Реверс-инжиниринг печатной платы»

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

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

Вот класс объектов которым можно описать по сути все что надо:

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Видео, Без звука, Ответ на пост, Длиннопост, Волна постов

то есть концептуально у нас есть объект который может быть либо точкой либо каким то элементом.

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Видео, Без звука, Ответ на пост, Длиннопост, Волна постов

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

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

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Видео, Без звука, Ответ на пост, Длиннопост, Волна постов

Дальше я уже не дописал но логика однотипная. И заметьте как удобно перелистывать слои когда мышь находится в точке перехода. Вы просто сменили слой и продолжили трассировку дорожки. Мне кажется что это очень удобно было бы.

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

Но пока не решена проблема циклов в дереве.. это пока проблемка. Как то так..

Показать полностью 3
27

Ответ peacemakerv в «Реверс-инжиниринг печатной платы»

Вот на досуге накидал свой вариант. Он правда на C# но суть должна быть проста.

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

Формируем две матрицы исходных точек и конечных (в другом слое)

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Видео, Без звука, Короткие видео, Ответ на пост, Длиннопост, Волна постов

Далее дополняем одну из них столбцом 1,0 и производим простейшие преобразования:

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Видео, Без звука, Короткие видео, Ответ на пост, Длиннопост, Волна постов

Использовал библиотеку MathNet. Наверняка она и для Java существует либо аналог какой нибудь.

На выходе получаем матрицу которую применяем к изображению.

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Видео, Без звука, Короткие видео, Ответ на пост, Длиннопост, Волна постов

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

Ответ peacemakerv в «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, RUTUBE, Видео, Без звука, Короткие видео, Ответ на пост, Длиннопост, Волна постов

Ну и сырцы если кому интересно.

https://disk.yandex.ru/d/dUzo252Wu4oSzg

Показать полностью 4
157

Продолжение поста «Реверс-инжиниринг печатной платы»

Спасибо всем за отклики к первому посту !
Новости: в программе реверс-инжиниринга печатных плат появился:

  • во-первых - русский интерфейс (сейчас английский, наверное, смысла уже не имеет большого при разработках у нас в стране, как мне кажется)

  • и во вторых - редактор фоток слоёв печатной платы

Продолжение поста «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, Видео, RUTUBE, Ответ на пост, Длиннопост, Волна постов

Закончил правку интерфейса на английском, теперь только на русском

Редактор фотографий сторон печатной платы поможет синхронизировать обе фотки друг с другом: чтобы точка на одной стороне платы - более-менее точно совпадала с положением на другой стороне. Это вы сами визуально должны определить.

Продолжение поста «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, Видео, RUTUBE, Ответ на пост, Длиннопост, Волна постов

Можно скомпенсировать поворот фотки с точностью до десятых долей градуса

Если фотографии сделаны не строго горизонтально (думаю, в этом можно вообще не сомневаться) - то поворот поможет выровнять нужную фотку, но не забывайте:

  1. предварительно выбрать редактируемую сторону

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

Продолжение поста «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, Видео, RUTUBE, Ответ на пост, Длиннопост, Волна постов

Ширину и высоту можно отмасштабировать, подгоняя размер и отключив галочку "Сохранить пропорции"

Кроме масштабирования, фотки можно подвинуть, изменив числа "Слева" и "Сверху". Все числа в полях - в процентах от соответствующего размера фотки (горизонтального или вертикального).

Продолжение поста «Реверс-инжиниринг печатной платы» Опрос, Электроника, САПР, Печатная плата, Разработка, Инженер, Программа, Видео, RUTUBE, Ответ на пост, Длиннопост, Волна постов

Мышкой с Shift можно выделить области и обрезать

Вот есть видео как примерно можно редактировать картинки, синхронизируя их между собой:

Последние новости и правки в программе доступны со странички автора. Спасибо за пробу и отзывы !

А нужна ли кому-то версия под linux...?
Всего голосов:
Показать полностью 4 1 1
77

Ответ на пост «Реверс-инжиниринг печатной платы»

Мой опыт в реверс-инжиниринге печатных плат, софт - DIPTRACE:

Сначала фотографируем плату с компонентами, отпаиваем компоненты, сканируем плату, поворачиваем/кадрируем в фотошопе (получаем слой TOP SILK)

Ответ на пост «Реверс-инжиниринг печатной платы» Электроника, САПР, Печатная плата, Длиннопост, Разработка, Ответ на пост, Реверс-инжиниринг, Волна постов

TOP SILK

шлифуем плату мелкой шкуркой под водой с обеих сторон, сканируем

Ответ на пост «Реверс-инжиниринг печатной платы» Электроника, САПР, Печатная плата, Длиннопост, Разработка, Ответ на пост, Реверс-инжиниринг, Волна постов

TOP

Ответ на пост «Реверс-инжиниринг печатной платы» Электроника, САПР, Печатная плата, Длиннопост, Разработка, Ответ на пост, Реверс-инжиниринг, Волна постов

BOTTOM

Вставляем картинку в диптрейс, масштабируем, ставим паттерн и СРАЗУ, после установки каждого паттерна ведем от него дорожки, особенно если есть куда их вести. Таким образом мы дважды проверим путь каждой дорожки

Ответ на пост «Реверс-инжиниринг печатной платы» Электроника, САПР, Печатная плата, Длиннопост, Разработка, Ответ на пост, Реверс-инжиниринг, Волна постов

Отрисовав верхний слой идем File - Layout - Holes - Number of Sizez - ... - Show on board. (Кто не знаком с диптрейсом - данная опция позволяет последовательно рассмотреть каждое отверстие) Протыкиваем каждое отверстие и если от него идет дорожка - ведём ее. Опять же получается двойная проверка

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

Ответ на пост «Реверс-инжиниринг печатной платы» Электроника, САПР, Печатная плата, Длиннопост, Разработка, Ответ на пост, Реверс-инжиниринг, Волна постов

INTERNAL1

Ответ на пост «Реверс-инжиниринг печатной платы» Электроника, САПР, Печатная плата, Длиннопост, Разработка, Ответ на пост, Реверс-инжиниринг, Волна постов

INTERNAL2

Опять же протыкиваем отверстия и ведем дорожки

Ответ на пост «Реверс-инжиниринг печатной платы» Электроника, САПР, Печатная плата, Длиннопост, Разработка, Ответ на пост, Реверс-инжиниринг, Волна постов

Финальный результат

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

Показать полностью 7
228

Реверс-инжиниринг печатной платы

Хочу поделится своей наработкой с разработчиками электроники.
Врядли такие программы нужны всем разработчикам печатных плат, но кому-то наверняка будет полезно.
Это программа PCBComparer2 для просмотра двух сторон одной печатной платы одновременно, с зумом, созданием контактов, цепей, изучением трассировки изучаемого образца, и, финально, даже экспорт созданных контактов и цепей в файл схемы формата какой-нибудь CAD-программы (САПР по русски), для дальнейшей переработки и создания своей печатной платы в исходнике.

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

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

Реверс-инжиниринг печатной платы Электроника, САПР, Печатная плата, Длиннопост, Разработка, Волна постов

Можно создать контакты деталей, переходные отверстия (via) и просто точки вдоль дорожек

После экспорта в схему дальнейшие шаги уже внутри САПРа по реверс-инжинирингу предполагаются такие:
1. подготовить библиотеки схемных компонент и футпринтов (посадочных мест) печатной платы для дальнейших правок
2. обновить посадочные места платы компонент на схеме: ввести вручную вместо футпринтов COMxxx (которые экспортируются)
3. создать файл новой печатной платы и экспортировать на нее компоненты со схемы, при помощи подготовленной библиотеки и сохранить плату: тут мы сохраняем исходный список цепей
4. обновить схемные элементы на схеме, с помощью подготовленной библиотеки символов
5. импортировать в схему данные с платы - т.е. передать заново список цепей с платы.

Реверс-инжиниринг печатной платы Электроника, САПР, Печатная плата, Длиннопост, Разработка, Волна постов

Соединения контактов можно легко изучить, выделяя контакты с Shift или Control

Навскидку для начала можно поглядеть несколько видео о том, как выглядит интерфейс, вот ссылка на плей-лист: https://rutube.ru/plst/781340/

Реверс-инжиниринг печатной платы Электроника, САПР, Печатная плата, Длиннопост, Разработка, Волна постов

Результат экспорта схемы в KiCAD

Загрузить и попробовать beta-версию программы (пока только для 64-битных операционок Windows) можно отсюда.
Еще раз - это первая версия программы, и можно по вашим запросам доработать что угодно.

UPD:

Ссылка на загрузку инсталлятора Windows: https://pmaker.ru/script/payments/setup_pcbcomparer2.exe

Показать полностью 3
Отличная работа, все прочитано!