7-Segment Stoppuhr (2019)

Die Resonanz zu meiner ersten Stoppuhr mit 7 Segmentanzeigen war sehr positiv. Ich habe witziger weise einige Anfragen von freiwilligen Feuerwehren bekommen, ob ich ihnen die Uhr verkaufen würde. Leider musste ich vielen eine Absage erteilen, da ich in diesem Sinne keine Produkte verkaufe. Die Tatsache, dass die Uhr damals “freiluft” mit Kupferlackdraht gelötet war, macht es demjenigen dann natürlich noch schwieriger die Uhr auf eigene Faust nachzubauen. Vor ein paar Wochen kam dann wieder mal eine Nachfrage, diesmal von der Feuerwehr Hechthausen – Fabian hat mir geschrieben:

Leider fehlt mir und meinen Kameraden das notwendige Know-How eine solche Uhr selber nachzubauen (..)
Wir werden die Uhr für das Üben der Wettbewerbe benutzen (..)

So habe ich mich dazu entschlossen meine alte Stoppuhr auf Basis von Siebensegment-Anzeigen neu aufzusetzen um somit auch kommenden Interessenten einen schönen Bausatz anbieten zu können.

Sicherlich benötigt man auch bei dieser Uhr immer noch einen Lötkolben und normalerweise auch ein Programmiergerät für den Aufbau in Eigenregie aber an der Stelle bin ich (und sicherlich auch noch der ein oder andere aus dem Forum) gerne bereit den Controller für euch zu programmieren, so dass er nur noch eingelötet werden muss. Und ein bisschen was möchte man ja dann sicherlich auch selber machen. Wie so oft macht das Aufbauen den meisten Spaß 🙂

Schaltplan

In diesem Kapitel möchte ich ein paar Worte zum vergleichsweise einfachen Schaltplan der Stoppuhr verlieren. Moderne Technik macht es möglich. Heutzutage sind Schaltkreise hoch integriert, kaum jemand baut seine Schaltung noch diskret auf – viel zu aufwendig und Platz verschwenderisch. So kommt es, dass man selbst für komplexe Schaltungen wenig einzelne Komponenten benötigt. Wer sich für die technischen Infos nicht so sehr interessiert, kann das Kapitel natürlich gerne überspringen. Hier nun erstmal der Schaltplan:

Für volle Auflösung auf den Schaltplan klicken

Das zentrale Element im Schaltplan ist der Mikrocontroller siehe U1, ein PIC18F45K22. Dieser übernimmt die gesamte Steuerung der Stoppuhr mit all ihren Funktionen.  Die jeweils 7 bzw. 8 Segmente der fünf Sieben-Segment-Anzeigen mit Dezimalpunkt werden direkt über den Port D des Controllers angesteuert. Zur Realisierung des Multiplexing wird die gemeinsame Anode  (Common Anode) der Elemente je mittels P-Kanal MOSFET geschaltet. Zusätzlich ist je Segment (inkl. Dezimalpunkt) ein Serienwiderstand (R11 bis R18 mit 68 Ohm) vorgesehen um den Vorwärtsstrom der LEDs zu begrenzen, der von V+ gespeist wird und durch den FET (sofern leitend geschaltet) sowie durch die aktiven LEDs fließt. Eine LED ist dann “aktiv”, wenn der zugewiesene GPIO am Port D des Mikrocontrollers gegen Masse geschaltet ist. Die GPIOs dienen dann als Strom-senke gegen Masse und die LED bzw. die LEDs leuchten. Auf diese Weise können mit Hilfe von 5 + 8 (5x FET und 8x Segment/Dezimalpunkt) GPIOs 40 LEDs angesteuert werden – Stichwort: Multiplexing. Die Widerstände R1 bis R10 dienen jeweils zum Herstellen eines definierten Pegels am Gate des Transistors sowie zur Strombegrenzung als Serienwiderstand zum Gate.

Unten rechts unten im Schaltplan sitzt das der Laderegler IC1 in Form eines TP4056 für den optionalen Lithium Polymer Akku. Mit dem Widerstand R19 mit einem Wert von 1,5 kOhm wird der Ladestrom auf einen Wert von 780 mA eingestellt. Über das Signal CHRG, das mit dem PIC verbunden ist, weiß dieser ob der LiPo aktuell noch geladen wird oder bereits voll ist. Über den P-Kanal FET, einen BSS 83 P (siehe Q6) , wird ein einfacher Verpolungsschutz realisiert. So wird verhindert, dass die Schaltung Schaden davon trägt, wenn der Akku verpolt angeschlossen wird.

Oben rechts sind dann noch die Komponenten für die USB Schnittstelle zu sehen allen voran der MCP2221, siehe U2. Sofern bestückt (optional) kann die Firmware der Stoppuhr über den Mikro-USB Anschluss aktualisiert werden. Dies setzt allerdings voraus, dass sich der Bootloader im PIC befindet. Wenn U2 nicht bestückt ist, dient der USB Anschluss ausschließlich zum Aufladen bzw. zum Betreiben der Stoppuhr z.B. mit Hilfe einer angeschlossenen Powerbank.

Board / Layout

In den nachfolgenden zwei Abbildungen seht ihr eine Vorschau auf die Leiterplatte als Resultat des Layouts in  Eagle. Die erste Abbildung zeigt die Leiterplatte von der Vorderseite, während die zweite Abbildung die Leiterplatte von der Rückseite zeigt (siehe auch jeweils die Bildunterschrift). Auf der Vorderseite ist sind im wesentlichen die fünf Siebensegment-Anzeigen platziert. Ansonsten ist noch die Micro-USB Buchse (links) sowie der Lötanschluss für den externen Taster (rechts) auf dieser Platinenseite zu finden.

Layout – Vorderseite

Die gewählten SMD 7-Segmentanzeigen liegen direkt auf der Platine auf, so dass man unterhalb keine Bauteile platzieren kann. Die gesamte Elektronik (mit Ausnahme der oben genannten paar Bauteile) wurde daher auf der Platinenunterseite gesetzt. Allen voran der PIC18F45K22 als zentrale Steuereinheit der Stoppuhr. Ja, der PIC ist für die einfache Aufgabe einer Stoppuhr durchaus oversized aber weshalb sollte ich einen kleineren (auch im Sinne von Speicher ..) Controller auswählen, wenn der Preisunterschied verschwindend gering ist? Ich habe beim  Entwickeln dieser Stoppuhr grundsätzlich darauf geachtet, dass sich die Kosten wirklich auf ein notwendiges Minimum beschränken, jedoch ohne sich dabei unnötig Krücken ans Bein zu binden. Es gilt generell immer abzuwägen zwischen Ersparnis und damit einhergehendem Mehraufwand. Hier eine Vorschau des Layouts auf der Platinenunterseite:

Layout – Rückseite

Ein konkretes Beispiel um die Kosten für die Bauteile niedrig zu halten ist der MCP2221, der als USB Bridge mit ca. 1,50€ im Vergleich zum sehr bekannten/verbreiteten FT232RL mit über 3€ deutlich günstiger ist. Ein Nachteil des MCP gegenüber dem FTDI Chip ist, dass er ausschließlich RX und TX für die serielle Schnittstelle bereitstellt. Der FT232RL hat hingegen noch zusätzliche Leitungen, die normalerweise für das Handshake-Verfahren genutzt werden (z.B. RTS und CTS). Der Punkt hierbei ist, dass der Bootloader für PIC16 und PIC18 die RTS Leitung nutzt um den PIC zu resetten. Im Anschluss aktiviert er ein  “Break” Signal auf RX um den Bootloader zu aktivieren. Der MCP2221 hat jedoch kein CTS aber das ist halb so wild. Denn der PIC kann auch im Laufenden Betrieb dieses “Break” Signal erkennen und sich dann selbst neustarten, siehe:

if(PIR1bits.RCIF)
{
   if(RCSTAbits.FERR && !PORTCbits.RC7)
   {
      // receiving BREAK
      // state, soft reboot
      // into Bootloader mode.
      RESET();
}

Insofern ist die Ersparnis wesentlich gewichtiger als der fehlende RTS GPIO an der Microchip USB Bridge, da das Neustarten des Prozessors ohne größere Probleme in Software nachgebildet werden kann.

Leider gibt es an dieser Stelle einen weiteren Haken: Der MCP2221 überträgt leider kein Break. Insofern funktioniert die Erkennung (wie oben im Code-Snippet gezeigt) nicht. Also benötigt es einen Workaround. Das Windows Tool für den Bootloader sendet zu Beginn ein 0x0F zur Kalibrierung im Zuge des Autobaud-Verfahrens. Dies kann in der Stoppuhr-Firmware erkannt und zum Resetten des Controllers bzw. zum Springen in den Bootloader-Code verwendet werden 🙂

Die Form der Platine begründet sich darin, dass die Platine so perfekt in das vorgesehene Gehäuse mit durchsichtiger Scheibe passt. Zur Befestigung sind zwei M3 Bohrungen mit 3,2 mm vorgesehen. Hierbei bitte aufpassen, dass der Schraubenkopf nicht versehentlich zwei Pads der äußeren Siebensegment-Anzeigen verbindet. Hierfür eigenen sich einfache M3 Kunststoff Abstandshülsen mit einer Länge von 3mm und einem Außendurchmesser von max. 6mm.



Die Platinen habe ich, wie zuletzt üblich beim OSH Park herstellen lassen. Die Qualität ist wie gewohnt sehr gut. Hast du Interesse an einem Nachbau und benötigst noch Platinen? Ich habe aus meiner Bestellung noch 0 Stück übrig. Keine mehr da? Schau mal in die Kommentare unterhalb des Beitrags … mit etwas Glück hat jemand anderes noch welche übrig.

Übrigens beinhaltet der offizielle Download der Eagle Boardfiles (siehe Download) bereits das Layout in Version 1.2. Verändert haben sich im Vergleich zur Version 1.1 jedoch lediglich die Platinenmaße. Die Platine war (evtl. auch durch Herstellungstoleranzen) ein kleines bisschen (<1mm) zu breit, so dass man nochmal die Feile ansetzen musste um die Platine in das Gehäuse einzusetzen 🙂 Hierbei genügten tatsächlich schon ca. 10 Hübe mit der Feinmechanikerfeile aus, damit die Platine passt. Die Version 1.2 wurde daher nochmal etwas schmaler designed und sollte jetzt “out of the box” in das Gehäuse passen (das seinerseits ja auch Toleranzen bzgl. der Maße hat).

Versorgung

Wie ich schon im Kapitel zum Schaltplan geschrieben habe, kann/soll die Stoppuhr mit einem 3,7V LiPo versorgt werden. Diese gibt es zu Hauf bei eBay für wirklich wenig Geld zu erwerben. Aufgrund des vorgesehenen Gehäuses ist der Platz für den Akku (wird unterhalb der Platine gelegt) auf maximal BxHxT = 60x30x10mm begrenzt. Ich habe auf eBay einen 1200mAh Akku mit den Maßen 57x30x9mm gefunden – perfekt.

Wenn ein Akku verwendet wird, darf ausschließlich ein Lithium Polymer (LiPo) Akku mit einer Zelle (3,7V) verwendet werden, da die Ladeschaltung ausschließlich mit dieser Art Akku arbeiten kann. Keinesfalls andere Akkus oder Batterien anschließen!

Die LEDs der Siebensegment-Anzeigen sind mit einem 100 Ohm Vorwiderstand beschaltet. Bei maximal 4,2V des Akkus (Ladeschlussspannung) ergibt sich so in etwa ein Stromfluss von 20mA pro LED.

Um eine ungefähre Aussage über den im Durchschnitt zu erwartenden Stromverbrauch zu treffen, müssen wir zunächst abschätzen, wie viele Segmente einer Anzeige im Mittel aktiv sein werden. Schauen wir uns zunächst einmal die Ziffern 0 bis 9 mit der Anzahl der jeweils aktiven Segmenten an:



Ich unterstelle zunächst, dass die Auftrittswahrscheinlichkeit jeder Ziffer gleich ist. Somit kann ich einfach die Anzahl der aktiven Segmente je Ziffer addieren und durch die Anzahl der Ziffer (0..9 also 10) teilen. Zunächst addieren wir die Anzahl der aktiven Segmente je Ziffer auf:


(1)   \begin{equation*} \sum_{i=0}^{9}{x_i} = 6 + 2 + 5 + 5 + 4 + 5 + 6 + 3 + 7 + 6 = 49 \end{equation*}


Geteilt durch die Anzahl der vorkommenden Ziffern ergibt sich somit ein Wert von \frac{49}{10}=4,9 im durchschnitt aktiven Segmenten. Bei einem ungefähren Strombedarf von 20mA je Segment ergibt das also etwa 100mA Stromverbrauch (wenn die Stoppuhr nicht im Ruhemodus ist). Somit würde die Stoppuhr mit einem 1200mAh Akku, würde man sie pausenlos betreiben, etwa 12 Stunden durchhalten. Real wird der Stromverbrauch eher noch etwas unter diesem theoretischen Wert liegen, da ich zum einen führende Nullen nicht darstelle und des weiteren mittels PWM Ansteuerung zusätzlich Strom gespart werden kann. Ich werde eine Strommessung im laufenden Betrieb durchführen um meinen kalkulierten Strombedarf exakt in der Praxis zu bestimmen.

Akkulaufzeit

Im laufenden Betrieb liegt der Stromverbrauch im Mittel bei etwa 30mA.  Wenn sich die Uhr in den Ruhemodus sinkt der Stromverbrauch auf 88µA. Wenn man ein konservatives Nutzungsverhalten von 10/90 zugrundelegt, also 10% der Zeit aktiv und 90% der Zeit im Ruhemodus, dann ergibt das einen Gesamtstrombedarf, gemittelt über die Zeit, von rund 3mA. Aufgrund dieser Berechnungen lässt sich bei einem Akku mit 1200mAh eine Akkulaufzeit von 400 Stunden errechnen. Der Wert ist dabei natürlich stark vom Nutzungsverhalten abhängig. Würde man die Stoppuhr pausenlos, bis zur Erschöpfung des Akkus laufen lassen, würde die Stoppuhr in etwa 40 Stunden laufen. Rein im Ruhebetrieb übersteht der Akku eine Zeit von über 1,5 Jahren.

USB Anschluss

Die Stoppuhr verfügt über eine Mico-USB Buchse, die für zwei Zwecke vorgesehen ist. Eine Funktion ist die vollständige Versorgung der Stoppuhr über den USB Anschluss (zum Beispiel mittels Powerbank). Ein interner LiPo ist somit nicht zwingend erforderlich. Wenn ein 3,7V LiPo Akku an die Stoppuhr angeschlossen ist, wird dieser beim Anschluss einer 5V Spannung am USB Anschluss geladen (hierfür ist eine entsprechende Ladeschaltung in der Stoppuhr vorgesehen). Des Weiteren kann die Firmware über USB aktualisiert werden, sofern ein Bootloader im Controller vorhanden ist.

Während der Lithium-Polymer Akku über den Mikro-USB Anschluss geladen wird, signalisiert die Stoppuhr dies, indem die Dezimalpunkte blinken. Das Blinken hört auf, sobald der Ladevorgang abgeschlossen oder die USB Verbindung getrennt wurde. Wenn sich die Stoppuhr im Standby Modus befindet, wird der Ladeprozess nicht mehr signalisiert – alle Anzeigen sind in diesem Zustand vollständig abgeschaltet.

Stückliste

Anbei findet ihr eine Stückliste mit den notwendigen Bauteilen sowie den weiteren Komponenten. Bitte beachtet auch, dass ihr im Download-Bereich einen Link zum Reichelt-Warenkorb findet, der bereits die meisten Bauteile beinhaltet (nicht enthalten sind: Akku, Pilztaster, LiPo Laderegler und Mikro-USB Buchse).

Bezeichnung Bauteil Anzahl Einzelpreis
C1-C4 Kondensator 100nF 4 0,05€
C5, C6 Kondensator 10uF 2 0,30€
D1-D5 SMD 7-Segment.Anzeige 5 0,79€
IC1 LiPo Laderegler TP4056 (erhältlich z.B. bei eBay) 1 ca. 1€
J1 Mikro-USB-Buchse (erhältlich z.B. bei eBay) – Foto 1 ca. 1€
Q1-Q5 P-Kanal Mosfet (IRLML2244) 5 0,18€
Q6 P-Kanal Mosfet (BSS83P) 1 0,14€
R1, R3, R5, R7, R9 Widerstand 0805 1k 5 0,02€
R2, R4, R6, R8, R10-R19 Widerstand 0805 100R 13 0,02€
R19 Widerstand 0805 1,5k 1 0,03€
R20-R22 Widerstand 0805 4,7k 3 0,02€
U1 Mikrocontroller PIC18F45K22-I/PT 1 2,50€
U2 MCP2221-I/SL 1 1,80€

Zusätzlich sind folgende Teile notwendig (nicht Teil der Platine):

Teil Preis
Kunststoffgehäuse 2,75€
Pilztaster (erhältlich z.B. bei eBay) ca. 30€
Kabel (zum Verbinden des Buzzers) ca. 1€
Lithium Polymer Akku (Anzahl Zellen: 1 / Spannung: 3,7V) siehe eBay ca. 7€

Software

In diesem Kapitel möchte ich über die Software bzw. Firmware sprechen, die auf dem Mikrocontroller läuft und mit dessen erst Leben in die Schaltung kommt. Ihr findet stets den aktuellen Programmcode auf GitHub . Wenn ihr selbstständig an der Firmware arbeiten möchtet, stet euch das natürlich frei. Gerne freue ich mich auch über Merge Requests von euch zu neu eingebrachten Funktionen. Wenn ihr lediglich die fertige Firmware für eure nachgebaute Uhr downloaden möchtet, schaut einfach im Repository unter Release oder hier auf der Seite unten im Download-Bereich nach. Auf GitHub findet ihr dann auch die entsprechenden Release Notes, sprich, was hat sich jeweils zur vorherigen Version geändert.

Aufgrund der Tatsache, dass die neue Uhr auch wieder als mobile Stoppuhr eingesetzt werden soll, stand erneut ein niedriger Strombedarf im Fokus der Software-Entwicklung. Aus diesem Grund wurde eine Zustandsmaschine (state machine) implementiert, die einen automatischen Zustandswechsel durchführt um so gegebenenfalls in einen stromsparenden Betriebsmodus zu wechseln. Die nachfolgende Abbildungen zeigt den vereinfachten Zustandsautomaten:



Was ihr natürlich schon längst aufgrund der Fotos erahnt habt, wird die Stoppuhr vollständig über einen einzigen Taster gesteuert (siehe Pilztaster). Nach einem Reset, also wenn die Spannungsversorgung getrennt wurde oder nach einem Software-Reset, der durch das Empfangen des Zeichens 0x0F ausgelöst wird, wird in den Zustand Bootloader gewechselt. In diesem Zustand prüft der Bootloader ob ihm eine neue Firmware bereitgestellt wird (in diesem Fall über UART bzw. USB). Nach Ablauf einer kurzen Wartezeit wechselt der Zustand automatisch in den Idle Zustand, sofern keine neue Firmware bereitgestellt wurde. Wenn hingegen eine neue Firmware angeboten wird, wird diese entsprechenden in den Flash Speicher des Controllers geladen (geflasht).

Im Idle Zustand angekommen, wartet der Automat auf die Startbedingung um eine neue Messung zu starten. Dies wird mit einem einfachen Betätigen des Pilztasters ausgelöst (siehe  PB alias push button als Bedingung für den Zustandswechsel im Zustandsdiagramm).  Wenn hingegen innerhalb von 15 Sekunden keine Eingabe über den Taster erfolgt, springt der Automat automatisch in den Sleep Zustand um Strom zu sparen. Im Idle Zustand zeigt die Anzeige die Zeit 0 an. Je nach Konfiguration als einzelne 0 oder als 0:00:00 bzw. 00:00:0 (siehe normal bzw. high precision mode).

Während einer laufenden Zeitmessung (Zustand Run) wird die Zeit live auf dem Display angezeigt. Die laufende Messung kann dann über ein erneutes Betätigen des Pilztasters gestoppt werden. Nach Beendigung einer Messung wechselt der Zustand von Run zu Stop. Der Zeitmessung wird beendet und das Ergebnis nun für 10 Sekunden auf dem Display dargestellt. Nach Ablauf der 10 Sekunden wechselt der Zustand automatisch von Stop zu Idle. Die Anzeige springt bei diesem Zustandswechsel wieder auf den Ausgangszustand (Zeit wird zurückgesetzt).

Hinweis: Die Zeitkonstanten die für die automatischen Zustandswechsel (Idle zu Sleep und Stop zu Idle) können über das S³R Tool verändert werden um das Verhalten der Stoppuhr den eigenen Bedürfnissen besser anpassen zu können.

Normal/High Precision Modus

Ohne Eingriff in die Standard-Konfiguration befindet sich die Stoppuhr im normal precision Modus. Das bedeutet, dass die Anzeige die gemessene Zeit im Format 00:00:0 und könnte somit maximal 59 Minuten 59 Sekunden und 999 Millisekunden darstellen. Tatsächlich nutzt die Uhr den Dezimalpunkt der niederwertigsten Stelle als Übertrag. Sobald die Stoppuhr einmal überläuft, wird der Übertrag dort angezeigt. Somit kann die Stoppuhr im normal precision Modus bis 1 Std 59 Min 59 Sekunden und 999 Millisekunden zählen. Wenn die Auflösung auf 100 Millisekunden nicht ausreicht, kann über das PC-Tool zur Konfiguration (S³R für Seven-Segment-Stopwatch-Remote) in den high precision Modus gewechselt werden. Nun werden Zeiten im Format 0:00:00 dargestellt. Somit kann die Uhr nun bis 9 Minuten 59 Sekunden und 999 Millisekunden bzw. bis 19 Minuten 59 Sekunden und 999 Millisekunden mit einfachem Übertrag zählen.

Taster

Bedient wird die Stoppuhr natürlich klassisch mit einem großen Pilztaster (siehe Foto). Ich hatte mich etwas erschrocken .. diese Taster sind ziemlich teuer. Unter 30€ habe ich tatsächlich nichts brauchbares im Internet finden können. Diesen hier habe ich dann eben für rund 30€bei eBay gekauft. Beim Kauf im Internet bzw. allgemein ist darauf zu achten, dass der Taster auch wirklich ein Taster ist. Gemeint ist, dass eine Verbindung zwischen zwei Anschlüssen wirklich nur dann erzeugt wird, wenn der Taster aktiv runter gedrückt wird. Es gibt nämlich auch Varianten, die (um)schalte, sprich mit einer Rastung versehen sind, wie man es z.B. vom bekannten Not-Aus kennt und genau das wollen wir nicht.

Zur Verbindung zwischen dem Pilztaster und der abgesetzten Stoppuhr wird ein kurzes Stück Leitung verwendet. Um die Flexibilität zu gewährleisten ist der Taster nicht unlösbar mit der Stoppuhr sondern über Cinch miteinander verbunden. Auch wenn es kein Audio-Signal ist, das hier übertragen wird, eignen sich die Cinch Stecker/Buchsen ideal: Sie sind super günstig und für den Anwendungsfall super geeignet. In das Gehäuse des Tasters habe ich in die Blende (die normalerweise einer anderweitigen Kabelführung weicht) ein entsprechendes Loch gebohrt, so dass die Cinch Buchse befestigt werden kann, siehe:

Dementsprechend befindet sich auch an der Stoppuhr selbst eine solche Cinch Buchse.

Konfiguration

Mit Hilfe einer zugehörigen kleinen Windows Anwendung habt ihr die Möglichkeit ein paar Einstellungen an eurer Stoppuhr vorzunehmen. Sobald ich die Anwendung in einer ersten Version fertig habe, werde ich euch hier zeigen, was und wie ihr die Einstellungen mit dem Tool nach euren Vorstellungen und Wünschen anpassen könnt.



Nachdem ihr unter Datei -> Verbinden eure Stoppuhr (COM Port) ausgewählt und die Verbindung erfolgreich hergestellt habt, wird euch im oberen Bereich die ausgelesene Firmware-Version angezeigt. Mit einem Klick auf den Button Auslesen, wird die aktuelle Konfiguration ausgelesen. Diese könnt ihr anschließend ändern und bei Bedarf mit einem Klick auf den Button Übernehmen in die Uhr zurück schreiben. Die Einstellungen bleiben auch nach Verlust der Energiezufuhr erhalten.

Download

Mini Anzeige Modul

Es hat in der Tat lange gedauert, doch ich habe es nun endlich geschafft mein altes Mini-Anzeige-Modul komplett zu überarbeiten. Dabei konnte ich durch den ein oder anderen Fehler, den ich noch in der ersten Version begangen habe lernen und es nun in der zweiten Version besser machen. Das soll nicht heißen, dass die erste Version voller Fehler war, ganz im Gegenteil. Die erste Version hatte bereits einige tolle Eigenschaften, die ich natürlich in die zweite Version des MAM mit eingebaut habe.