Rev 3.0 · Layout fertig · Stand August 2026

ECU
Rev 3.0.

Meine Eigenbau-Motorsteuerung für die Turbo-Busa — Plug-and-Play am Original-Kabelbaum. Hier erkläre ich die neueste Version komplett: Architektur, jeden Schaltplan-Teil und die Rechnungen dahinter.

2
Platinen
15
Schaltplan-Sheets
60-pol
OEM-Stecker
Hayabusa ECU Rev 3.0 — 3D-Render der fertig bestückten Platine, schräg von vorn Rev 3.0 · 3D-Render aus KiCad
Grundlagen

Was macht die ECU?

Die ECU (Engine Control Unit) entscheidet bei jedem einzelnen Arbeitstakt, wann gezündet und wie lange eingespritzt wird. Dafür muss sie zuerst wissen, wo die Kurbelwelle gerade steht — das verraten ihr der Kurbelwellen- und der Nockenwellensensor.

Der Kurbelwellensensor ist ein VR-Sensor: Ein Geberrad rotiert an einer Spule vorbei und induziert pro Nocke eine Spannungswelle. Die Hayabusa trägt acht gleichmäßig verteilte Nocken auf der Kurbelwelle — alle 45° eine Flanke, aber keine Lücke, die eine Referenz markieren würde. Die liefert erst die einzelne Nocke an der Nockenwelle: Sie meldet sich einmal pro Arbeitsspiel und legt damit fest, welche Nocke gerade kommt und welche der beiden Kurbelumdrehungen läuft. Der MAX9926 macht aus beiden Signalen saubere Digitalflanken, aus denen der Teensy Drehzahl und Winkel berechnet.

Dazu kommen MAP (Ladedruck), Drosselklappe, Temperaturen, Lambda, Flex-Fuel und Klopfsensor. Aus allem zusammen bestimmt die Firmware (Speeduino, angepasst) Zündwinkel und Einspritzmenge — beim Turbo-Betrieb inklusive Ladedruckregelung, Launch Control und Anti-Lag.

Kurbelwelle · 8 Nocken Nockenwelle · 1 Nocke 360° 720° VR analog · Kurbelwelle digital · MAX9926 digital · Nockenwelle

Pro Nocke eine Flanke, alle 45°. Weil das Kurbelrad keine Lücke hat, sieht jede Nocke gleich aus — erst die Nockenwelle, die einmal pro 720° meldet, macht daraus einen absoluten Kurbelwinkel.

Systemübersicht

Die Architektur.

Ein Blick, das ganze System: vom Bordnetz über den Teensy 4.1 bis zu Zündspulen und Injektoren. Jeden Block antippen für Details.

12V-SW 12V-PROT +5V · VIN SPI1 USB · TunerStudio SPI0 exkl. WDI Not-Aus Pumpe · Lüfter · Boost … CAN J2 60-pol OEM Plug & Play Eingangsschutz Sicherung → Ideal-Diode → TVS → Pi-Filter Versorgung Buck +5V · TPS54360B LDO +3V3 · LD1117 LDO VDDA · TPS7B6950 Logging Flash · ADXL343 · BT Crank & Cam MAX9926 · VR/Hall Sensorik MAP · TPS · Temp · O2 · Flex Klopferkennung TPIC8101 · 4 MHz Teensy 4.1 ARM Cortex-M7 · 600 MHz Speeduino-Firmware MC33810 4× Zündung 4× Einspritzung Zündung 4× IGBT → Stick-Coils Einspritzung 4× Injektoren · Low-Side Watchdog TPS3823 + NAND Ausgänge 2× Smart-Switch · 6× Low-Side Stepper DRV8434A Sensor-Modul STM32G474 · Abgastemp · am CAN

↑ Block antippen — hier erscheinen die Details.

Sheet für Sheet

Der Schaltplan.

Der Schaltplan der Haupt-ECU besteht aus zehn Blättern. Hier ist jedes einzelne erklärt — erst die Kurzfassung, und wer tiefer einsteigen will, klappt die Details auf. Jedes Bild lässt sich in voller Auflösung öffnen. Die zweite Platine hat weiter unten einen eigenen Abschnitt: das Sensor-Modul.

01

Root — der Teensy

ECU.kicad_sch
Schaltplan Root-Sheet: Teensy 4.1 und Sheet-Hierarchie Vollbild ⤢
Teensy 4.1 USB Device ML2032

Das Hauptblatt trägt den Teensy 4.1 und verbindet alle Unter-Sheets über globale Labels (MCU-Dxx/MCU-Axx). Rev 3.0 räumt hier zwei dicke Fehler ab: USB lag am Host-Port statt am Device-Port — Tuning über den Fahrzeugstecker wäre unmöglich gewesen — und die Pufferbatterie wurde aus 3,3 V geladen, was mit einer CR2032 Berstgefahr bedeutet.

Mehr Details
  • USB jetzt an den Device-Pads 66/67, Host-Pins mit No-Connect-Flags; ESD-Schutz (USBLC6) sitzt am Stecker. Die VUSB–VIN-Lötbrücke am Teensy muss aufgetrennt werden — steht als Notiz im Plan.
  • Batterie als ML2032 (wiederaufladbar) spezifiziert — der Ladepfad D1/R1 aus +3V3 ist nur damit zulässig.
  • Die Teensy-3V3-Pins hängen auf einem eigenen Netz T_3V3 (nur Abblock-C). So versorgt allein der LD1117 die Peripherie und es laufen nie zwei Regler gegeneinander.
  • Tote Labels (MC33814-CS, PROG, RESET) ersetzt: D2 ist jetzt der OUTEN-Request, PROGRAM/ON_OFF sind Testpunkte.
  • Ein Textblock dokumentiert die komplette Pin-Map — jede GPIO-Belegung auf einen Blick.
02

Power Regulator — Schutz & Rails

Power-Regulator.kicad_sch
Schaltplan Power-Regulator: Eingangsschutz, Buck, LDOs Vollbild ⤢
LM74700-Q1 SM8S24A TPS54360B-Q1 TPS7B6950-Q1

Komplett neu in Rev 3.0. Das rohe Bordnetz läuft durch eine Schutzkette: 3-A-Sicherung → Ideal-Diode (Verpolschutz, <20 mV Verlust) → Load-Dump-TVS (6600 W) → Pi-Filter. Erst dahinter, auf dem Netz 12V-PROT, hängt die restliche Elektronik. Ein Buck-Regler ersetzt den alten Linearregler — der verlor über 2 V und hätte beim Anlassen fast sicher einen Reset verursacht.

Mehr Details
  • +5 V: TPS54360B-Q1 (60-V-fest, 600 kHz) nach TI-Designbeispiel; FB-Teiler 53,6 k/10,2 k → 5,00 V. UVLO bewusst auf 6,0 V ein / 5,2 V aus gerechnet, damit die ECU auch beim Kurbeln durchläuft.
  • VDDA: TPS7B6950-Q1 versorgt nur Sensorik + Stecker-Pin J2.48 — kurzschlussfest und batteriespannungsfest. Ein Kabelbaumfehler killt damit nicht mehr die ECU.
  • +3V3: LD1117S33 aus +5 V als alleinige Quelle für Flash, ADXL, MC33810-Logik & Co. — vorher lag der Regler auf einem toten Inselnetz und der Teensy-interne Regler trug die ganze Last.
  • Der TVS-Rückweg geht auf PGND (Leistungsmasse) — Load-Dump-Ströme laufen nicht durch die Logikmasse.
  • Jede Rail hat eine Status-LED; Strombilanz auf 12V-PROT: unter 2 A dauerhaft, Reserve über die 3-A-Sicherung.
  • Verlustvergleich alt/neu: Linearregler 2–2,7 W → Buck unter 0,3 W. Rechnung unten im Rechen-Abschnitt.
03

Drivers — Zündung & Einspritzung

Drivers.kicad_sch
Schaltplan Drivers: MC33810, IGBTs, Watchdog Vollbild ⤢
MC33810 4× ISL9V5036 TPS3823

Das Herz der Leistungsseite: Der MC33810 (Automotive-IC) treibt vier Injektoren direkt und liefert vier Gate-Signale für die Zünd-IGBTs, die die Stick-Coils schalten. Rev 3.0 wirft die alten Zwischen-Gatetreiber raus — sie hingen mit 20-V-Maximalrating am ungeschützten 12-V-Netz und wären beim ersten Load Dump gestorben. Die IGBTs werden jetzt direkt angesteuert.

Mehr Details
  • Not-Aus-Pfad: Vorher war OUTEN̄ fest auf GND — Endstufen immer freigegeben, auch bei MCU-Absturz. Jetzt: Pull-up (Boot = AUS) + NAND aus Teensy-Freigabe und Watchdog-Signal. Füttert die Firmware den TPS3823 nicht, gehen alle 8 Endstufen hardwareseitig aus.
  • Gate-Pfad je Zylinder: GD → 33 R → Gate, 10 k Gate–Emitter direkt am IGBT. Die IGBTs sind Logic-Level-Typen mit interner Klemme für den Zündspulen-Flyback (~400 V).
  • Diagnose nachgerüstet: 20-mΩ-Kelvin-Shunt im gemeinsamen Emitterpfad (Zündstrommessung), Feedback-Teiler 36 k/4,02 k von jedem Kollektor — der MC33810 erkennt damit Funkendauer und offene Sekundärseite.
  • Injektor-Zuordnung war kreuzverdreht (OUT0=INJ3 …) — jetzt sauber 1:1, Firmware-Hinweis steht im Sheet.
  • Alle Leistungsrückströme laufen über PGND, nicht über die Logikmasse.
04

Inputs — die Analog-Frontends

Inputs.kicad_sch
Schaltplan Inputs: Sensorfrontends mit Teilern und Klemmen Vollbild ⤢
12k/20k-Teiler BAV199 LMV324

MAP, Baro, Drosselklappe, Lambda, Temperaturen, Flex-Fuel, Kupplung und Batteriespannung. Das Grundproblem der alten Version: 5-V-Signale lagen teils ungeklemmt am nicht 5-V-toleranten Teensy-ADC. Rev 3.0 löst das strukturell — jeder Kanal bekommt einen Präzisionsteiler 12 k/20 k (×0,625) plus Klemmdiode an 3,3 V. Damit gibt es auf dem ganzen Blatt keine 5-V-Domäne mehr.

Mehr Details
  • Kanalaufbau: 470 R → 100 nF (Filter) → 12 k/20 k → 10 nF + BAV199 an +3V3/GND → ADC. Selbst ein Kurzschluss nach 12 V drückt nur ~0,5 mA in die Klemme.
  • Ratiometrie: Die NTC-Pullups (IAT/CLT, 2,49 k) hängen an +3V3 — exakt der Rail, die auch die ADC-Referenz speist. Versorgungsschwankungen kürzen sich damit aus der Messung raus.
  • Lambda (0–1 V, hochohmig) läuft über einen LMV324-Folger an 3,3 V statt über den alten 5-V-Puffer.
  • Batteriespannung über 47 k/10 k (×0,1754): 14,3 V → 2,51 V am ADC — Rechnung unten.
  • Unbenutzte Opamp-Hälften sind als Folger terminiert, eine 3,6-V-Zener fängt Klemmströme ab, damit sie die 3,3-V-Rail nicht hochpumpen.
  • Die Firmware braucht neue Skalierungskonstanten (Teiler 0,625, NTC-Kurven für 3,3-V-Pullup) — dokumentiert im Sheet.
05

Inputs 2 — Schalter & Sonderfälle

Inputs2.kicad_sch
Schaltplan Inputs 2: Ganganzeige, Tip-Over, Neutral Vollbild ⤢
Gear Tip-Over Neutral

Ganganzeige, Umkippsensor, Neutral- und Reserve-Eingänge. Der Tip-Over-Sensor (Motor aus, wenn das Bike liegt) wurde vorher als nackter Digital-Pegelwandler missbraucht — er liefert aber eine analoge Kennlinie. Rev 3.0 wertet ihn richtig aus: Teiler plus Komparator mit Hysterese, Schwelle sauber mittig zwischen „steht“ und „liegt“.

Mehr Details
  • Tip-Over: Teiler 12 k/12 k (×0,5), Schwelle 1,2 V aus 10 k/5,6 k, 1-MΩ-Hysterese. Normal ≈ 0,2–0,7 V, gekippt ≈ 1,85–2,2 V am Komparator — eindeutig trennbar.
  • Die Schwelle liegt bewusst bei 1,2 V statt 1,5 V: Der LMV324-Gleichtaktbereich endet an 3,3 V bei ~2,5 V — mit dem 0,625-Teiler wäre der „gekippt“-Pegel außerhalb gewesen.
  • Schaltereingänge (Neutral, Kupplung, Spare): 10 k in Serie + 10 k Pull-up an 3,3 V. Ein 12-V-Fehler treibt unter 1 mA in die Klemme; offen = 3,3 V, geschlossen = 0 V.
  • Der Neutral-Eingang (J2.20) endete vorher als totes Label — jetzt ein echter geschützter Digitaleingang auf D4.
  • Ein Spare-Analogkanal ist komplett aufgebaut, wartet aber auf einen freien ADC-Pin (Option Rev 3.1).
06

Crank & Cam — die Taktgeber

Crank-and-Cam.kicad_sch
Schaltplan Crank and Cam: MAX9926 VR-Interface Vollbild ⤢
MAX9926 VR / Hall 470 pF

Kurbel- und Nockenwellensignal sind die kritischsten Signale der ganzen ECU — jitter hier heißt Zündwinkel-Jitter. Der MAX9926 wandelt die differentiellen VR-Signale adaptiv in saubere Digitalflanken. Rev 3.0 entfernt die mechanischen Schiebeschalter aus diesem Pfad: Vibration + Korrosion in einem Signal, an dem jede Zündung hängt, war keine gute Idee.

Mehr Details
  • Statt Schalter: 0-Ω-Bestückungsoptionen. VR-Betrieb ist Default; für Hall-Geber werden zwei Widerstände umbestückt (plus optionaler Pull-up für Open-Collector-Typen).
  • Vor jedem Teensy-Pin: 470 R in Serie + BAV199-Klemme — die MAX9926-Ausgänge sind 5-V-Push-Pull, der Teensy ist es nicht.
  • Eingangsfilter auf 470 pF verkleinert: Die alte 100-nF-Variante hätte bei 11.000/min ≈ 1,2° Kurbelwinkel Verzögerung gekostet.
  • Der FET-Bypass (Jumper JP2/JP3) und die 1-k-Pullups der alten Version sind ersatzlos gestrichen — weniger Bauteile im kritischen Pfad.
07

Outputs — Aktoren schalten

Outputs.kicad_sch
Schaltplan Outputs: Smart-Switches, Low-Side-Treiber, Stepper Vollbild ⤢
BTF3050TE ZXMS6006 DRV8434A

Benzinpumpe, Lüfter, Boost-Ventil, O2-Heizung, Tacho, FI-Lampe, Starter-Relais und der Leerlaufsteller. Rev 3.0 belegt vier Steckerpins, die vorher tot oder doppelt belegt waren, endlich richtig — und die PWM-Lasten bekommen geschützte Smart-Switches mit Status-Rückmeldung statt ungeschützter Transistoren.

Mehr Details
  • BTF3050TE (2×) für Boost-Ventil und O2-Heizung: strombegrenzt, übertemperaturfest, Status-Pin. Die Fehlerflags laufen als Wired-OR gebündelt auf einen Teensy-Pin (D9).
  • ZXMS6006-Kanäle (6×) für Relais- und Kleinlasten, jeder mit 1 k Gate-R, 100 k Pulldown (Boot-sicher aus) und Schottky-Freilauf nach 12V-PROT.
  • Stepper: Das gesteckte Pololu-Breakout (Trimmpoti + Steckkontakte + Vibration…) fliegt raus, ein DRV8434A sitzt direkt auf dem Board. Stromlimit per Festwiderstand, 1/8-Schritt, Enable boot-sicher aus.
  • Tippfehler-Fund aus dem Review: SPARE2_OUT vs. SPARE2-OUT — ein Underscore, ein toter Ausgang. Jetzt konsistent benannt.
  • Alle Sources/GND-Pins der Treiber liegen auf PGND — Lastströme bleiben aus der Logikmasse raus.
08

Comms — CAN, USB & Logging

Comms.kicad_sch
Schaltplan Comms: CAN-Transceiver, Flash, Bluetooth Vollbild ⤢
MCP2562 W25Q32 HC-05

Die Außenanbindung: CAN-Bus zum Sensor-Modul, USB fürs Tuning, SPI-Flash fürs Datenlogging, Beschleunigungssensor und ein Bluetooth-Header. Rev 3.0 macht die CAN-Terminierung fest (Split-Terminierung statt Jumper) und verpasst jedem Chip-Select einen Pull-up, damit beim Booten kein Baustein versehentlich auf dem Bus quatscht.

Mehr Details
  • CAN: MCP2562 mit VIO = 3,3 V (Teensy-Pegel), Split-Terminierung 2× 60,4 R + 4,7 nF gegen Gleichtaktstörungen, NUP2105L-ESD direkt am Stecker.
  • SPI-Aufteilung: Der MC33810 hat SPI0 exklusiv — kein Logging-Transfer kann je ein Zünd-Kommando verzögern. Flash, ADXL343 und Klopf-IC teilen sich SPI1.
  • W25Q32-Flash: /WP und /HOLD über getrennte 10-k-Pull-ups statt hart verdrahtet.
  • Der HC-05-Header bleibt bestückbar — Live-Daten aufs Handy.
  • Alle CS-Leitungen (Flash, ADXL, MC33810, Knock) mit 10-k-Pull-ups gegen Boot-Floating.
09

Knock — Klopferkennung

knock-sensor.kicad_sch
Schaltplan Knock: TPIC8101 Klopf-Interface Vollbild ⤢
TPIC8101 2 Kanäle Erstmals auf dem PCB

Beim Turbo-Betrieb überlebenswichtig: Klopfen (unkontrollierte Verbrennung) zerstört Motoren. Der TPIC8101 filtert und integriert die Körperschallsignale zweier Klopfsensoren, die Firmware nimmt dann Zündwinkel raus. Der härteste Review-Fund: Die komplette Schaltung existierte nur im Schaltplan — auf der Platine fehlte sie ganz, weil die Footprints nie in den Bibliotheken existierten.

Mehr Details
  • Rev 3.0 stellt alle Footprints auf Standard-KiCad-Bibliotheken um (SOIC-20W, TSSOP-14, Murata-Resonator) — damit ist der Block erstmals layoutbar und jetzt tatsächlich auf dem Board platziert.
  • Der TPIC8101 ist ein 5-V-IC am 3,3-V-Teensy: Hinweg über 74AHCT125 (5-V-Puffer mit TTL-Schwellen), Rückweg über 74LVC1G125 — der alte 1k/2k-Teiler legte 5-V-Pegel und 3-k-Dauerlast auf die gemeinsame MISO-Leitung.
  • Takt aus einem 4-MHz-Keramikresonator; das alte Symbol war ein 9-Pin-Konstrukt mit falschem Footprint — ersetzt durch ein sauberes 3-Pin-Symbol.
  • BAV199-Klemmen an beiden Sensoreingängen; im Layout bekommt der Block eine eigene Analogmasse-Region, weit weg von den Zündtreibern.
10

Conntectors — Stecker & Schutzzone

Conntectors.kicad_sch
Schaltplan Conntectors: J2-Stecker mit Schutzzone und Massekonzept Vollbild ⤢
TE 6437288-3 Schutzzone PGND / GND / GNDA

Der 60-polige OEM-Stecker J2 — seine Pinbelegung ist die unverhandelbare Randbedingung des Projekts, denn die ECU soll an den originalen Kabelbaum passen. Neu in Rev 3.0 ist die Schutzzone direkt hinter dem Stecker: Alles, was von außen kommt, wird geklemmt, gefiltert oder abgesichert, bevor es die Elektronik erreicht.

Mehr Details
  • Sensorversorgung J2.48: Polyfuse 150 mA + TVS + 10 µF direkt am Pin — ein Kurzschluss im Kabelbaum trennt sich selbst.
  • USB-Datenleitungen über USBLC6-ESD-Schutz, CAN über NUP2105L, 100 nF am 12-V-Eingangspin.
  • Massekonzept: Drei getrennte Massen — PGND (Leistung), GND (Logik), GNDA (Analog) — treffen sich an genau einem Sternpunkt aus NetTies an der Stecker-Massefläche. Zündströme können so keine Sensormessung verfälschen.
  • Vorher tote Pins sind angebunden: Neutral (20), Starter-Relais (28), FI-Lampe (42), O2-Heizung (46), Spare (47). Wirklich unbenutzte Pins tragen echte No-Connect-Flags statt schwebender Labels.
  • Die Stepper-Pins waren doppelt mit anderen Ausgängen belegt — aufgelöst, jeder Pin hat jetzt genau eine Funktion.
Nachgerechnet

Beispielrechnungen.

Hinter fast jedem Widerstandswert steckt eine kurze Rechnung. Hier sind die wichtigsten — zum Selbst-Ausprobieren. Schieb an den Reglern und schau, was passiert.

01 / ADC-Schutz

Der 12k/20k-Teiler

Der Teensy-ADC verträgt maximal 3,3 V, die Sensoren liefern bis 5 V. Der Teiler skaliert mit Faktor 0,625 — und die BAV199-Klemme fängt Fehlerfälle bis 12 V ab.

VADC = Vin · 20k / (12k + 20k) = 0,625 · Vin
3,13 V am ADC-Pin
0 V3,3 V Limit ↑3,75 V
Normalbereich — Teiler reicht.
02 / Spannungsversorgung

Buck-Regler auf 5,00 V trimmen

Der TPS54360B regelt seinen Feedback-Pin auf 0,8 V. Über den Teiler R1/R2 stellt man die Ausgangsspannung ein — bestückt sind 53,6 k / 10,2 k.

Vout = 0,8 V · (1 + R1 / 10,2k)
5,00 V Ausgangsspannung
0 VZiel 5,0 V ↑8 V
Treffer — 53,6 k ergibt exakt 5,00 V.
03 / Batteriemessung

Bordspannung auf ADC-Maß

Die ECU misst die Batteriespannung selbst — wichtig für die Injektor-Totzeitkorrektur. Der 47k/10k-Teiler bringt auch Ladespannung sicher unter 3,3 V.

VADC = VBat · 10k / 57k = 0,1754 · VBat
2,51 V am ADC-Pin
6 VKurbeln ≈ 8–10 V16 V
Laden bei 14,3 V — alles im grünen Bereich.
04 / Warum ein Buck?

Linearregler vs. Schaltregler

Der alte 78M05 verbrannte die Differenz von 12 V auf 5 V komplett als Wärme. Der Buck wandelt stattdessen — bei ~90 % Wirkungsgrad bleibt fast nichts übrig.

Plinear = (12,6 V − 5 V) · I  ·  Pbuck ≈ 5 V · I · (1/0,9 − 1)
≈ 13× weniger Verlustwärme im Gehäuse.
05 / Zünddiagnose

Spulenstrom über den Shunt

Ein 20-mΩ-Shunt im gemeinsamen IGBT-Emitterpfad macht den Zündspulenstrom messbar. Der MC33810 vergleicht die Spannung intern mit einstellbaren Schwellen — so erkennt er, ob die Spule wirklich lädt.

UShunt = ISpule · 20 mΩ
130 mV über dem Shunt
0 ANOMI 3 A ↑10 A
Stick-Coil-Nennstrom ≈ 6,5 A → 130 mV.
06 / Anlass-Festigkeit

UVLO — wann der Buck anläuft

Beim Kurbeln bricht die Bordspannung ein. Der Enable-Teiler des Buck bestimmt, ab wann er startet und wann er aufgibt — gerechnet auf Start 6,0 V / Stopp 5,2 V, damit der Motorstart die ECU nicht resettet.

R1 = (Vstart − Vstop) / 3,4 µA → 237 k · R2 → 56,2 k
läuft 5-V-Rail stabil
4 V5,2 / 6,0 V ↑13 V
Typisches Kurbeln (~9 V) — kein Reset.
Der Weg zu Rev 3.0

Erst Review, dann Redesign.

Bevor Rev 3.0 entstand, habe ich den kompletten R2.1-Schaltplan systematisch prüfen lassen: 13 unabhängige Prüfläufe (einer pro Sheet plus Systemebene), jede Verbindung gegen die Netzliste verifiziert, jeder Befund in einer zweiten, bewusst skeptischen Runde gegengeprüft und zuletzt gegen die Original-Datenblätter und die Speeduino-Firmware abgeglichen. Ergebnis: 314 Roh-Befunde, 18 davon widerlegt — 296 blieben bestehen. Alle sechs kritischen sind in Rev 3.0 behoben.

6
Kritisch
60
Schwer
103
Mittel
105
Gering
22
Ideen
K15-V-Signale ungeklemmt am 3,3-V-ADC+
Die MAP-/Baro-Pufferstufen liefen auf 5 V und gingen ohne jede Klemmung auf den Teensy-ADC — der ist nicht 5-V-tolerant. Die vorgesehenen Klemm-Netze existierten zwar im Plan, endeten aber als tote Einzelpunkte. Fix: komplette Neukonstruktion der Frontends — Teiler ×0,625 + BAV199, keine 5-V-Domäne mehr vor dem ADC (Sheet 04).
K2Sensorversorgung schutzlos am Fahrzeugstecker+
Die 5-V-Sensorversorgung lag ohne Kondensator, Sicherung oder Klemmung direkt an J2.48 — ein Kurzschluss im Kabelbaum hätte die Rail (und damit alle Messungen) gerissen. Fix: eigener kurzschlussfester LDO + Polyfuse + TVS + 10 µF direkt am Pin (Sheets 02 & 10).
K3Ganganzeige treibt bis ~5 V auf den ADC-Pin+
Gleiche Fehlerklasse wie K1, eigener Pfad: Der Gear-Position-Kanal konnte den ADC-Pin bis ~5 V hochziehen. Fix: Teiler + Klemme direkt am Pin, die alte Pufferstufe entfällt komplett (Sheet 05).
K4Klopfschaltung existierte nur auf dem Papier+
Die komplette Klopferkennung stand im Schaltplan — aber auf der Leiterplatte fehlte sie ersatzlos. Ausgerechnet die Schutzfunktion für den Turbo-Betrieb. Fix: Footprints repariert, Block in Rev 3.0 erstmals platziert und geroutet (Sheet 09).
K5Footprints der Knock-Bauteile existierten nicht+
Die Ursache hinter K4: Die Bauteil-Footprints waren in keiner Projektbibliothek vorhanden — das Layout-Tool konnte die Bauteile schlicht nicht platzieren. Fix: Umstellung auf Standard-KiCad-Bibliotheken (SOIC-20W, TSSOP-14, Murata-Landpattern).
K6Brownout beim Anlassen — Reset fast sicher+
Schottky-Diode + Linearregler verloren zusammen über 2,4 V. Beim Kurbeln bricht die Batterie auf ~8–10 V ein — die 5-V-Rail wäre kollabiert und der Teensy hätte mitten im Motorstart resettet. Fix: Ideal-Diode (<20 mV) + Buck-Regler mit UVLO bei 5,2 V — die ECU läuft bis unter 6 V Bordspannung stabil durch (Sheet 02, Rechnung 06).
Vom Plan zur Platine

Das Layout.

ECU Rev 3.0 Oberseite: Teensy 4.1, MC33810, IGBT-Treiberstufen und Buck-Regler Top · Bestückungsseite
ECU Rev 3.0 Unterseite mit durchgehender Massefläche Bottom · Masseflächen
ECU Rev 3.0 schräg von vorn rechts ISO · vorn
ECU Rev 3.0 schräg von hinten links, Blick auf den 60-poligen OEM-Stecker ISO · Steckerseite
ECU Rev 3.0 aus flachem Winkel — Bauhöhe von Elkos, Drosseln und Kühlkörpern Flach · Bauhöhe
Detail: Teensy 4.1 auf Buchsenleisten, daneben MC33810 und Klopf-Interface Detail · Teensy & Treiber
Detail: Eingangsschutz, Ideal-Diode, Buck-Regler und Speicherdrosseln Detail · Versorgung
Detail: 60-poliger OEM-Stecker mit Schutzzone und IGBT-Kühlkörpern Detail · Stecker & Schutzzone
Abmessungen
148 × 111,5 mm
Lagen
2
Bauteile
307
Pads
1014
Vias
548
Leiterbahn-Segmente
4190
Offene Verbindungen
0
DRC-Fehler
0

Die Randbedingungen standen fest: Platinenkontur, Steckerposition und die großen Bauteile (Teensy, MC33810, IGBTs) bleiben exakt, wo sie in der alten Revision waren — die Platine muss weiter ins vorhandene Gehäuse und an den Original-Kabelbaum passen. Innerhalb dieses Rahmens wurde das Layout für Rev 3.0 neu aufgebaut: Bauteile in Funktionsregionen platziert (Treiber rechts, Versorgung links unten, Sensorik links oben, Schutzzone direkt am Stecker), Netzklassen mit breiteren Bahnen für Leistungsnetze, und durchgehende Masseflächen auf beiden Seiten mit getrennten Regionen für Leistungs- und Analogmasse.

Damit ist das Board durch: Jedes Netz ist geroutet. Der DRC meldet null Fehler, null offene Verbindungen und keine einzige Abweichung zwischen Layout und Schaltplan. Übrig bleiben Warnungen, und die sind kosmetisch — der große Rest davon sind Abweichungen zwischen platziertem und Bibliotheks-Footprint (Lötpasten- und Courtyard-Details), der kleine Rest Bestückungsdruck, der auf Kupfer oder auf einen Nachbarn läuft.

Fertigungsdaten sind exportiert: Gerber, Bohrdaten und Bestückungsdatei liegen als Paket bereit, dazu die Stückliste mit 107 Positionen inklusive Hersteller- und Distributor-Nummern. Als Nächstes gehen beide Boards zusammen in Fertigung und Aufbau.

Übrigens: Die Bilder hier sind keine Fotos. Sie kommen aus dem Raytracer von KiCad, gerechnet aus demselben Board-File, aus dem auch die Fertigungsdaten fallen — jedes Bauteil steht also genau da, wo es später wirklich sitzt.

Die zweite Platine

Das Sensor-Modul.

Nicht alles muss in die ECU: Abgastemperaturen misst man am besten direkt am Krümmer, und der Intercooler-Lüfter braucht dicke Leitungen, die im ECU-Gehäuse nichts verloren haben. Deshalb übernimmt eine zweite, kleinere Platine mit eigenem STM32G474 die Messwerterfassung vor Ort — zur ECU geht nur noch das CAN-Kabel. Auch hier gilt: Steckerbelegung (J5/J6/J7) bleibt fix, und das Modul bekam in Rev 3.0 dieselbe Schutz-Kur wie die Haupt-ECU.

MCU
STM32G474
Abmessungen
120 × 64 mm
Abgastemp-Kanäle
4 × Typ K
Anbindung
CAN-Bus
SM · 01

Root — STM32 & Versorgung

sensor-module.kicad_sch
Sensor-Modul Root-Sheet: STM32G474, Versorgung, CAN Vollbild ⤢
STM32G474 TPS560430 MCP2562FD

Das Hauptblatt: der STM32G474 mit Takt, SWD-Programmierheader und der Versorgung — dieselbe Philosophie wie bei der Haupt-ECU, eine Nummer kleiner. Der alte Linearregler (2 W Abwärme) wich einem Buck-Regler mit kompletter Schutzkette davor.

Mehr Details
  • Eingangskette: Polyfuse 0,5 A → SS310-Schottky → SMCJ18A-TVS → Pi-Filter (10 µH) → TPS560430 Buck auf 5 V → LD1117 auf 3,3 V. Verlust: von ~2 W auf ~0,3 W.
  • 5-V-Rücklesung auf PA0 (Teiler 10 k/15 k): Der STM32 kennt seine eigene Referenz und kann ratiometrisch korrigieren.
  • Analogversorgung VDDA über Ferrit entkoppelt — saubere Referenz für die Druck- und Temperaturmessung.
  • CAN: MCP2562FD (CAN-FD-fähig), feste Split-Terminierung 2× 60,4 R + 4,7 nF, NUP2105L-ESD am Stecker — spiegelbildlich zur ECU-Seite, beide Busenden sauber terminiert.
  • Aufräumarbeiten aus dem Review: verwaiste Netzlabels entfernt, 5V-DIV-Knoten hart verdrahtet, doppelte Power-Referenzen neu nummeriert.
SM · 02

Exhaust Temp — 4× Abgastemperatur

exhaust-temp.kicad_sch
Sensor-Modul Exhaust-Temp-Sheet: 4× MAX31855 Thermoelement-Interfaces Vollbild ⤢
4× MAX31855 Typ K · bis 1372 °C

Ein Thermoelement pro Zylinder, direkt im Abgaskrümmer. Vier MAX31855-Wandler digitalisieren die Typ-K-Signale inklusive Kaltstellenkompensation — beim Turbo-Tuning die wichtigste Anzeige dafür, ob ein Zylinder zu mager läuft.

Mehr Details
  • Nur isolierte (ungeerdete) Typ-K-Fühler! Ein geerdeter Fühler am Krümmer erzeugt eine Masseschleife über das CAN-Kabel und zerstört die Messung — der Review-Fund hinter dieser fetten Warnung im Schaltplan.
  • Pro Kanal: 10-nF-Filter direkt an T+/T−, 100 nF direkt an jedem MAX31855-VCC (Layout-Vorgabe), 100-Ω-Eingangswiderstand.
  • T− liegt über 0 R an GND, ein 10-k-Bias-Widerstand ist als DNP-Option vorgesehen (Fühlerbruch-Test).
  • Kanalzuordnung dokumentiert: IC10 = Zylinder 1, IC12 = 2, IC11 = 3, IC13 = 4 — Hardware und Firmware bleiben deckungsgleich.
  • Option für später: MAX31856 als Pin-Upgrade, dessen Digitalfilter 50/60-Hz-Brummen unterdrückt.
SM · 03

Sensors — Quickshifter & Abgasdruck

Sensors.kicad_sch
Sensor-Modul Sensors-Sheet: Quickshifter und Analogkanäle Vollbild ⤢
Quickshifter Abgasdruck SP720

Die Analogkanäle des Moduls: der Quickshifter-Kraftsensor (Push- und Pull-Richtung getrennt — Hoch- und Runterschalten) und der Abgasdruck. Alle Eingänge laufen über SP720-Klemmdioden-Arrays, bevor sie den STM32 erreichen.

Mehr Details
  • Quickshifter: 1-k-Serienwiderstände zwischen Steckerpins und den ADC-Pins PA1/PA2 — vorher waren die Pfade über Alias-Labels direkt gebrückt.
  • Druckkanäle mit einheitlichen 100-nF-Filtern.
  • Eine TVS-Diode als Senke an der 3,3-V-Rail verhindert, dass Klemmströme der SP720 die Versorgung hochpumpen (gleiche Maßnahme wie auf dem ECU-Inputs-Sheet).
  • Unbenutzte SP720-Eingänge sauber auf NC gelegt statt offen gelassen.
SM · 04

Actuators — der Lüfter

Actuators.kicad_sch
Sensor-Modul Actuators-Sheet: Lüfter-Endstufe Vollbild ⤢
D²PAK-MOSFET 15-A-Pfad

Der Intercooler-Lüfter des Luft-Wasser-Ladeluftkühlers hängt am Sensor-Modul. Rev 3.0 entschärft den Leistungspfad: Das Lüfter-Plus kommt direkt aus dem Kabelbaum mit eigener 15-A-Sicherung — das Modul schaltet nur noch die Low-Side und führt den Strom nicht mehr durch die eigene Logik.

Mehr Details
  • Endstufe: kräftiger D²PAK-MOSFET (60 V, verlötet statt THT — vibrationsfest) mit SS5P10-Freilaufdiode und SMBJ33A-TVS am Drain gegen Abschaltspitzen.
  • Der Lüfterstrom läuft als Durchschleifung J7.1 → J5.13 übers Board — die Steckerbelegung bleibt unangetastet, die Modulversorgung zweigt hinter der eigenen 0,5-A-Sicherung ab.
  • Layout-Vorgabe im Sheet: eigener Power-Pour für den Fan-Strom, strikt getrennt von der Logikmasse.
SM · 05

Connector — Stecker & 5-V-Abgänge

Connector_Sensor-Module.kicad_sch
Sensor-Modul Connector-Sheet: J5, J6, J7 mit Schutzbeschaltung Vollbild ⤢
J5 · J6 · J7 Pinout fix

Die drei Stecker des Moduls — wie bei der ECU mit unveränderter Belegung. Neu ist die Absicherung nach außen: Jeder externe 5-V-Abgang (Versorgung für die angeschlossenen Sensoren) ist einzeln geschützt.

Mehr Details
  • Pro 5-V-Abgang: Polyfuse 50 mA + SMAJ5.0A-TVS + 100 nF — ein Kurzschluss in einem Sensorkabel legt nicht mehr das ganze Modul lahm.
  • Massekonzept dokumentiert: Leistungsmasse (Lüfter, J5.12) und Signalmasse getrennt geführt.
  • Warnhinweis im Plan: nur isolierte Thermoelemente anschließen (siehe SM-02).
Sensor-Modul Rev 3.0 Oberseite mit STM32G474 und 4× MAX31855 Sensor-Modul · Top
Sensor-Modul Rev 3.0 Unterseite mit Massefläche Sensor-Modul · Bottom
Sensor-Modul Rev 3.0 schräg von vorn, Blick auf die drei Steckplätze ISO · Steckerseite
Sensor-Modul Rev 3.0 schräg von hinten ISO · Rückseite
Detail: STM32G474 im LQFP-Gehäuse mit Beschaltung und Lüfter-Endstufe Detail · STM32G474
Abmessungen
120 × 64 mm
Bauteile
138
Vias
220
Offene Verbindungen
0

Auch hier: Platinenkontur (120 × 64 mm) und Steckerpositionen fix, das alte Routing wurde beim Umbau so weit wie möglich erhalten — 65 neue Footprints kamen dazu. Inzwischen ist auch dieses Board fertig: alle Netze geroutet, keine offenen Verbindungen, keine Kurzschlüsse, keine Abstandsfehler und keine Abweichung zum Schaltplan. Fertigungsdaten und die Stückliste (46 Positionen) liegen bereit — beide Platinen gehen zusammen in Fertigung.

Häufige Fragen

FAQ.

Was ist neu in Rev 3.0?

Praktisch alles außer dem Grundkonzept: neuer Eingangsschutz mit Ideal-Diode und Load-Dump-TVS, Buck- statt Linearregler, alle Sensorfrontends auf 3,3-V-sichere Teiler mit Klemmen umgebaut, Hardware-Not-Aus über Watchdog, Klopferkennung erstmals auf der Platine, sauberes Drei-Massen-Konzept und ein komplett neues Layout. Basis dafür war ein systematisches Review mit 296 bestätigten Befunden.

Warum ein Teensy 4.1?

600 MHz ARM Cortex-M7, massig Timer und ADC-Kanäle, und die Speeduino-Firmware unterstützt ihn — das Konzept stammt vom Speeduino Dropbear ab. Für Zündwinkelberechnung bei 11.000/min ist Rechenleistung durch nichts zu ersetzen.

Warum der MC33810?

Ein Automotive-IC, der genau das Problem einer 4-Zylinder-ECU löst: vier Injektor-Endstufen und vier Zünd-Gatetreiber in einem Baustein, mit Diagnose über SPI. In Rev 3.0 hat er den SPI-Bus exklusiv, damit kein Logging-Transfer je ein Zündkommando verzögern kann.

Warum ein separates Sensor-Modul?

Kürzere Sensorleitungen und weniger Störungen: Die vier Abgastemperatur-Thermoelemente, der Abgasdruck, der Quickshifter und der Intercooler-Lüfter werden nahe am Ort erfasst bzw. geschaltet — zur ECU führt nur ein CAN-Kabel. Der 15-A-Lüfterstrom bleibt damit komplett aus dem ECU-Gehäuse raus. Details im Sensor-Modul-Abschnitt.

Passt die ECU wirklich an den originalen Kabelbaum?

Ja — das ist die harte Randbedingung des ganzen Projekts. Der 60-polige OEM-Stecker behält seine originale Pinbelegung, die ECU ist als Plug-and-Play-Ersatz konzipiert und funktioniert auch ohne Turbo.

Ist die Rev 3.0 schon gefahren?

Noch nicht. Aber der Entwurf ist durch: Schaltplan, Layout und Stückliste sind fertig, beide Platinen sind vollständig geroutet und DRC-sauber, die Fertigungsdaten liegen bereit. Als Nächstes: bestellen, bestücken, testen. Frühere Revisionen wurden bereits aufgebaut — Fotos davon gibt's auf der Turbo-Busa-Seite.

Sind die Platinen-Bilder Fotos?

Nein — die Renders auf dieser Seite rechnet KiCad selbst aus dem fertigen Board-File, mit den 3D-Modellen der echten Bauteile. Sie zeigen also exakt den Stand, aus dem auch die Fertigungsdaten erzeugt werden. Die Schaltplan-Bilder sind ebenfalls direkt aus dem Projekt exportiert, nicht nachgezeichnet.

Tief genug eingestiegen?

Das war die ECU von innen. Zurück zum Gesamtprojekt — oder direkt in den Code.