16 Punkte von xguru 2021-05-31 | 2 Kommentare | Auf WhatsApp teilen
  • Eine Ingenieurin, die das Open-Source-Synthesizer-Unternehmen Winterbloom betreibt, erklärt die von ihr verwendeten Technologien und Tools

  • Sie jagt nicht dem neuesten Stand der Technik hinterher, sondern erreicht ihre Ziele mit Tools und Technologien, die sie gut versteht

 "Lateral thinking with withered technology"

 → Querdenken mit veralteter Technologie: die Idee, dass man mit nicht neuer, sondern „verwelkter“ Technologie den Spaß in den Mittelpunkt stellen und dadurch etwas völlig Neues erschaffen kann

 → Ein Ausspruch von Gunpei Yokoi, der die Philosophie der Technologieentwicklung des modernen Nintendo geprägt hat: der Mann hinter Nintendos Handheld-Spielgeräten (Game Boy) und VR-Spielen

  • Mikrocontroller: Auswahl von 2–3 Produkten, auf die man sich konzentriert

 → Microchip SAM D21, D51, D11

  → Alle drei unterstützen USB, flexibles SERCOM, mehrkanalige 12-Bit-ADC, fortgeschrittene Timer usw.

 → Zusätzlich werden RP2040 (wenn kein analoges I/O benötigt wird) und STM32H7 (wenn Sound direkt in der Firmware erzeugt werden muss) in Betracht gezogen

  • Hardware-Design: Verwendung des Open-Source-EDA-Tools KiCad

 → Eine KiCad-Bibliothek mit gemeinsamen Symbolen, Footprints und 3D-Modellen für die verwendeten Bauteile wird auf GitHub geteilt

 → Eine bevorzugte Liste wichtiger Bauteile wird als Notion-Seite veröffentlicht (Beschreibung, Teilenummer, Datenblatt, Hersteller, Kauflink, Verwendungszweck)

  • Firmware: Sprache, Bibliotheken, Build-System, Testing-Framework usw. (jeweils einzeln unten)

  • C, GCC, CMSIS

 → Verwendet wird C: alt, aber vertraut

 → Es gibt auch kostenpflichtige Compiler wie Keil/IAR, genutzt wird aber die Open-Source-GCC ARM Embedded Toolchain

 → Das von Microchip bereitgestellte HAL ist zu schwer handhabbar, daher werden die CMSIS-Bibliotheken direkt verwendet und darüber eine kleine Abstraktion geschrieben

  CMSIS ist eine von ARM bereitgestellte herstellerunabhängige Hardware-Abstraktionsschicht

  • Firmware-Bibliotheken

 → TinyUSB: eine hervorragende, kleine USB-Bibliothek

 → Marco Paland's Printf: eine für Mikrocontroller optimierte printf-Implementierung

 → libfixmath: eine kleine Bibliothek für Festkomma-Arithmetik (nützlich für Mikrocontroller ohne Festkomma-Einheit)

 → µnit: ein sehr kleines und nützliches Testing-Framework

  • Build-System

 → Builds mit Python und Ninja

 → Begann mit einem Makefile, wurde aber mit der Zeit zu schwer zu pflegen, daher der Wechsel

  • Python-basiertes Tooling

 → Zentral verwaltet im Repository wintertools

 → Eine Sammlung von Skripten, die Builds und Tests rund um Firmware und Hardware unterstützen

  • CircuitPython

 → Einige Produkte verwenden keine Custom-Firmware, sondern das für die Ausbildung mit Mikrocontrollern genutzte CircuitPython

 → Für Kundinnen und Kunden leicht anzupassen

 → Erleichtert Firmware- und Software-Entwicklung

 → Es gibt eine hervorragende Community unter der Betreuung von Adafruit

  • Dokumentation & Benutzerhandbücher

 → Geschrieben in Markdown. Mit MkDocs zu statischen Webseiten gebaut und auf GitHub Pages gehostet

 → Nutzung des Bulma-CSS-Frameworks

 → Um es einfach zu halten, werden Sass/LESS usw. nicht verwendet

  • JavaScript

 → Das zu komplexe Node.js-Ökosystem wurde bewusst vermieden

 → Verwendet werden normales JavaScript sowie Module, Klassen, Arrow Functions, Canvas, WebMIDI, TypedArray usw.

 → Für die Zukunft setzt man Hoffnungen auf Deno

2 Kommentare

 
daumkakao 2023-04-12

Cool … dass sie das ganz allein macht …

 
xguru 2021-05-31

Der obige Artikel und sein Titel sind ähnlich, aber da es sich um ein Hardware-Startup handelt, ist die Geschichte völlig anders, weshalb ich ihn mit großem Interesse gelesen habe.