Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16]
Электронику и корпуса для Flipper Zero производят на разных заводах в Китае. Сегодня мы перемещаемся на фабрику, где производят электронику, и посмотрим, как выглядит автоматическое электронное тестирование отдельных плат Флиппера.
На больших объемах производства электроники всегда есть брак. Какой-то процент плат может тупо не работать, на других может быть маленький едва заметный дефект, вроде ухудшенных характеристик приема-передачи. Важно, чтобы бракованные Флипперы не уехали пользователям. Для этого на производстве все компоненты проходят два этапа тестирования: электрическое тестирование каждой платы по отдельности и потом тестирование всего устройства в сборе.
В статье мы разберем первый этап — автоматическое электронное тестирование отдельных плат Flipper Zero.
Как производятся платы Flipper Zero
Расположение печатных плат внутри Flipper Zero
Флиппер состоит из 4 плат
- NFC_RFID — на этой плате находятся компоненты RFID 125 kHz и NFC 13,56 MHz
- Main PCB — основная плата, на которой находится микроконтроллер STM32, дисплей, модуль Sub-1 GHz и кнопки
- iButton Infrared PCB — имеет пого-пины для контактов iButton, пъезо-динамик и модуль приемника и передатчика ИК
- Антенная плата — комбинированная двухдиапазонная антенна для 125 kHz и 13,56 MHz, которая прижимается к NFC_RFID плате
Каждая плата производится отдельно и тестируется отдельно. Сначала производится голая печатная плата. Это слои текстолита и медной фольги, на которой вытравливаются сигнальные дорожки и контактные площадки. Слои текстолита склеиваются между собой, а контактные дорожки соединяются между слоями с помощью переходных отверстий. Самая сложная плата флиппера — это Main, на ней размещен микроконтроллер STM32, дисплей и кнопки — она состоит из 6 слоев!
Голые печатные платы Main PCB
Main PCB крупным планом
Голые печатные платы NFC_RFID без смонтированных компонентов
Голые печатные платы iButton
На этапе производства печатной платы, до монтажа компонентов, она проходит визуальный анализ и электрическое тестирование. Визуальный анализ проходит под микроскопом, осматриваются все контактные площадки, паяльная маска (краска, отделяющая точки пайки от остальной платы), шелкография и т.д.
На этом шаге выявляются дефекты изготовления, например, в нашем случае неправильное вскрытие паяльной маски на Main плате. Место под BGA компонент было полностью без маски, а это сильно увеличивает шанс получить перемычку, то есть слипшиеся между собой контакты.
Дефект печатной платы, неправильное вскрытие маски на BGA площадке. Между падами нет краски, что повышает риск получить слипшиеся контакты при пайке
Когда качество печатных плат удовлетворяет нашим требованиями, они переходят на следующий шаг — монтаж компонентов. Платы загружаются в SMT (Surface Mount Technology) — машину, где происходит автоматическое расставление компонентов. Этот процесс еще называют pick-and-place. Машина вакуумным манипулятором захватывает компонент и ставит его на плату.
Настройка SMT машины, на экране виден ИК-диод на плате iButton
Платы с установленными компонентами запекаются в печи с соответствующим термопрофилем. Паяльная паста расплавляется, и компоненты припаиваются к плате. На этом этапе также возможны сюрпризы и проблемы. Если электронные компоненты неправильно хранились и набрали влаги внутрь корпуса, они могут треснуть при повышенной температуре. Поэтому мы заказываем компоненты только у официальных поставщиков, которые дают гарантию. Только так можно получить прогнозируемое качество финального устройства.
Платы NFC_RFID после финального монтажа компонентов
Отдельная плата NFC_RFID, вырезанная из текстолита
После монтажа платы вырезаются из текстолита и упаковываются в пластиковые антистатические лотки. На этом этапе мы еще не знаем, работают эти платы или нет. В каждой партии наверняка есть какие-то бракованные экземпляры. Дальше партия уходит на электрическое тестирование.
Готовые NFC платы в ожидании первого этапа тестирования
Готовые NFC платы в ожидании первого этапа тестирования
Готовые iButton платы
Как выглядит электрическое тестирование
Схематическое изображение тестового стенда: иголки подключены к тестировочной плате, плата подключена к компьютеру, который загружает результаты тестов в базу данных
Под каждую плату Флиппера разрабатывается тестировочный стенд, на сленге его называют «тестовая джига» или «джиг».
Состав тестовой джиги:
- Оснастка под конкретную плату с пружинными контактами (Bed of nails). Состоит из оправы по форме платы, механизма прижима платы (красная ручка сверху).
- Управляющая плата, к которой подключаются все пружинные контакты. Эту плату, как и прошивку к ней, мы разработали с нуля на базе микроконтроллера STM32. Для простоты в плату вставляется готовый модуль black pill на STM32F4.
- Компьютер, на котором запускается софт для тестирования. Набор тестов для каждой платы свой, как и софт.
- База данных, куда отправляются все результаты тестирования.
Для каждой платы Флиппера разработана своя тестовая станция, содержащая: специально разработанную плату для тестирования, отдельную прошивку на плату тестирования и софт на компьютер. Это огромная работа, сравнимая с разработкой полноценных устройств.
Тестовые станции для всех 4 плат Flipper Zero: Основная плата, NFC+RFID плата, iButton+ИК плата, Антенная плата и тестовая станция для устройства в сборе.
Внутренности тестовой станции NFC_RFID
Плата тестовой станции NFC
Тестирование NFC плат на стенде
Специально для тестов на каждой плате Флиппера выведены контактные площадки (test pads), куда упираются пружинные контакты. Через них подается питание на устройство и происходит общение с электроникой на плате.
Процесс тестирования выглядит так:
1. Плата руками вставляется в тестовую “джигу” и прижимается сверху
2. Подпружиненные иголки упираются в тестовые пады на плате
3. Прогоняются автоматические тесты
4. На выходе тест говорит PASS или FAIL
5. Все, что не прошло тестирование, уходит на анализ
Оснастка для NFC платы с пружинными контактами. Плата зажимается в оснастке и запускаются тесты.
Видео: подпружиненные иголки подключаются к тестовым площадкам на плате
Результаты тестирования каждой платы сохраняются в базу данных, чтобы потом по серийному номеру платы можно было понять, как она прошла тесты, когда была произведена, и из какой партии на ней смонтированы компоненты. Это важно для поиска каких-либо системных проблем.
Рабочее место тестировщика
Действия оператора тестирования в итоге сводятся к нажатию одной кнопки и наблюдению за выводом на экране. Он увидит либо Pass, если тест успешный, либо Fail. Его задача — отложить бракованные платы отдельно.
Успешное прохождение теста
Зачем нужны тесты отдельных плат
Зачем тестировать каждую плату по отдельности, если можно собрать устройство целиком и потом протестировать все функции уже в сборе на готовом устройстве?
Сборка — это конвейерный процесс. При отлаженном производстве, каждое следующее звено конвейера должно проверять, что получает от предыдущего. Когда в получаемых элементах есть системный брак, то нужно исследовать ситуацию и предпринимать действия по улучшению процесса на предыдущем звене. Если этого не делать, то существенный процент собранных устройств будет иметь проблемы неизвестного происхождения.
Цена брака, обнаруженная на этапе готового изделия, сильно выше. Потому что уже потрачено время на весь производственный цикл и финальную ручную сборку устройства. Разумнее локализовать проблему раньше, на отдельной плате, и сразу удалить бракованную плату, чем обнаружить проблему в готовом устройстве.
Дефект пайки BGA компонента, две точки слиплись в одну. Выявлено автоматическим тестированием.
Например, реальная ситуация: один из 3 ИК диодов не был запаян до конца. Эта проблема сразу же отлавливается на первых тестах, по наличию неправильного сопротивления на тестовых площадках. Но если бы такая плата ушла в готовое устройство, тесты готового устройства в сборе показали бы только низкую излучаемую мощность ИК-передатчика. И тогда бы пришлось угадывать, почему это произошло: проблемы с подключением шлейфов, проблемы с просадкой питания и т.д.
Дефект выловленный на тесте — не запаян ИК диод
Исходники тестовых плат
Внутри каждой тестовой станции стоит специально разработанная под нее плата со своей прошивкой. В качестве мозгов мы использовали готовые модули Black Pill. Ниже вы можете посмотреть исходники этих плат, через интерактивный вьювер Altium. В нем доступна схематика, сами чертежи плат и 3D модели, прямо на странице хабра!
Main PCB Testing Station
Кликабельно
NFC_RFID PCB Testing station
Кликабельно
iButton PCB Testing station
Кликабельно
Наши соцсети
Все обновления по проекту первым делом публикуются в Telegeram-канале @zhovner_hub
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Предзаказ Flipper Zero
Сейчас запущено производство первой партии Flipper Zero для бекеров заказавших устройство на Kickstarter. Вторая партия будет доступна для покупки осенью 2021. Вы можете зарезервировать устройство из второй партии заранее здесь https://shop.flipperzero.one/ Это важно для нас, чтобы более точно прогнозировать объемы производства.
Автор: Павел Жовнер