Give Away: fnordlichtmini Platinen

gplv3-127x51Für das fnordlichtmini (flm) von Alexander Neumann gibt es nun auch ein EAGLE CAD Layout. Zuvor war leider nur ein Schaltplan offen verfügbar. Gleichzeitig habe ich auch meine restlichen Projekte aufgeräumt und sie unter der OSHW Lizenz GPL veröffentlicht.

Vielleicht habt ihr ja Lust ein kleines Ambilight zu basteln? Ich habe noch ne Menge der Platinen übrig, die ich gerne in Aachen verschenken oder tauschen würde. LEDs sind dir zu langweilig? Ich hab auch noch andere Platinen übrig…

In meinen älteren Beträgen (hier und hier) gibt es auch noch ein paar kleine Anregungen was man alles mit dem flm so anstellen kann.

Thesis

Seit fast zwei Monaten schreibe ich jetzt am Lehrstuhl für Betriebssysteme meine Bachelorarbeit:

Eine generische Speicherverwaltung mit Hilfe von Seitentabellen für ein
minimalistisches Betriebssystem

oder auf Englisch

A generic memory management with paging for a minimalistic operating
system

Huh?! Was ist das? Was machst du da?“ Da dies häufig die erste Reaktion von Freunden und Familie ist, möchte ich versuchen das Thema meiner Arbeit hier kurz und verständlich vorzustellen. Wer Interesse an einem tieferem Verständnis und technischen Details hat, lade ich gerne zu meinem Abschlussvortrag Ende Mai ein. Zu dem „Was machst du da?“ kann ich schon einmal sagen, dass ich viel am Programmieren bin und dabei unheimlich viel praktische Erfahrung sammele. Und es nen riesen Spaß macht 😀

Meine Arbeit dreht sich also um Betriebssysteme. Die Aufgabe von Betriebssystemen ist es verfügbare Ressourcen zu verwalten und diese mit einer einheitlichen Schnittstelle dem Nutzer zu Verfügung zu stellen. In meinem Fall arbeite ich an der Verwaltung des Arbeitsspeichers.
Arbeitsspeicher (engl. RAM für Random Access Memory) findet man in Handys, TVs, MP3 Playern, Laptops und vor allem in Server und Hochleistungsrechnern. Es ist einer recht schneller dafür auch leicht flüchtiger Speicher, den man gut mit dem menschlichen Kurzeitgedächtnis vergleichen kann. „Random Access“ steht für einen wahlfreien Zugriff, also dass man alle Informtionen ohne vorheriges „Spulen“ oder „Nadel umsetzen“ abfragen kann – um mal in nostalgischen Analogien zu sprechen.

quote-Bill-Gates-640k-ought-to-be-enough-for-anybody-89027

Dieses Zitat, das gerne dem Microsoft Gründer Bill Gates zugeschrieben wird, dürfte vielleicht einigen von euch bekannt sein. Waren im Jahr 1981 noch 640 KB das Maß der Dinge haben heutige Server 64 GB und mehr. Dies entspricht verblüffend genau einer Verdopplung der Kapazität alle zwei Jahre wie es Gordon Moore bereits schon 1965 postuliert hat.

Aber nun mal wieder zurück zu meiner Arbeit: diese rasante Entwicklung der Speicherkapazität hat Betriebssysteme vor einigen Jahre vor wesentliche Probleme gestellt.
Stellen wir uns vor – ähnlich wie die Größe des Speichers, hätte sich die Anzahl der Autohalter in Deutschland entwickelt. Den Zulassungsstellen wären recht schnell die Nummernschilder ausgegangen, da es einfach nicht genügend unterschiedliche Kombinationen von Landkreis und Buchstaben/Zahlen gäbe. Und wer möchte schon das gleiche Nummernschild wie sein Nachbar haben. Jedes Auto muss also eindeutig identifizierbar und jeder Speicherplatz eindeutig adressierbar sein. Mit zunehmender Anzahl an Autohaltern, bzw. der Speicherkapazität, steigt daher auch Komplexität der Verwaltung.

In meinem Beispiel könnte man dieses Problem beispielsweise durch einen zusätzlichen Buchstaben für das Bundesland auf jedem Nummernschild lösen. Man denke an die Einführung der EU-Kennzeichen.
Und damit bin ich auch schon beim Ziel meiner Arbeit: Ich möchte dieses Verwaltungsproblem für beliebe große Speicherkapazitäten und beliebig viele Verwaltungsinstanzen lösen ohne die Kompexität dadurch zu steigern.

Puh, das soll erst einmal reichen. Ende Mai werde ich diese, meine erste wissenschaftliche, Arbeit abschließen. So lange behalte ich meine Lösung noch für mich :p

breadBUG

breadBUG PlatinebreadBUG“ ist ein kleines Mikrocontrollermodul, das direkt auf ein Breadboard aufgsteckt werden kann. Es ist als Prototyping-Werkzeug für tägliche Basteleien gedacht.

Es fasst das für den Mikrocontroller nötige „Vogelfutter“ auf einer kleinen Platine zusammen:

  • ATmega8 Controller
  • 16 MHz Quarz und Ladungskerkos
  • 5 V Festspannungsregler
  • Reset Taster
  • ISP Stecker
  • LED zur Spannungsüberwachung

breadBUG“ ist während meiner Arbeit für die Mikrocontroller-AG des MMIs entstanden. Einige Teilnehmer wünschten sich ein einfaches, kleines und günstiges Modul, das sie als Alternative zu dem von uns verwendeten Evaluationboard für eigene Projekte nutzen können.

Fast alle von uns in der AG verwendeten Erweiterungsmodule sind daher Pin-kompatibel mit dem „breadBUG“ Board. Bis auf den Controller selber haben wir nur Through-hole Komponenten verwendet um den Aufbau auch für Einsteiger möglichst einfach zu halten.

Das Board hat etwa eine Größe von 2,5x5cm, sodass im Mehrfachnutzen genau zwei Boards auf eine 5x5cm Platine von seeedstudio.com passen. Damit liegt der Preis für eine einzelne Platine bei weniger als 50 Cent.

breadBUG_layout

Download

Eagle Schematics und Gerber Dateien gibt es wieder auf GitHub:

Mikrocontroller AG

Vor drei Jahren war ich selber Teilnehmer der AG und habe diese dann für die vergangenen zwei Jahre mit Hilfe zweier weiterer Kommilitonen, Markus Hamm und Mats Markus, geleitet.

Als Abschluss meiner dortigen Arbeit schreibe ich nun meinen Bericht und möchte diesen hier kurz zusammenfassen. Den kompletten Tutoriumsbericht könnt ihr euch hier herunterladen.

Auch vergangene Beiträge in meinem Blog beziehen sich auf meine Arbeit in der AG:

Allgemeines

Das Institut für Mensch-Maschine-Interaktion (MMI) der RWTH bietet für Studenten des zweiten Semesters eine freiwillige AG zum Einstieg in die Mikrocontroller Programmierung an. Diese verknüpft theoretische Grundlagen der Vorlesung „Grundgebiete der Informatik 2“ von Prof. Roßmann mit praktischen Beispielen und Aufgaben aus dem Bereich der Mikrocontroller. Es handelt sich um eine freiwillige Veranstaltung, die für die Teilnehmer nicht als Studienleistung anerkannt werden kann. Wie auch in der Vorlesung werden die ATmega Mikrocontroller der Firma Atmel verwendet.

Platine

Komplett2Um die in der AG vermittelte Theorie auch praktisch anwenden zu können, erhalten alle Teilnehmer einen Bausatz. Dieser besteht aus einer speziell für die AG entwickelten Platine inklusive der dafür benötigten Bauelemente.

Unsere erste Aufgabe war das Überarbeiten, dieser Platine. Sie besteht aus sieben Modulen die zusammen auf einer Platine untergebracht sind: Hauptboard, Programmer, Matrixtastatur, zwei Spielwiesen sowie einem LC-Display.
Um die Kosten der Platine zu senken verkleinerten wir sie auf das Format einer Euro-Platine und entfernten ein paar Bauteile.

Skript

Mittlerweile betreue ich die AG in der 3. Generation. In den Jahren zuvor enstanden einige kleine Skripte, Primer und Hilfsblätter. Um diese Flut an Informationen etwas zu bündeln haben wir sie in einem Skript zusammen gefasst, das nun ca. 140 Seiten umfasst. Es behandelt alle in der AG vorstellten Themen und geht noch auf weitere Details in Hardware und Software ein. Zudem beschreibt es auch alle Module der Platine mit Anschlussbelegungen, Schaltplänen usw.

Erweiterungen

Neben dem Hauptboard, das alle Teilnehmer zu Beginn der AG erhalten, haben wir kleine Erweiterungsplatinen entworfen. Diese sind mit den Erweiterungsports des Hauptboards kompatibel und können zur Motoransteuerung, Ethernet- oder Funkkommunikation genutzt werden.

Ethernet BoardEthernet Addon

Das Ethernet-Addon ist aus der Arbeit zweier ehemaliger Teilnehmer entstanden. Neben einem Protoypen entwickelten sie einen leichtgewichtigen und flexiblen TCP/IP Stack, der auf dem ATmega16 des Hauptboards lauffähig ist. In Verbindung mit dem ethersex Betriebsystem können hier schnell eigene Internet Gadgets realisiert werden.

Funk Board

nrf24l01Das Funkboard war ursprünglich zur drahtlosen Kommunikation in einem Roboterschwarm gedacht. Mit dem Ziel möglichst simpel und günstig zu sein, ist unsere Wahl auf den NRF24L01+ Tranceiver von Nordic Semiconductors gefallen. Mit einem Preis von unter 1 € ist er preislich nicht zu schlagen.

Fazit

Einen schöneren HiWi-Job hätte ich mir nicht vorstellen können 🙂 Wir hatten viele Freiheiten, konnten uns unsere Arbeitszeit und -ort größtenteils selbst wählen und an eigenen interessanten Projekten arbeiten. Die Arbeit in der Lehre, also direkt mit seinen Kommilitonen, hat mir viel Spaß gemacht.
Trotzdem freue ich mich jetzt auch mal etwas in die Forschung schnuppern zu können: seit November ’13 arbeite ich am Lehrstuhl für Betriebssysteme an meiner Bachelorarbeit. Aber dazu gibts bestimmt auch nochmal einen kleinen Beitrag 🙂

Wer immer noch nicht genug hat, darf auch gerne meinen kompletten Tutoriumsbericht lesen. (Vielleicht orientieren sich ja auch meine Nachfolger daran :D)

Gallerie

fnordstripe

fnordstripe_1In diesem und folgendem Beitrag geht es wieder um fnordlichter. Ja genau, ich habe schon vor einem Jahr mal darüber gebloggt.

fnordlichter sind kleine LED Module die über einen gemeinsamen Bus angesteuert werden können. Ich nutze diese Module zur intelligenten Beleuchtung unserer Wohnung. Sie können uns über neue Mails, den aktuellen Stromverbrauch, das Wetter, Serverstatus etc. benachrichtigen oder einfach als Stimmungs-Licht oder Party-Beleuchtung genutzt werden.

Da die einzelnen Module leider nicht genügen um damit mein ganzes Zimmer zu beleuchten, habe ich mich entschieden für diesen Zweck eigene Hardware zu entwickeln.

Wie der Name dieses Betrages es bereits andeutet können meine fnordstripe Module ganze Bänder/Streifen von LEDs ansteuern. Ausgehend von dem fnordlichmini Design habe ich die LEDs und Konstantstromquellen durch drei MOSFETs ersetzt, die jeweils einige hundert LEDs betreiben können. Im Bild oben wurden die MOSFETs aus Platzgründen auf der Unterseite der Platine verlötet.

Die Bänder sind recht einfach aufgebaut. Alle LEDs besitzen eine gemeinsame Anode und sind parallel geschaltet. Das erlaubt es Bänder beliebiger Länge zusammen zu schalten. Je nach Farbe ist jede LED mit einem Vorwiderstand beschaltet, sodass sie direkt an 12 Volt betrieben werden kann.

led_stripe

module

Sourcecode, Schaltpläne und Firmware gibt es in meinem github Repository.

Die Firmware der originalen fnordlichter konnte dabei unverändert übernommen werden.

fnordstripe2LED „Stripes“ sind über eBay in der RGB-Variante bereits für ca. 20 € pro 5m erhältlich. Einfarbige Varianten oder kürzere Länge sind entsprechend günstiger.

Entsprechend teurer gibt es auch intelligente Varianten der LED Bänder. Sie erlauben die individuelle Addressierung jeder LED. Damit lassen sich dann Farbübergänge, Regenbögen, ein VU Meter etc. realisieren.
Da hier die Programmierung etwas kniffliger ist, verschiebe ich das auf den nächsten Beitrag.