Scroll Indicator
Bau des LightMessenger: Herstellung, Teil 2
Lab401 Light Messenger : Entwicklungsprotokoll
Teil 2 unserer Serie "Produktherstellung mit Lab401".
In Teil 1 haben wir unseren Ansatz und unsere Methodik für die Entwicklung, Herstellung und Markteinführung von Produkten erläutert.
In diesem Teil tauchen wir hinter die Kulissen der Produktion von Lab401's Persistence of Vision / Light Painting Zubehör für den Flipper Zero.
Was ist der Light Messenger?
Der Light Messenger ist ein Persistence of Vision- und Light Painting-Zubehör für den Flipper Zero. Er verfügt über 16 RGB-LEDs und einen Beschleunigungssensor. Wenn du ihn an deinen Flipper Zero anschließt und hin und her wischst, "malt" er Texte und Bilder in die Luft.
Es ist Open-Source und kann komplett gehackt werden - und die Community hat bereits einige tolle neue Funktionen hinzugefügt.

Ein großes Lob geht an @tixlegeek, den Ingenieur hinter dem Projekt, und @codeallnight für ihre Beiträge zur Code-Basis seit der Produktveröffentlichung.
Schritt 0: Was werden wir bauen?
Zunächst begannen wir mit einer Brainstorming-Sitzung, in der wir mehrere Ideen notierten. Ziel war es, Konzepte zu finden, die Spaß machen, interessant sind und echte Innovationen für den Flipper Zero bringen , anstatt nur die gleichen Hardwaremodule zu replizieren, die als Klone im Umlauf sind. Unser Ziel war es, ein Projekt zu entwickeln, das neuartig, fesselnd und lehrreich ist .
Als Nächstes bewerteten wir jede Idee, um festzustellen, wo wir anfangen sollten. Da dies für uns eine Premiere war, war es wichtig, dass das erste Projekt klar definiert und zugänglich war.
Da es sich um unser erstes Flipper-Zero-Zubehör handeln würde, hatten wir zusätzlich zu den im vorherigen Beitrag definierten "Produktmetriken" noch einige weitere Metriken zu berücksichtigen:
- Erlernen der Hardware-Architektur von Flipper Zero
- Erlernen der Flipper Zero Software-Entwicklungsarchitektur (FURI)
- Aufbau und Verwaltung einer vollständigen Lieferkette (Entwicklung, Prototyping, Produktion usw.)
- Testen des Marktes für Flipper Zero-Zubehör
Aufgrund dieses zusätzlichen Aufwands war es wichtig, dass wir uns erreichbare Ziele setzen. Daher wollten wir sicherstellen, dass der Umfang des Zubehörs relativ einfach ist, damit wir uns auf den Aufbau von Wissen konzentrieren können, ohne überfordert zu werden.
Wir entschieden uns für das Zubehör "Persistence of Vision / Light Painting", da es in Bezug auf die Hardware und die Produktion relativ einfach war, so dass wir uns auf die komplexeren Elemente konzentrieren konnten: Softwareentwicklung und Flipper-Architektur.
Wenn es keinen Markt für Flipper-Zubehör gäbe und das gesamte Projekt scheitern würde, würden wir ebenfalls schnell scheitern (und damit billiger sein).
Zusammenfassend lässt sich sagen, dass dieses Projekt uns die Möglichkeit gab, zu lernen und zu erforschen, was wir tun können und wie.
Entwurf
Erste Produktskizzen
Bevor wir uns an das endgültige Design wagten, mussten mehrere Faktoren berücksichtigt werden. Wir mussten uns an physische, finanzielle und logistische Beschränkungen halten, die unsere technischen Entscheidungen beeinflussen würden:
-
Mechanische Robustheit
Das Add-on wird von echten Menschen mit großen Händen und manchmal hündischem Gebrauch benutzt . Daher mussten wir ein robustes Modul entwerfen, insbesondere unter Berücksichtigung der GPIO-Beschränkungen des externen Ports des Flipper Zero. -
Entwicklung
Der Code muss klar und zugänglichbleiben , damit jeder ihn verstehen und mitarbeiten kann. Aus diesem Grund haben wir uns entschieden, das Projekt in mehrere Module aufzuteilen (Konfiguration, Beschleunigungssensor-Management, Grafik-Rendering usw.) und bewährte Standards zu verwenden (wie JSON für die Konfiguration und Bitmap für Bilder). -
Produktion
Jedes Element muss mit leicht verfügbaren Komponenten herstellbar sein . Die Wahl des LIS2DH12/SK6805-Paares erwies sich in Bezug auf Zuverlässigkeit und Beschaffung als eine gute Entscheidung. -
Kosten
Unser Ansatz war es, einfach und effizientzu bleiben . Wir setzen Prioritäten, um sicherzustellen, dass das Endprodukt zu einem vernünftigen Preis erhältlich ist . -
Ästhetik
Die Ästhetikwird oft leicht übersehen, aber sie trägt wesentlich zum Benutzererlebnis, zur Attraktivität des Produkts und zum Image der Erfinder bei. Sowohl Lab401 als auch ich wollten so stolz wie möglich auf das sein, was dem Benutzer angeboten wird, und sicherstellen, dass er sich respektiert und wertgeschätzt fühlt. Unser Ziel war es, etwas Schönes zu schaffen, das zeigt, dass wir wirklich unser Bestes gegeben haben.
Skizzieren
Ich beginne mit diesem Punkt, weil es einer meiner Lieblingsschritte ist. Ich wollte, dass alle Add-ons eine gemeinsame Geschichte und einen roten Fadenhaben , um eine echte Überlieferung zu schaffen . Diese Liebe zum Detail stärkt das Engagement der Benutzer, auch wenn sie aus technischer Sicht nicht unbedingt notwendig ist.
Ich habe zunächst auf dem Papier Ideen skizziert und die Entwürfe dann mit Inkscape (<3)fertiggestellt .


Für die Rückseite der Platine habe ich einen Spickzettel zum Thema "Informationssicherheit" entworfen , der sich auf die Verschlüsselung konzentriert , einschließlich des Shannon-Modells, Vergleiche zwischen Verschlüsselung, Chiffrierung und Hashing sowie eine komprimierte ASCII-Tabelle und ein Diagramm für den Morsecode.
Prototypen
Vom Proof of Concept bis zur endgültigen Versiondurchliefen wir zahlreiche Iterationen , die es uns ermöglichten, schnell zu iterieren, wenn ein Problem erkannt wurde:
Erster Prototyp, mit dem wir die Peripheriefunktionen steuern und verschiedene Optionen testen konnten
Einige der Prototypen, die entwickelt wurden
Jeder Prototyp ermöglichte es uns, einen bestimmten Aspekt des Moduls zu testen, von der Bewegungserkennung bis zur LED-Anzeige, und unseren Code zu verfeinern. Dieser Ansatz ermöglichte es uns, die Entwicklung auf einer soliden Grundlage zu beginnen.
Auswahl der Komponenten
Um mit der Produktion beginnen zu können, mussten wir sicherstellen, dass alle Komponenten in ausreichender Menge beschafftwerden konnten . Nach zahlreichen Tests und Design-Iterationen entschieden wir uns für das LIS2DH12/SK6805-Paar:
-
LIS2DH12: Ein Beschleunigungssensor, der alle erforderlichen Funktionen bietet, mit hervorragender Zuverlässigkeit und Softwareunterstützung von STMicro.
-
SK6805: Das einzige Modell, das seitlich abstrahlt, was ursprünglich nicht geplant war, sich aber als ideale Lösung herausstellte. Auch sie sind leicht erhältlich.
LEITERPLATTE
Die Leiterplatte wurde mit KiCad (<3) entworfen , einer kostenlosen und quelloffenen Software, die extrem leistungsfähig ist. Dank der dynamischen Community und der fortschrittlichen Funktionen dieser Software konnten wir eine Schaltung entwerfen, die auf die spezifischen Bedürfnisse des Projekts zugeschnitten ist und gleichzeitig eine professionelle Qualität bietet.
Betrieb und POC
In diesem Abschnitt geht es um das Herzstück des Projekts. Die Spezifikationen lauteten wie folgt:
-
Textanzeige
-
Bildanzeige
-
Bidirektionale Anzeige
Um die Abmessungen einzuhalten und gleichzeitig eine gute Auflösungzu gewährleisten , haben wir uns für eine Anordnung von 16 RGB-LEDs (SK6805) entschieden .
Für die Bewegungserkennung wurde ein Beschleunigungsmesser mit mindestens zwei Interrupts vom Typ "Tilt"verwendet . Diese Interrupts erkennen Kraftumkehrungen und erzeugen Impulse an den GPIO-Pins, die für die Auslösung von Interrupts im Code wichtig sind.
Es ist wichtig zu bedenken, dass der GPIO-Port des Flippers zwar sehr gut konzipiert, aber auch recht begrenzt ist. Wir mussten mehrere Tests durchführen, Ideen und Hilfe von den Flipper-Teams einholen, aber letztendlich hat es funktioniert, und wir haben schnell einen zufriedenstellenden POC implementiert.
Erste Blicke auf die "funktionierende" Implementierung

Erster funktionaler Code
Der Code
Die Entwicklung des Codes war die eigentliche Herausforderung.
-
Modularer Aufbau:
Der Code ist in mehrere klare Module aufgeteilt:-
Konfiguration: Lesen und Parsen der JSON-Datei, um die Anzeige und die Parameter zu definieren.
-
Beschleunigungsmesser: Verwaltung von Interrupts über die Funktionen
zmax_callbackundzmin_callback, die die Bewegungsrichtung bestimmen und die Anwendungsstruktur überswipes_initaktualisieren . -
Grafik-Rendering: Ein Shader berechnet in Echtzeit die Farben aller Pixel in einer Spalte auf der Grundlage von Parametern und dem Zustand des Beschleunigungsmessers.
-
-
Echtzeit-Optimierung:
Der Hauptthread läuft kontinuierlich, um die LED-Anzeige neu zu berechnen und zu aktualisieren. Eine feinkörnige Verwaltung der Mikrosekunden ermöglicht es uns, Leistung und Reaktionsfähigkeit auszubalancieren, selbst bei begrenzter Hardware. -
Spezielle Tools zur einfachen Erstellung von Text und Bildern angesichts der Beschränkungen des Flipper Zero (monochromer Bildschirm und ein paar Tasten)
-
Einfacher Beitrag:
Wir haben sichergestellt, dass das Projekt leicht erweiterbarist . Durch die Verwendung von Standards wie JSON und Bitmap können Benutzer mühelos Dateien erzeugen, importieren und ändern, ohne komplexe Pipelines beherrschen zu müssen.

Der Code wurde so gestaltet, dass jede neue Funktion (wie das Hinzufügen von Farben zu Bildern oder das Verbessern des Shaders) integriert werden kann, ohne das Gesamtsystem zu stören.
Erste erfolgreiche Tests der "Bitmap"-Funktion
Betriebliche Details
Der Beschleunigungsmesser spielt eine zentrale Rolle bei der Steuerung der LED-Matrixanzeige. Sobald die "SWIPE" -Meldung angezeigt wird, übernimmt ein eigener Thread (app_acc_worker) die Verwaltung der Interrupts und die Steuerung der Anzeige.
Hinweis:
Wenn Sie sich den Code ansehen, werden Sie feststellen, dass wir innerhalb der "Display"-Routine keine traditionellen Mechanismen wie Mutexe oder Ereigniswarteschlangen verwenden. Die Flipper-API, die auf FreeRTOSbasiert , bietet diese Strukturen zwar an, ist aber auf dieser Ebene viel zu kostspielig. Wir haben uns für direktere Techniken entschieden , auch wenn manche sie als "schmutzig" bezeichnen mögen. Nach mehrwöchigen Iterationen erwies sich dieser Ansatz als der zuverlässigste für unseren Anwendungsfall, da er Timings und Stabilität garantiert
Die beiden vom Beschleunigungsmesser erzeugten Interrupts lösen die Funktionen zmax_callback und zmin_callbackaus . Diese Funktionen aktualisieren die Bewegungsrichtung, die dann vom Hauptthread verwendet wird, um die LEDs mithilfe eines dynamischen Shaders zu animieren . Dieser Shader ist so konzipiert, dass er über eine einfache Änderung der Callback-Funktion leicht modifiziert werden kann, was die Erforschung verschiedener Farbpaletten und visueller Effekte ermöglicht.
Das Flipper-Ökosystem
Die Arbeit am Flipper Zero ist sowohl anregend als auch herausfordernd. Die Bemühungen der Community und der Entwicklungsteams sind beeindruckend und dynamisch, auch wenn die sich ständig weiterentwickelnde API manchmal eine Überarbeitung von Teilen des Codes erforderlich macht. Diese Dynamik sorgt dafür, dass das Projekt auf dem neuesten Stand bleibt und von den neuesten Systemverbesserungen profitiert.
Herstellung, Produktion und Tests
Nach der Iteration zur endgültigen Hardware konnten wir einige Prozesse parallel ablaufen lassen:
- PCB / PCBA
- Prüfung / QC
- Verpackung
PCB/PCBA
Bei der Fertigung besteht der erste Schritt darin, die vollständigen Projektdateien an das ausgewählte Werk zu senden. Dies sind in der Regel die "GERBERS" und "Bill of Material" (BOM).
Dies ermöglicht dem Werk die Herstellung der Leiterplatten (PCBs), die Vorbereitung der Lötmasken und des Siebdrucks sowie die Vorbereitung der Leiterplattenbestückung (PCBA), bei der die Komponenten ausgewählt, platziert und auf die PCBs gelötet werden.
Wir haben uns dafür entschieden, einen unserer bestehenden Kontakte in Shenzhen für die PCB + PCBA zu nutzen.
Erste PCB-Tests

Produktions-PCBs. Wir haben uns für den "Snap-off Ladder Style" entschieden, um das Testen zu erleichtern. Sobald eine Leiterplatte getestet war, konnte sie abgeknipst werden, so dass es keine Verwechslungen gab, was getestet oder nicht getestet wurde.
Prüfung / QC
Es gibt verschiedene Ansätze für das Testen und die Qualitätskontrolle.
Unserer Erfahrung nach ist eine 100 %ige Prüfung (d. h. jedes Produkt wird einzeln geprüft) sicherer, zuverlässiger und auf lange Sicht billiger als Stichproben.
Um eine 100%ige Qualitätskontrolle durchzuführen, müssen Sie der Fabrik ein SOP-Dokument (Standard Operating Procedure) zur Verfügung stellen, in dem beschrieben wird, wie ein Produkt getestet werden sollte und welche Bedingungen für das Bestehen bzw. Nichtbestehen gelten.
Wenn möglich, sollte die Prüfung in einer "Vorrichtung" durchgeführt werden. Dabei handelt es sich um ein halbautomatisches Gerät, mit dem die Fabrik jedes einzelne Gerät schnell testen kann.
Wenn Sie den Schaltplan, die Firmware und die SOP zur Verfügung stellen können, wird das Werk in der Regel herausfinden, wie die Vorrichtung physisch gebaut werden kann, um die Anforderungen zu erfüllen.

Das SOP-Dokument
Die werksseitige Implementierung der Prüfvorrichtung (mit unerwarteten Fehlern 👽)
Muster einer bestandenen Einheit
Muster einer nicht bestandenen Einheit (Beschleunigungsmesser fiel während der PCBA aus)
Verpackung
Die Verpackung ist ein faszinierendes Thema: Sie spielt eine wichtige Rolle bei der Wahrnehmung eines Produkts durch den Kunden; diese Wahrnehmung kann sogar die ersten praktischen Erfahrungen des Kunden mit einem Gerät beeinträchtigen.
Gleichzeitig werden Verpackungen, sofern es sich nicht um Sammlerstücke handelt, fast sofort weggeworfen.
Wo liegt aus ethischer Sicht die Grenze zwischen der Vermittlung eines Qualitätsgefühls beim Kunden und der Vermeidung überhöhter Preise für etwas, das weggeworfen wird?
Auch die Verpackung hat einen großen Einfluss auf die Umwelt. Bei der Produktion werden alle möglichen Chemikalien zum Bleichen und Färben von Rohstoffen verwendet; beim Empfang landen sie auf der Mülldeponie.
Wir ziehen es vor, einfache Verpackungen zu verwenden:
- Ungebleichter, unbeschichteter Karton, um den Fußabdruck schädlicher Chemikalien zu minimieren
- Druckfarben auf Sojabasis, um die Umweltauswirkungen zu minimieren
- Einfache Schaumstoffeinlagen (kein Zuschnitt usw.), um die Kosten zu minimieren
Wir sind der Meinung, dass dies ein Gleichgewicht zwischen unserem ethischen Engagement und einem angenehmen Unboxing-Erlebnis für den Kunden darstellt. Außerdem sind wir ehrlich zu unseren Kunden - sie zahlen nicht für etwas, das sie wegwerfen werden.
Nachdem wir diese Entscheidungen getroffen hatten, wählten wir ein Format, das für uns funktionierte, aber immer noch schlank genug war, um sich für "Briefumschlag"-Preise zu qualifizieren.
Wir hätten das Format jedoch noch schlanker gestalten können und sollen - selbst eine Verringerung der Höhe um 50 % hätte unsere Paletten-, Versand- und Lagerkosten erheblich gesenkt. Lektion gelernt für das nächste Accessoire!

Unsere Schachtel.
Fazit
Dieses Projekt erwies sich als weitaus komplexer als erwartet, aber wir haben alles gegeben, um ein fertiges, funktionales, erweiterbares, ästhetisches, lehrreiches und unterhaltsames Produkt zu liefern ! Jede Zeile des Codes, jede technische Entscheidung wurde getroffen, um ein reichhaltiges Benutzererlebnis und eine solide Grundlage für zukünftige Beiträge zu schaffen.
Während wir neue Projekte entwickeln, werden das Lab401-Team und ich weiter an Vertrauen, Organisation und Fähigkeitengewinnen .
Unser Ziel bleibt es, Geräte zu entwickeln, die unsere ursprüngliche Visionvollständig verkörpern , und wir laden Sie ein, Ihre Ideen auf GitHub zu erforschen, beizutragen und zu teilen .
Wenn Sie daran interessiert sind, das Endprodukt, den LightMessenger, auszuprobieren, würden wir uns freuen - und sind sehr daran interessiert, zu sehen, was Sie damit machen!
Kundenfotos mit Lichtmalerei, Bitmaps, Textmodi und verschiedenen Farbeffekten.
Einen Kommentar hinterlassen