520
Gasgriff
E8000
SHIMANO
STEPS E8000
Daumengas-Emulator
Arduino Nano · Trittfrequenz-Simulation · Seifenkiste
Shimano Steps E8000 Gasgriff
DAITA
CRAFTER
POC
Querschnitt
durch die E-Bike-Technik
Kapitel 1

Was passiert hier eigentlich?


Der E8000 gibt nur Motorhilfe wenn er glaubt, du trittst. Das messen wir weg — ein Arduino taeuscht dem Motor Pedaltreten vor, gesteuert von deinem Daumen.

1
Du drueckst den Daumengas
Der Gasgriff hat einen Hall-Sensor drin. Je mehr du drueckst, desto hoeher die Ausgangsspannung — von ca. 0,8 V (los) bis 4,2 V (voll).
2
Arduino liest die Spannung
Der Arduino Nano misst am Eingang A0 und rechnet in eine Zahl um: 0 = losgelassen, 1023 = voll aufgedreht.
3
Arduino errechnet Trittfrequenz
Aus dem Gaswert berechnet er wie schnell jemand angeblich tritt. Wenig Gas = langsam. Voll Gas = 90 RPM.
4
Arduino sendet Impulse an den Motor
Pin D9 schickt elektrische Impulse — genau wie der echte Kurbelmagnet-Sensor. Der Shimano-Controller glaubt, jemand tritt.
5
Transistor sichert ab
Ein 2N2222 NPN-Transistor entkoppelt Arduino und Shimano. Ohne ihn koennte der Arduino sterben falls Shimano eine andere Spannung auf dem Cadence-Kabel hat.
6
Motor laeuft
Display bleibt original dran — ohne Display startet Shimano nicht. Akku bleibt original. Nur das Cadence-Signal wird emuliert.
Warum kein direkter Gasgriff-Anschluss?

Shimano sperrt das ab Werk. Der Emulator trickst das System aus statt es zu hacken. Auf privatem Gelaende ohne StVO voellig legal.

Kapitel 2

Einkaufsliste


Alles bei Amazon, ca. 30–35 EUR gesamt.

Schritt 1 von 10

Arduino IDE installieren


Einmalige Installation. Das ist das Programm zum Schreiben und Laden des Codes.

1
Terminal oeffnen
Cmd + Leertaste, "Terminal" tippen, Enter.
2
Homebrew pruefen
TERMINALbrew --version
Erscheint Versionsnummer: weiter. Erscheint "command not found": erst brew.sh aufrufen.
3
Arduino IDE installieren
TERMINALbrew install --cask arduino-ide
2–3 Minuten. Fertig wenn: "arduino-ide was successfully installed"
4
Arduino Nano per USB anschliessen
Micro-USB rein, LED auf dem Arduino leuchtet auf.
CH340-Treiber fehlt?

"CH340 Mac Driver" googlen, Treiber von wch.cn installieren, Mac neu starten.

5
Board und Prozessor einstellen
Tools → Board → Arduino Nano
Tools → Processor → ATmega328P (Old Bootloader)
Das Old Bootloader ist bei CH340-Klonen zwingend noetig.
6
Port auswaehlen
Tools → Port/dev/cu.usbserial-XXXX auswaehlen.
Schritt 2 von 10

Code schreiben und flashen


Einmal auf den Arduino, dann laeuft er autonom.

1
Neues Sketch
File → New Sketch, leeres Fenster erscheint.
2
Alles loeschen, Code reinkopieren
Cmd+A, loeschen, diesen Code einfuegen:
ARDUINO C++// E8000 Cadence Emulator
// Gasgriff A0 → Cadence D9

const int GAS_PIN     = A0;
const int CADENCE_PIN = 9;

void setup() {
  pinMode(CADENCE_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int gas = analogRead(GAS_PIN); // 0 bis 1023
  Serial.println(gas);

  if (gas < 50) {
    digitalWrite(CADENCE_PIN, LOW);
    delay(20); return;
  }

  int rpm  = map(gas, 50, 1023, 5, 90);
  int halb = (60000 / rpm) / 2;

  digitalWrite(CADENCE_PIN, HIGH); delay(halb);
  digitalWrite(CADENCE_PIN, LOW);  delay(halb);
}
3
Was der Code macht
ZeileBedeutung
analogRead(A0)Spannung vom Gasgriff messen, Ergebnis 0–1023
if (gas < 50)Totzone: Motor aus wenn Gasgriff fast los
map(gas, 50, 1023, 5, 90)Gaswert umrechnen in 5–90 RPM
60000 / rpm / 2Halbe Umdrehungsdauer in Millisekunden
digitalWrite HIGH/LOWEinen Kurbelmagnet-Impuls ausgeben
4
Upload starten
Pfeil-Button oben links oder Cmd+U. Warten bis: "Done uploading."
Fehler: avrdude stk500_recv()

Falscher Bootloader. Tools → Processor → ATmega328P (Old Bootloader).

Schritt 3 von 10

Gasgriff testen — Schreibtisch


Erst am Tisch pruefen. Kein Rad, kein Motor.

Verdrahtung Gasgriff → Arduino

Rot→ Arduino Pin 5V
Schwarz→ Arduino Pin GND
Gelb / Gruen→ Arduino Pin A0 (Signal)
1
Kabel einstecken
Drei Dupont-Kabel vom JST-Stecker auf Arduino-Pins. Kein Loeten.
2
Arduino per USB an Mac
LED leuchtet, Code startet automatisch.
3
Serial Monitor oeffnen
Tools → Serial Monitor (Cmd+Shift+M). Baudrate: 9600. Zahlen laufen durch.
4
Gasgriff druecken
ZustandErwarteter Wert
Losgelassen0–50
Halb gedrueckt400–600
Voll aufgedreht900–1023
Schritt 4 von 10

Transistor verdrahten


Der Transistor schuetzt den Arduino. Flache Seite zu dir, Pins nach unten:

Pin links = EEmitter → GND
Pin mitte = BBasis → Arduino D9 ueber 10k-Widerstand
Pin rechts = CCollector → Shimano Cadence Signal
1
Transistor ins Breadboard
Alle drei Pins in verschiedene Reihen. Flache Seite zu dir.
2
10k-Widerstand einstecken
Zwischen Basis-Reihe und eine freie Reihe. An die freie Reihe kommt D9.
10k erkennen

Farbcode: Braun-Schwarz-Orange-Gold. Oder Multimeter: 10,0 kΩ.

3
Emitter auf GND
Dupont-Kabel von Emitter-Reihe zu Arduino GND.
4
D9 an Basis-Eingang
Dupont von Widerstand-Eingang zu Arduino D9. Pfad: D9 → 10k → Basis.
Transistor falsch herum

Motor laeuft ohne Gas? Transistor 180 Grad drehen.

Schritt 5 von 10

Cadence-Kabel finden


Rad bleibt komplett zusammen. Display dran, Akku dran. Du suchst nur ein 2-adriges Kabel.

1
Rad aufbocken
Hinterrad freihaengen. Der Motor wird gleich drehen.
2
Cadence-Sensor lokalisieren
Kleines Kunststoffteil am Kettenstrebende. Duenner 2-adriger Kabelstrang zum Motor. Kurbelarm hat einen schwarzen Stabmagneten. Das ist der SM-DUE10.
3
GND per Multimeter identifizieren
Akku an, Display an. Multimeter DC Volt. Schwarze Spitze an Akku-Minus. Rote Spitze an beide Cadence-Adern.
0 V = GND. Andere Ader = Signal.
4
Krokodilklemmen anklemmen
Kein Aufschneiden, kein Loeten beim POC.
Klemme 1: Signal-Kabel → Transistor Collector
Klemme 2: GND-Kabel → GND-Schiene
Schritt 6 von 10

Stromversorgung


1
POC: Arduino per Powerbank
Micro-USB vom Arduino an Powerbank. 5V / 20mA, jede Powerbank schafft das.
2
Shimano-Akku bleibt original
BT-E8020 / E8035 bleibt im Rad. Da wird nichts veraendert.
3
Spaeter: LM2596 Step-Down
Wenn POC laeuft: Step-Down zwischen Shimano-Akku (36V) und Arduino VIN.
Reihenfolge zwingend

Step-Down ERST auf 5,0V einstellen (Poti + Multimeter), DANN an Arduino. Sonst kommen 36V an und der Arduino ist hin.

Schritt 7 von 10

Erster Test am Rad


Checkliste abarbeiten, dann Gasgriff aufdrehen.

WasSoll-Zustand
Gasgriffan A0 (Signal), 5V, GND
Arduino D9an Transistor Basis ueber 10k
Transistor Emitterauf GND
Transistor Collectoran Shimano Cadence Signal
Cadence GNDauf GND-Schiene
Arduinoper USB an Powerbank, an
Displayoriginal dran, eingeschaltet
Akkueingesteckt, eingeschaltet
Hinterradaufgebockt, dreht frei
1
Display einschalten
Einschalttaste. Display an, Motor klickt kurz.
2
Powerbank einschalten
Arduino-LED leuchtet. Serial Monitor zeigt kleine Zahlen.
3
Gasgriff langsam aufdrehen
Haende weg vom Rad. Daumen langsam auf Hebel druecken. Motor beginnt zu laufen.
Bestanden wenn

Hinterrad dreht sich bei Gas, stoppt wenn losgelassen.

Schritt 8 von 10

Kalibrieren


1
Serial Monitor beobachten
Gasgriff sehr langsam aufdrehen. Notieren: ab welchem Wert springt Motor an? Ab welchem laeuft er voll?
2
map()-Werte anpassen
// Beispiel: anspringen bei 120, voll bei 950
int rpm = map(gas, 120, 950, 5, 90);
Neu flashen. Gasgriff nutzt jetzt vollen Hub sinnvoll.
3
Werte dokumentieren
Fuer den Kumpel notieren. Bosch und Mahle funktionieren mit derselben Arduino-Logik.
Schritt 9 von 10

Fehlersuche


Symptom
Ursache
Fix
!
Gar nichts
Falsches Cadence-Kabel
Signal und GND tauschen
!
Kurzes Zucken, dann Stopp
RPM-Start zu niedrig
map(..., 50, ..., 20, 90)
!
Motor laeuft ohne Gas
Transistor falsch herum
180 Grad drehen im Breadboard
!
Display zeigt E010
Signal stoert Di2
10k gegen 47k tauschen
!
Voll Gas aber Motor schwach
RPM-Max zu niedrig
map(..., ..., 5, 120)
!
Serial zeigt nur 0
Signal nicht an A0
Kabel an A0 pruefen
!
Serial zeigt immer 1023
VCC und Signal vertauscht
Die zwei Kabel tauschen
Schritt 10 von 10

Box einbauen


Hammond 1591XXFLBK oder Bopla ET-215 — 115x65x40mm, IP65, ~6 EUR bei reichelt.de.

1
Step-Down auf 5V einstellen
36V anlegen, Multimeter an OUT, Poti drehen bis 5,00V. Dann abklemmen.
Zuerst einstellen, dann anschliessen

Sonst koennen 36V den Arduino zerstoeren.

2
Loecher bohren
Links: 2x PG7 (Gasgriff 3-pol + Akku 2-pol). Rechts: 2x PG7 (Cadence OUT + GND). Unten: 10x6mm USB-Loch.
3
Einbauen und verdrahten
Step-Down hinten, Arduino vorne (USB zum Loch), Transistor + Widerstand auf Mini-Breadboard seitlich. Dieselben Dupont-Kabel wie beim POC.
4
Deckel zu, am Rahmen befestigen
4x M3. Kabelbinder oder Klettband am Rahmen. Fertig.
Anhang B

Gesamtschaltplan


DAUMENGAS windmeile JST 3-Pin VCC 5V Signal GND ARDUINO NANO ATmega328P | 5V USB LM2596 Step-Down 36V → 5V (POC: USB) 5V GND A0 D9 → 2N2222 NPN B C E→GND 10k CADENCE SENSOR SM-DUE10 | 2-polig Krokodilklemmen beim POC Kettenstrebende, nahe Kurbel Cadence PWM E8000 MOTOR M SC-E7000 Display original dran Di2 E-Tube unveraendert ohne Display kein Start SHIMANO AKKU BT-E8020 | 36V Motor + Step-Down Arduino SEIFENKISTE ANTRIEB Kettenblatt 44T → Fahrradkette → Ritzel 16T Hinterachse Uebersetzung 2,75 | 90 RPM Motor = ca. 25 km/h (20" Rad) Kette: 1/2" x 3/32" Standard-Fahrradkette Kette
Orange = Antrieb | Lila = Cadence PWM | Blau = Signal | Gelb = Di2 original | Grau = GND
Anhang C

Gehaeuse-Plan


Deckel Boden ARDUINO NANO Breadboard | Dupont-Kabel USB ↓ Loch im Boden LM2596 Step-Down VOR Einbau auf 5V einstellen Poti + Multimeter 2N2222 + 10k Transistor + Widerstand Mini-Breadboard 170 gemeinsame GND-Schiene Gasgriff 3-pol PG7 36V Akku 2-pol PG7 Cadence OUT PG7 GND OUT PG7 GEHAEUSE Typ Hammond 1591XXFLBK oder Bopla ET-215 Groesse 115 x 65 x 40 mm Schutz ABS, IP65 Preis 5–8 EUR, reichelt.de Kabel 3x PG7 Verschraubung USB-Loch 10 x 6 mm, Boden Fix Klebeband + Kabelbinder 4x M3 Schrauben Deckel
Innenansicht von oben | Deckel abgenommen
Anhang A

Arduino auf Windows — Abweichungen


Wer keinen Mac hat oder den Kumpel mit Windows-Rechner unterstuetzt: fast alles ist gleich, ein paar Stellen weichen ab.

Was identisch bleibt

Der Arduino-Code ist 100% gleich. Die Verdrahtung ist identisch. Nur Installation, Treiber und Port-Namen unterscheiden sich.

1. Arduino IDE installieren auf Windows

Kein Homebrew auf Windows. Direkt von der Arduino-Website:

1
Installer herunterladen
arduino.cc/en/software aufrufen → Windows Win 10 and newer, 64 bits auswaehlen → .exe herunterladen.
2
Installer ausfuehren
Doppelklick auf die .exe. Windows fragt nach Admin-Rechten → Ja. Installationsassistent durchklicken, alle Haekchen lassen wie sie sind.
3
IDE starten
Arduino IDE im Startmenue suchen und oeffnen. Beim ersten Start laedt sie kurz Bibliotheken herunter.

2. CH340-Treiber auf Windows

Das ist der haeufigste Stolperstein auf Windows. Guenstige Arduino-Klone nutzen den CH340-USB-Chip, der nicht automatisch erkannt wird.

1
Arduino anschliessen und pruefen
Arduino per USB einstecken. Geraete-Manager oeffnen (Win+X → Geraete-Manager). Unter "Andere Geraete" oder "Anschluesse (COM und LPT)" schauen.

Erscheint ein Geraet mit Ausrufezeichen und "CH340" oder "Unknown Device": Treiber noetig.
2
CH340-Treiber herunterladen
wch.cn aufrufen → Support → Download → CH341SER.EXE herunterladen. Das ist der offizielle Treiber vom Chip-Hersteller.
Nur von wch.cn herunterladen

Keine dritten Seiten. Der Chip-Hersteller ist WCH (Wuxi-Nan-Jing). URL: wch.cn/downloads/CH341SER_EXE.html

3
Treiber installieren
CH341SER.EXE als Administrator ausfuehren. Im Fenster auf INSTALL klicken. Fertig wenn "Driver Install Success" erscheint. PC-Neustart normalerweise nicht noetig.
4
COM-Port pruefen
Nach Treiberinstallation im Geraete-Manager unter Anschluesse (COM und LPT) erscheint jetzt USB-SERIAL CH340 (COM3) oder aehnlich. Die COM-Nummer merken.

3. Port in der Arduino IDE auswaehlen

Auf Windows heisst der Port nicht /dev/cu.usbserial-... sondern COM3 oder COM4 usw.

1
Port auswaehlen
In der Arduino IDE: Tools → Port → COM3 (oder welche Nummer der Geraete-Manager anzeigt). Falls mehrere COMx auftauchen: Arduino abstecken, schauen welcher verschwindet, das ist der richtige.
2
Board und Prozessor wie auf dem Mac
Tools → Board → Arduino Nano
Tools → Processor → ATmega328P (Old Bootloader)
Das ist identisch zu Mac.

4. Serial Monitor auf Windows

Identisch zu Mac: Tools → Serial Monitor oder Strg+Shift+M. Baudrate auf 9600 stellen. Funktioniert genau gleich.

5. Bekannte Windows-Probleme

Problem
Ursache
Fix
!
Kein COM-Port in IDE sichtbar
CH340-Treiber fehlt oder falsch
Treiber von wch.cn neu installieren, USB-Kabel tauschen
!
Upload schlaegt fehl: "access denied"
COM-Port von anderem Programm belegt
Serial Monitor schliessen, andere COM-Tools beenden (z.B. PuTTY)
!
Arduino wird als "Unbekanntes Geraet" angezeigt
Windows hat falschen Treiber automatisch installiert
Im Geraete-Manager: Rechtsklick → Treiber deinstallieren, dann CH341SER.EXE neu
!
avrdude: ser_open() can't open device "\\.\ COM3"
Leerzeichen im COM-Port-Namen (COM-Nummer > 9)
Im Geraete-Manager COM-Nummer auf COM3 oder COM4 aendern: Rechtsklick → Eigenschaften → Anschlusseinstellungen → Erweitert
!
Antivirus blockiert CH341SER.EXE
False Positive bei manchen AV-Programmen
Temporaer deaktivieren fuer Installation, danach wieder aktivieren. Nur bei Download von wch.cn sicher.
Zusammenfassung: Mac vs. Windows

Unterschied 1: Installation — Mac: brew install --cask arduino-ide | Windows: .exe von arduino.cc
Unterschied 2: Treiber — Mac: CH340-Treiber von wch.cn (nur wenn noetig) | Windows: CH341SER.EXE fast immer noetig
Unterschied 3: Port-Name — Mac: /dev/cu.usbserial-XXXX | Windows: COM3 (oder andere Nummer)
Tastenkuerzel Serial Monitor — Mac: Cmd+Shift+M | Windows: Strg+Shift+M
Upload-Shortcut — Mac: Cmd+U | Windows: Strg+U