![](./index_files/bb070817129799420fd96eabd556c40b.png)
Как выглядит тестирование электроники Flipper Zero
- Черновик
![](./index_files/tc3w911qz_bnbmhaewezyrh_uk0.jpeg)
Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14]
Электронику и корпуса для Flipper Zero производят на разных заводах в Китае. Сегодня мы перемещаемся на фабрику где производсят электронику, и посмотрим как выглядит автоматическое электронное тестирование отдельных плат Флиппера.
На больших объемах производства электроники всегда есть брак. Какой-то процент плат может тупо не работать, на других может быть маленький едва заметный дефект, вроде ухудшенных характеристик приема-передачи. Важно, чтобы бракованные Флипперы не уехали пользователям. Для этого на производстве все компоненты проходят два этапа тестирования: электрическое тестирование каждой платы по отдельности и потом тестирование всего устройства в сборе.
В статье мы разберем первый этап — автоматическое электронное тестирование отдельных плат Flipper Zero.
Как производятся платы Flipper Zero
![](./index_files/7_ts6mzo3g9mssr3stimmig_ydc.png)
Флиппер состоит из 4 плат
- Main PCB — основная плата на которой находится микроконтроллер STM32, дисплей, модуль Sub-1 GHz и кнопки
- iButton — имеет пого-пины для контактов iButton, пъезо-динамик и модуль приемника и передатчика ИК
- NFC_RFID — на этой плате находятся компоненты RFID 125 kHz и NFC 13,56 MHz
- Антенная плата — комбинированная двухдиапазонная антенна для 125 kHz и 13,56 MHz, которая прижимается к NFC_RFID плате
Каждая производится отдельно и тестируется отдельно. Сначала производится голая печатная плата. Это слои текстолита и медной фольги, на которой вытравливаются сигнальные дорожки и контактные площадки. Слои текстолита склеиваются между собой, а контактные дорожки соединяются между слоями с помощью переходных отверстий. Самая сложная плата флиппера это Main, на ней размещен микроконтроллер STM32, дисплей и кнопки — она состоит из 6 слоев!
![](./index_files/778cg9t91anjhaie-2y-unbrwr0.jpeg)
Голые печетные платы NFC_RFID без смонтированных компонентов
![](./index_files/xovd8amqzju4ikz7u4g6fkltvyg.jpeg)
Голы печетные платы iButton
На этапе производства печатной платы, до монтажа компонентов она проходит визуальный анализ и электрическое тестирование. Визуальный анализ проходит под микроскопом, осматриваются все контактные площадки, паяльная маска (краска отделяющая точки пайки от остальной платы), шелкография и т.д.
На этом шаге выявляются дефекты изготовления, например в нашем случае неправильное вскрытие паяльной маски на Main плате. Место под BGA компонент было полностью без маски, а это сильно увеличивает шанс получить перемычку, то есть слипшиеся между собой контакты.
![](./index_files/jxjam6neuoekl5zavwqyhhqhrc0.jpeg)
Дефект печатной платы, неправильное вскрытие маски на BGA площадке. Между падами нет краски, что повышает риск получить слипшиеся контакты при пайке
Когда качество печатных плат удовлетворяет нашим требованиями, они переходят на следующий шаг — монтаж компонентов. Платы загружаются в SMT (Surface Mount Technology) машину где происходит автоматическое расставление компонентов. Этот процесс еще называют pick-and-place. Машина вакуумным насосом захватывает компонент и ставит его на плату.
![](./index_files/0hqf7bh_by0s15tnkwdcdlmzmzw.jpeg)
Настройка SMT мишны, на экране виден ИК-диод на плате iButton
Платы с установленными компонентами запекаются в духовке с соответствующим термопрофилем. Паяльная паста расплавляется и компоненты припаиваются к плате. На этом этапе также возможны сюрпризы и проблемы. Если электронные компоненты неправильно хранились, и набрали влаги внутрь корпуса, они могут тресут при повышенной температуре. Поэтому мы заказываем компоненты только у официальных поставщиков, которые дают гарантию. Только так можно получить прогнозируемое качество финального устройства.
![](./index_files/bfudkf5x371xgi8za9_z_n3bxv0.jpeg)
Платы NFC_RFID после финального монтажа компонентов
![](./index_files/djxluhhlqntsg0emoa--pvmrfzs.jpeg)
Отдельная плата NFC_RFID вырезанная из текстолита
После монтажа платы вырезаются из текстолита и упаковываются в платсиковые антистатичные лотки. На этом этапе мы еще не знаем работают эти платы или нет. В каждой партии наверняка есть какие-то бракованные экземляры. Дальше партия уходит на электрическое тестирование.
![](./index_files/f4vtijftbngdhotmaiy61061msu.jpeg)
Готовые NFC платы в ожидании первого этапа тестирования
![](./index_files/wjndkdetoujyc1m-5zi2n_-hz-g.jpeg)
Готовые NFC платы в ожидании первого этапа тестирования
![](./index_files/lsy-ihmolmwkq_g1yidbxv42nou.jpeg)
Готовые iButton платы
Как выглядит тестирование
![](./index_files/k8dzunsgbho5q_hnkj-vtgtfd3q.jpeg)
Схематическое изображение тестового стенда: иголки подключены к тестировочной плате, плата подключена к компьютеру, который загружает результаты тестов
в базу данных
Под каждую плату Флиппера разрабатывается тестировочный стенд, на сленге его называют «тестовая джига» или «джиг».
Состав тестовой джиги:
- Оснастка под конкретную плату с пружинными контактами (Bed of nails). Состоит из оправы по форме платы, механизма прижима платы (красная ручка сверху).
- Управляющая плата к которой подключаются все пруженные контакты. Мы используем разработанную с нуля плату на базе STM32. Для простоты, в плату вставляется готовый модуль black pill на STM32F4. Для них отдельно разрабатывается прошивка силами команды разработки.
- Компьютер на котором запускается софт для тестирования. Набор тестов для каждой платы свой и софт пишется разный.
- База данных куда отправляются все результаты тестирования.
У каждой тестовой станции внутри специально разработанная плата для тестирования конкретной платы Флиппера, своя отдельная прошивка и софт на компьютер. Это огромная работа сравнимая с разработкой полноценных устройств.
![](./index_files/ocrryd7uuerlgcs0is9szl9dttg.jpeg)
Тестовые станции для всех 4 плат Flipper Zero: Основная плата, NFC+RFID плата, iButton+ИК плата, Антенная плата и тестовая станция для устройства в сборе.
![](./index_files/6yfmaejmzcd0jggp0iexwq76wh4.jpeg)
Внутренности тестовой станции NFC_RFID
![](./index_files/i39dlla6e3e8vi4t8ovpnvdwce0.jpeg)
Плата тестовой станции NFC
![](./index_files/wewd5ldzh5bk3cyeai9-ffueftq.jpeg)
Тестирование NFC плат на стенде
Специально для тестов на каждой плате Флиппера выведены контактные площадки (test pads) куда упираются пружинные контакты. Через них подается питание на устрйоство и происходит общение с электроникой на плате.
Процесс тестирования выглядит так:
1. Плата руками вставляется в тестовую “джигу” и прижимается сверху
2. Подпружиненные иголки упираются в тестовые пады на плате
3. Прогоняются автоматические тесты
4. На выходе тест говорит PASS или FAIL
5. Все что не прошло тестирование уходит на анализ
![](./index_files/jutqvekxrb5cnp-hfqrn3zij3hk.jpeg)
Оснастка для NFC платы с пружинными контактами. Плата зажимается в оснастке и запускаются тесты.
Видео: подпружиненные иголки подключаются к тестовым площадкам на плате
Результаты тестирования каждой платы сохраняются в базу данных, чтобы потом, по серийному номеру платы можно было понять как она прошла тесты, когда была произведена, и из какой партии на ней смонтированы компоненты. Это важно для поиска каких-либо системных проблем.
![](./index_files/bgk7uwwpjb6kuyapvkjwz2m191y.jpeg)
Действия оператора тестирования в итоге сводятся к нажатию одной кнопки и наблюдению за выводом на экране. Он увидит либо Pass, если тест успешный, либо Fail. Его задача отложить бракованные платы отдельно.
![](./index_files/tmc7d1pimxjjiv3j_eo8sjib4do.jpeg)
Зачем нужны тесты отдельных плат
Зачем тестировать каждую плату по отдельности, если можно собрать устройство целиком и потом все функции уже в сборе на готовом устройстве? Сборка — это конвейерный процесс. В нормальной ситуации каждое следующее звено конвейера должно проверять, что получает от предыдущего. Если в получаемых элементах есть системный брак, то нужно исследовать ситуацию и предпринимать действия по улучшению процесса на предыдущем звене.
Если этого не делать, то существенный процент собранных устройств будет иметь проблемы неизвестного происхождения.
Цена брака на этапе готового сильно возрастает. Потому что уже потрачено время на весь производственный цикл и финальную ручную сборку устройства. Намного правильнее локализовать проблему раньше, на отдельной плате, и сразу удалить бракованную плату, чем обнаружить проблему в готовом устройстве.
![](./index_files/evpfugqami-hmd8x0zkm96dqbly.jpeg)
Дефект пайки BGA компонента, две точки слиплилсь в одну. Выявлено автоматическим тестированием.
Например, реальная ситуация: один из 3 ИК диодов не был запаян до конца. Эта проблема сразу же отлавливается на первых тестах, по наличию неправильного сопротивления на тестовых площадках. Но если бы такая плата ушла в готовое устройство, тесты готового устройства в сборе показали бы только низкую излучаемую мощность ИК-передатчика. И тогда бы пришлось угадывать почему это произошло: проблемы с подключением шлейфов, проблемы с просадкой питания и т.д.
![](./index_files/ivee33jh5tpox2schvg0ehnlx6s.jpeg)
Дефект выловленный на тесте — не запаян ИК диод
Схематика тестовых плат
Тут собираюсь выложить схемату тестовых плат в формате вьювера альтиума