Когда я впервые увидел M5StickC Plus2, это была любовь с первого взгляда. Крошечный ESP32-девайс размером с брелок, с экраном, батареей и кучей пинов — за смешные деньги. Но стоковая прошивка — это скучно. А вот Bruce превращает эту безделушку в нечто совершенно иное.

Это не обзор и не реклама. Это честный гайд от человека, который прошёл путь от «что это за хрень» до «почему у меня в кармане устройство, которым можно ронять Wi-Fi сети». Всё на русском, без воды, с реальными граблями.


Что такое Bruce и почему именно он

Bruce — это опенсорсная прошивка для ESP32-устройств, заточенная под оффенсив-секьюрити. Изначально она создавалась как альтернатива Flipper Zero для тех, у кого бюджет $20-30, а не $200. Автор проекта — pr3y, репозиторий живёт на GitHub в BruceDevices/firmware.

Прошивка работает на M5Stack Cardputer, StickC Plus 1.1 и Plus 2, StickS3, M5Core, Core2, а также на платах Lilygo T-Deck и T-Embed. Именно Bruce превращает эти карманные устройства в RF-инструменты — Sub-GHz (CC1101) и 2.4 ГГц (nRF24L01+).

Актуальный релиз — Bruce 1.15, вышел 25 мая 2026 года. На момент написания статьи это самая стабильная сборка.

Что умеет M5StickC Plus2 под Bruce

Таблица возможностей с официального репозитория:

Функция

M5StickC Plus2

CC1101 (Sub-GHz)

Да

nRF24 (2.4 ГГц)

Да

FM-радио

Да

PN532 (NFC/RFID)

Да

Микрофон

Да

BadUSB

Да¹

RGB LED

Нет

Спикер

Тон

Fuel Gauge

Нет

LITE_VERSION

Нет

¹ — с оговоркой: на Plus2 BadUSB работает только через Bluetooth, об этом ниже.


Железо: что внутри и почему это важно

Прежде чем прошивать, нужно понимать, с чем работаешь. M5StickC Plus2 — это ESP32-PICO-V3-02 на 240 МГц (двухъядерный), 2 МБ PSRAM, 8 МБ флеша. Экран 1.14 дюйма, 135×240, драйвер ST7789V2.

Ключевой момент: в отличие от Plus 1.1, в Plus2 нет чипа управления питанием AXP192. Уровень заряда и подсветка экрана управляются напрямую через GPIO. Это важно для прошивки — не суйте в Plus2 сборки от старых версий.

Распиновка для радиомодулей (запомните, пригодится):

  • SPI CLK: GPIO 13

  • SPI MOSI: GPIO 15

  • I2C SDA: GPIO 21

  • I2C SCL: GPIO 22

Полный пинмап есть в даташите M5Stack, но эти четыре — базовые для подключения CC1101 и nRF24.


Прошивка: три способа, от простого к сложному

Способ 1: Web-флешер (рекомендую)

Самый быстрый путь. Открываете Chrome или Edge, идёте на bruce.computer/flasher, подключаете StickC Plus2 через USB-C, выбираете в списке плату m5stack-cplus2 и жмёте Flash.

Важно: выбирайте именно свою плату. Неверный board target — одна из главных причин, почему потом ничего не работает.

Способ 2: M5Launcher OTA

Если у вас уже стоит M5Launcher (а он стоит, я надеюсь), можно обновляться по воздуху. Удобно для быстрых апдейтов, не надо каждый раз дёргать кабель.

Способ 3: m5burner

Десктопное приложение от M5Stack. Если вы уже им пользуетесь — вперёд. Но для новичка web-флешер проще.

После прошивки: первый запуск может занять секунд 10-15. Устройство создаёт файловую систему в LittleFS, настраивает конфиги. Не паникуйте, если экран чёрный — подождите.


Самая частая проблема: «CC1101 / nRF24 Not Found»

Если вы вставили внешний RF-модуль и увидели это сообщение — радиомодуль почти наверняка жив. Это самая распространённая жалоба, и причины почти всегда одинаковые.

Причины по порядку вероятности:

  1. Старая прошивка. Сборки 1.12 и 1.13 имели баги с таймингом SPI и управлением питанием. Обновление до 1.15 решает проблему.

  2. Неверная распиновка в BrucePins.conf. Радиомодули подключены к конкретным пинам CS и IRQ, которые должны быть объявлены правильно.

  3. Модуль не выбран в меню. Bruce по умолчанию может не указывать на ваш внешний CC1101/nRF24, пока вы вручную не выберете его.

  4. Неплотная посадка модуля. Просто переткните — бывает, контакт плохой.

Как чинить:

Зайдите в RF → Config → RF Module, выберите CC1101 (on SPI / Legacy), перезагрузите устройство. Если не помогло — редактируйте BrucePins.conf. На некоторых устройствах его нужно менять и на SD-карте, и в LittleFS одновременно.


BadUSB: важный нюанс

Вот здесь很多人 спотыкаются. M5StickC Plus2 не имеет нативного USB HID через USB-C порт. ESP32-PICO-V3-02 подключён через USB-UART мост, поэтому хост видит последовательное устройство, а не клавиатуру.

Что это значит: BadUSB через кабель не работает. Точка.

Что работает: BLE BadUSB — Bruce эмулирует Bluetooth-клавиатуру и выполняет DuckyScript по воздуху. Это реально работает, я проверял.

Как запускать:

  1. Кладёте .txt файлы DuckyScript в папку /badusb/ на SD-карте

  2. В Bruce: BadUSB → BLE (не USB)

  3. Спариваетесь с целевым устройством по Bluetooth

  4. Выбираете скрипт и запускаете

Пример простого payload:

REM Example payload
DELAY 1000
GUI r
DELAY 500
STRING notepad
ENTER
DELAY 300
STRING Hello from Bruce!
ENTER

WiFi и BLE: что реально, а что хайп

WiFi Responder

Это Karma-style атака: устройство слушает probe-запросы от телефонов и ноутбуков, которые ищут известные сети, и отвечает «да, я та сеть». Технически — как PineAP на WiFi Pineapple, но за $25.

Грабли: ESP32 не умеет делать широкополосный jamming. Deauth-атаки работают только против старых сетей без PMF (Protected Management Frames). Современные роутеры и 5 ГГц сети игнорируют это.

BLE Presenter

Работает как Bluetooth-клавиатура для управления презентациями. Кнопка A (большая спереди) — следующий слайд, кнопка B (боковая) — предыдущий.

Если не работает:

  • Удалите устройство из Bluetooth на компьютере и спарьте заново

  • Проверьте, что презентация в фокусе (активное окно)

  • На macOS проверьте, что статус «Connected», а не просто «Paired»

Bluetooth Spam

Работает, но плохо без внешней антенны. Встроенная антенна слишком слабая, чтобы пробить фильтры современных смартфонов. С внешним nRF24L01+ ситуация кардинально улучшается.


IR: не ждите чудес

Встроенный IR-передатчик на Plus2 — это базовый TV-B-Gone с коротким радиусом действия. Работает только в прямой видимости и на близком расстоянии (<10 см для надёжного приёма).

Проблемы:

  • Проекторы используют другие частоты и протоколы — база кодов Bruce может не иметь нужного производителя

  • Если не работает — проверьте через камеру смартфона, мигает ли IR-светодиод

Совет: поднесите StickC Plus2 почти вплотную к приёмнику устройства. Не ждите работы с 3 метров, как в рекламе Flipper Zero.


JavaScript-интерпретатор: скрытая жемчужина

В Bruce встроен MicroQuickJS — можно писать кастомные скрипты для автоматизации.

Пример — мигание LED и вывод информации:

// Display hello world
var display = require("display");
display.setTextSize(2);
display.setTextColor(display.color(255, 255, 255));
display.drawString("Hello from llelv!", 10, 10);

// Blink notification
var notification = require("notification");
notification.blink(3000);

// Device info
var device = require("device");
const name = device.getName();
const battery = device.getBatteryCharge();
console.log(`Device: ${name}, Battery: ${battery}%`);

Доступные модули: Display, WiFi, BadUSB, IR, Sub-GHz, GPIO, Storage, Audio, RFID и другие. Если вам мало стандартного функционала — можно накодить своё.


Serial-команды: управление из терминала

Bruce понимает команды через Serial (115200 baud, 8N1). Большинство совместимы с Flipper Zero CLI.

Примеры:

# Отправить IR-сигнал
ir tx NEC 04000000 08000000

# Прочитать RF-сигнал (10 секунд)
subghz rx 10

# Воспроизвести тон
tone 1000 500

# Перевести в сон
power sleep

# Управление GPIO
gpio set 25 1

Через WebUI (bruce.local) тоже работает. По умолчанию логин admin, пароль bruce. Смените их, если не хотите, чтобы сосед по Wi-Fi поигрался с вашим устройством.


Честный итог: кому это надо

M5StickC Plus2 + Bruce 1.15 — это не Flipper Zero. Это не готовый продукт, это конструктор для тех, кто готов возиться.

Плюсы:

  • Цена в 5-10 раз ниже Flipper

  • Активное сообщество, частые обновления

  • JavaScript для кастомизации

  • Реально работает Sub-GHz с внешним модулем

Минусы:

  • Нет USB HID через кабель (только BLE)

  • Встроенные антенны слабые — без внешних модулей радиус действия смешной

  • Нужно самому докупать CC1101, nRF24, PN532 и паять

  • Не для «купил-включил-работает»

Если вы хотите устройство «из коробки» — берите Flipper. Если хотите понимать, как это работает, и не боитесь паяльника — StickC Plus2 + Bruce даст вам больше за меньшие деньги.

Автор: llelv. По вопросам — в комментарии.

Комментарии (0)