Can Bus Erweiterer custom Firmware open source wer wär dabei?
Habe vor mir dieses Teil zu kaufen:
http://www.autodiagshop.de/wholesale/elm-327-15v-usb-can-bus-scanner-with-software-2.html
Und dafür eine CAN-Bus library zum laufen zu bringen, wer wäre dabei?
Preis für die Hardware ist unschlagbar, es ist ja schon alles Fertig nur 4 Kabel müssen mit dem Fahrzeug verbunden werden...
Beste Antwort im Thema
Das Programmieren mit der Freeware PICPGM und dem LVISP stellte sich auch mit der aktuellsten Beta bei dieser PIC Serie als nicht möglich heraus. Somit blieb nichts anderes über als mir das offizielle PicKit 3 zuzulegen.
Die Kombination Conrad und eine aktuelle Gutscheinaktion war eine ganz günstige Lösung.
Hiermit war die Programmierung ohne weiteres möglich...
http://www.conrad.de/ce/de/product/708818/PICkit-3-In-Circuit-Debugger-Microchip-Technology-PG164130?ref=searchDetail
Die China Box besitzt am Rand eine Programmierschnitstelle, in diese lassen sich gut Steckkontakte anlöten um den Prozessor erstmalig mit einem Bootloader zu programmieren.
Danach lässt sich die Box über das beiliegende USB Kabel beliebig oft neu programmieren und das PICKIT ist nicht mehr erforderlich. Wer also jemand mit Pickit kennt, ausleihen oder programmieren lassen genügt einmalig.
Der Bootloader Tiny PIC scheint ganz gut zu funktionieren um das gerät über den USB Port zu programmieren.
http://sourceforge.net/projects/tinypicbootload/files/
https://sites.google.com/site/picuino/picuino_kamaleon
53 Antworten
Das Programmieren mit der Freeware PICPGM und dem LVISP stellte sich auch mit der aktuellsten Beta bei dieser PIC Serie als nicht möglich heraus. Somit blieb nichts anderes über als mir das offizielle PicKit 3 zuzulegen.
Die Kombination Conrad und eine aktuelle Gutscheinaktion war eine ganz günstige Lösung.
Hiermit war die Programmierung ohne weiteres möglich...
http://www.conrad.de/ce/de/product/708818/PICkit-3-In-Circuit-Debugger-Microchip-Technology-PG164130?ref=searchDetail
Die China Box besitzt am Rand eine Programmierschnitstelle, in diese lassen sich gut Steckkontakte anlöten um den Prozessor erstmalig mit einem Bootloader zu programmieren.
Danach lässt sich die Box über das beiliegende USB Kabel beliebig oft neu programmieren und das PICKIT ist nicht mehr erforderlich. Wer also jemand mit Pickit kennt, ausleihen oder programmieren lassen genügt einmalig.
Der Bootloader Tiny PIC scheint ganz gut zu funktionieren um das gerät über den USB Port zu programmieren.
http://sourceforge.net/projects/tinypicbootload/files/
https://sites.google.com/site/picuino/picuino_kamaleon
Hallo Dr_V70,
Beeindruckend was Du alles schon gefiltert hast bezüglich CAN am Volvo.
Respekt!
Open Source! Bin dabei.
Ich habe ein klein wenig Erfahrung im Bereich Arduino IDE und Programmierung auf der Platform.
Was mir fehlt ist der Einstieg in die CAN und Treiber Ebene auf selbiger Anwendung.
So habe hier nun auch einen China Clone mit der von Dir beschriebenen HW hier.
1 Frage:
Was ist die bessere Platform aus Deiner Sicht?
Arduino
od.
ELM327 mit PIC
2. Frage:
Wie kann ich unterstützen bezüglich des Reverse Engineering des Volvo CAN?
Habe Zugang zur gesamten VECTOR Palette od. PEAK!
3. Frage:
Würde gern meinen rechten Außenspiegel beim Rückwärtsgang schalten automatisch etwas absenken?
Hängen die Spiegel am Comfort Low CAN?
Freue nich auf eine gute Zusammenarbeit und hoffe das ich hier Allen helfen kann!.
Gruß
dossidr.
Hallo dossdir,
schau mal auf volvotech.eu unter dem CFE.
Da gibts ja schon ein solches Gerät (mit dem wurde ja bereits verglichen).
lad Dir da mal das Manual runter, dann bekommst Du einen Eindruck der möglichen Funktionen.
Diese werden von Volvotech auch immer wieder gefixt und erweitert.
Das Gerät arbeitet ausschließlich über den CAN-Bus.
D.h. alles, wie Spiegel, Leuchten, Fensterheber Dach etc. sind alle am Bus.
Gruß
zauberlehrer
Hallo Zaberlehrer,
Danke für die Info.
Das mit der Erweiterungsbox ist mir bekannt.
Habe die "nice to Have" Funktionen mal überflogen.
Mich treibt eher der Ehrgeiz wie Dr_V70, der eine LowCost Lösung und zudem Open Source fokusiert.
Daher würde mich schon interessieren, was alles auf dem Bus so los ist und wo ich etwas zu meinen Wünschen positiv
erweitern kann.
Wenn es ausufert von der Zeit her, dann stecke ich halt doch 200€ rein.
Aber da ich einen Arduino, ELM327 PIC auch hier habe und sowieso ins Programmieren etwas einsteigen möchte, passt das gerade ganz gut ins Konzept.
Mal sehen was draus wird.
Gruß
dossidr
Ähnliche Themen
Hi,
also auf Anhieb würde ich sagen der Arduino läuft aktuell am einfachsten und am besten.
http://www.motor-talk.de/forum/der-can-bus-im-volvo-t4420570.html?page=4#post36640652
Wenn man diesen CODE einfach in die IDE kopiert, läuft schonmal das coming home über die Nebelscheinwerfer.
Alles weitere, wie man Meldungen empfängt und sendet ist darunter beschrieben.
Durch weiteres Kopieren, bekommt man auch schnell den Comfortblinker in Betrieb und kann auch eigene Funktionen umsetzen.
Beim Arduino ist alles simpel gehalten, man kann und muss kaum was konfigurieren, das teil läuft auf Anhieb. Es gibt viele vorgefertigte Funktionen.
Das Teil hat leider kein Gehäuse und kostet und alles zusammen kostet um die 70 Euro.
Der kommunikation mit dem CAN-Bus läuft über dieses Shield. Dazu muss eine serielle Datenübertragung (SPI) zum shield stattfinden. Ein Nadelöhr für die Daten und zusätzlicher Rechenaufwand für die Hardware.
Alles in allem funktioniert es aber gut, der Ardunio kommt hier nicht an seine Grenzen.
Der Innenraum CAN-Läuft auf 125kbit, es gibt auch Netzwerke die laufen mit 1mbit, fraglich ob der Arduino hier mithalten könnte, diese Netzwerke sind im KFZ aber auch nicht zu finden.
Für den Einsteiger halte ich den arduino eindeutig für das bessere Modell...
Der Microchip in der China Box hat einen integrierten CAN-Controller, hier ist der CAN-Bus also fast direkt an den Prozessor gekoppelt und somit wesentlich leistungsfähiger. Diese Leistung benötigt man aber nicht...
Der Preis von 15 Euro ist unschlagbar, da bekommt man hier kaum das Gehäuse für. Allerdings muss man jemanden finden, der einem die Kiste erstmalig programmiert, oder man gönnt sich sinnvollerweise selbst ein PicKit3 für etwa 40 Euro...
Die Programmierung von dem Microchip ist wesentlich komplizierter.
Im Arduino schreibt man
Code:
Serial.println("Hello World"😉
und der Computer empfängt den Text vom Arduino.
Bei dem Microchip muss man erstaml definieren, auf welcher Geschwindigkeit die CPU eigentlich läuft, dann muss man sich überlegen, wie man die Baudrate definiert usw.
Das gleiche Ergebnis benötigt hier so viel CODE:
Code:
Open1USART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE &USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 16);
printf("Hello World"😉;
while(Busy1USART()); // Check if Usart is busy or not
Alles muss vorerst genau definiert werden.
Wenn man mal in die 600 Seiten Handbuch schaut, weiß man auch endlich was man dort alles definieren kann.
Alleine schon, dass der Chip richtig in der Box läuft, Eingänge Ausgänge Quarz, alles dies muss genau definiert werden.
Code:
#include <p18f25k80.h>
#include "UARTIntC.h"
#include "delays.h"
#include <usart.h>
#include <stdio.h>
#include <stdlib.h>
#pragma config RETEN = OFF //RETEN: VREG Sleep Enable bit 1 = Ultra low-power regulator is disabled 0 = Ultra low-power regulator is enabled
#pragma config INTOSCSEL = HIGH //LF-INTOSC Low-power Enable bit 1 = LF-INTOSC in High-Power mode during Sleep
#pragma config SOSCSEL = DIG //DIGITAL MODE??RC0 RC1?I/O Secondary Oscillator
#pragma config XINST = OFF //Extended Instruction Set Enable bit
#pragma config FOSC = HS1 //Set to external oscillator 1 HS 4 to 16mhz
#pragma config PLLCFG = ON //PLL x4 External Oscillator multiplied by 4
#pragma config FCMEN = OFF //Fail-Safe Clock Monitor Enable bit
#pragma config IESO = OFF //Internal/External Oscillator Switchover bit 1 = Two-Speed Start-up is enabled
#pragma config PWRTEN = OFF //Power-up Timer Enable bit 1 = PWRT disabled CPU starts direct
#pragma config BOREN = SBORDIS //Power Brown out reset
#pragma config BORV = 3 //Brown-out Reset Voltage bits 2.7V reset
#pragma config BORPWR = ZPBORMV // Brown-out Reset
#pragma config WDTEN = OFF //Watchdog Timer Enable bits
#pragma config WDTPS = 64 //256ms ???? LF-INTOSC Watchdog Timer Postscale Select bits
#pragma config CANMX = PORTB //CANMX: ECAN MUX bit 1 = CANTX and CANRX pins are located on RB2 and RB3; 0 = CANTX and CANRX pins are located on RC6 and RC7
#pragma config MSSPMSK = MSK5 //MSSPMSK: MSSP V3 7-Bit Address Masking Mode Enable bit 1 = 7-Bit Address Masking mode is enabled; 0 = 5-Bit Address Masking mode is enabled
#pragma config MCLRE = ON // Master Clear Reset (MCLR)
#pragma config STVREN = OFF //(Stack Overflow ResetEnable)
/* UART Global variables */
char message; // Used for receiving commands from the computer
void main(){
Open1USART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE &USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 16);
printf("Hello World"😉;
while(Busy1USART()); // Check if Usart is busy or not
}
Dies sind nur die Grundeinstellungen um die Meldung zu senden.
Wenn alles dies vorbereitet ist, brauchen andere es nur noch zu kopieren und können nahzu genauso leicht einfache Funktionen hinzufügen wie beim Arduino. Es muss aber große Vorarbeit geleistet werden.
Ich habe zum Beispiel aus dem Datenblatt suchen müssen wie ich die CPU auf 16mhz eingestellt bekomme obwohl nur ein 4mhz Quarz verlötet ist:
#pragma config FOSC = HS1 //Set to external oscillator 1 HS 4 to 16mhz
#pragma config PLLCFG = ON //PLL x4 External Oscillator multiplied by 4
Diese Zeilen aktivieren den externen Quarz und multiplizieren dessen Frequenz um das 4 fache, also auf 16mhz.
Was ich damit schildern will, das ist enormer Aufwand.
Ich mache dies nur hobbymäßig und komme momentan nicht dazu alles vor zu bereiten.
Zusätzlich gibt es noch arge Probleme aus dem Maschinenraum
Hallo Dr_V70
na das ist doch genau die klare Aussage die ich gesucht habe.
Der Ansatz der Box (ELM 327) ist wohl gut.
Aber besser für ebenfalls Open Source halte ich den Arduino dann doch.
Wieso erweitern wir nicht die Aktivitäten auf dieses System?
Die 70 € sind immer noch besser als >200 € für die Erweiterungsbox.
Weiterhin hast Du am Arduino den Vorteil, dass weitere 6 Analog Eingänge vorhanden sind, welche sich zusätzlich als Diagnose der 5 V versorgten Sensoren und Aktoren im Fahrzeug verwenden lassen und somit weitere Diagnose und Monitoring Möglichkeiten vorgehalten sind!
Die Displays zum Arduino bekommt man doch recht günstig! :-)
Gruß
dossidr
Das mit der Funktionserweiterung auf dem Arduino finde ich gut 🙂
Bin nur nie so weit gekommen, da mir die paar Funktionen immer genügt haben und ich den Rest für Kleinigkeiten hielt, die man nicht unbedingt braucht.
Eingefügt werden können sollten diese aber schnell...
Ich habe mich mehr mit dem Lesen und Schreiben von Software der jeweiligen Module über den CAN-Bus beschäftigt, aber das ist ein ganz anderes Thema...
Einen Arduino zu nehmen hatte ich mir auch schon überlegt ( https://www.mikrocontroller.net/topic/329694#new ), aber die ELM haben natürlich den Vorteil, dass schon eine 12V KFZ-kompatible Stromversorgung dabei ist.
Mein ELM sollte hoffentlich bald kommen und einen PIC-Programmer haben wir sicher auf der Arbeit. Bin zwar an BMW statt Volvo interessiert, aber die Grundfunktionen sind ja die gleichen.
Gibt es schon ein Code-Repository?
Großartig Code für den PIC18f25K80 habe ich leider noch nicht gesammelt.
Habe noch nie mit Microchip gearbeitet, da haben mir die Definitionen am Anfang schon große Mühe bereitet.
Die stehen ja im vorherigen Beitrag.
Die Definitionen j1939.def für den CAN-Bus auf dem Chip können mit Maestro von Microchip gemacht werden.
Die library muss noch angepasst werden, die J1939.c aus diesem Thread lässt sich einwandfrei kompilieren.
http://www.microchip.com/forums/FindPost/758733
TinyPiC läuft als Bootloader soweit einwandfrei, so lange der Serial-Port nicht in Belegung ist, sonst kann das Programm keinen Reset durchführen. Ein Hardware-Reset ist nicht möglich, da die RTS-Line vom Serial Port nicht durchgeschliffen ist. Hier musste nur Assembler Code auf den externen Quarz mit dem Multiplikator angepasst werden.
Ehrlich gesagt, ich bin froh, dass sich in diesem Projekt endlich Leute an der aktiven Entwicklung beteiligen wollen. Im Vordergrund sollte CAN-Library, Serial-Port, und Bootloader stehen.
Dann kann diese Box für die Masse nutzbar werden. Genauso simpel wie ein Arduino.
An welchem Fahrzeug entwickelt wird spielt keine Rolle, können sicher auch noch viele andere nutzen. Volvo nutzt ein J1939 Protokoll mit erweiterter 8 Byte ID.
Hallo Thymythos,
habe eine .dbc aus dem E.... für Dich.
Möchtest DU diese haben?
Schicke Dir bei Wunsch eine PN oder Du lädst Dir diese aus der Cloud runter.
Damit stehen Dir zumindest die Botschaften in entschlüsselter Form zur Verfügung!
Der Arduino, ist denke ich auch die schönere Platform, da die analogen und weitere digitale Eingänge dabei sind.
Diese kann man dann für weitere Logger Funktionen oder alles was nicht auf dem Bus ist verwenden.
Gruß
dossidr
Hier hat schon jemand die Arduino IDE für PIC angepasst: http://www.pinguino.cc
Habe jetzt diesen BT-Adapter von Amazon: http://www.amazon.de/.../ref=oh_details_o02_s00_i00?...
Scheint soweit ganz gut verarbeitet zu sein. Der Dongle besteht aus zwei Platinen, eine für die Stromversorgung und Anbindung des OBD-II Steckers, auf der anderen ist der PIC und das Bluetooth-Modul.
Kompatibilität:
- Torque: erkennt den Dongle nicht
- TouchScan: hängt mein Nexus 4 komplett auf
- ScanMaster Lite: kann nicht mit dem Adapter reden
- OBD Auto Doctor: funktioniert einwandfrei
- BMWhat Lite: geht, aber laut Hersteller nicht alle Funktionen verfügbar
Laut http://www.mp3car.com/.../151584-bmw-e84-k-can.html kann man mit dem ELM327-Klonen auch gut den Bus mithören. Das werde ich als nächstes probieren.
Und noch ein paar Bilder. Man erkennt auf der oberen Platine die Testpunkte. Ich hoffe das sind die Programmier-Pins.
Die Test-Pins sind wie erwartet das Programmierinterface. Sogar in der gleichen Reihenfolge wie am PICKIT3. Leider kann man die Firmware nicht auslesen, aber für 6,-€ kann ich den Adapter mal überschreiben.
Auch interessant: http://www.mp3car.com/.../151584-bmw-e84-k-can.html
Hallo Thymythos,
na klingt doch super.
Bei 6 € kannst Du wirklich nichts falsch machen.
Bin mal gespannt.
Haben Dir die Daten weitergeholfen?
Gruss
dossidr
Und, gibt es was neues? Ich verfolge seit längerem das Thema hier...
Demnächst besorge ich mir ein Raspberry PI und versuche es zu einem Car-PC umzubauen mit OBD2 Auslesung usw.