Flipper Zero est un multi-outil de poche pour les hackers au format Tamagotchi que je développe avec des amis. Articles précédents [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ]
Dans cette version: API système, kit de développement, améliorations mécaniques et électroniques, mises à jour GPIO, nouvelle fonctionnalité NFC, banc de test à distance ...
En septembre, nous n'avons presque rien écrit sur le projet, et maintenant il est temps d'expliquer pourquoi. Nous avons suspendu toutes les activités de marketing pour nous concentrer sur le développement et d'autres tâches: contrats d'approvisionnement et de production, questions juridiques, embauche et bien plus encore. Tout cela a demandé tellement d'efforts que nous n'avons même pas eu le temps de publier la mise à jour. Nous sommes maintenant prêts à partager les nouvelles avec vous.
API système
Au cours de ce mois, nous avons développé une architecture de firmware et des API système, des abstractions pour interagir avec le matériel, le contrôle des threads et le multitâche. C'est un travail sous le capot que nous ne montrons pas, mais c'est une partie importante du développement.
Notre objectif principal dans le développement de micrologiciels est de le rendre aussi convivial et compréhensible que possible pour les développeurs afin qu'ils puissent facilement écrire leurs programmes pour Flipper Zero. Donc, après la fin de la campagne, nous avons jeté tout le code sale et avons commencé à développer l'architecture à partir de zéro.
Pendant ce temps, nous avons travaillé activement sur les internes: écrire un bootloader, refactoriser le code du système d'exploitation, écrire des pilotes de périphériques, concevoir des API pour des applications personnalisées. Le refactoring a également affecté le système de construction et les dépendances, le code de l'interface utilisateur a été repensé. Les changements les plus importants ont eu lieu dans notre pile de développement: nous avons mis à jour le CMSIS RTOS utilisé vers la deuxième version et amené notre code à utiliser une seule API. La nouvelle API d'application personnalisée a fait un grand pas en avant vers la version bêta et nous espérons l'ouvrir publiquement dans un proche avenir.
Améliorations de la mécanique et de l'électronique
Nouveaux composants et conception du boîtier
Le boîtier a beaucoup changé depuis le premier prototype. Nous avons complètement repensé la disposition des boutons et des composants à l'intérieur afin que le Flipper ne s'effondre pas, soit durable et puisse résister à une utilisation intensive.
Nous avons déplacé les modules RFID et NFC sur une carte séparée sous la batterie. Il est connecté à la carte mère avec des câbles FPC.
Nouveau mécanisme à bouton-poussoir
Nouveaux boutons à
ressort Ajout de ressorts au joystick pour une meilleure réponse tactile.
Comment réussissent les tests de mécanique des boutons
Batterie remplaçable
Les batteries non amovibles sont le fléau des appareils modernes. Nous avons décidé de ne pas utiliser de batterie scellée et avons opté pour un connecteur à trois broches afin que les utilisateurs puissent la remplacer eux-mêmes. Pour une plus grande maintenabilité, nous prévoyons de vendre des composants Flipper individuels, y compris la batterie, directement sur le site.
InfraRed déplacé vers un coin
Après quelques tests, nous avons constaté que le placement précédent du port infrarouge n'était pas très pratique: il était bloqué par l'index et le module externe. En fin de compte, il a été décidé de le déplacer dans un coin.
Plus de GPIO
Refonte du brochage GPIO. Deux autres contacts GND ont été ajoutés - il n'y en a jamais beaucoup.
Nouvelle fonctionnalité: lecteur NFC USB
Les tâches gourmandes en ressources telles que les attaques cryptographiques ne peuvent pas être effectuées directement sur Flipper. Pour certains, même un Raspberry Pi ne suffit pas - vous avez besoin d'un processeur de bureau puissant et à part entière. Par exemple:
- Attaques contre Mifare Classic: mfoc (imbriqué), mfcuk (côté obscur)
- Attaque sur Mifare Plus: Hard Nested
Nous avons décidé d'ajouter la possibilité d'utiliser Flipper comme un adaptateur USB NFC ordinaire avec la bibliothèque LibNFC. En conséquence, tous les programmes existants fonctionnant via LibNFC fonctionneront dès la sortie de la boîte sans modifications. Dans ce mode, toutes les commandes du PC seront transmises directement à la puce NFC ST25R3916 via l'interface USB.
Le principal problème avec cette tâche est que la bibliothèque LibNFC est fixée de manière rigide aux puces NXP PN5xx, et le nouveau pilote devra essentiellement émuler le comportement de la puce PN53xxx, mais ce n'est pas si effrayant.
Kit de développement Flipper Zero
Pour les développeurs qui travaillent sur le firmware et le matériel, nous avons créé un devkit spécial. En fait, il s'agit d'un Flipper ordinaire avec des planches déroulées dans des raccords en plastique, de sorte que tous les composants sont facilement accessibles par le bas et par le haut, et vous pouvez facilement ramper avec des sondes vers chaque élément.
Laboratoire Flipper
Dans les coulisses du Flipper Lab
Pendant que le code est en cours d'écriture, il doit être constamment testé. La tâche est compliquée par le fait que les tests doivent être effectués sur du matériel réel et interagir avec le monde réel. Pour cela, un banc de test à distance a été réalisé, qui s'intègre aux scripts CI via le flux de travail GitHub. À chaque validation du firmware, il est automatiquement collecté et versé dans l'appareil, après quoi les tests sont effectués, dont les résultats sont crachés dans l'UART: de cette façon, vous pouvez comprendre quels tests ont été effectués avec succès. Jusqu'à présent, cela fonctionne de manière tordue, mais à l'avenir, c'est ainsi que nous vérifierons toutes les fonctions: recevoir / envoyer la radio, lire / écrire des cartes NFC, transmettre / recevoir un signal IR, etc.
C'est le même kit de développement pour les développeurs. Les boutons physiques sont connectés via des relais, ce qui leur permet d'être contrôlés à distance. L'image de l'écran est capturée par une caméra et diffusée sur le site en temps réel. Grâce à la face Web, vous pouvez télécharger manuellement le micrologiciel et les boutons poke, même si le développeur n'a pas d'appareil sous la main.
La maquette d'interface du banc de test à distance Flipper Zero
Flipper Lab est actuellement en développement alpha, mais plus tard, nous l'ouvrirons publiquement afin que tout développeur puisse:
- Téléchargez votre propre firmware ou plug-in vers un échantillon Flipper Zero en direct
- Affichez les journaux en temps réel et envoyez même des messages UART à Flipper
- Appuyez sur tous les boutons à distance
- Testez les périphériques à l'aide, par exemple, de cartes RFID physiques et d'étiquettes iButton
Mises à jour en direct sur Discord
Sur notre serveur Discord, nous avons ajouté un flux en direct des mises à jour au sein du projet. Vous pouvez voir comment les développeurs font en temps réel avec le nouveau canal #updates, où vous pouvez voir les commits entrer dans le référentiel.
Il y a maintenant plus de 6 mille participants sur le serveur!
Rejoignez notre serveur Discord pour:
- Communiquez avec nos ingénieurs et bailleurs de fonds
- Suivez l'avancement du développement en temps réel avec le canal #updates
- Discuter des cas d'utilisation de Flipper Zero
- Rencontrez des milliers de geeks
- Accédez à un canal secret pour les contributeurs uniquement (contactez @Backers Bot dans des messages privés pour obtenir le rôle)
- Bonjour, nous recherchons des talents!
Nous avons précédemment lancé le programme Flipper Developer et reçu plus d'un millier de réponses. Nous avons invité plusieurs développeurs dans un référentiel semi-fermé avec firmware.
Malheureusement, nous nous sommes rendu compte que le modèle de gestion horizontale ne nous convenait pas, car la plupart des développeurs qui ne sont pas à plein temps consacrent du temps à un projet uniquement lorsqu'ils ont de l'inspiration et du désir. Ce processus est difficile à gérer et à prévoir le résultat dans le temps. Par conséquent, nous n'embauchons plus que des développeurs à temps plein. Peut-être que lorsque la majeure partie du code de bas niveau sera prête et que nous ouvrirons le référentiel, il sera plus facile d'accepter les contributions de la communauté.