Flipper Zero ist ein Taschen-Multi-Tool für Hacker im Tamagotchi-Formfaktor, den ich mit Freunden entwickle. Frühere Beiträge [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ]
In dieser Version: System-API, Developer Kit, Verbesserungen in Mechanik und Elektronik, GPIO-Updates, Neue Funktion in NFC, Remote Test Bench ...
Im September haben wir fast nichts über das Projekt geschrieben, und jetzt ist es Zeit zu erklären, warum. Wir haben alle Marketingaktivitäten ausgesetzt, um uns auf die Entwicklung und andere Aufgaben zu konzentrieren: Liefer- und Produktionsverträge, rechtliche Fragen, Einstellungen und mehr. All dies hat so viel Energie gekostet, dass wir nicht einmal Zeit hatten, das Update zu veröffentlichen. Jetzt sind wir bereit, die Neuigkeiten mit Ihnen zu teilen.
System-API
In diesem Monat haben wir Firmware-Architektur und System-APIs entwickelt, Abstraktionen für die Interaktion mit Hardware, Thread-Management und Multitasking. Dies ist Arbeit unter der Haube, die wir nicht zeigen, aber es ist ein wichtiger Teil der Entwicklung.
Unser Hauptziel bei der Firmware-Entwicklung ist es, sie für Entwickler so benutzerfreundlich und verständlich wie möglich zu gestalten, damit sie ihre Programme problemlos für Flipper Zero schreiben können. Nachdem die Kampagne beendet war, warfen wir den gesamten schmutzigen Code weg und begannen, die Architektur von Grund auf neu zu entwickeln.

Während dieser Zeit haben wir aktiv an den Interna gearbeitet: Schreiben eines Bootloaders, Umgestalten des Betriebssystemcodes, Schreiben von Peripherietreibern, Entwerfen von APIs für benutzerdefinierte Anwendungen. Das Refactoring wirkte sich auch auf das Build-System und die Abhängigkeiten aus. Der Code der Benutzeroberfläche wurde neu gestaltet. Die wichtigsten Änderungen fanden in unserem Entwicklungsstapel statt: Wir haben das verwendete CMSIS RTOS auf die zweite Version aktualisiert und unseren Code für die Verwendung einer einzelnen API bereitgestellt. Die neue API für benutzerdefinierte Anwendungen hat einen großen Schritt in Richtung Beta gemacht und wir hoffen, sie in naher Zukunft öffentlich zugänglich zu machen.
Verbesserungen an Mechanik und Elektronik
Neue Komponenten und Gehäusedesign
Das Gehäuse hat sich seit dem ersten Prototyp stark verändert. Wir haben das Layout der Tasten und Komponenten im Inneren komplett neu gestaltet, damit der Flipper nicht auseinander fällt, langlebig ist und starker Beanspruchung standhält.
Wir haben die RFID- und NFC-Module auf eine separate Karte unter der Batterie verschoben. Es wird mit FPC-Kabeln an das Motherboard angeschlossen.
Neuer Druckknopfmechanismus
Neue federbelastete Tasten
Dem Joystick wurden Federn hinzugefügt, um eine bessere taktile Reaktion zu erzielen.
Wie Tastenmechanik-Tests durchgeführt werden
Austauschbare Batterie
Nicht austauschbare Batterien sind die Geißel moderner Geräte. Wir haben uns entschieden, keine versiegelte Batterie zu verwenden, und haben einen dreipoligen Stecker verwendet, damit Benutzer ihn selbst austauschen können. Für eine bessere Wartbarkeit planen wir, einzelne Flipper-Komponenten, einschließlich der Batterie, direkt vor Ort zu verkaufen.
InfraRed ging in eine Ecke
Nach einigen Tests stellten wir fest, dass die vorherige Platzierung des Infrarotanschlusses nicht sehr praktisch war: Er wurde durch den Zeigefinger und das externe Modul blockiert. Am Ende wurde beschlossen, es in eine Ecke zu verschieben.
Mehr GPIO
Die GPIO-Pinbelegung wurde neu gestaltet. Zwei weitere GND-Kontakte wurden hinzugefügt - es gibt nie viele davon.
Neue Funktion: USB NFC Reader
Ressourcenintensive Aufgaben wie kryptografische Angriffe können nicht direkt auf Flipper ausgeführt werden. Für manche reicht sogar ein Raspberry Pi nicht aus - Sie benötigen einen vollwertigen, leistungsstarken Desktop-Prozessor. Zum Beispiel:
- Angriffe auf Mifare classic: mfoc (verschachtelt), mfcuk (dunkle Seite)
- Angriff auf Mifare Plus: Hart verschachtelt
Wir haben uns entschlossen, Flipper als regulären USB-NFC-Adapter zusammen mit der LibNFC-Bibliothek zu verwenden. Infolgedessen funktionieren alle vorhandenen Programme, die über LibNFC arbeiten, sofort ohne Änderungen. In diesem Modus werden alle Befehle vom PC über die USB-Schnittstelle direkt an den ST25R3916 NFC-Chip weitergeleitet.
Das Hauptproblem bei dieser Aufgabe besteht darin, dass die LibNFC-Bibliothek fest mit den NXP PN5xx-Chips verbunden ist und der neue Treiber im Wesentlichen das Verhalten des PN53xxx-Chips emulieren muss, dies ist jedoch nicht so beängstigend.
Flipper Zero Devkit
Für Entwickler, die an Firmware und Hardware arbeiten, haben wir ein spezielles Devkit erstellt. Tatsächlich ist dies ein gewöhnlicher Flipper mit abgerollten Brettern in Kunststoffbeschlägen, so dass alle Komponenten von unten und von oben leicht zugänglich sind und Sie problemlos mit Sonden zu jedem Element kriechen können.
Flipper Lab
Hinter den Kulissen von Flipper Lab
Während der Code geschrieben wird, muss er ständig getestet werden. Die Aufgabe wird durch die Tatsache erschwert, dass Tests auf realer Hardware durchgeführt werden und mit der realen Welt interagieren müssen. Zu diesem Zweck wurde ein Remote-Prüfstand erstellt, der über den GitHub-Workflow in CI-Skripte integriert wird. Bei jedem Festschreiben der Firmware wird diese automatisch gesammelt und in das Gerät eingefügt. Anschließend werden Tests durchgeführt, deren Ergebnisse in den UART gespuckt werden. Auf diese Weise können Sie nachvollziehen, welche Tests erfolgreich abgeschlossen wurden. Bisher funktioniert es schief, aber in Zukunft werden wir auf diese Weise alle Funktionen überprüfen: Radio empfangen / senden, NFC-Karten lesen / schreiben, IR-Signal senden / empfangen usw.
Dies ist das gleiche Entwicklungskit für Entwickler. Die physischen Tasten sind über Relais verbunden, sodass sie ferngesteuert werden können. Das Bildschirmbild wird von einer Kamera aufgenommen und in Echtzeit auf der Website übertragen. Über das Webface können Sie die Firmware- und Poke-Schaltflächen manuell hochladen, auch wenn der Entwickler kein Gerät zur Hand hat.
Das Modell der Flipper Zero
Flipper Lab- Fernprüfstandschnittstelle befindet sich derzeit in der Alpha-Entwicklung. Später werden wir es jedoch öffentlich öffnen, damit jeder Entwickler:
- Laden Sie Ihre eigene Firmware oder Ihr Plug-In in ein Live-Flipper Zero-Beispiel hoch
- Zeigen Sie Protokolle in Echtzeit an und senden Sie sogar UART-Nachrichten an Flipper
- Drücken Sie alle Tasten aus der Ferne
- Testen Sie Peripheriegeräte beispielsweise mit physischen RFID-Karten und iButton-Tags
Live-Updates auf Discord
Auf unserem Discord-Server haben wir einen Live-Feed mit Updates innerhalb des Projekts hinzugefügt. Mit dem neuen Kanal #updates können Sie in Echtzeit sehen, wie es den Entwicklern geht. Dort können Sie sehen, wie die Commits in das Repository gelangen.
Jetzt sind mehr als 6.000 Teilnehmer auf dem Server!
Treten Sie unserem Discord-Server bei, um:
- Kommunizieren Sie mit unseren Ingenieuren und Unterstützern
- Verfolgen Sie den Entwicklungsfortschritt in Echtzeit mit dem Kanal #updates
- Besprechen Sie Anwendungsfälle für Flipper Zero
- Treffen Sie Tausende von Geeks
- Erhalten Sie Zugriff auf einen geheimen Kanal nur für Unterstützer (wenden Sie sich in privaten Nachrichten an @Backers Bot, um die Rolle zu erhalten).
- Hallo, wir suchen Talente!
Wir haben zuvor das Flipper Developer Program gestartet und über tausend Antworten erhalten. Wir haben mehrere Entwickler zu einem halbgeschlossenen Repository mit Firmware eingeladen.
Leider haben wir festgestellt, dass das horizontale Managementmodell für uns nicht geeignet ist, da die meisten Nicht-Vollzeit-Entwickler nur dann Zeit für ein Projekt verwenden, wenn sie Inspiration und Lust haben. Dieser Prozess ist schwierig zu verwalten und das Ergebnis über die Zeit vorherzusagen. Daher stellen wir jetzt nur Vollzeitentwickler ein. Wenn der Großteil des Low-Level-Codes fertig ist und wir das Repository öffnen, ist es möglicherweise einfacher, Community-Eingaben zu akzeptieren.