Как собрать карманный мультитул для радиосигналов и NFC своими руками
Полноценный Flipper Zero сейчас стоит ощутимых денег, а для простых экспериментов с домашними шлагбаумами, ИК-пультами и метками доступа часто хочется чего-то более открытого и простого в ремонте. Автор проекта FlopperZiro с ником lraton посмотрел на эту ситуацию с иронией, назвав свое детище «ужасной копией на ломаном английском», но по факту собрал рабочий прототип автономного мультитула на общедоступных платах из Китая.
Что умеет этот самодельный гаджет
Железка решает базовый набор задач для изучения радиопротоколов и взаимодействия с периферией. В прошивке уже работают четыре основных модуля:
- Перехват и воспроизведение 433 МГц. Приемник RXB12 ловит сигналы пультов от ворот или простых реле, прошивка сохраняет дампы на карту памяти и передает их обратно через передатчик FS1000A.
- Инфракрасный порт. Приемник и ИК-диод работают в паре, поэтому устройство считывает команды домашних пультов от телевизоров или кондиционеров, записывает их в файлы и воспроизводит по нажатию кнопки.
- NFC и RFID на чипе PN532. Девайс умеет читать стандартные UID меток и карт, эмулировать цель и отправлять APDU-пакеты. Поддержка ISO14443-B пока в планах, но для простых тестов функциональности хватает.
- Эмуляция клавиатуры BadUSB. Микроконтроллер прикидывается HID-устройством и выполняет скрипты формата Rubber Ducky прямо с карты памяти.
Внутри также крутится файловый браузер для навигации по MicroSD, индикатор заряда аккумулятора и модуль управления экраном.
Из чего собран девайс
Главное преимущество FlopperZiro перед сложными проектами на специализированных чипах — доступность радиодеталей. Все компоненты легко заказать на маркетплейсах или найти в коробке со старыми модулями для Arduino:
- Микроконтроллер: плата STM32-L432KC
- Экран: монохромный OLED SSD1306 с разрешением 128x64 точек
- Радиомодули: связка передатчика FS1000A и супергетеродинного приемника RXB12 на 433 МГц
- Модуль NFC: популярный контроллер PN532
- Хранилище: стандартный TF MicroSD Card Shield
- Питание: плата зарядки TP4056 с повышающим преобразователем до 5 В и LiPo-аккумулятор на 3.7 В
- Органы управления: шесть тактовых кнопок и транзистор 2N2222A для усиления ИК-диода
Корпус можно распечатать на обычном FDM-принтере. Автор выложил готовую 3D-модель корпуса на Printables, куда плотно упаковываются обе ревизии печатной платы и аккумулятор.
Подводные камни и нюансы прошивки
Кодовая база написана на C++ под Arduino IDE. Это сильно снижает порог входа, если нужно дописать свой плагин или подправить работу конкретного протокола под экзотический шлагбаум.
Но у простоты есть обратная сторона. Например, автор честно предупреждает о забавном баге: сразу после загрузки нового скетча через среду Arduino экран устройства может оставаться темным. Проблема кроется в таймингах аппаратного сброса дисплея SSD1306. Решается это открытие монитора порта в IDE, которое инициирует корректный программный перезапуск по USB.
Кому проект пригодится
FlopperZiro не претендует на лавры лабораторного анализатора радиосигналов. Дальность передатчика FS1000A скромная, а антенна представляет собой кусок провода. Тем не менее, это отличный учебный полигон для студентов и разработчиков, желающих разобраться в работе SPI, I2C, чтении сырых пакетов субгигагерцовых частот и протоколах смарт-карт без лишних трат.
Схемы и исходники доступны в репозитории проекта на GitHub под лицензией GPL-3.0. Для сборки достаточно базовых навыков пайки и установленной Arduino IDE.
