Comments 25
После публикации статьи оказалось что часть пласта истории оказалась не точной и был почти race-condition в разработке модулей. А потом и было вообще основательно переработано Skorp и командой Flipper Devices Inc.
Привожу ниже историю, которая описана Виктором @quen0n как следствие выявленной неточности в статье. Ниже приводится цитата с некоторыми уточнениями и минимальными правками без изменения сути.
Хроника подключения внешнего CC1101 к флипперу. Информация бралась из двух чатов - официального и прошивки на букву U (далее в тексте просто U). Если кого-то забыл - дайте знать, дополним историю.
Основоположником внешнего CC1101 среди обычных пользователей FZ стал товарищ Shmuma. Он был первый, кто начал движения по этому вопросу. В декабре 2022 года он опубликовал первые результаты работы - подключил внешний радиомодуль, но добиться декодирования сигналов не получилось. https://t.me/flipperzero/103904/136509
Казалось бы, можно просто подключить внешний модуль к GPIO флиппера, переназначить порты и наслаждаться работой - но нет, сложность заключается в пине G0, по которому передаётся/принимается цифровой сигнал. Он требует определённых портов с прерыванием таймера, поэтому как попало подключить G0 нельзя. Нужный пин есть на внешнем GPIO, но он совпадает с одним из пинов SPI, по которому производится управление радиомодулем. Получается сложная задача - либо использовать программный SPI, либо реализовать взаимодействие с G0 другим способом
В начале января мне (Quenon) захотелось таки реализовать подключение внешнего CC1101. Есть некоторый опыт работы с STM32, поэтому задача показалась вполне по силам. Плюс подтолкнуло к этому комьюнити U. 21 января скатался на митинский радиорынок и прикупил внешний модуль. В тот же день Shmuma продемонстрировал ещё один прототип на софтварном SPI, но не до конца реализованный: https://t.me/flipperzero/103904/155090. Товарищ Skorp кинул вызов (https://t.me/flipperzero/103904/155166), не смог отказать уважаемому человеку :D
Ночью 22 января 2023 сделал рабочую реализацию приёма сигналов с внешнего модуля с использованием софтварного SPI. Но сотфварное решение того, что можно сделать аппаратным, мне не понравилось. Поэтому я пошёл по второму пути - SPI оставил аппаратным и стал думать, как переопределить G0 с минимальными переделками. И да, днём 22 января получилось реализовать работу с аппаратным SPI и обработку вывода G0 с использованием прерывания. В этом мне помог Skorp, он подсказывал в каком направлении работать и в какую сторону смотреть. https://t.me/flipperzero/103904/155442, https://t.me/flipperzero/103904/155489 Такое решение хорошо тем, что оно минимально модифицировало прошивку, не терялась точность приёма и максимально сохраняло совместимость драйверов. В общем, максимально приближенный вариант реализации работы с внутренним радиочипом
Днём 22 января Shmuma тоже закончил реализацию приёма с внешним радиомодулем, но с софтварным SPI. https://t.me/flipperzero/103904/155424. Вообще он первый поделился результатом и можно считать то именно он первый сделал приём сигналов на внешний CC1101
Ночью 23 января реализовал передачу с помощью CC1101 https://t.me/flipperzero/103904/155797
Вечером 23 января Shmuma реализовал переключение между внутренним и внешним модулем и создал PR в офф прошивку: https://t.me/flipperzero/103904/155992
Ну а я, закончим в софтом в первом приближении, к вечеру 23 января уже собрал первый компактный внешний радиомодуль, который легко подключался к флипперу без проводов. На этом моменте началась разработка железной части https://t.me/flipperzero/103904/156014. А тут рассказал как собрать себе такой же + тесты: https://t.me/flipperzero/154564/156088. Евгений (который придумал RGB-подсветку) нарисовал первую плату: https://t.me/flipperzero/154564/156355
В конце января взялся за реализацию компактной версии внешнего радиомодуля. Для компактности и снижения помех использовал питание 5V и линейный регулятор 3.3 В. https://t.me/flipperzero/103904/158320. С этим помог Dr Zlo. Ещё появилась первая топология платы от Quenon: https://t.me/flipperzero/103904/158360. [redacted]
Дальнейшее развитие от комьюнити пошло в прошивке U и его сообществе. В начале февраля появилась поддержка работы и с внешним, и внутренним CC1101 по очереди. Мейнтейнер прошивки U и его команда довели реализацию до ума. Прошивка U - это первая прошивка, в которой появилась поддержка внешнего модуля и которая занималась активным развитием этой фичи. Из прошивки U это перетекло в RM, X и другие неофф прошивки. С тех пор собственные реализации внешних модулей стали появляться по всему миру. Как мне показалось, это стало революцией. Было приятно получать в дискорде и на github слова благодарности из разных концов света.
В марте 2023 начал продажу внешних модулей. Параллельно работали Rotten Mechanism (RU), Rabbit Labs (US) и другие энтузиасты в России и в мире. Дальше очень сложно отследить хронологию, поскольку тема стала развиваться разными людьми в бешенном темпе.
Точно не помню когда, но поддержка внешнего модуля появилась и в офф прошивке.
Вставочка: Первая реализация в офф прошивке появилась Skorpionm and skotopes committed on Jun 30, 2023
и посмотреть можно здесь https://github.com/flipperdevices/flipperzero-firmware/pull/2747, https://github.com/flipperdevices/flipperzero-firmware/commit/8c93695d01d3af4acbd3cb0d5bc756c30c0564dc.
Важно отметить, что Skorp и команда Flipper Devices сделали собственную реализацию, не основанную на моей или Shmuma. И именно эта реализация сейчас используется в прошивке U и кто смог перетащить её к себе.
Вот так ночная мотивация и желание написать немного кода переросло в нечто огромное. Мне очень приятно от того, что реализовал идею, которая оставила заметный след в истории и принесла пользу сообществу по всему миру. Хочу выразить благодарность Shmuma за вдохновение, Skorp, Dr Zlo и команде прошивки U за поддержку в процессе реализации
========
Действующие лица этой эволюции флиппера, заслуживающие неистового респекта
Большое спасибо за подробный обзор. На новый год сделал себе подарок и начал изучать. Сейчас какраз стоит вопрос с повышением дальности Sub-GHz, т.к. штатный не всегда достает до приемника ворот на паркинге.
Мы еще про антенны расскажем и вообще картина сложится :) Но сейчас могу сказать что да, модуль на базе E07-433M20S топовый (если амплификацию включить) и скорее он даже с дефолтной антенной, что идет с модулем, покроет 95% ваших задач
Статья про антенны готова "Sub-GHz во Flipper Zero и бесконечное множество внешних антенн"
![Evil Crown Evil Crown](https://habrastorage.org/getpro/habr/upload_files/b9d/462/36c/b9d46236c745580c2f7b683e4c2b275d.jpg)
Есть ещё такая шняга, но ходить с ней по улицам, это нужен паур банк и удлинитель USB. Там 2 процессора TI, они могут работать независимо. Плюс microSD, управление с телефона, через веб-интерфейс, подключившись к её Wi-Fi
Посмотрел на алике Evil Crown -- микрухи с CC1101 вроде без усилителей ( значит дальности примерно как у E07-M1101D-SMA будет), а вот NRF24 с печатной антенной не даст большой дистанции, а даст пару метров мб. Надо будет заказать потестить :)
была версия без него, помниться. там может тоже хотели все в одном, толи для каких то особых целей
В первой половине марта приедет и уже есть идеи что поменять ццшки надо будет на усиленные, но проверить согласованность надо будет и чтобы не создавали помехи друг другу; а так же и нрфку на более мощную с внешней антенной :) Про эти опыты отдельно расскажу потом
Флипер как бы задуман чтобы бороться с колхозом из китайских модулей и арудуин, а он в общем то - возглавил его.
Но больше всего меня удивило что в NN есть Дефкон а я об этом узнаю хоть и в профильном месте, но даже не в новостях, даже не в постах, а в примечании со звездочкой
А так много DC-ru сообществ есть, некоторые вообще из пары людей состоят, вот мы в Ульяновске сделали такой список даже https://dc78422.ru/friends-and-communities/ и надеемся никого не пропустили :)
ну тут то довольно солидно, хотя такого куража как на оригинальном дефктон наверное нету? (а на оригинальном есть? наверное да)
Да, был я на оригинальном DC в LV в 16 году -- там был кураж и все сопутствующее)))), а тут попроще (и без космического уровня анонсов), и нацеленное на обмен знаниям, ну и тусичи конечно
У меня тут мысля: предложите желающих попробовать склонировать флиппером брелки от их авто, типа демонстрация возможностей и развенчание мифов. Такое же делают на дефконах. иногда даже без согласия владельцев :)
А видео с мероприятия будет? На таких мероприятиях обычно и живое вещание бывает и записи выступлений выкладывают.
Да, уже есть запись (была трансляция, но из-за технических неполадок сломалась трансляция со сцены и остались слайды с проектора+голос из микрофона)
первый день https://www.youtube.com/watch?v=qbkbb1FJ0tg
второй день https://www.youtube.com/watch?v=HIX_YEpCLOY
Потом появится отчет и фоточки тут https://defcon-nn.ru/
Жаль, что до сих пор не сделали коррекцию PPM в прошивке. Я проверял штатный модуль - он идеально точно свистит-принимает на выбранной частоте, а вот внешние могут уплывать где-нить на 20кгц в 433мгц диапазоне, и сам смысл уже в целом теряется (принимает/передает на 20кгц выше, например, и если передавать ранее записанный на внутренний приемник сигнал, то оно просто свистит "не туда", т.к. в параметрах была указана другая частота).
А что так можно было? The M1: A Compact Multitool for Technophiles and Hackers by Monstatek — Kickstarter
Можно, да и совершенно по-разному можно и ещё что придумать можно, создавая новые и новые девайсы :)
А если мысль про "курицу и яйцо", то думаю что и к пвнагочи плагин можно написать для работы с Sub-GHz
эта шутка вызывает большие сомнения в обсуждениях. и там указан мощный контроллер но совсем нет про радиочасть bluettoth и wifi. Sub-GHz на Si4463
После публикации статьи оказалось что часть пласта истории оказалась не точной и был почти race-condition в разработке модулей. А потом и было вообще основательно переработано Skorp и командой Flipper Devices Inc.
Привожу ниже историю, которая описана Виктором @quen0n как следствие выявленной неточности в статье. Ниже приводится цитата с некоторыми уточнениями и минимальными правками без изменения сути.
Хроника подключения внешнего CC1101 к флипперу. Информация бралась из двух чатов - официального и прошивки на букву U (далее в тексте просто U). Если кого-то забыл - дайте знать, дополним историю.
Основоположником внешнего CC1101 среди обычных пользователей FZ стал товарищ Shmuma. Он был первый, кто начал движения по этому вопросу. В декабре 2022 года он опубликовал первые результаты работы - подключил внешний радиомодуль, но добиться декодирования сигналов не получилось. https://t.me/flipperzero/103904/136509
Казалось бы, можно просто подключить внешний модуль к GPIO флиппера, переназначить порты и наслаждаться работой - но нет, сложность заключается в пине G0, по которому передаётся/принимается цифровой сигнал. Он требует определённых портов с прерыванием таймера, поэтому как попало подключить G0 нельзя. Нужный пин есть на внешнем GPIO, но он совпадает с одним из пинов SPI, по которому производится управление радиомодулем. Получается сложная задача - либо использовать программный SPI, либо реализовать взаимодействие с G0 другим способом
В начале января мне (Quenon) захотелось таки реализовать подключение внешнего CC1101. Есть некоторый опыт работы с STM32, поэтому задача показалась вполне по силам. Плюс подтолкнуло к этому комьюнити U. 21 января скатался на митинский радиорынок и прикупил внешний модуль. В тот же день Shmuma продемонстрировал ещё один прототип на софтварном SPI, но не до конца реализованный: https://t.me/flipperzero/103904/155090. Товарищ Skorp кинул вызов (https://t.me/flipperzero/103904/155166), не смог отказать уважаемому человеку :D
Ночью 22 января 2023 сделал рабочую реализацию приёма сигналов с внешнего модуля с использованием софтварного SPI. Но сотфварное решение того, что можно сделать аппаратным, мне не понравилось. Поэтому я пошёл по второму пути - SPI оставил аппаратным и стал думать, как переопределить G0 с минимальными переделками. И да, днём 22 января получилось реализовать работу с аппаратным SPI и обработку вывода G0 с использованием прерывания. В этом мне помог Skorp, он подсказывал в каком направлении работать и в какую сторону смотреть. https://t.me/flipperzero/103904/155442, https://t.me/flipperzero/103904/155489 Такое решение хорошо тем, что оно минимально модифицировало прошивку, не терялась точность приёма и максимально сохраняло совместимость драйверов. В общем, максимально приближенный вариант реализации работы с внутренним радиочипом
Днём 22 января Shmuma тоже закончил реализацию приёма с внешним радиомодулем, но с софтварным SPI. https://t.me/flipperzero/103904/155424. Вообще он первый поделился результатом и можно считать то именно он первый сделал приём сигналов на внешний CC1101
Ночью 23 января реализовал передачу с помощью CC1101 https://t.me/flipperzero/103904/155797
Вечером 23 января Shmuma реализовал переключение между внутренним и внешним модулем и создал PR в офф прошивку: https://t.me/flipperzero/103904/155992
Ну а я, закончим в софтом в первом приближении, к вечеру 23 января уже собрал первый компактный внешний радиомодуль, который легко подключался к флипперу без проводов. На этом моменте началась разработка железной части https://t.me/flipperzero/103904/156014. А тут рассказал как собрать себе такой же + тесты: https://t.me/flipperzero/154564/156088. Евгений (который придумал RGB-подсветку) нарисовал первую плату: https://t.me/flipperzero/154564/156355
В конце января взялся за реализацию компактной версии внешнего радиомодуля. Для компактности и снижения помех использовал питание 5V и линейный регулятор 3.3 В. https://t.me/flipperzero/103904/158320. С этим помог Dr Zlo. Ещё появилась первая топология платы от Quenon: https://t.me/flipperzero/103904/158360. [redacted]
Дальнейшее развитие от комьюнити пошло в прошивке U и его сообществе. В начале февраля появилась поддержка работы и с внешним, и внутренним CC1101 по очереди. Мейнтейнер прошивки U и его команда довели реализацию до ума. Прошивка U - это первая прошивка, в которой появилась поддержка внешнего модуля и которая занималась активным развитием этой фичи. Из прошивки U это перетекло в RM, X и другие неофф прошивки. С тех пор собственные реализации внешних модулей стали появляться по всему миру. Как мне показалось, это стало революцией. Было приятно получать в дискорде и на github слова благодарности из разных концов света.
В марте 2023 начал продажу внешних модулей. Параллельно работали Rotten Mechanism (RU), Rabbit Labs (US) и другие энтузиасты в России и в мире. Дальше очень сложно отследить хронологию, поскольку тема стала развиваться разными людьми в бешенном темпе.
Точно не помню когда, но поддержка внешнего модуля появилась и в офф прошивке.
Вставочка: Первая реализация в офф прошивке появилась Skorpionm and skotopes committed on Jun 30, 2023
и посмотреть можно здесь https://github.com/flipperdevices/flipperzero-firmware/pull/2747, https://github.com/flipperdevices/flipperzero-firmware/commit/8c93695d01d3af4acbd3cb0d5bc756c30c0564dc.
Важно отметить, что Skorp и команда Flipper Devices сделали собственную реализацию, не основанную на моей или Shmuma. И именно эта реализация сейчас используется в прошивке U и кто смог перетащить её к себе.
Вот так ночная мотивация и желание написать немного кода переросло в нечто огромное. Мне очень приятно от того, что реализовал идею, которая оставила заметный след в истории и принесла пользу сообществу по всему миру. Хочу выразить благодарность Shmuma за вдохновение, Skorp, Dr Zlo и команде прошивки U за поддержку в процессе реализации
========
Действующие лица этой эволюции флиппера, заслуживающие неистового респекта
Sub-GHz во Flipper Zero и бесконечное множество внешних модулей