Все началось с того, что я забыла ключ от ворот во двор и вспомнила свою прошлогоднюю идею сделать что-то, похожеена Флиппер, но компактнее, дабы всегда носить с собой. В прошлом году до реализации не дошли руки, а вот в этот раз — дошли.
Приглашаю под кат, чтобы посмотреть, что получилось и обсудить, как можно сделать лучше :)
Flipper Zero
Flipper Zero — портативное многофункциональное Тамагочи-подобное устройство, разработанное для взаимодействия с системами контроля доступа и другими системами, использующими для связи радиоканал. Устройство способно считывать, копировать и эмулировать метки RFID и NFC, радиопульты, iButton и цифровые ключи доступа, а также имеет интерфейс GPIO. (с) Wikipedia
Впрочем, думаю, что это всем известно и так. Команда Флиппера провела потрясающую работу, сделав очень качественную, интересную и проработанную штуку, о которой еще и знает примерно каждый, кто хоть немного заинтересован.
Широкая известность - это еще и экосистема. Кроме самого устройства существует несколько проектов модифицированных прошивок, большое количество сторонних приложений (можно посмотреть тут — Flipper Lab), десятки модулей расширения, как от самой команды, так и сторонних.
У меня Флиппер тоже есть. Он прекрасен, но, как я писала год назад, слишком большой, чтобы носить его с собой всегда. А ведь никогда не знаешь, когда забудешь ключи! Что же делать? Правильно. Делать свой :)
Первый вариант
Итак, поехали. Для начала формализуем требования:
Тотже функционал: SubGHz, NFC, RFID, ИК, iButton, GPIO. Здесь все просто — реализуем эти узлы примерно так же, как во Флиппере, схемы которого доступны на сайте.
Максимальная компактность. Тут два варианта — или отказаться от автономного режима вообще, а вместе с ним — от экрана и батареи, или все же сохранить автономность. Выберем второе, использовав компактный и доступный экран на SSD1306, а вместо большого аккумулятора используем CR2032 (или перезаряжаемый вариант — LIR2032). Да, запас энергии теперь куда меньше, поэтому режимом тамагочи придется пожертвовать — будем полностью выключать питание через минуту неактивности.
Совместимость с прошивками Флиппера в бинарном виде. Конечно, прошивки открыты и ничего не мешает внести небольшие изменения, но это все‑таки снижает удобство. А в нашем устройстве экран OLED, который инициализируется иначе и «просто так» работать не будет. Что делать? А мы добавим еще один STM32 между экраном и сердцем устройства — STM32WB55! И заодно попросим его эмулировать ответы от PMIC и Fuel Gauge и управлять питанием.
Минимальная стоимость и простота производства. Немного упростим девайс и выберем компоненты, доступные в JLCPCB прямо сразу.
Для разработкиплаты я решила попробовать KiCad. Долгое время мне казалось, что он слишком сырой и даже недорогие EDA вроде DeepTrace заведомо лучше, не говоря уж про Altium, но один друг активно рекламировал кикад, так что — почему бы и нет?
Плата четырехслойная, два слоя отданы под GND и VCC, два внешних — сигнальные. До сих пор многие думают, что многослойные платы — это сложно. На самом же деле даже 4 слоя существенно упрощают работу и почти убирают сложности с правильной разводкой земли и питания. Срок же изготовления и стоимость у китайцев растут совсем незначительно — три дня вместо одного.
Чем заняться, пока платы не пришли?
Напишем прошивку второго MCU, инициализирующую дисплей.
Это несложно — принимаем данные для дисплея по одному SPI, фильтруем всё, кроме посылок с данными, инициализируем дисплей самостоятельно, а данные изображения отправляем, как есть (в данном случае, их формат совпадает).
Кстати, на картинке слева видно, что будет, если обрабатывать данные недостаточно быстро :)
Проходит две недели, и платы у меня на столе. Но увидела я их раньше — можно попросить китайцев сфотографировать собранные платы до отправки. Вот так:
Вместо STM32WB55RGV использован модуль STM32WB5MMG — это то же самое, только с интегрированными антенной, кварцевыми кристаллами и некоторой другой обвязкой. Отлично, подумала я, плата будет проще!
Как оказалось, решение было так себе :) У чипов есть однократно записываемая память, то место, где хранится уникальное имя Флиппера, его версия, регион и другие данные. У отдельных MCU эта область пуста. А у модулей MMG заняты первые 8 байт данными калибровки антенны, и это именно те 8 байт, которые нам нужны!
В первой версии, конечно, ошибок было порядком. Перепутаны MISO и MOSI у NFC-чипа. Перепутана часть ножек ОУ, на котором собран RFID. Центральная кнопка замыкается на землю, а должна на VCC.
Но версия на то и тестовая, чтобы все это выявить, так получается даже быстрее, чем очень-очень внимательно пытаться проверить всё до заказа.
И к счастью, у нас в команде есть джедай Олег, способный перекоммутировать перемычками дорожки на расстоянии 0,1 мм не только без микроскопа, но даже без лампы и лупы! Мне, например, это сложно даже с микроскопом :) Я все-таки кот, у меня немножко лапки!
Kiisu
Почему Kiisu? Надо же было как-то назвать, не используя слово Flipper, ведь мы не имеем отношения к Flipper Devices Inc :)
Kiisu — котенок или кошечка на эстонском языке. Вполне подходит, как мне кажется — у нас милое маленькое устройство, но при этом способное на многое.
Кроме того, я просто люблю котов.
В этой версии было решено не только исправить ошибки, но и переделать формфактор под размер кредитной карты. Да, размеры стали больше, но это позволило перенести все компоненты на одну сторону, уменьшив толщину до четырех миллиметров (это примерно 5 пластиковых карт, сложенных вместе). А значит, Киису теперь можно просто положить в кошелек и всегда брать с собой!
Что еще изменилось?
Само собой, были исправлены ошибки.
Вместо модуля STM32WB5MMG теперь обычный STM32WB55RGV. Да, пользователь сможет записать в OTP-память все, что ему нравится.
Добавились датчик влажности и температуры, акселерометр и компас LSM303, возможность установить ToF дальнометр VL53xxx и датчик качества воздуха BME680.
Добавилсядатчик света (а на самом деле — просто фототранзистор) и вместе с ним — возможность проверять светодиодные лампы и мониторы на предмет мерцания.
Плата стала шестислойной.
Что дальше?
В течение 1–2 месяцев мы планируем начать продажи Киису всем желающим. Пока — в Европе, но работаем и над другими вариантами. Ожидаемая цена — в районе 60 EUR, но это пока не очень точно.
И конечно, мы планируем дальше вносить улучшения, причем оперативно. Форм‑фактор останется таким же и больше меняться не будет, но нам не нужно выпускать сразу миллион штук — а это позволяет действовать куда гибче.
Напишите в комментариях, что бы вам хотелось добавить, чтобы сделать Кошечку лучше, и возможно, уже в четвертой версии оно появится!
Комментарии (32)
Voland69
19.09.2024 04:50+1К нему бы корпус минимальный, например прозрачный пластиковый с вырезами где кнопки, разъемы и батарейка - в текущем виде, имхо, есть опасение что в кармане что-то оторвешь.
Bluewolf Автор
19.09.2024 04:50+3Корпус планируется, как минимум в виде оргстекла с вырезами.
Примерно так
the_bat
19.09.2024 04:50+1Отлично получилось. И да, на 4х и более разводку делать проще, но наступает момент когда не хватает места для перехрдных)
NutsUnderline
19.09.2024 04:50+2ну чтож этот недофлипер не остался фантазией, а стал недофлиппером. как факт это приятно.
Я подумывал сделать свое флиппер-совместимое, на базе немного другого stm32wb55 но вовремя остановился иначе явно бы пришлось переделать прошивку. НО дисплейчик такой же как во флиппере я нашел в нескольких вариациях в виде модуля, такой же как тут OLED, так что я не понимаю зачем тут такой имплант.
CC1101 похоже вылетел из описания? Правда он опять без внешней антенны которую хотели и делали многие.
Zigbee ожидаемо не дождались.
Девайс Minio на esp32c6 с таким же oled экранчиком тоже уже сделали , прямо в виде кота плата выпилена.
Чисто для ключей-брелков Kiisu явно избыточна, для этого вполне хватило бы nrf52840 в виде chameleon ultra и его китайских клонов
Bluewolf Автор
19.09.2024 04:50+2CC1101 на месте и скрывается под словом SubGHz :) Внешняя антенна добавляется припаиванием предусмотренного SMA разъема на край (справа внизу) и сменой перемычки.
Вообще говоря, на плате есть место и вполне можно добавить какой-нибудь nRF, или ESP32 для вайфая, или CC2651.
С дисплеем - что имеете ввиду?
NutsUnderline
19.09.2024 04:50С дисплеем - что имеете ввиду?
не уверен что правильно понял. я открыл схему флиппера посмотрел какой там модуль, на каком контроллере. нашел на ali по названию контроллера + 124x64. Вариантов много, распиновка похожая.
SMA разъема на край
углядел, полагаю эту штуку надо рекламировать сильнее как фичу
какой-нибудь nRF
NRF52840 интересен своей опцией NFC что потребует катушку, синий зуб уже есть во флиппере, в принципе nrf52 еще nrf24 эмулировать может, но это в общем то сперва посмотреть что ww55 сумеет в этом плане. А вот esp32 прям любят добавлять к флипперам изза wifi, судя по обзорам
Tsimur_S
19.09.2024 04:50А что вообще с легальным статусом этих устройств в разных странах в последние годы? Не было прецедентов что бы приняли в аэропорту просто за факт обладания?
NutsUnderline
19.09.2024 04:50+8этих это каких? flipper конфисковывали, запрещали продавать. а тут пока вообще обычная плата с электроникой. на аэропорту смотрят запрещенные предметы, списки которых официально опубликованы. и которые на них похожи на ренгене, аккумуляторы например. и повербанки. про них нонче пошло большое обсуждение
Bluewolf Автор
19.09.2024 04:50+2Конкретно Киису - это вообще "отладочная плата", не вижу никаких поводов ей быть нелегальной.
Soren
19.09.2024 04:50+1Тот же функционал: SubGHz, ...
Что насчет закрытых от общего доступа криптографией чипов Flipper Zero мануфактурников (а заодно и U2F)? Предполагаю, в сравнении с оригинальной прошивкой, в Sub-GHz не будет декодирования Keeloq, а U2F отвалится вовсе?
Bluewolf Автор
19.09.2024 04:50+3Мануфактурных ключей нет, что логично. Немодифицированная прошивка на это ругается. Обойти можно и то, и другое :)
pink0D
19.09.2024 04:50Файл с ключами из альтернативной прошивки есть прямо на github, он хоть и зашифрован, но декодируется буквально несколькими командами через CLI, нужен всего лишь знакомый с настоящим флиппером и зашитыми в него мастер ключами.
Dark_Purple
19.09.2024 04:50+2Трассировку критиковать не буду), интересно сколько оно кушает когда спит?
LIR2032 имее более чем в два раза меньшую ёмкость в сравнении с CR2032 и напряжение до 4.2V полностью заряженная, могут быть сложности с заменой одного на другое.
Bluewolf Автор
19.09.2024 04:50+3А можно бы и покритиковать, всегда полезно)
По питанию там TPS63020, он buck-boost c входным диапазоном 1.8V to 5.5V, так что с этим ок.
Когда совсем спит, кушает микроамперы, потому что преобразователь отключен и питание есть только на VRTC. При нажатии кнопки "ОК" преобразователь включается через диод и кнопку, киису загружается, power_en держит включенным второй чип и отпускает через 60 секунд после погасания "подсветки", которой естественно нет.
Dark_Purple
19.09.2024 04:50+5До меня кажется дошло, вы сделали один в один схемотехнику как во флипере только на своей плате и с другим дисплеем, так чтобы была совместимость по софту?
Тогда это вполне жизнеспособный проект, вы молодцы!
Bluewolf Автор
19.09.2024 04:50Скорее, больше проблем с CR2032, потому что условные пиковые 50 мА в режиме передачи subghz - далеко за рамками штатного тока. Но с хорошим батарейками работает.
LinkToOS
19.09.2024 04:50больше проблем с CR2032, потому что условные пиковые 50 мА в режиме передачи subghz - далеко за рамками штатного тока
Для этого ставят емкость. Обычная керамика. Можно посмотреть стандартные схемы от ST и TI, для их контроллеров с микропотреблением и питанием от 2032 в устройствах с радиоканалом. Поток данных разбивается на короткие пакеты естественно, если объем данных большой.
Но акк нужен обязательно. 2032 только как резервный источник для режима ключа. Если основной акк разряжен, устройство должно переходить в режим key-only. Конечно если есть активный ключ который должен гарантированно работать.
В принципе можно просто сделать два варианта корпуса - с акком и без. Скажем заменяемую нижнюю крышку. Главное чтобы был удобный разъем для подключения акка, и удобное крепление крышки.
madcatdev
19.09.2024 04:50Здорово, но я бы сделал компактнее, может быть даже в виде брелка (такому девайсу место на связке ключей), можно даже без sub-ghz трансивера.
aol985
19.09.2024 04:50shut up and take my money, натурально! корпус к этому планируется какой-то или потребители вольны в экспериментах?
Dmitry_Dor
19.09.2024 04:50+1корпус к этому планируется какой-то
Уже был ответ на такой же вопрос (с картинкой под спойлером)
logiciel
19.09.2024 04:50+1Я уже собралась поздравить с удачным названием и сообщить, что kiisu - это "кошечка" по-эстонски! А оказывается, так и было задумано :)))
Dmitry_Dor
При продаже предполагается сразу комплектовать перезаряжаемыми LIR2032, или будет "стартовый" CR2032?
Если используется LIR2032, то что с его зарядкой (от USB или отдельная)?
Bluewolf Автор
Скорее всего, будут сразу LIR2032. Устройство умеет их заряжать, да.