Erste Begegnung mit 3D-Druck: Prusa I3

3D-Druck ist populär, und Drucker für den Heimgebrauch sind billiger geworden. Für den Elektroniker hat diese Technik viel zu bieten: Mechanische Kleinteil wie z.B. Gehäuse, Zahnräder, Seilrollen und ähnliches können im Handumdrehen selbst hergestellt werden. Das klingt so gut, dass es an der Zeit ist, die Technik selbst auszuprobieren.

Um es vorweg zu nehmen: Im Handumdrehen geht bei der 3D-Druckerei gar nichts. Der Weg vom Modell zum fertigen Produkt ist weit. Aber die Resultate können überzeugen!

Geeetech Prusa I3 X

Für meine ersten Versuche bestellte ich mir einen Bausatz der chinesischen Firma Geeetech, basierend auf dem quelloffenen FDM 3D-Drucker Prusa I3, ein einfaches und zuverlässiges Konzept, das sich bewährt hat. Geeetech ist einer von vielen Herstellern, die Prusa I3-Nachbauten anbieten.

Etwa eine Woche nach der Bestellung kam das Paket an. Es enthielt auf zwei Styropor-Lagen verteilt eine Unzahl von kleinen und großen Bauteilen, die alle gut geordnet und sorgfältig durchnummeriert waren. Per Email erreicht mich ein Link zu der PDF-Bauanleitung auf dem Geeetech-Server.

Bausatz-Inhalt
Bausatz-Inhalt, sorgfältig verpackt auf zwei Styropor-Lagen

Für den Zusammenbau sollte man sich Zeit nehmen. Laut Geeetech ist der Nachbau in 11 Stunden möglich. Davon würde ich abraten. Ich selbst habe 5 Tage benötigt, wobei ich jeden Tag 3 oder 4 Stunden investieren konnte. Die englischsprachige Anleitung ist gut gemacht und erklärt die Schritte mit vielen Bildern. Darüber hinaus gibt es einen Satz von YouTube-Videos, die alles ausführlich zeigen.

Der Rahmen des Geräts besteht im Wesentlichen aus 8 mm starken, schwarzen Acrylplatten. Die Teile sind exakt geschnitten. Ob das schwarz-glänzende “Klavierlack-Finish” für den Einsatz in der Werkstatt optimal ist, sei dahingestellt. Die Schrauberei ging bei guter Passgenauigkeit der Teile zügig voran. Zum Glück sind viele der Kleinteile in der Überzahl enthalten, so dass es kein Problem war, wenn ein kleines Schräubchen nicht mehr auffindbar war.

Allerdings scheinen einige Details ständig überarbeitet zu werden, so dass es immer wieder Abweichungen zwischen den Bildern und den tatsächlich vorhandenen Bauteilen gab. Insgesamt benötigte der Zusammenbau aktives Mitdenken und ein gutes technisches Verständnis. Leider fehlt eine gute Übersichtsbeschreibung des Gerätes mit Markierung der einzelnen Komponenten (in früheren Zeiten gab es so etwas als “Explosions-Zeichnung”), so dass ich streckenweise Bauteile zusammensetzte, ohne ihre Rolle zu verstehen. Wenn man dann etwas falsch zusammengesetzt hat, ist das aber kein Problem, weil alle Komponenten verschraubt sind und wieder gelöst werden können.

Zusammenbau des Prusa I3 Pro X
Der Zusammenbau macht Fortschritte

Es gab eine Hürde, die ich nach Bauanleitung nicht lösen konnte: Die Z-Achse machte Probleme. Während die X- (links/rechts) und Y- (vorne/hinten) Achsen durch Zahnriemen gesteuert werden, was auf Anhieb gut funktionierte, wird die Z-Achse (oben/unten) durch Gewindestangen bewegt.  Nach dem ersten Zusammenbau saßen die Gewindestangen so fest, dass sie sich absolut nicht mit den Motoren drehen ließen. Die 8 mm Führungslöcher in den entsprechenden Plastikteilen waren genau auf Größe geschnitten und ließen der M8-Stange keine Luft. Zur Behebung des Problems wurden die Löcher direkt am Schlitten und an der oberen Platte auf 10 mm aufgebohrt.

Aufbohren der Führungslöcher für die Gewindestange
Aufbohren der Führungslöcher für die Gewindestange

Da die Gewindestange jetzt keinen zuverlässigen Halt mehr hatte, setzte ich zur Stabilisierung auf die obere Platte jeweils ein Kugellager mit 8 mm Innendurchmesser. Dadurch war eine reibungsfreie Lagerung bei präziser Führung gewährleistet. Ähnliche Ansätze mit 3D-gedruckten Konstruktionen werden in den Foren diskutiert (Stichwort z axis wobble fix). In meinem Fall fiel die Wahl auf Sperrholz, weil ich eine Lösung brauchte, bevor der Drucker funktionsfähig war.

Kugellager am oberen Ende der Gewindestange
Nachträglich angebrachtes Kugellager am oberen Ende der Gewindestange zur reibungsfreien Führung

Außerdem hatte eine der beiliegenden Gewindestangen einen deutlichen Schlag und wurde durch eine Stange besserer Qualität aus dem Baumarkt ersetzt. Mit einigen wenigen Tropfen harz-freiem Öl an der Gewindemuffe auf der Gewindestange lief der Antrieb dann reibungsfrei.

Zum Abschluss wurde alle Komponenten elektrisch verbunden durch eine Vielzahl von Steckverbindungen – genau nach Bauanleitung. Wieder musste ich mich damit auseinander setzten, dass einige Details der Controller-Platine von der Beschreibung abwichen. Trotzdem war alles logisch und nachvollziehbar angeordnet.

Inbetriebnahme

Geeetech stellt ein zweites Dokument bereit, das User Manual, das die Inbetriebnahme und das Fine Tuning beschreibt. Bevor es zum Einschalten ging, musste die zugehörige Software auf dem steuernden PC installiert werden. Geeetech verwendet Repetier Host, ein gut etabliertes Open Source-Programm. Tatsächlich verlief die Installation auf meinem Windows 10-PC völlig problemlos.

Dann kam der spannende Moment: Strom ein! Aber kein Grund zur Aufregung. Die Verbindung zwischen PC und Controller-Board funktionierte sofort, und die Drucker-Funktionen ließen sich gut steuern. Vom PC aus lassen sich alle Achsen manuell ansteuern. So konnte ich auch die problematische Z-Achse ausprobieren und nachjustieren, bis es reibungslos lief.

Dann aber gab es Probleme beim Heizen des Extruders. Zwischenzeitlich zeigte das Geräte die “MINTEMP”-Fehlermeldungen, was bedeutet, dass der Thermistor einen Temperaturwert unter 19 Grad erfasst.  Anscheinend hatte der Thermistor im Alu-Block des Extruders keinen zuverlässigen Kontakt mit dem Board. Eine genauere Analyse ergab, dass die kleinen Steckverbinder am Alu-Block keine stabile Verbindung hatten. Die Kontakte befinden sich unter gelben Klebeband und sind deshalb nicht so leicht zu finden. Nachdem ich sie mit einer Zange nachgedrückt hatte, lief alles nach Plan. Das Klebeband habe ich inzwischen durch zwei Kabelbinder ersetzt. Übrigens konnte ich meinem Impuls, die Verbindungen mit dem Lötkolben dauerhaft zu machen, widerstehen. Das Problem dabei ist, dass die Lötstellen bei Temperaturen oberhalb von 200 Grad nicht halten. Also lieber klemmen!

Anschlüsse des Thermistors
Die Anschlüsse des Thermistors benötigten einen Druck mit der Zange, bis sie zuverlässig funktionierten

Zum Schluss musste noch das Druckbett nivelliert werden, was nach der Anleitung gut machbar war.

Dann konnte es losgehen. Geeetech legt 3 Meter gelbes Filament in den Karton. Der erste Versuch, einen runde Scheibe zu produzieren, die als *.stl-File auf dem Geeetech-Server bereitsteht, war weitgehend erfolgreich. Prima. Was kommt als nächstes?

Tool Chain

Sinn und Zweck des Druckers in meinem Elektronik-Labor ist es, nützliche Kleinteile für meine elektrischen Geräte zu produzieren. Der nächste Schritt ist also eine Software, die die Erstellung solcher Bauteile am PC ermöglicht. Meine Wahl fiel auf FreeCAD, ein beeindruckendes, wenn auch leider nicht ganz fehlerfreies Programm, um 3-dimensionale Objekte zu designen.  Auch dieses Programm braucht etwas Einarbeitungszeit. Zum Glück gibt es sehr hilfreiche YouTube-Tutorials, die die Grundlagen gut erklären. Man sollte sich aber Zeit nehmen.

Die Ausgaben von FreeCAD sind nicht ohne weiteres mit dem Drucker kompatible. Die Körper sind z.B. mit papier-dünnen Wänden definiert und nicht “wasserdicht” (mannigfaltig). In der Regel muss noch ein Mesh erzeugt werden, das die Körper füllt. Zwar kann FreeCAD auch diesen Schritt übernehmen. Ich habe aber besser Erfahrungen mit dem ebenfalls freien Programm Meshmixer von Autodesk gemacht. Dort lässt sich über die Funktionen edit -> solid fill ein Körper erzeugen, der dann direkt vom Repertier Host importiert und zum Druck geschickt werden kann.

Toolchain für den 3D-Druck
Der lange Weg von der Idee bis zum Produkt: Toolchain für den 3D-Druck

Ein weiteres praktisches Problem ergab sich dadurch, dass manches Mal der erste gedruckte Layer nicht recht auf der Alu-Fläche des Druckbettes halten wollte. Wenn der erste Layer nicht stabil liegt, dann endet der Druck über kurz oder lang im Chaos. Das ist ein viel diskutiertes Thema in den Internet-Foren. Dort fand ich auch Abhilfe: Eine Schicht Tesa Abdeckband für Maler (wieder aus dem Baumarkt meines Vertrauens), das ohne Lücke oder Überlapp auf die Alu-Platte geklebt wird, erhöht die Haftung. Wenn die Nivellierung stimmt, dann hält die erste Schicht absolut fest. Das Band ist Verbrauchsmaterial und musste nach ein paar Ausdrucken erneuert werden.

Prusa-Drucker bei der Arbeit
Der Prusa-Drucker bei der Arbeit. Hier wird ein Display-Halter produziert.

Endlich 3D drucken!

So, jetzt konnte es endlich losgehen. Als eines der ersten Objekte produzierte ich Halter für das Graphik LCD-Display, mit dem ich oft arbeite, so dass das Display bei meinen Experimenten nicht mehr lose auf dem Arbeitstisch liegen muss. Für eine bessere Druckqualität habe ich die Druckgeschwindigkeit etwas heruntergesetzt. Auch mit der Temperatur des Extruders kann man experimentieren. Die Zahl der Parameter zur Feinabstimmung ist groß und braucht Geduld und Experimentierfreude. Das Resultat ist dann aber wirklich sehr schön und ein wohlverdienter Lohn der Mühe!

Halter für das Graphik LCD
Halter für das Graphik LCD, designed mit FreeCAD und produziert mit dem Prusa I3

Es ist sehr erfreulich, wenn man dann das fertigen Bauteil vom Druckbett löst und ohne weitere Bearbeitung – keine Löcher bohren, keine Ausschnitte nachfeilen – an das Display schraubt.

Fazit

Der Geeetech Prusa I3 X ist gut geeignet für den Einstieg in die 3D-Druckerei. Der Bausatz ist durchdacht und bietet gute Qualität, wenn auch einige Details angepasst werden müssen. Die Bauanleitung beantwortet nicht alle Fragen, so dass Mitdenken, technisches Verständnis und gelegentliches Stöbern in einschlägigen Foren gefordert sind.

Der Einstieg in das Thema benötigt viel Zeit. Es ist sicherlich kein Consumer-Produkt, das nach Aufstellen und Einschalten bereits gute Ergebnisse produziert. Hier sind mehr Investitionen vom Anwender gefragt. Wenn man die Hürden aber genommen hat, dann eröffnet der Drucker enorme Möglichkeiten und belohnt den Anwender mit guter Qualität.

Mehr gedruckte Objekte werden folgen!

Download

FreeCad und konvertiertes STL-File für den Display-Halter: DisplayHalter

 

 

 

 

 

 

Laborpraxis: Ein versteckter Fehler

Wer mit Elektronik arbeitet, muss unweigerlich Fehler suchen. Das gehört einfach dazu. Es gibt sicherlich kein Projekt, das von der Idee bis zum Prototypen fehlerfrei funktioniert. Meistens kann man mit schrittweisem Vorgehen die Fehler einigermaßen gezielt lokalisieren und beseitigen. Jetzt ist mir aber ein verstecktes Problem begegnet, dass mich an der Weltordnung der Elektronik zweifeln ließ.

Es ging um eine Schaltung mit zwei ATmega-Prozessoren, die als Master und Slave über den I2C-Bus miteinander im Gespräch sind. Soweit so gut. Erst einmal funktionierte auch alles wie geplant, aber dann gab es sporadische Ausfälle.  Sporadisch, also nicht gezielt reproduzierbar, ist hier das Stichwort. Mal lief die Schaltung für Stunden ohne Probleme, und dann war plötzlich der I2C-Bus weg. Der Slave-Prozessor reagierte nicht mehr. Ein anderes Mal wollte die Schaltung schon nach dem Einschalten nicht so, wie sie sollte.

Zuerst einmal wurde gemessen. Das Oszilloskop zeigte ein vernünftiges I2C-Signal am Takt und auf der Datenleitung. Dann wurde die Software auf den Kopf gestellt. Stürzt die Slave-Software ab? Wo hängt die Geschichte? Aber ohne Ergebnisse. Eine regelmäßige blinkende LED wurde eingebaut, und als nach Stunden reibungsloser Tätigkeit der Fehler wieder auftauchte, zeigte die LED, dass der Slave nach wie vor sein Programm abarbeitete und auf Input wartete. Auch ein Austausch des Prozessors gegen ein fabrik-neues Exemplar brachte keine nachhaltige Besserung. Verflixt!

Als ich dann die laufende Platine in die Hand nahm, merkte ich, dass mechanische Spannungen, z.B. leichtes Verdrehen der beiden Seiten, den I2C-Bus wieder belebten. Also ein Lötproblem? Genaue Inspektion der Lötpunkte und Nachlöten aller I2C-involvierten Leitungen halfen immer noch nicht weiter. Mein Frustrationslevel erreichet den Siedepunkt. Ich legte die Platine zur Seite und baute einen zweiten Prototype, der für das Projekt sowieso gebraucht wurde. Und siehe da, diese zweite Platine arbeitet bis heute tadellos. Meine Elektroniker-Welt war halwegs wieder zurecht gerückt.

Aber natürlich war das Problem damit noch nicht behoben. Tage später setzte ich mich noch einmal an die fehlerhafte Platine. Dabei zog ich den Slave-Prozessor aus der Fassung, um ihn mit einem Software-Update zu versorgen. Und dann fiel es mir wie Schuppen von den Augen: Pin 27 der IC-Fassung sah irgendwie anders aus, als die anderen Pins. Genauer hingeschaut konnte ich erkennen, dass der innere Ring im Pin-Anschluss fehlte. Aha, eine fehlerhafte IC-Fassung! Ich steckte den Prozessor noch einmal in die Fassung und konnte mit einem Multimeter erkennen, dass Pin 27 nur gelegentlich Kontakt zum Chip hatte. Und tatsächlich: Bei diesem Pin handelt es sich um die Datenleitung des I2C-Bus.

Fehlerhafte IC-Fassung für den I2C-Slave-Prozessor
Fehlerhafte IC-Fassung für den I2C-Slave-Prozessor

Da es sich um “nur” um einen Prototypen handelte, wurde zur Fehlerbehebung der Pin des Prozessors direkt in der Fassung verlötet. Seit dem läuft die Platine tadellos.

Sporadische, nicht reproduzierbare Fehler brauchen Geduld und hohe Frustrationstoleranz. Um so schöner ist es, wenn der Fehler dann doch gefunden wird.

Ein Kollege sagte einmal: Wenn du frustriert bist, dann bist du dabei, etwas zu lernen! In diesem Sinne: Viel Erfolg beim Aufbau der nächsten Schaltung!

 

Nano-Scope: Oszilloskop mit Arduino und Graphic LC-Display

Kürzlich wurden in der Zeitschrift Elektor Mini-Oszilloskope besprochen. Es sind einfache Geräte, die im Kern einen Mikrocontroller mit schnellem Analog-Digital-Converter (ADC) aufweisen und mit einem einfach Display versehen sind. Die Ergebnisse sind durchaus beachtlich. Durch diesen Bericht animiert stellte ich mir die Frage: Kann man so etwas mit ganz einfachen Mitteln machen? Wie weit kommt man mit dem Arduino Nano, basierend auf einem ATmega32 mit 16MHz Taktfrequenz und einem I2C Graphic-LCD?

Die Frage lässt sich nur durch einen Test-Aufbau beantworten. Von Anfang an war klar, dass es kein “konkurrenzfähiges” Produkt werden soll. Die getesteten Mini-Oszilloskope sind so günstig zu kaufen, zum Teil als Bausatz, dass es keinen Sinn macht, ein vergleichbares Gerät selbst zu entwickeln. Hier geht es also um das Prinzip. Und wie immer gibt es dabei viel zu lernen.

Vorüberlegungen

Der ATmega32 hat einen ADC auf dem Chip, der bereits mit einer sample-and-hold Schaltung ausgerüstet und somit für die Erfassung dynamischer Spannungsverläufe gut geeignet ist. Die Grundidee ist ganz einfach: Ein regelmäßiger Timer-Interrupt liest mit Hilfe des ADC den aktuellen Spannungswert am Eingang ein. Mit einer Trigger-Logik wird festgestellt, ob ein (einstellbarer) Schwellwert (trigger threshold) überschritten wurde. Wenn das der Fall ist, erfolgt die Datensammlung in ein Array. Sobald das Array gefüllt ist, wird es als Kurve auf dem Display ausgegeben.

Die Auflösung des ADC beträgt 10 Bit, also Werte von 0 bis 1023, was mehr als genug ist für diese Anwendung. Tatsächlich ist das Display mit seinen vertikalen 64 Pixeln, also 6 Bit, der beschränkende Faktor. Im Programm wird die Auflösung in zwei Stufen reduziert. Zuerst einmal wird nur das höherwertige Byte des ADC ausgelesen. Das lässt sich einfach machen, indem das Flag for left adjusted result (ADLAR) gesetzt wird. Es bleiben also 8 Bit. Diese Auflösung wird für die Trigger-Logik verwendet. Für die Anzeige der Kurve auf dem Display wird der Wert dann noch einmal um 2 Bit nach rechts verschoben, wodurch der verbleibende Wertebereich 0 bis 63 beträgt und somit gut auf das Display passt.

Der ADC arbeitet hier mit der internen Spannungsreferenz des ATmega von knapp 1.1V, wodurch der Messbereich festgelegt ist. Für diese einfache Anwendung habe ich auf eine analoge Verstärkung oder Aufbereitung des Signals, wie es für ein praktisch einsetzbares Oszilloskop unabdingbar wäre,  verzichtet.

Eine kritische Frage ist die errechbare Geschwindigkeit des Daten-Samplings, ein wichtiges Qualitätsmerkmal jedes digitalen Oszilloskops. Der ADC des ATmega ist von einfacher Bauweise. Deshalb sollte man keine zu großen Ansprüche stellen. Der ADC wird mit einem internen Takt versorgt, der mit einem Vorteiler aus dem Systemtakt generiert wird. Das ATMEL Datenblatt empfiehlt Taktraten zwischen 50 und 200 kHz. Außerdem kann man dort erfahren, dass eine Umwandlung 13 Taktzyklen benötigt. Bei 200 kHz würde eine Umwandlung also 65µsec benötigen, was einer Sampling-Frequenz von 15 kHz entspricht. Geht es schneller? Das Datenblatt erwähnt, dass höhere Taktraten möglich sind, wenn man nicht die volle Auflösung von 10 Bit benötigt. Da in dieser Anwendung nur die höheren 8 Bit verwendet werden, habe ich mich für eine Taktrate von 500 kHz entschieden. Dadurch sinkt die Umwandlungszeit auf  26µsec, entsprechend 38kHz. Tatsächlich läuft die Abfrage des ADC mit einem Interrupt von 20kHz, was sich in den Experimenten als eine stabile Frequenz erwiesen hat. Man sollte aber nicht unterschätzen, dass der Prozessor damit unter signifikanter Systemlast steht.

Hardware

Der Aufbau ist minimalistisch und lässt sich schnell auf eine Steckbrett zusammen setzen. Im Zentrum stehen der Arduino Nano und das Graphik-Display, die über den I2C-Bus miteinander verbunden werden. Alle Details zum Graphik-Display sind an anderer Stelle beschrieben (Universelles I2C Interface für Graphik LC-Displays)  Die Stromversorgung kommt über den USB-Port des Arduino. Das zu messende Eingangssignal gelangt über einen Kondensator an den Analog-Port A0 des Arduino. Ein lineares 100kOhm-Poti fügt eine feste Gleichspannung hinzu, womit die vertikale Position eingestellt werden kann. Für die interne ADC Spannungsreferenz wird noch ein 100nF-Kondensator gegen Masse am Referenz-Pin benötigt.

Eine LED am digitalen Port D6 dient als Anzeige des Trigger-Modus. Schließlich gibt es noch vier Tasten an den digitalen Ports D2 bis D5, über die die horizontale Zeitachse und der Trigger-Level eingestellt werden können. Damit ist der Aufbau auch schon beschrieben.

Schaltplan des Arduino Nano-Oszilloskops
Schaltplan des Arduino Nano-Oszilloskops

Software

Der Arduino-Sketch sieht komplizierter aus als er ist. Allerdings habe ich für die Steuerung von Interrupt und ADC nicht die Arduino-Funktionen gewählt, sonder die ATmega-Register direkt angesprochen. So war es möglich, das enge Timing besser unter Kontrolle zu halten. Zum Glück ist all das innerhalb der Arduino-IDE ohne Probleme möglich.

Eine zentrale Funktion ist die Interrupt-Service-Routine (ISR), die mit 20kHz aufgerufen wird. In dieser Routine wir der ADC ausgelesen und gleich wieder gestartet für den nächsten Durchlauf. Darauf folgt die Trigger-Logik und bei gesetztem Trigger das Abspeichern der Daten im Array für die Anzeige. Im zweiten Teil der ISR werden die vier Tasten (im Programm-Code etwas hochtrabend als keyboard bezeichnet) abgefragt und entprellt. Es gibt sogar eine einfache Tasten-Repeat-Funktion.

Die Sampling-Frequenz lässt sich über die Tastatur herunter regeln, was einer langsameren Zeitachse entspricht. Die Tabelle sar_table enthält die möglichen Einstellungen. Die derzeitige Software erlaubt 7 verschiedene Werte. Die ISR läuft in jedem Fall mit 20kHz. Für langsamere Einstellungen werden mehrere ADC-Werte gemittelt wie in der Tabelle angegeben (interrupts per sample).

Einstellbereich der Zeitachse.
Einstellbereich der Zeitachse. Die Werte werden über die Taster angewählt. Der aktuelle Wert für die Dauer eines Rasterfeldes (time per grid) wird in der unteren, rechten Ecke des Displays angezeigt.

Die setup()-Funktion erledigt alle Systemeinstellung und zeichnet die statischen Elemente auf den Bildschirm. Die loop()-Funktion schließlich wartet auf das Signal von der Interrupt-Routine, dass Daten zur Anzeige bereitstehen, und erledigt dieses mit der glcd-Funktion draw_function(). Die Software ergänzt den Kurven-Verlauf mit einem Raster aus gepunkteten Linien. Außerdem werden im Hauptprogramm mögliche Aktivitäten des Keyboards ausgewertet.

Für die Datenanzeige gibt es noch eine erwähnenswerte Besonderheit. Bevor ein neuer Kurvenzug gezeichnet werden kann, muss vorher der bestehende, “alte” Kurvenzug gelöscht werden. In einer ersten Version des Programmes hatte ich dazu den Bildschirm vollständig gelöscht, was allerdings ein deutlich sichtbares Flackern zur Folge hatte. Eleganter geht das mit zwei Datenarrays. Eines enthält die vorherigen, “alten” Daten und wird zum Löschen benutzt, während das zweite die aktuellen, “neuen” Daten hat. Mit jedem Durchlauf wird zwischen den beiden Datenarrays hin- und hergeschaltet. Mit dieser Logik ist die Anzeige weitgehend frei von Flackern.

Anwendung

Die Anzeige ist einfach zu lesen. Die vertikalen, gepunkteten Linien sind das Raster für die Zeitachse. Die horizontale, gepunktete Linie zeigt den aktuelle Trigger-Wert. Am rechten Rand des Bildschirms befinden sich die eingestellten Parameter: der Trigger-Wert und die Zeitachse. Der Wert für die Zeitachse ist die Dauer eines Raster-Feldes in msec.

Zu beachten ist, dass das Gerät nur dann aktiv wird, wenn der Trigger eine ansteigende Flanke erkannt hat. Es gibt also keinen Auto-Modus wie bei anderen Geräten, in dem auch ohne Trigger der Signalverlauf angezeigt wird. Die LED, die bei jedem Trigger kurz aufleuchtet, erweist sich als ein gutes Hilfsmittel.

Anzeige des Nano-Scopes
Anzeige des Arduino Nano Oszilloskops. Der Messbereich liegt zwischen 0 und 1.1V. Die horizontale gestichelte Linie zeigt den aktuellen Trigger-Level, hier 0.1V, und die ms-Angabe am unteren rechten Rand die Zeitdauer eines Rasterfeldes, hier 10 msec.

Fazit

Das kleine Oszilloskop macht sich in der Praxis erstaunlich gut, sofern die vergleichsweise niedrige Abtastrate kein Problem ist. Frequenzen von einigen 100Hz lassen sich sehr gut darstellen. Auch bei 2000Hz (entspricht 10 Datenpunkte pro Schwingung) bekommt man noch einen brauchbaren Eindruck der Signalform. Darüber ist aber kein sinnvolles Arbeiten mehr möglich. Ein schnellerer ADC wäre wünschenswert. Auch die vertikale Auflösung des Displays setzt klare Grenzen. Trotzdem ist es beeindruckend, was mit diesem geringen Materialaufwand und der einfachen Software machbar ist.

Download

Sketch des Arduino Nano Scope: Arduino_Nano_Scope (03-Jan-2018)