Mastodon

tileLED

tileLEDUnd schon wieder habe ich ein kleines Hardwareprojekt, das ich hier vorstellen möchte. Auf eBay bin ich auf diese günstige LED Dot-Matrix Displaymodule gestoßen. Auf einer Größe von 3x3cm besitzen sie 8×8 rote oder grüne LEDs, die per Multiplexverfahren angesteuert werden.

Für diese Module habe ich eine kleine Platine gelayoutet, die nicht größer ist als das Modul selber. Die LEDs werden über einen kleinen ATmega8 Mikrocontroller direkt angesteuert. Auf Konstantstromquellen habe ich hier zugunsten der Platinengröße verzichtet. Auch wenn diese Beschaltung den ATmega etwas überlastet, funktioniert es super.

top_btm

Ursprünglich war geplant aus vielen kleinen Modulen ein interaktives Puzzle oder Dominospiel zu basteln. Dazu besitzen die Module an allen vier Seiten Lötpads für Versorgungsspannung und SPI, über die sie auch mit ISP geflasht werden können.

Aus Zeitgründen und der doch recht fizzeligen SMD Löterei habe ich mich jedoch dann dagegen entschieden. Aktuell setze ich ein paar der Displays in Verbindung mit einem digitalen Temperatursensor1 als einfaches Tischthermometer ein.

Auch hier habe ich einige Platinen zu verschenken bzw. tauschen. Vielleicht hat ja jemand die Muse sich mit der Kaskadierung mehrere Elemente auseinander zu setzen? Von den ursprünglich 40 Modulen sind jetzt noch ca. die Hälfe übrig. Aus ihnen bastele ich gerade größere “Tiles” mit 24×24 und 32×32 Pixeln. Diese werden dann über 9 bzw. 16 74HC696 Schieberegister angesteuert, sodass nur noch ein Mikrocontroller benötigt wird. Unten könnt ihr die ersten Bilder der größeren Tiles sehen.

EAGLE Libraries: Raspberry Pi

Für mein neuestes Projekt habe ich mir die Mühe gemacht und meine EAGLE Bibliotheken aufgeräumt. EAGLE ist ein CAD Programm der Firma Cadsoft, das vornehmlich im Elektronik/DIY Bereich zum Designen von Schaltplänen und Platinen eingesetzt wird.

In den letzten Jahren haben sich einige selbsterstellte Bibliotheken angesammelt. Mit ihnen können die bereits mitgelieferte Datenbank von Bauteilen (Footprints und Symbole) erweitert werden.
Diese Bibliotheken und noch einige Skripte, Einstellungen, CAM Jobs etc. findet ihr in meinem GitHub Repository.

Ein Layout mit dem RPi Shield

Interessant ist vielleicht noch die Raspberry Pi Bibliothek. Bisher hab es noch keine EAGLE Bibliothek mit der man einfach Shields (vgl. Arduino) für den Board-Computer layouten konnte.
Die Bibliothek enthält die genauen Abmessungen des Pi’s und die Belegung aller GPIO Stiftleisten. Aber die folgenden Bilder erklären das sicher viel besser.

Viel Spaß damit!

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: