
caferacer-forum.de - Das Forum für Petrolheads, Garagenschrauber, Ölfinger, Frickelracer und Alteisentreiber
Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
- Mäusemanne
- Beiträge: 2
- Registriert: 18. Jan 2021
- Motorrad:: Guzzi NF 1971
Norton Navi 1961
DKW RT250/2 1954
BMW R69/S 1967
Troika SR80 1982
usw. - Wohnort: Remstal
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Gute Idee ! Überwachst du auch den Lampenstrom, um bei defekter Birne schneller zu blinken ?
Gruß Manni
Gruß Manni
Gruß aus dem schwäbischen Regenwald
Manne
Manne
- brummbaehr
- Beiträge: 958
- Registriert: 27. Sep 2016
- Motorrad:: Honda CX 500/650
- Wohnort: 41836 Hückelhoven
- Kontaktdaten:
- k3po
- Beiträge: 298
- Registriert: 25. Apr 2015
- Motorrad:: Honda CB900F, Bol d'Or (1982)
Honda CB400NC (1983) - Wohnort: ....am Rand des Nordschwarzwald ;-)
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Wir brauchen Unterstützung!
Passt grad gut zum Elektronik Thema. Geht im Kern um Ignitech TCIP4 / Datalogger, Dashboard per Bluetooth, und Steuerung im Prinzip ähnlich M-Unit. Das ganze ist ein OpenSource Projekt auf GitHub und wird von Jacob Geigle (techie66) programmiert. Ich hatte Jacob im internationalen CB1100F board kennengelernt. Eigentlich wollte ich selbst einen Datenlogger auf Arduino oder Bluepill Basis realisieren, Jacob war da allerdings schon weiter unterwegs, konnte aber die TCIP4 nicht auslesen. Mein Schwerpunkt ist die Ignitech TCIP4 also haben wir uns zusammen getan. Ich habe die Grundlagen des seriellen Kommunikationsprotokolls 'reengineered', so dass wir nun ohne die Ignitech Konfigurationssoftware mit der TCIP4 sprechen können.
Das Ganze basiert auf einem RPi als 'Zentrale' und einer Android APP als Dashboard. Man kann auch zusätzlich Arduinos als weitere Sensoren anschließen. Alles ist modular aufgebaut und man muss nicht alles aufbauen.
Im Moment liegt der Schwerpunkt auf dem Datenlogging aus der Ignitech um Optimierungen an der Zündkurve / Kennfeld rausfahren zu können. Gesten wurde eine rudimentäre CAN Bus Funktionalität eingebaut, damit man CAN Bus Teilnehmer auslesen und mitloggen kann (ist grad speziell für mich, weil ich hier einen Ignitech WB2 Lambdacontroller rumliegen habe).
Ich selbst kann zwar Code lesen und habe schon kleinere Microcontroller Projekte selbst realisiert, das was Jacob da allerdings macht, ist programmiertechnisch für mich dann doch in einer anderen Liga.
Der arme Kerl ist also im Moment auf sich alleine gestellt. Ich helfe halt beim Testen und setze ihm immer neue Flausen in den Kopf.
Schaut einfach bei Interesse mal in seinem Github Repository unter https://github.com/techie66 vorbei. Und wenn Ihr euch dann auch noch in irgendeiner Weise dort einbringen wollt / könntet, wäre das echt mega!
So long und viele Grüße
Kurt

Passt grad gut zum Elektronik Thema. Geht im Kern um Ignitech TCIP4 / Datalogger, Dashboard per Bluetooth, und Steuerung im Prinzip ähnlich M-Unit. Das ganze ist ein OpenSource Projekt auf GitHub und wird von Jacob Geigle (techie66) programmiert. Ich hatte Jacob im internationalen CB1100F board kennengelernt. Eigentlich wollte ich selbst einen Datenlogger auf Arduino oder Bluepill Basis realisieren, Jacob war da allerdings schon weiter unterwegs, konnte aber die TCIP4 nicht auslesen. Mein Schwerpunkt ist die Ignitech TCIP4 also haben wir uns zusammen getan. Ich habe die Grundlagen des seriellen Kommunikationsprotokolls 'reengineered', so dass wir nun ohne die Ignitech Konfigurationssoftware mit der TCIP4 sprechen können.
Das Ganze basiert auf einem RPi als 'Zentrale' und einer Android APP als Dashboard. Man kann auch zusätzlich Arduinos als weitere Sensoren anschließen. Alles ist modular aufgebaut und man muss nicht alles aufbauen.
Im Moment liegt der Schwerpunkt auf dem Datenlogging aus der Ignitech um Optimierungen an der Zündkurve / Kennfeld rausfahren zu können. Gesten wurde eine rudimentäre CAN Bus Funktionalität eingebaut, damit man CAN Bus Teilnehmer auslesen und mitloggen kann (ist grad speziell für mich, weil ich hier einen Ignitech WB2 Lambdacontroller rumliegen habe).
Ich selbst kann zwar Code lesen und habe schon kleinere Microcontroller Projekte selbst realisiert, das was Jacob da allerdings macht, ist programmiertechnisch für mich dann doch in einer anderen Liga.


Schaut einfach bei Interesse mal in seinem Github Repository unter https://github.com/techie66 vorbei. Und wenn Ihr euch dann auch noch in irgendeiner Weise dort einbringen wollt / könntet, wäre das echt mega!
So long und viele Grüße
Kurt
- Eumel
- Beiträge: 186
- Registriert: 28. Aug 2017
- Motorrad:: Buell XB12R Firebolt 2004
Honda CBF1000 (SC58) 2006
Honda CB450S (PC17) 1988
Kawasaki Z650SR
Verkauft: Honda NTV 650 Revere (RC33) 1989 - Wohnort: Stuttgart
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Also wirklich Zeit zum helfen hab ich jetzt nicht aber warum verwendet ihr einen Raspi? Um bissle Bluetooth und Data Logging zu machen ist das doch dezent übertrieben oder?
Ich hab was Ähnliches nur ohne Logging für ne 1100 Monster gemacht. Mechanik fehlt noch aber elektrisch geht es. Logging über einen Openlog und Bluetooth über einen ESP wäre kein Problem. Nur Android kann ich nicht
https://www.caferacer-forum.de/viewtopi ... 24&t=28755
Ich hab was Ähnliches nur ohne Logging für ne 1100 Monster gemacht. Mechanik fehlt noch aber elektrisch geht es. Logging über einen Openlog und Bluetooth über einen ESP wäre kein Problem. Nur Android kann ich nicht
https://www.caferacer-forum.de/viewtopi ... 24&t=28755


- k3po
- Beiträge: 298
- Registriert: 25. Apr 2015
- Motorrad:: Honda CB900F, Bol d'Or (1982)
Honda CB400NC (1983) - Wohnort: ....am Rand des Nordschwarzwald ;-)
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Naja, auf die HW hatte ich dann keinen Einfluß mehr. Das war dann schon gesetzt. Es wird im Endausbau ja viel mehr als ein bisschen loggen.Eumel hat geschrieben: 29. Apr 2021 Also wirklich Zeit zum helfen hab ich jetzt nicht aber warum verwendet ihr einen Raspi?
Ich selbst hatte mit einem Arduino angefangen und wollte dann auf einen STM32. Mein Hauptpunkt ist hat das direkte loggen von der Ignitech. Dazu hat Jacob eine C-Library geschrieben welche ich adaptieren wollte.
Aber danke für deinen Input!
Gruß Kurt
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Sau geil, haben muss. Stellst du uns dein Blinker-Ei zu Verfügung?brummbaehr hat geschrieben: 28. Apr 2021 Bissel ruhig geworden hier im Fred.
Habe mir ein Blinker-Ei ähmm.. Blinkrelaisfür Tasterbetätigung gebastelt.
VG
Axel
- brummbaehr
- Beiträge: 958
- Registriert: 27. Sep 2016
- Motorrad:: Honda CX 500/650
- Wohnort: 41836 Hückelhoven
- Kontaktdaten:
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Was verstehst Du unter "zu Verfügung stellen"?
Anbei der Code:
Und hier das Schaltbild:
Du kannst auch ein fertiges Ei von mir haben.
Schick mir ne PN
Anbei der Code:
Code: Alles auswählen
/*
Programmierung auf ATTiny85, Pins gemäß Anordnung
24.04.2021
P2 Eingang Blinker Rechts
P3 Eingang Blinker Links
P4 Eingang Neutral/Kupplung
P0 Ausgang Blinker Rechts
P1 Ausgang Blinker Links
*/
#include <Bounce2.h>
#define Switch 0 // 0 --> Tastersteuerung, 1 --> Schalter
#define BLINKPINRIGHT 0 // digitaler Ausgang rechter Blinker
#define BLINKPINLEFT 1 // digitaler Ausgang linker Blinker
#define BUTTONRIGHT 2 // digitaler Eingang rechter Taster
#define BUTTONLEFT 3 // digitaler Eingang linker Taster
#define NEUTRAL 4 // digitaler Eingang Neutral/Kupplung
#define WARNBLINKPRESSTIME 2000 // Zeitdauer Tastendruck um Warnblinken ein zu schalten
#define LONGKEYPRESSTIME 300 // Zeit ab der ein Tastendruck "lang" ist
#define BLINKCOUNT 4 // Anzahl der Blinkimpulse bei kurzem Tastendruck
#define BLINKDELAY 400 // Blinkintervall
#define NEUTRALCOUNT 5 // Anzahl der Blinkimpulse nach dem die Maschine wieder los fährt
Bounce Bleft = Bounce();
Bounce Bright = Bounce();
Bounce Bneutral = Bounce();
void setup()
{
// Eingänge
Bleft.attach(BUTTONLEFT, INPUT_PULLUP);
Bleft.interval(20);
Bright.attach(BUTTONRIGHT, INPUT_PULLUP);
Bright.interval(20);
Bneutral.attach(NEUTRAL, INPUT_PULLUP);
Bneutral.interval(100);
// Ausgänge
pinMode(BLINKPINLEFT, OUTPUT);
pinMode(BLINKPINRIGHT, OUTPUT);
}
void loop()
{
Blinker();
}
//***** Blinker *****
void Blinker()
{
static int blinkstate=0; // Blinkstatus in den untersten 2 Bits
static unsigned long startBlinkMillis=0; // Zeitpunkt beim Setzen des Blinkers
static byte shortButtonPress=false; // Wird true sobald ein kurzer Tastendruck erkannt wurde
static byte longBeamPress=false; // Wird true sobald ein langer Tastendruck erkannt wurde
static boolean blinkPhase=false;
static boolean currentOn=false;
static unsigned long startNeutralMillis;
static boolean Neutral = false;
Bleft.update();
Bright.update();
Bneutral.update();
if (!Switch) // ********* Tastersteuerung ***********
{
//********* Blinker links *************
if (Bleft.fell()) //Blinker links wurde soeben gedrückt
{
startBlinkMillis=millis();
if (blinkstate==0b00) // Wenn Blinkstatus "AUS"
blinkstate=0b10; // Blinker Links setzen
else
blinkstate=0b00; // Blinker ausschalten
shortButtonPress=false; // Flag für kurzen Tastendruck löschen
}
//********** Blinker rechts ***********
if (Bright.fell()) //Blinker rechts wurde soeben gedrückt
{
startBlinkMillis=millis();
if (blinkstate==0b00) // Wenn Blinkstatus "AUS"
blinkstate=0b01; // Blinker Rechts setzen
else
blinkstate=0b00; // Blinker ausschalten
shortButtonPress=false; // Flag für kurzen Tastendruck löschen
}
// Sonderfall Warnblinker wenn Links/Rechts länger als WARNBLINKPRESSTIME gedrückt
if (!Bleft.read() || !Bright.read()) // && Bneutral.read())
if ((millis()- startBlinkMillis) > WARNBLINKPRESSTIME)
blinkstate=0b11;
// Sonderfall kurzer Tastendruck beim Links- oder Rechtsblinken
if (((Bright.read() && millis()-startBlinkMillis<LONGKEYPRESSTIME && blinkstate==0b01) || (Bleft.read() && millis()-startBlinkMillis<LONGKEYPRESSTIME && blinkstate==0b10)) && Bneutral.read())
shortButtonPress=true;
// Prüfen, ob nach Einschalten mit kurzem Buttondruck die Blinkdauer abgelaufen ist
if (shortButtonPress && (millis()-startBlinkMillis)>=(BLINKCOUNT*2-1)*BLINKDELAY && (blinkstate==0b01 || blinkstate==0b10))
blinkstate=0b00; // falls ja, Blinken hier automatisch beenden
// Keinen Leerlauf mehr, und Kupplung losgelassen, jetzt nur noch kurz weiter Blinken
if (Bneutral.rose() && blinkstate){
startNeutralMillis=millis();
Neutral = true;
}
if (Neutral && (millis()-startNeutralMillis)>=(NEUTRALCOUNT*2-1)*BLINKDELAY && (blinkstate==0b01 || blinkstate==0b10)){
blinkstate=0b00; // falls ja, Blinken hier automatisch beenden
Neutral = false;
}
if (Bneutral.fell() && blinkstate){ // Wird die Kupplung wieder gezogen, dann Blinken nicht ausschalten
Neutral = false;
shortButtonPress=false;
}
}
else // ********* Schaltersteuerung *********
{
if (!blinkstate)
startBlinkMillis=millis();
//********* Blinker links *************
if (!Bleft.read()) // Blinker links
blinkstate |= 0b10; // Blinker Links setzen
else
blinkstate &= 0b01; // Blinker Links ausschalten
//********** Blinker rechts ***********
if (!Bright.read()) // Blinker rechts
blinkstate |= 0b01; // Blinker Rechts setzen
else
blinkstate &= 0b10; // Blinker Rechts ausschalten
}
if (((millis()-startBlinkMillis)/BLINKDELAY)%2==0)
blinkPhase=true;
else
blinkPhase=false;
// Soll der linke Blinker gerade an sein?
currentOn=bitRead(blinkstate,1) && blinkPhase;
if (digitalRead(BLINKPINLEFT)!=currentOn)
digitalWrite(BLINKPINLEFT,currentOn);
// Soll der rechte Blinker gerade an sein?
currentOn=bitRead(blinkstate,0) && blinkPhase;
if (digitalRead(BLINKPINRIGHT)!=currentOn)
digitalWrite(BLINKPINRIGHT,currentOn);
}
Schick mir ne PN
Du musst registriert und eingeloggt sein, um die Dateianhänge dieses Beitrags sehen zu können.
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Super genau das was ich suche. Danke für das Angebot, aber ich bräuchte dann schon drei davon, damit meine Frau auch ihre beiden Mopeds bestücken kann.
Außerdem überlege ich das in mein nächstes Projekt (Cockpit) einzubinden. Da sind ja auch alle Drähte schon vorhanden.
Vielen Dank für deine Tolle Idee.
VG
Axel
- brummbaehr
- Beiträge: 958
- Registriert: 27. Sep 2016
- Motorrad:: Honda CX 500/650
- Wohnort: 41836 Hückelhoven
- Kontaktdaten:
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Kannst auch 3 Eier haben kein Problem
Ich habe da mal ein paar Platinen fertigen lassen

Ich habe da mal ein paar Platinen fertigen lassen

Du musst registriert und eingeloggt sein, um die Dateianhänge dieses Beitrags sehen zu können.