Tesla Command Button – Öffnen der Ladeklappe

Als kurze Einführung in die Gesamtthematik empfehle ich, zunächst diese Übersicht zu lesen –> klick

Das Funksignal für das Öffnen der Ladeklappe ist ein relativ einfaches, für alle Teslas konstantes ASK Signal (Träger an/aus), das auf 433MHz gesendet wird (USA vermutlich 315MHz). Ein solches Signal kann man problemlos mit einem Arduino oder ähnlichen Microcontroller erzeugen und mit entsprechenden Sendemodulen senden. Hier liegt schon ein erster Grund für Fehlschläge. Die aus Arduino Kits weit verbreiteten FS1000A Module funktionieren nicht. Diese Module schaffen die nötige Taktrate nicht und haben keine gute Reichweite und Frequenzstabilität. Gute Erfahrungen habe ich mit STX882 Modulen oder dem Umbau einer Baumarkt Fernbedienung (z.B. Elro). Hinterlasst gerne einen Kommentar über funktionierende und nicht funktionierende Funkmodule.

Der zweite Knackpunkt scheint das Signal selbst zu sein. Es gibt Codes auf github dazu, die aber bei mir nicht wirklich robust funktioniert haben. Oftmals musste ich die Sendetaste wiederholt drücken. Deshalb habe ich das Signal mit einem Logic Analyser mitgeschnitten; einfach ein ASK 433 MHz Empfänger an den Analyzer und mit 2MHz Sampling geloggt. Mit einer deutlich verbesserten Nachahmung des Signals klappt alles prima und wie mit dem Original.

Signalbeschreibung

Das mitgeschnittene Signal sieht so aus:

Vornweg sei angemerkt, dass der UMC2 bei Signalwiederholungen kein komplett identisches Timing erzeugt; +/-10us Abweichungen scheinen ganz normal und sind offenbar kein Problem.

Die Präambel des Signals besteht aus 13 ca. 800us langen An/Aus-Perioden. Der UMC2 erzeugt bei der Präambel allerdings eine Art „Chirp“. Die An-Pulse starten mit ca. 530us Länge, die Aus-Pulse mit ca 270us. Die An-Pulse werden mit jeder Wiederholung ca. 20us kürzer, die Aus-Pulse entsprechend länger. Am Ende der Präambel sind die Pulse dann 400us lang. Ich bin nicht sicher, ob dieser „Chirp“ wirklich nötig ist. Ich habe ihn in den Code mit eingebaut. Weiterhin findet man in dem Signal Manchester kodierte Anteile. Dieser Codeteil wird dreimal wiederholt. Zwischen den Codeteilen gibt es ein Trennsignal. Am Ende folgt ein etwas anderes Abschlusssignal. Danach kommen 25ms Pause. Das Signal wird so lange gesendet, wie der Knopf gedrückt wird.

Der Code:

Diese Signalfolge habe ich als Code für die Arduino Entwicklungsumgebung auf github abgelegt: https://github.com/stefan73/BetterTeslaChargeportOpener

Der Code braucht keine weiteren Libraries und sollte damit sehr portabel sein. Kleinere Abweichungen im Timing im Bereich von +/-10us hat ja auch das Original. Deshalb langen auch die nicht so ganz exakten Delay() Funktionen der Arduino IDE. Es sollte auch mit anderen Boards problemlos klappen. Sowohl mit ATMega 328p als auch mit 168 Boards konnte ich damit problemlos die Ladeklappe öffnen. Nach 10 Wiederholungen des Gesamtsignals (also 10 x 3 = 30 Codepaketen) endet die Übertragung und die Board LED / Pin13 blinkt.

Die Schaltung:

Ich habe ganz trivial einen Taster genommen. Dieser schaltet die Spannungsversorgung zu meinem Arduino Mini Pro Board mit ATMega 168 (und ja, ein 1€ Clone von Aliexpress tut es) sowie dem Sendemodul. Der 433MHz Sender wird mit seiner Datenleitung an Pin11 des Arduino angeschlossen und das war es auch eigentlich schon. Wer will kann den Sender über Pin 10 mit 5V Spannung versorgen, was sich bei meiner Trivialschaltung allerdings erübrigt – ich schalte einfach alles über den Taster.
Falls ihr dazu einen Schaltplan möchtet, hinterlasst bitte einen Kommentar. So sieht die einfachste Form der Schaltung mit einem Mini Pro (ATMega168) und STX882 aus.

EInfache Schaltung mit MiniPro und STX882 – STX882 Spannungsversorgung über den 5V Pin des Arduino

Achtung Bootloader:

Einen Hinweis muss ich noch zum Bootloader geben. Die alten Arduino Bootloader brauchen ca. 1-2 Sekunden, bis unser Code auf dem ATMega los läuft. Das ist an sich kein Problem – man muss die Taste aber dann so lange drücken. Die Lösung heißt Optiboot. Das ist ein neuerer Bootloader. Mit diesem läuft der Code des Nutzers ohne merkbare Verzögerung los. Für unsere Schaltung ist das natürlich schöner, weil man damit kaum eine halbe Sekunde auf den Knopf drücken muss und schon öffnet sich die Klappe. Es gibt eine Menge Anleitungen zum Flashen von Optiboot im Netz. Für Anfänger ist es sicherlich besser einen Arduino aus vertrauenswürdiger Quelle mit aktuellem Bootloader zu kaufen.

Wie ihr im Beitragsbild sehen könnt, habe ich eine Baumarktfernbedienung umgebaut und an der Garagenwand montiert. Man kann natürlich auch versuchen, die Schaltung in den Ladestecker einzubauen. War mir offen gesagt zu aufwändig. Die gezeigte Fernbedienung hängt direkt neben der Wallbox.

P.S. Ich habe Mikrosekunden mit der Einheit us bezeichnet. Das eigentlich korrekte griechische My Zeichen habe ich aus Bequemlichkeit nicht benutzt.

15 Gedanken zu „Tesla Command Button – Öffnen der Ladeklappe

  1. Anton

    Super Projekt, sehr einfach nachzubauen wenn sich schon jemand um den Code gekümmert hat. Bei mir kommt die Schaltung mit Batterien in eine wasserdichte Verteilerdose.
    Wenn die Reichweite schlecht ist hilft übrigens ein kleiner Kerko direkt an VCC und GND vom Sendemodul.

    Antworten
  2. Bloargh

    Kann man irgendwas zur Reichweite sagen? Z.B. wenn das Auto im Carport steht und man den im Haus nahe der Eingangstür platzieren möchte (5m+Hauswand)?

    Antworten
    1. ST Beitragsautor

      Die Reichweite ist sehr ähnlich zu dem Sender im Original Tesla Lader (UMC). Ich würde vorschlagen, die ganze Sache mal mit dem UMC nachzustellen. Also UMC da hin wo der Sender mal sein soll und den UMC dort mit einem Verlängerungskabel mit Strom versorgen.
      Beim Model 3 geht die Ladeklappe nicht auf, wenn das Smartphone mit der Tesla App nicht ausreichend nahe beim Auto ist. Das macht ja auch Sinn, damit nicht jedermann die Ladeklappe bei Teslas öffnen kann. Mein Tipp wäre, dass die Reichweite des 433MHz Signals weit genug geht. Das Öffnen der Ladeklappe könnte aber bei 5m+ daran scheitern, dass das Auto den Abstand zum Smartphone als zu groß bewertet.

      Antworten
  3. Sandro

    Danke für diesen Beitrag
    Ich habe es mit einen Arduino Nano und einer externen LED-Anzeige umgesetzt.
    Funktioniert wunderbar bei meine Tesla Model 3 2020.
    Ein Anmerkung:
    Wenn ich den Taster betätige öffnet sich die Klappe auch ohne das das Handy in der Hosentasche ist.
    Handy in ca. 15m Entfernung im Haus.
    Tesla steht untem Carport.

    Antworten
  4. Ingo

    Wird diese Variante auch den Ladeanschluss entriegeln, falls ein Kabel drin steckt, und mein Mobiltelefon in der Nähe ist? Oder handelt es sich hier um das reine öffnen der Klappe bzw. muss ich zum entriegeln ein Kabel mit Knopf nehmen?

    Antworten
  5. Jens

    Moin,
    mein Aufbau funktioniert aktuell leider noch nicht.

    Ich habe einen Arduino Pro Mini 328P 3.3V und ein STX882 Sender verkabelt, Spannungsversorgung 4,5V an RAW.

    Der Code läuft auf dem Arduino (mit Serial Monitor geprüft).

    Muss der Controller eine 5V Version sein !?
    hab den STX auch schon an 4,5V angeschlossen und Data In an den Controller, leider kein Erfolg.
    Woran könnt’s liegen 🙁

    Tesla Model 3 SR+ 10-2021

    Antworten
    1. ST Beitragsautor

      Hallo Jens,
      die Kernfrage ist vermutlich, ob der Sender mit 3.3V sauber läuft. Wenn Du den Sender mit 4.5V versorgst, aber der Arduino auf 3.3V läuft, ist wiederum die Frage, ob die high/low Übergänge sauber erkannt werden. Der Arduino pulst ja dann weiterhin mit 3.3V. Und dann läuft dieser Arduino ja mit 8MHz anstatt mit 16Mhz. Die Model3 Version spielt übrigens keine Rolle.
      Ich würde mal so ran gehen:
      0. Tesla testen: geht der Chargeport mit der Taste auf dem Tesla Notladeziegel auf? – Tesla muss dafür aufgeschlossen sein. – Am Besten zum Testen einfach die Türe auf lassen.
      1. Grober Check, ob der Arduino bzgl. seiner Taktfrequenz korrekt konfiguriert ist: Blink Beispiel flashen, delays auf 1000 stellen und prüfen, ob das Ding sauber mit 1 Sekunde blinkt.
      2. Check STX882 – hast Du die 433MHz Version (oder durch dummen Zufall die US 315MHz Version)? – Die Zahl steht auf der runden „Dose“.
      3. Sendet das Ding überhaupt: Hast Du irgendeine andere 433MHz Schaltung, die Du mal testweise steuern kannst? – Wenn nein: altes Mittelwellenradio direkt danaben. Man sollte die Sendepulse hören.

      Antworten
      1. Jens

        HI,
        Danke für die Vorschläge !
        es liegt am Arduino Pro Mini 3.3V.. es braucht eine 5V Version.

        Ein alter Arduino Uno mit 5V läuft problemlos.
        Hilft evtl. anderen Bastlern bei der Fehlersuche 🙂

        Antworten
  6. Philipp Mommsen

    Hallo, ich habe heute Ihre tolle Anleitung gefunden.
    Ich würde gerne einen Taster an der Wallbox anbringen, der die Ladeklappe an meinem Tesla 3 öffnet.

    Stromversorgung kann gerne mit Batterien erfolgen. Leider habe ich mit dem Arduino noch keinerlei
    Erfahrung sammeln können.

    – Was brauche ich alles, um eine solche Schaltung realisieren zu können? (Hardware und Software)
    – Gibt es einen Schaltplan?

    Tausend dank für die Hilfe und viele Grüße
    Philipp

    Antworten
    1. ST Beitragsautor

      Hallo Philipp,
      eine Einführung in das Thema Arduino sprengt hier den Rahmen. Für die Schaltung brauchst Du einen kleinen Arduino, zB einen Pro Mini oder Nano. Muss nicht das original von Arduino sein – ist ja OpenHW. Dann noch ein STX882 wie oben beschrieben. Die Schaltung ist so trivial, dass es den Schaltplan nicht lohnt. GND und 5V des Senders an GND und 5V Pins des Arduinos. Und Data an Pin 11, so wie im Bild gezeigt. Den Arduino kann man dann per raw Pin mit Spannung versorgen. Die Arduino Entwicklungsumgebung kann man frei herunterladen und es gibt viele Tutorials online.
      Gruss Stefan

      Antworten
  7. Richard

    Hi, erstmal vielen dank für deine Mühe.

    ich bin echt total verzweifelt… habe mich strikt an die Anleitung gehalten hat auch alles wie beschrieben funktioniert. Jedoch lässt die Ladeklappe sich nicht öffnen, habe an raw eine 9v Batterie hängen, habe auch schon am vcc gemessen, liegen 5v an. Habe auch eine andere Antenne versucht aber leider nix. Arduino mit blink sketch getestet. Ich weiß einfach nicht weiter, will das aber unbedingt zum laufen bekommen 🙁

    lg

    Antworten
    1. ST Beitragsautor

      Ich kann jetzt nur die typischen Fehlerquellen listen; vielleicht ist was dabei: Sender taugt nix (s.o.), Sender defekt (olles Mittelwellenradio direkt daneben; beim Senden kann man ein regelmäßiges Geräusch hören); Arduino IDE auf falsche Taktfrequenz gestellt (testen ob Blink mit der richtigen Geschwindigkeit arbeitet); Auto angeschlossen und kein Handyschlüssel in der Nähe.

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert