Flipper Zero est un multi-outil de poche tamagotchi pour les hackers que je développe avec des amis. Messages précédents [ 1 ], [ 2 ], [ 3 ], [ 4 ]
Au cours des 24 premières heures de la campagne Kickstarter, nous avons collecté 1 million de dollars. Franchement, aucun membre de l'équipe n'a même pu s'attendre à une telle popularité. Au début, mon téléphone était déchiré par les notifications, des appels étaient passés du magazine Forbes à Channel One. Je n'ai toujours pas complètement récupéré du choc et n'ai pas répondu complètement à toutes les lettres. Je n'ai jamais rien vécu de tel de ma vie.
Un grand merci à tous ceux qui nous ont soutenus, ont suivi le projet et ont participé. C'est sur Habré que j'ai publié le premier post avec les concepts de Flipper, reçu les premiers retours, critiques et éloges. Nous avons ajouté quelques fonctions à Flipper après les retours sur Habré. Nous essaierons de ne pas merdier avec la production et de répondre aux attentes.
Aujourd'hui, je suis pleinement convaincu qu'une ouverture et une honnêteté maximales sont la meilleure stratégie. Toute notre équipe croit en l'open source et nous pensons que les passionnés peuvent créer des projets sympas sans attirer les investisseurs et la supervision de l'entreprise. Par conséquent, j'invite tous ceux qui sont intéressés par le projet à participer au développement.
Sous la coupe se trouve une description du programme pour les développeurs de micrologiciels, de matériel, de programmes de bureau et de modules matériels.
Qui travaille sur le projet?
Le projet se compose de plusieurs volets à grande échelle, chacun ayant sa propre équipe. Parfois, les équipes doivent coordonner leur travail, par exemple lorsque les mécaniciens et les travailleurs du matériel tentent de s'entendre sur la façon de déplacer un composant sur la carte afin qu'il n'interfère pas avec le mouvement du bouton. Voici les commandes de base:
- Micrologiciel - tout le développement logiciel du micrologiciel, y compris les modules logiciels pour chaque composant: radio, RFID, Bluetooth, infrarouge, U2F, pile USB, etc.
- Electronics Engineering (EE) est une équipe qui développe du matériel, c'est-à-dire toute la partie électronique: cartes, antennes, alimentation.
- Mechanical Engineering (ME) — , . , , : , , , , ..
- Manufacturing — , , ME Hardware . , , . SMT-, , -, , . , .
Pour le moment, nous avons un appareil complet à ~ 80% en termes de fer et de mécanique. Mais la plus grande partie du développement de Flipper est le firmware. Nous avons maintenant un prototype fonctionnel, une architecture et des composants de micrologiciel de base pour développer la viande.
À ce stade, il est très important d'aborder correctement l'unification de tous les composants afin de maintenir la lisibilité du code et un style unique et compréhensible, afin qu'il soit facile pour les développeurs du monde entier de développer pour notre plateforme. Nous pensons que cette tâche intéressera la communauté et vous invitons à contribuer au processus de création de Flipper, tout comme il l'était au début.
Comment participer au développement du firmware?
Tous les micrologiciels Flipper Zero seront entièrement open source et publiés sur Github. Pour l'instant, nous avons décidé de ne pas ouvrir nos référentiels de code afin de repousser légèrement le moment de l'apparition de faux sur Aliexpress. Dans le même temps, nous sommes bien conscients qu'après un tel succès sur kickstarter, des contrefaçons vont certainement apparaître, et en général nous ne sommes pas particulièrement inquiets à ce sujet. Retardons juste un peu ce moment, peut-être que cela poussera les Chinois à écrire un nouveau code au lieu d'utiliser immédiatement le nôtre. Alors maintenant, tout le développement se fait dans un référentiel fermé, où nous ajoutons des personnes après avoir rempli le formulaire et signé le contrat de développeur (CLA). Dans l'accord, nous vous demandons de ne pas distribuer le code sans notre consentement explicite, et disons également que nous serons en mesure de disposer de votre code, mais assurez-vous de conserver votre auteur.
, . , .
Actuellement utilisé HAL / LL de STM et FreeRTOS. La plupart du travail avec les périphériques a été généré par CubeMX, mais dans certains endroits difficiles, j'ai dû supprimer les fonctions standard et travailler directement avec les registres.
Maintenant que nous sommes au stade où il est facile de changer la pile technologique, notre programmeur en chef réfléchit depuis une semaine à l'opportunité de passer à RIOT OS, ChibiOS, NuttX et Zephyr pour accélérer et simplifier le développement. Et nous envisageons également une option pour tout réécrire dans Rust et utiliser le système d'exploitation embarqué et Tock. En général, nous sommes maintenant prêts pour de sérieux changements dans l'intérêt d'un avenir meilleur.
L'assemblage du code se fait via make et gcc, mais très prochainement nous devrons ajouter la possibilité de collecter notre code dans l'IDE Arduino et PlatformIO.
Architecture du micrologiciel:
Qui recherchons-nous?
Les principaux composants de Flipper sont écrits en C, C ++ et Rust, donc la connaissance de ces langages sera utile pour le développement. Ce sera également formidable si vous avez travaillé avec des microcontrôleurs et savez déboguer l'électronique, mais nous essayons de séparer le matériel du code avec une couche d'abstractions afin que de nombreux composants, tels que l'interface graphique ou le comportement de dauphin, ne nécessitent pas de travailler avec du matériel. Nous avons également besoin de concepteurs d'interfaces (placer une interface utilisateur informative sur un écran 128 × 64 n'est pas une tâche facile), de devops et de testeurs (si vous êtes prêt à tester l'électronique et à configurer des supports pour le débogage et les tests à distance).
Plus important encore, vous devez être prêt à contribuer au développement. Pour participer au projet, remplissez le formulaire... Prenez soin de remplir le formulaire très attentivement, c'est le seul moyen pratique pour nous de comprendre votre professionnalisme: écrivez sur votre expérience de développement, indiquez uniquement les composants Flipper que vous souhaitez vraiment développer. Ce sera formidable si vous avez déjà des idées que vous pouvez mettre en œuvre - assurez-vous de les écrire dans le formulaire.
Nous examinerons attentivement toutes les candidatures et contacterons les personnes ayant une expérience pertinente. Ensuite, nous vous expliquerons comment nous pouvons travailler ensemble sur le projet, vous ajouter à Github, vous donner des instructions, vous donner toute la documentation nécessaire et vous présenter le projet. Dans le même temps, les conditions de coopération peuvent être très différentes: du travail à plein temps au sein de notre équipe au bénévolat comme passe-temps.
Kit de développement pour les travailleurs du fer
Pour les développeurs qui osent participer au développement du fer, c'est-à-dire tester la partie physique du module radio, déboguer NFC / RFID, développer des antennes, etc. nous avons fourni un kit de développement spécial. Ce sera une version de Flipper sans boîtier dans une plate-forme spéciale pour une connexion facile aux outils de débogage.
Un tel ensemble sera difficile à utiliser pour autre chose que le développement sur la table, et il contiendra probablement des bogues. Par conséquent, vous n'avez pas besoin de vous flatter et de penser que de cette façon, vous pouvez obtenir votre Flipper avant les autres.
Pour les développeurs de modules
Selon notre idée, les fonctions de Flipper peuvent être étendues à l'aide de modules matériels. Maintenant, nous n'avons pas les ressources pour développer des modules, nous sommes donc prêts à déléguer entièrement cette tâche à la communauté. Il peut s'agir de n'importe quel module, par exemple bus CAN, capteur Hall, analyseur logique, capteurs environnementaux, capteur de bruit, modem, LoraWAN, IMU, émetteur FM et tout un tas d'options possibles pour lesquelles il n'y a que suffisamment d'imagination.
Si vous êtes une grande entreprise commerciale ou un modeste amateur de bricolage et que vous avez une idée de module de fer pour Flipper, nous sommes prêts à vous donner tous les modèles 3D et la documentation nécessaires au développement de modules et à vous aider activement de notre part. Nous prendrons en charge les
10 premiers modules prêts à l'emploi avec notre ressource médiasur nos sites Web et dans tout le matériel promotionnel de Flipper. Par conséquent, tous ceux qui connaissent Flipper connaîtront également vos modules. Pour participer au développement des modules, remplissez ce formulaire.
La plupart de notre équipe parle russe, il nous sera donc plus facile de travailler avec des russophones. Cependant, toutes les questions, commentaires, documentation devront être conservés en anglais , car le projet est international.
Je promets de décrire en détail toutes les étapes de développement ultérieur ici. J'espère que je pourrai me rendre en Chine et diffuser en direct depuis l'usine, montrer comment Flipper sera produit de l'intérieur. Séparément, nous préparons du matériel de formation pour apprendre les protocoles numériques, les bases de l'électronique et de la programmation, afin que les débutants puissent utiliser Flipper comme plate-forme d'apprentissage.
Suivez le projet sur les réseaux sociaux