- Get started with the Dev Board
- Wi-Fi access point (AP) mode
- Wi-Fi client (STA) mode
- [Flipper Zero] отказываемся от Raspberry Pi, делаем собственную плату с нуля. Поиск правильного WiFi чипа
- Чем плох Raspberry Pi Zero
- Вот основные причины отказа от rpi0
- Правильный WiFi
- Основные кандидаты:
- Что уже готово
- FAQ
- Как купить?
- Это законно?
- Как задонатить?
Get started with the Dev Board
The Wi-Fi Developer Board serves as a tool to debug the Flipper Zero firmware. To debug the firmware, the initial step involves compiling the firmware from its source code. This process enables the debugging functionality within the firmware and generates all the necessary files required for debugging purposes.
div class="info flipper-callout"> div class="callout-header">div> Building and debugging the Flipper Zero firmware is fully supported on MacOS and Linux. Support for Windows is in beta test. div>
Installing Git
You’ll need Git installed on your computer to clone the firmware repository. If you don’t have Git, install it by doing the following:
On MacOS, install the Xcode Command Line Tools package, which includes Git as one of the pre-installed command-line utilities, by running in the Terminal the following command:
On Linux, you can install Git using your package manager. For example, on Ubuntu, run in the Terminal the following command:
Building the firmware
git clone —recursive https://github.com/flipperdevices/flipperzero-firmware.git cd flipperzero-firmware
Connecting the Developer Board
The Developer Board can work in the Wired mode and two Wireless modes: Wi-Fi access point (AP) mode and Wi-Fi client (STA) mode. The Wired mode is the simplest to set up , but requires a USB Type-C cable. The Wireless modes are more complex to set up, but they allow you to debug your Flipper Zero wirelessly.
div class="info flipper-callout"> div class="callout-header">div> Use the following credentials when connecting to the Developer Board in span style="white-space: nowrap;">b>Wi-Fi access pointb>span> mode: br> br> Name: b>blackmagicb> br> Password: b>iamwitcherb> div>
Cold-plug the Developer Board by turning off your Flipper Zero and connecting the Developer Board, and then turning it back on.
%linux% Linux
3. Connect the Developer Board to your computer via a USB Type-C cable.
4. Rerun the command. Two new devices have to appear: this is the Developer Board.
div class="info flipper-callout"> div class="callout-header">div> If the Developer Board doesn’t appear in the list of devices, try using a different cable, USB port, or computer. div>
div class="info flipper-callout"> div class="callout-header">div> Flipper Zero logs can only be viewed when the Developer Board is connected via USB. The option to view logs over Wi-Fi will be added in future updates. For more information, visit a href="https://docs.flipperzero.one/development/hardware/wifi-debugger-module/reading-logs" onclick="next.router.push('https://docs.flipperzero.one/development/hardware/wifi-debugger-module/reading-logs')">u>Reading logs via debuggeru>. div>
Wi-Fi access point (AP) mode
Out of the box, the Developer Board is configured to work as a Wi-Fi access point . This means it will create its own Wi-Fi network to which you can connect. If your Developer Board doesn’t create a Wi-Fi network, it is probably configured to work in Wi-Fi client mode. To reset your Developer Board back to Wi-Fi access point mode, press and hold the BOOT button for 10 seconds, then wait for the module to reboot.
To connect the Developer Board in Wi-Fi access point mode, do the following:
Cold-plug the Developer Board by turning off your Flipper Zero and connecting the Developer Board, and then turning it back on.
Wi-Fi client (STA) mode
To connect the Developer Board in Wi-Fi client mode, you need to configure it to connect to your Wi-Fi network by doing the following:
Cold-plug the Developer Board by turning off your Flipper Zero and connecting the Developer Board, and then turning it back on.
Select the STA mode and enter your network’s SSID (name) and password . For convenience, you can click the + button to see the list of nearby networks.
After rebooting, the Developer Board connects to your Wi-Fi network. You can connect to the device using the mDNS name blackmagic.local or the IP address it got from your router (you’ll have to figure this out yourself, every router is different).
After connecting to your debugger via http://blackmagic.local , you can find its IP address in the SYS tab. You can also change the debugger’s mode to AP or STA there.
Debugging the firmware
Open the Terminal in the flipperzero-firmware directory that you cloned earlier and run the following command:
This will upload the firmware you’ve just built to your Flipper Zero via the Developer Board. After that, you can start debugging the firmware using the GDB debugger. We recommend using VSCode with the recommended extensions, and we have pre-made configurations for it.
You should see a notification about recommended extensions. Install them. If there were no notifications, open the Extensions tab, enter @recommended in the search bar, and install the workspace recommendations.
In the Terminal , run the ./fbt vscode_dist command. This will generate the VSCode configuration files needed for debugging.
In VSCode, open the Debug tab and select Attach FW (blackmagic) from the dropdown menu.
If needed, flash your Flipper Zero with the ./fbt flash_blackmagic command, then click the Play button in the debug sidebar to start the debugging process.
Note that starting a debug session halts the execution of the firmware, so you’ll need to click the Play button on the toolbar at the top of your VSCode window to continue execution.
[Flipper Zero] отказываемся от Raspberry Pi, делаем собственную плату с нуля. Поиск правильного WiFi чипа
Много всего произошло с момента первого поста про флиппер. Мы усердно работали все это время и проект претерпел радикальные изменения. Главная новость в том, что мы решили полностью отказаться от Raspberry Pi Zero и делать свою плату с нуля на базе чипа i.MX6. Это значительно усложняет разработку и полностью меняет всю концепцию, но я уверен, что оно того стоит.
Также мы до сих пор не нашли правильный WiFi чипсет, который поддерживает все нужные функции для WiFi-атак, при этом поддерживает диапазон 5Ghz и не устарел на 15 лет. Поэтому я приглашаю всех поучаствовать в нашем исследовании.
В статье я расскажу, почему мы приняли такое решение, на каком этапе находится проект, текущие задачи, и как можно принять участие.
Чем плох Raspberry Pi Zero
Я лично обожаю Raspberry Pi, но в процессе разработки оказалось, что он просасывает по многим причинам. Самая банальная — его тупо нельзя купить. Даже большие дистрибьютеры имеют в наличии не более пары сотен штук rpi0, а магазины вроде Adafruit и Sparkfun продают не более 1 штуки в руки. Да, есть несколько заводов, которые производят rpi0 по лицензии от Raspberry Pi Foundation, но они тоже не могут отгрузить партии по 3-5 тысяч штук. Выглядит это так, что rpi0 продается по цене на грани себестоимости и больше направлен на популяризацию платформы.
Вот основные причины отказа от rpi0
- Невозможно купить в большом количестве. Заводы вроде Farnell предлагают покупать Compute Module. Китайцы с Alibaba врут про наличие больших объемов, когда речь заходит о реальной партии то сливаются. Всем, кто будет писать, что мы плохо искали, попробуйте договориться с кем-то о покупке 5 тысяч штук, так чтобы вам выслали счет на оплату.
- Мало интерфейсов.
- Старый процессор BCM2835, который использовался еще в первой версии rpi. Горячий и не очень энергоэффективный.
- Нет управления питанием, нельзя отправить плату в сон.
- Устаревший встроенный WiFi.
- и много других причин.
Сама Raspberry Pi Foundation для таких задач предлагает использовать RPi Compute Module. Это плата в формфакторе SO-DIMM модуля (как оперативная память в ноутбуках), которая вставляется в материнскую плату. Этот вариант нам не подходит, так как сильно увеличивает размеры устройства.
Raspberry Pi Compute Module — плата в формфакторе SO-DIMM модуля для установки в свое устройство
Тогда мы начали смотреть на разные SoM-ы (System on Module), привлекательнее всего выглядели модули на основе i.MX6. Все наши поиски описаны в теме на форуме Raspberry Pi Zero Alternatives. Но нужно иметь в виду, что не все компании будут готовы с вами работать при объемах даже 3-5 тысяч штук в год. Например, израильская Variscite просто перестала отвечать нам, когда узнала планируемые объемы закупок. Судя по всему, им не интересно только продавать SoM-ы без дополнительных услуг в виде поддержки и интеграции. Отдельно хочу отметить русского разработчика Starterkit.ru, которые делают очень интересные устройства, вроде SK-iMX6ULL-NANO. Их почти невозможно нагуглить, и я бы не узнал об их существовании, если бы не рассказали знакомые.
В итоге сравнив все варианты и прикинув экономику, мы приняли трудное решение делать свой SoM с нуля специально для Флиппера на основе чипа i.MX6 ULZ. Это одноядерный Cortex-A7 с частотой 900 MHz с почти такой же производительностью как rpi0, при этом он почти холодный под нагрузкой, в то время как rpi0 раскаляется как печка.
Делая свою плату с нуля, у нас появилась полная свобода в расположении элементов на плате из-за чего мы рассчитываем получить более компактное устройство. i.MX6 ULZ это урезанная версия i.MX6 ULL без некоторых интерфейсов и видеоядра, поэтому для разработки мы используем девборду MCIMX6ULL-EVK с чипом i.MX6 ULL, просто не используя часть интерфейсов. Эта плата, кстати, поддерживается mainline ядром linux, поэтому на ней загружается Kali Linux с ядром из пакетов.
Вот как выглядит флиппер без одежды в данный момент:
Правильный WiFi
Взлом WiFi одна из главных фич Флиппера, поэтому крайне важно выбрать правильный WiFi-чипсет, который будет поддерживать все нужны функции: инъекцию пакетов и мониторный режим. При этом уметь диапазон 5GHz и современные стандарты вроде 802.11ac. К сожалению, таких чипов сходу найти не удалось
Китайский SiP модуль (system in package) Apmak AP6255 на базе BCM43456
Сейчас мы рассматриваем несколько кандидатов, но все из них требуют допиливания и пока неизвестно какой лучше выбрать. Поэтому я очень прошу всех, кто разбирается в похеке WiFi, присоедениться к нашему поиску здесь: Wi-Fi chip with SPI/SDIO interface that supports monitoring and packet injection
Основные кандидаты:
- Broadcom/Cypress BCM43455 или BCM4345 с патченной прошивкой. Обсуждение в репозитории nexmon.
- Mediatek MT7668 — еще не проверен, но в теории может подходить.
Пожалуйста, прежде чем советовать что-то, внимательно почитайте требования на форуме, в том числе интерфейс подключения. Помните, что я несколько месяцев внимательно изучаю эту тему и перелопатил уже все, что можно найти.
Что уже готово
Вся часть, за которую отвечает STM32 уже работает: 433Mhz, iButton, чтение-эмуляция 125kHz.
Механическая часть, кнопки, корпус, разъемы, компоновка сейчас в активной разработке, на видео и фотографиях ниже устаревший корпус, в новых версиях джойстик будет больше.
На видео простая демонстрация открытия шлагбаума с помощью реплея сигнала пульта.
FAQ
Как купить?
Предположительно краудфандинговую кампанию на Кикстартере запустим в апреле-мае этого года. Готовые устройства надеемся отправить через полгода после завершения сбора. Если вам интересен прибор, я прошу вас оставить свою почту внизу сайта, подписчикам мы будем отправлять предложения, когда будут готовы прототипы и ранние семплы на продажу.
Это законно?
Это инструмент для исследований. Все его компоненты можно купить по отдельности в магазине. Если встроить WiFi адаптер и 433MHz трансмиттер в маленький корпус и добавить туда экранчик, он не станет от этого более незаконным. Устройство не подпадает под определение спец. средства или прибора для негласного сбора информации. Незаконным может быть ТОЛЬКО его использование с целью нанесения ущерба или для незаконных действий. Иначе говоря, я могу делать ножи любой формы и из любого металла, ответственность за использование моих ножей лежит на вас.
Как задонатить?
В данный момент вы можете поддержать меня лично небольшими пожертвованиями на еду через Patreon. Регулярные пожертвования в виде 1$ намного лучше, чем большая сумма за раз, потому что позволяют прогнозировать наперед.
Все заметки по проекту я публикую в свой Telegram-канал @zhovner_hub.