English  
 
Das Spiel
Spiel kaufen
Online spielen
Impressum
Partner werden
DIY Camper
• Kamera Mod.
• Radio Mod.
• Aufbau
  Steckdose
• DIY Camper
  Steuerung
• MaxxFan
  Steuerung

GPS Service


• App Anleitung
Werbung in eigener Sache:
Biber-Mania Kartenspiel
 

Die MaxxFan Deluxe-Steuerung in unserem Peugeot Boxer Camper Van

=> Telegram Support- und Infogruppe zum Projekt.
Wie schon im Artikel zu unserer Camper Steuerung erwähnt wird auch unser MaxxFan Deluxe* Ventilator über eine eigens entwickelte Steuerung ins Camper Steuerungskonzept eingebunden.
Es gibt eine Vielzahl zusätzlicher Ansteuerungsmöglichkeiten, aber keine hat unsere Erwartungen erfüllen können und so haben wir selbst eine zusätzliche Ansteuerung für unseren MaxxFan Deluxe* entwickelt.
Bei vielen kommerziellen und auch Bastellösungen ist das wesentliche Problem, es ist immer eine Ansteuerung die nur in eine Richtung funktioniert. Das bedeutet, dass weder erkannt wird ob der Ansteuerbefehl überhaupt ausgeführt wurde, noch erkannt werden kann ob vielleicht über eine andere Ansteuermöglichkeit (z.B. über die IR Fernbedienung, oder auch manuell über die Tasten am MaxxFan selbst) bereits Statusänderungen erfolgt sind. Besonders schwerwiegend wird das ganze wenn Tasten doppelt belegt sind (z.B. Ein/Aus, Auf/Zu oder In/Out), also die Funktion der Taste je nach Betriebsstatus eine andere Funktion erhält. Diese One Way Show, wie ich sie nenne, ist für richtige Steuerungsaufgaben, wie wir sie in unserem Camper Van umsetzen wollen, schlicht ungeeignet. Ein weiteres Problem bei Lösungen die wir so gefunden haben, man muss irgendwo einen zusätzlichen Kasten, bei IR Übertragung sogar in Sichtweite zum MaxxFan IR Empfänger, unterbringen. Im Camper sind Verstaumöglichkeiten, gerade für Elektrik die ja immer nur störend Platz weg nimmt, immer ein Problem. Das ganze endet oft mit zig zusätzlichen Kästchen die einen an einen Legokasten (kennen vielleicht nur die älteren Menschen) erinnern und wo sich schnell die Frage stellt, zur Hölle warum so viele Kabel und warum ist die Steuerung nicht da wo auch das anzusteuernde Gerät ist. Ja es gibt auch Kästchen die sich über Funk unterhalten, aber mal ehrlich, wer will schon in einer selbstgebauten Mikrowelle Reisen wo man aus allen Seiten bestrahlt wird und man sich so möglicherweise auch noch einen bösen Tumor einfängt.
Lange Rede kurzer Sinn, wir haben eine Lösung gefunden die:
  • Keinen zusätzlichen Platz benötigt da sie im MaxxFan selbst verbaut ist
  • Statt 2 * RJ12 Kabel, nur 2 Zusätzliche Kabeladern (RS232 oder I2C) zur Kommunikation benötigt.
  • Selbstständig agieren kann und jederzeit bidirektional Status- und Aktionsanfragen akzeptiert.
  • Die Haube im geöffneten oder geschlossenen Zustand arretieren kann.
Für diejenigen die dem MaxxFan* auch noch etwas mehr Deluxe einhauchen wollen, folgt nun die Möglichkeit, die von uns entwickelte Steuerung selbst nachzubauen. Die Kosten für dieses Selbstbauprojekt, wie man gleich sehen wird, sind wirklich gering, man sollte aber etwas Erfahrung mit Elektronik und Kommunikationsprotokollen mitbringen.
Zuerst aber noch die Sprüche, ohne die es in unserem Rechtsstaat leider manchmal zu Missverständnissen kommt:
Die von mir veröffentlichten Baupläne, Platinen etc. sind für private Nutzer frei nachbaubar. Eine kommerzielle Vermarktung von Geräten die auf diese Baupläne zurückzuführen sind, ist nur mit ausdrücklich schriftlicher Genehmigung gestattet. Nachbau und Anwendung auf eigene Gefahr. Für die Funktion bzw. für eventuelle Schäden, die sich aufgrund von Nachbauten, der von mir veröffentlichen Baupläne, Platinen etc. ergeben, übernehme ich keinerlei Verantwortung ! Das hört sich schlimm an, ist aber halb so wild (bei mir funktioniert alles einwandfrei). Ich hab nur keine Lust mich für einen Schaden zu verantworten, nur weil jemand der von solchen Dingen gar keine Ahnung hat, einen Akku kurzschließt und sich den Camper oder sonstiges absengelt.
Die Elektronik
Die MaxxFan Deluxesteuerung besteht aus einer kleinen Platine mit einem Mikrokontroller die wie oben schon gezeigt direkt im MaxxFan Platz findet. Weiter benötigt es noch einige Kleinteile die ich in einem Reichelt Warenkorb zusammengefasst habe. Ich habe mit Reichelt keine Affiliate Vereinbarung, der Warenkorb ist also nur als Stückliste zu verstehen und jeder kann die Kleinteile natürlich auch wo anders besorgen. Vieles hat man vielleicht auch schon Zuhause rumliegen. Neben den Kleinteilen werden auch noch ein 6 poliges RJ12 Kabel* sowie ein 8 poliges LAN Kabel* benötigt (haben wir bei Amazon gekauft) um die Steuerung mit der MaxxFan Elektronik zu verbinden. Auf der Platine ist auch noch Platz für einen MAX232 Pegelwandler, oder den P82B715 Bustreiber, aber die braucht es nur bei sehr langen Kabelverbindungen und diese haben wir selbst auch nicht benötigt.
Der Aufbau der Platine ist trivial, keine SMD Teile (ohne die optionalen Treiberbausteine), und so sollte jedem Bastler klar sein wie er die Platine anhand des Bestückungsplanes zusammenbauen kann.
X1 = MEBP 8-8S
X2,X3,X4,X5,X6 = CTB0509-10 (je 1/5)
X7 = MEBP 6-6S
IC1 = MC 78L05 ACPG
C1,C2,C5,C6 = MKS-02 1,0µ
C3 = SM 0,1/63RAD
C4 = SM 0,33/63RAD
U1 = GS 20P + ATTiny 861A
OK1, OK2 = GS 16P + LTV 847
JP1 = BKL 10120919 (+JUMPER 2,54GL RT) oder SJ1 verbinden.
R1,R2,R12,R13,R18 = METALL 10,0K
R5,R6,R7,R8,R9,R10,R11 = METALL 680
R3,R4,R14,R15,R19 = METALL 2,20K
R16,R17 = PullUp Widerstände je nach Situation
D1 = 1N 4148 DIO
C7,C8,C9,C10 = Tantal 1,0µF/35V (Optional RS232 Pegelwandler)
IC2 = MAX232D (Optional RS232 Pegelwandler)
U2 = P82B715 (Optional I2C Bustreiber)
Wenn der MAX232, oder der P82B715 Bustreiber nicht verwendet wird, was in der Regel nicht nötig ist, wird auf der Unterseite, wie abgebildet, noch eine Verbindung eingelötet. Mit RS232- oder I2C- Treiber werden die beiden anderen Seiten verbunden.
Der Einbau
Der Einbau der kleinen Zusatzsteuerung gestaltet sich recht einfach. Die Platine ist so designed, dass sie gegenüber der Originalplatine in die Ecke passt. Zum Befestigen der Patine genügen ein paar Klebstoffpunkte an den Kunststoffzapfen. Neben den beiden Anschlusskabeln (RJ12 und LAN), die einfach 1:1 mit der Originalsteuerung verbunden werden, müssen auch die Motorleitungen noch angezapft werden. Wer die Motorleitungen nicht durchtrennen und über ein Y-Stück verbinden möchte, kann (wie wir es gemacht haben) einfach Kabeldiebe verwenden. So lässt sich die Steuerung auch Rückstandslos wieder entfernen. Die Leitungen zum Gebläsemotor gehen dabei an X2 (Motor-In (weiss), Motor-Out (schwarz)) und die Leitungen zum Haubenmotor an X4 (M-Open (schwarz), M-Close (weiss))
Bei den Motorleitungen kann es sein, dass diese vertauscht angeschlossen wurden, dann stimmt bei der Statusabfrage die Drehrichtung, oder der Geöffnet/Geschlossen Zustand nicht. In diesem Fall die 2 Leitungen einfach vertauschen. Die original Stromversorgung für den MaxxFan geht an den Anschluss X3 (dieser ist 1:1 mit X6 verbunden) und die Stromversorgung kommend von der Batterie wird an X6 angeschlossen. So braucht es keine Verzweigung und die kleine Zusatzplatine wird ebenfalls über die Spannungsversorgung für den MaxxFan mit Strom versorgt. An den Anschluss X5 wird je nach gewähltem Interface (JP1 verbunden = RS232, JP1 offen = I2C) das Kommunikationskabel angeschlossen. Bitte darauf achten, dass die RS232 Leitungen TTL Pegel besitzen und ggf. der optionale Pegelwandler benötigt wird. Bei der I2C Verbindung können die optionalen PullUp Widerständen verwendet werden, aber davon hat man meist eh mehr als gewünscht im I2C Bussystem. Bei Einsatz des optionalen P82B715 Bustreibers sind die aber Pflicht.

Das Kommunikationsprotokoll
Wie unter Einbau schon geschrieben kann die kleine Zusatzsteuerung über eine serielle RS232 oder I2C Bus Verbindung kommunizieren. Welcher der beiden Systeme verwendet wird hängt von JP1 (NICHT im laufenden Betrieb ändern!) ab. Das Protokoll ist sehr ähnlich und intern wird alles über die gleichen Register abgebildet. Lediglich die Art und Weise wie man diese Register setzt oder abfragt ändert sich je nach verwendeter Kommunikationsschnittstelle. In der Betriebsart RS232 ist darauf zu achten, dass keine Mehrfachbefehle gesendet werden, also immer nur eine Anforderung senden und dann die Antwort abwarten. Im Modus I2C geht es ja eh nicht anders.
Kommunikation über RS232 (9600 Baud, 8 Datenbits, Keine Parität, 1 Stoppbit)
Wie auch bei der zentralen Hauptsteuereinheit, ja da sind die Befehle identisch werden aber intern nach I2C umgesetzt, sind die seriellen Anforderungen immer gleich aufgebaut. Die Startsequenz (#:) wird gefolgt von einer Gruppe (M = MaxxFan) und einer Aktion (z.B. D> = Direction out). Wird ein Wert benötigt z.B. MV>5 (Geschwindigkeit auf 50% setzen) wird dieser in lesbarer ASCII Form übertragen. Am Ende wird jeder Befehl mit einer Raute (#) abgeschlossen. Die unterstützten Befehle sind:
#:MP>#MaxxFan On
#:MP<#MaxxFan off
#:MS>#MaxxFan Speed up
#:MS<#MaxxFan Speed down
#:MV>x#MaxxFan Set Speed x (0-10)
x = 0 = #:MP<#, x = 1-10 = 10-100%
#:MV<#Lese Statusregister (1 Byte siehe I2C)
#:MD<#MaxxFan Dir In
#:MD>#MaxxFan Dir Out
#:MH<#MaxxFan Haube Zu
#:MH>#MaxxFan Haube Auf
#:MA>#MaxxFan Auto Ein
#:MA<#MaxxFan Auto Aus
#:MA>-#MaxxFan Auto Reset
#:MT<x#MaxxFan Threshold Register lesen (2 Byte siehe I2C)
x = 0-13 (siehe I2C)
#:MT>x#MaxxFan Threshold Register setzen
x = 32 Bit Wert (siehe I2C)
#:MM<x#MaxxFan Measurement Register lesen (2 Byte siehe I2C)
x = 0-4 (siehe I2C)
#:ML>#MaxxFan Haube im aktuellem Zustand sperren
#:ML>-#Sperre MaxxFan Haube aufheben
#:ML<#MaxxFan Lockregister abfragen. (1 Byte siehe I2C)
Befehle die nicht verstanden werden oder deren Parameter den zulässigen Bereich verlassen, werden mit einem Fragezeichen (?) quitiert. Bei Erfolg wird mit dem Wert oder einer Bestätigung ('\r', 0x0D) geantwortet.
Kommunikation über I2C (Adresse 0x51)
Jetzt wird es etwas technischer, aber wer I2C kennt weiß um was es hier geht. Die MaxxFan Steuerung hat ein internes Kommunikationsregister mit einer Größe von 6 Byte. Dieses kann an beliebiger Stelle Adressiert werden und der Adresszeiger wird beim lesen oder schreiben automatisch inkrementiert. So wie man es von I2C halt kennt.
StatusAutoLockReservedParamCommand
8 Bit (R)8 Bit (R)N/A16 Bit (R/W)8 Bit (W)

Weiter besitzt die Steuerung 13 Threshold-Register mit 16 Bit und 5 Messurement-Register mit ebenfalls 16 Bit. Diese Register können nicht direkt adressiert werden und müssen über entsprechende Kommandos in das, oder aus dem, Parameter-Register kopiert werden. Dort können sie gelesen oder beschrieben werden. Die Messurement-Register sind reine Statusregister, sie sind nur lesbar, die Threshold-Register sind hingegen Lese- und Schreibregister die über ein internes EEPROM auch dauerhaft erhalten bleiben.
Das lesen und schreiben der Register geschieht wie bei I2C üblich. Beim Lesen das Kommando zum kopieren des Registerinhaltes in das Command-Register schreiben und anschließend den kopierten Wert aus dem Param-Register lesen. Beim schreiben wird erst das Param-Register beschrieben und anschließend das Kommando zum setzen des Wertes in das Kommando-Register geschrieben.
Die Möglichkeit, über ein zusätzliches Threshold-Register abgebildet, den verwendeten ADC fein zu justieren ist ebenfalls vorhanden, dazu aber mehr wenn es um das optionale Tuning geht.
Die Register
Status Register 8 Bit
AutoIn/OutOpen/CloseOn/OffSpeed (0-10)
1 Bit1 Bit1 Bit1 Bit4 Bit
AutoLock Register 8 Bit
Locked/UnlockedReservedOpen/CloseReserved
1 Bit1 Bit1 Bit5 Bit
Param Register 16 Bit
Parameter Value
16 Bit
Das Commandregister wird mit einem Befehlsbyte beschrieben, ist der Befehl abgearbeitet wird das Register automatisch zurückgesetzt. Über das Lesen des Commandregisters kann die Freigabe für einen neuen Befehl geprüft werden, ist das Commandregister nicht gelöscht, überschreibt ein weiterer Befehl den vorherigen, es sollte also immer geprüft werden, dass der vorherige Befehl abgearbeitet wurde. Da es beim MaxxFan um keine zeitkritischen Aktionen geht kann man auch einfach eine kurze Pause einlegen, die Abarbeitung geht in der Regel sehr schnell. Über das Statusregister lässt sich dann der neue Status abfragen.
Command Register 8 Bit
CommandAction
0x10MaxxFan On
0x20MaxxFan Off
0x3xMaxxFan Set Speed x (0-A)
x = 0 = off, x = 1-A = 10-100%
0x40MaxxFan Speed up
0x50MaxxFan Speed down
0x60MaxxFan Dir In
0x70MaxxFan Dir Out
0x80MaxxFan Haube Auf
0x90MaxxFan Haube Zu
0xAx0xA0 = MaxxFan Auto Ein
0xA5 = MaxxFan Auto Aus
0xAF = MaxxFan Auto Reset
0xBxMaxxFan Threshold Register lesen (16 Bit Wert ins Param-Register kopieren)
x = 0 = Threshold Auto
x = 1-A = Threshold Speed 10%-100%
x = B = Threshold Open
x = C = Threshold Close
x = D = ADC Mittelwert Counter
0xCxMaxxFan Threshold Register setzen (16 Bit Wert von Param-Register speichern)
x = 0 = Threshold Auto
x = 1-A = Threshold Speed 10%-100%
x = B = Threshold Open
x = C = Threshold Close
x = D = ADC Mittelwert Counter
0xDxMaxxFan Measurement Register lesen (16 Bit Wert ins Param-Register kopieren)
x = 0 = Measurement Auto
x = 1 = Measurement Motor In
x = 2 = Measurement Motor Out
x = 3 = Measurement Motor Open
x = 4 = Measurement Motor Close
0xExMaxxFan AutoLock Haube
x = 0 = Haube entsperren
x = 1 = Haube im aktuellen Zustand sperren

Optimieren und Anpassen der Threshold Register
Über die Threshold Register kann die MaxxFan Zusatzsteuerung feinjustiert werden. In der Regel ist dies nicht nötig, aber es kann z.B. erforderlich sein wenn der MaxxFan mit einer ungeregelten, oder höheren Spannung betrieben wird. Um eine Feinjustierung vorzunehmen sollte zuerst eine Ist-Aufnahme gemacht, also über die Measurement Register die aktuellen Werte ausgelesen, werden.
Die Standardwerte sind:
Default Threshold Register Werte
RegisterWert
Auto300
Speed 10%-100%720,660,580,490,400,350,310,250,180,90
Open, Close400
Über die I2C Schnittstelle können die Werte einfach in das Param Register geschrieben und dann über den entsprechenden Befehl im Command Register gespeichert werden.
Bei der Kommunikation über RS232 kann das Param- und Command- Register nicht direkt beschrieben werden, hier bedienen wir uns eines kleinen Tricks. Wie oben schon geschrieben hat das Param Register 16 Bit und das Command Register 8 Bit. Um beide Register zu beschreiben benötigen wir also mindestens 24 Bit. Um das zu erreichen verwenden wir eine 32 Bit Zahl wo 8 Bit ungenutzt bleiben. Um die entsprechenden Werte an die richtige Stelle zu schreiben können wir mit einer Multiplikation arbeiten. Nehmen wir also an wir wollen im Open-Threshold Register den Wert 400 speichern. Das Param Register liegt vor dem Command Register, also müssen wir den Wert 400 um 8 Bit nach links verschieben. Dies erreichen wir indem wir den Wert 400 mit 256 multiplizieren, also 102400. Das Open-Threashold Register hat die Adresse 0xB Hex, also Dezimal 11. Diesen Wert können wir einfach zu unserem ermittelten Param Register Wert addieren, also 102411.
Haben wir den Wert gefunden können wir das Register mit dem Befehl #:MT>102411# beschreiben. Das gleiche gilt natürlich auch für alle anderen Register. Ist man sich unsicher ob der richtige Wert gespeichert wurde, es kann nix kaputt gehen, ist es sinnvoll das entsprechende Register zur Kontrolle wieder zu lesen und zu überprüfen ob der gewünschte Wert auch gespeichert wurde. Völlig falsche Werte werden aber sowieso abgelehnt.
Um sich mit dem System vertraut zu machen, ist es sinnvoll man ließt alle Register aus und vergleicht die Werte mit den tatsächlich gemessenen Werten aus dem Measurement Register. Hat man verstanden wie sich diese Werte zueinander verhalten kann beliebig optimiert werden. Viel Spaß dabei.
Hinter den mit (*) gekennzeichneten Links stecken sogenannte Affiliate-Links. Das heißt, wenn du ein Produkt über den Link kaufst, erhalten wir eine kleine Provision.
Wichtig: Für dich bleibt der Preis gleich und du kannst uns über diese Links unterstützen.