Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Subaru Community. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

  • »Retikulum« ist der Autor dieses Themas

Beiträge: 1 445

Registrierungsdatum: 3. März 2010

  • Private Nachricht senden

1

Freitag, 10. Dezember 2010, 20:07

Ssm Suite

Hi,

hat sich jemand schon mal dieses Projektangesehen? Ich finde das klingt sehr vielversprechend. Die Suite enthält zwei Programme (Lumberjack und SawMill) sowie eine .Net library für eigene Projekte ( :D ).
Lumberjack ist zum mitloggen von Daten gedacht während SawMill zum permaneten Auslesen von Daten gedacht ist, inklusive graphischer Darstellung.

Ich bin selber noch nicht zum testen gekommen, werd ich aber morgen nachholen =)

kleintoady

Fortgeschrittener

Beiträge: 353

Registrierungsdatum: 7. August 2009

Wohnort: Tuttlingen

  • Private Nachricht senden

2

Freitag, 10. Dezember 2010, 20:47

So werde ich auch tun :D

Bin mal gespannt.

Bei der Installation wird allerdings darauf hingewiesen, dass man den Quellcode ändern soll, wenns die Daten von der ECU holen soll und nicht von der im Programm fiktiven ECU.

toady

  • »Retikulum« ist der Autor dieses Themas

Beiträge: 1 445

Registrierungsdatum: 3. März 2010

  • Private Nachricht senden

3

Freitag, 10. Dezember 2010, 21:01

in der Readme (im Programmverzeichnis) wird das näher erklärt.

Die Anzeige ist scheinbar für Carpc optimiert, das lässt sich, ebenso wie die anderen Dinge (Com-Port...)in der datei "SawMill.exe.config" bzw "Lumberjack.exe.config" ändern

Ps. Die Änderungen sind nicht im Quälcode sondern nur in dem config-file zu ändern. Alles ganz harmlos :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Retikulum« (10. Dezember 2010, 23:51)


  • »Retikulum« ist der Autor dieses Themas

Beiträge: 1 445

Registrierungsdatum: 3. März 2010

  • Private Nachricht senden

4

Freitag, 10. Dezember 2010, 21:24

Habe die config gerade mal angepasst und dann den Rechner im Auto angestöpselt. Daraufhin hat er sich verbunden (immerhin) konnte aber nichts auslesen, es war immer wieder die Rede von "missing Parameters". Auf der Webseite wird da kurz drauf eingegangen:

Zitat

Missing Parameters - You may get dialog boxes that say that your ECU doesn't support one or more parameters. This is due to normal variations among Subaru ECUs. Unfortunately it is pretty tedious to fix them. You'll need to find the missing parameter in the logger.xml file, then find an equivalent that is supported by your ECU, and replace the parameter ID in the SawMill.exe.config file. I plan to add code to take care of this automatically, but I have no ETA. In the meantime, remember to back up your .exe.config file to a safe place before upgrading the software.


Muss ich morgen mal schauen, zu kalt, zu Dunkel draußen :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Retikulum« (10. Dezember 2010, 23:49)


Beiträge: 1 053

Registrierungsdatum: 12. Juli 2009

Wohnort: Winterberg

  • Private Nachricht senden

5

Samstag, 11. Dezember 2010, 10:34

Versuche herauszufinden, ob das Programm den Diesel überhaupt unterstützt !

Der Diesel hat eigene IDs, die nur die Diesel unterstützen, bzw viele nicht, die von den Benzinern gelesen werden können.

RomRaider fängt gerade erst an, sich mit den Dieseln zu befassen und steht am ersten Anfang. ECUFlash ist noch weiter entfernt vom "funktionieren"

Basiert dies Programm auf die bestehen Dokumentationen und Entwickelungen von RR, wirst du beim Diesel IMA noch nicht weit kommen

Gruss Sarah

  • »Retikulum« ist der Autor dieses Themas

Beiträge: 1 445

Registrierungsdatum: 3. März 2010

  • Private Nachricht senden

6

Samstag, 11. Dezember 2010, 13:37

Mir stellt sich grad die Frage wie die Kommunikation mit dem SSm-Protokoll überhaupt funktioniert. Da das FreeSSm den Diesel auslesen kann hab ich mir das Programm mal angesehen. Sieht man sich den Source-Code von FreeSSm (etwas versteckt zu finden auf der FreeSSM-website) an, könnte die Datei SSMP2communication.h darüber Aufschluss geben(siehe unten im ersten OT) wie die Kommunikation funktioniert. Hier heißt es beispielsweise: "bool readDataBlock(char padadr, unsigned int dataadr, unsigned int nrofbytes, char *data);" Die Übergabeparameter "padadr", "dataadr", "nroftbytes" und ein Pointer auf "data" passen aber meines Erachtens nicht zu den Parametern wie sie in der SSMprotocol2_def_de.cpp (siehe zweiter OT), enthalten sind. Diese Datei scheint die PIDs zu enthalten und definiert wie das SSm-Protokoll aufgebaut ist.

Hier mal die (wie ich find) wesentlichen Teile aus dem SourceCode von FreeSSM was die Kommunikation betrifft.

Auszug aus der "SSMP2communication.h"
welche für die Kommunikation zuständig zu sein scheint (aus Platzspargründen in OT):
Offtopic - Lesen auf eigene Gefahr

class SSMP2communication : public QThread, private SSMP2communication_core
{
Q_OBJECT

public:
enum comOp_dt {comOp_noCom, comOp_readCUdata, comOp_readBlock, comOp_readMulti, comOp_writeBlock, comOp_writeSingle, comOp_readBlock_p, comOp_readMulti_p, comOp_writeBlock_p, comOp_writeSingle_p};

SSMP2communication(serialCOM *port, char cuaddress = '\x0', unsigned char errRetries = 2);
~SSMP2communication();
void setCUaddress(char cuaddress);
void setRetriesOnError(unsigned char retries);

bool getCUdata(char *SYS_ID, char *ROM_ID, char *flagbytes, unsigned char *nrofflagbytes);
bool readDataBlock(char padadr, unsigned int dataadr, unsigned int nrofbytes, char *data);
bool readMultipleDatabytes(char padadr, unsigned int dataadr[256], unsigned int datalen, char *data);
bool writeDataBlock(unsigned int dataadr, char *data, unsigned int datalen, char *datawritten=NULL);
bool writeDatabyte(unsigned int dataadr, char databyte, char *databytewritten=NULL);

bool readDataBlock_permanent(char padadr, unsigned int dataadr, unsigned int nrofbytes, int delay=0);
bool readMultipleDatabytes_permanent(char padadr, unsigned int dataadr[256], unsigned int datalen, int delay=0);
bool writeDataBlock_permanent(unsigned int dataadr, char *data, unsigned int datalen, int delay=0);
bool writeDatabyte_permanent(unsigned int dataadr, char databyte, int delay=0);

comOp_dt getCurrentCommOperation();

bool stopCommunication();

private:
char _cuaddress;
comOp_dt _CommOperation;
QMutex _mutex;
QEventLoop _el;
bool _result;
bool _abort;
unsigned char _errRetries;
// Buffers for sending/recieving data:
char _padadr;
unsigned int _dataadr[256];
unsigned char _datalen;
char _snd_buf[256];
char _rec_buf[256];
int _delay;

void run();
bool doSingleCommOperation();

signals:
void recievedData(QByteArray rawdata, int duration_ms);

void commError();

};


Und hier der Auzug aus der SSMprotocol2_def_de.cpp. Hier ist jeder nur denkbare Sensor oder Schalter bis hin zum Lichtschalter aufgeführt (Auch ob der Russpartikelfilter gerade regeneriert !!!)
Offtopic - Lesen auf eigene Gefahr
/ Messwertbloecke:
_MB_defs_de
<< "1;1;1;1;00000F;00000E;Motordrehzahl;U/Min;/4;0"
<< "1;2;1;0;00000D;;Absoluter Saugrohrdruck;kPa;*1;0"
<< "1;3;1;0;00000C;;Gemischlernwert 2;%;-128/128*100;1"
<< "1;4;1;0;00000B;;Gemischkorrektur 2;%;-128/128*100;1"
<< "1;5;1;0;00000A;;Gemischlernwert 1;%;-128/128*100;1"
<< "1;6;1;0;000009;;Gemischkorrektur 1;%;-128/128*100;1"
<< "1;7;1;0;000008;;Kühlmitteltemperatur;°C;-40;0"
<< "1;8;1;0;000007;;Motorlast;%;/255*100;1"
<< "2;1;1;0;00001B;00001A;Vordere Lambdasonde Nr.2 Spannung;V;/200;3"
<< "2;2;1;0;000019;000018;Hintere Lambdasonde Spannung;V;/200;3"


... und so geht das ewig weiter.

Der fünfte Wert könnte die PID sein (?)



Sicher bin ich mir da nicht (ich hab mein OBD-Kabel auch erst seit gestern und konnt noch nicht viel testen). Zumal ich den Aufruf der SSMprotocol2_def_de.cpp noch nicht hab finden können. Wenn sich jemand besser mit C++ auskennt und da etwas Ordnung reinbringen könnte würde das enorm helfen. Meine C-Kenntnisse sind jetzt nicht so tiefgreifend, dass ich da überall durchsteige (zumal noch ein wichtiger Bestandteil der Kommunikation zu fehlen scheint). I

ch bin bisher immer in Deckung gegangen wenn jemand anfängt wild mit Pointern um sich zu schiessen :D :nixwieweg:

Beiträge: 1 053

Registrierungsdatum: 12. Juli 2009

Wohnort: Winterberg

  • Private Nachricht senden

7

Samstag, 11. Dezember 2010, 14:48

Mir stellt sich grad die Frage wie die Kommunikation mit dem SSm-Protokoll überhaupt funktioniert. Da das FreeSSm den Diesel auslesen kann hab ich mir das Programm mal angesehen. Sieht man sich den Source-Code von FreeSSm (etwas versteckt zu finden auf der FreeSSM-website) an, könnte die Datei SSMP2communication.h darüber Aufschluss geben(siehe unten im ersten OT) wie die Kommunikation funktioniert.


Das Protokoll ist gleich der Benziner.
Allein die ID der Messparameter (sowie entsprechend die Faktoren und Offsets) sind beim Diesel anders. Daher haben wir RomRaider dazu bringen können, die Diesel zu loggen.

Wenn du die ID Liste in SSM-Suite offen liegen hast, kannst du die Dieselparameter aus dem FreeSSM oder den RomRaider Diesel Logger Deffinitionen übernehmen und schon sollte es gehen

Teste mal die Kühlwassertemperatur und den Saugrohrdruck, sowie die Ansteuerung der VTG (Waste-gate-duty-circle X( )
Diese werde über Identische IDs, wie bei den Benzinern gelesen und sollten jetzt schon funktionieren

  • »Retikulum« ist der Autor dieses Themas

Beiträge: 1 445

Registrierungsdatum: 3. März 2010

  • Private Nachricht senden

8

Montag, 13. Dezember 2010, 20:32

sorry, doppelpost., Büdde löschen :s_dankeschoen:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Retikulum« (13. Dezember 2010, 20:44)


  • »Retikulum« ist der Autor dieses Themas

Beiträge: 1 445

Registrierungsdatum: 3. März 2010

  • Private Nachricht senden

9

Montag, 13. Dezember 2010, 20:40

Wenn du die ID Liste in SSM-Suite offen liegen hast, kannst du die Dieselparameter aus dem FreeSSM oder den RomRaider Diesel Logger Deffinitionen übernehmen und schon sollte es gehen


Genau so hatte ich das auch vor =) Zumindest war das der Plan bis mich ein Reifenschaden davon abgehalten das ganze näher zu testen, bzw davon, überhaupt Erfahrungen mit der Schnittstelle zu sammeln. Tja nun steht sich mein Wagen beim Subihändler die Räder eckig und wartet bis der neue Reifen da ist :(

Offtopic - Lesen auf eigene Gefahr


sowas passiert natürlich sowas immer irgendwo im nirgendwo, Handyempfang gibts keinen und an Bord ist nur dieses total nutzlose Reifenspray X(


Wenn er wieder fährt teste ich weiter. :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Retikulum« (13. Dezember 2010, 23:19)


Beiträge: 1 053

Registrierungsdatum: 12. Juli 2009

Wohnort: Winterberg

  • Private Nachricht senden

10

Dienstag, 14. Dezember 2010, 10:34

Offtopic - Lesen auf eigene Gefahr
Bist du mit dem platten Reifen weitergefahren, oder warum ist er so zerstörrt ?

  • »Retikulum« ist der Autor dieses Themas

Beiträge: 1 445

Registrierungsdatum: 3. März 2010

  • Private Nachricht senden

11

Dienstag, 14. Dezember 2010, 20:14

Offtopic - Lesen auf eigene Gefahr
notgedrungen schon (ca200m) das war der seltsamste plattfuss den ich je hatte :angst: . auf Auf Schnee war nichts davon zu spüren, auch beim Lenken nicht. Dann auf asphalt hat es sich angefühlt als wenn man schnee vor sich herschiebt (kein ziehen in eine Richtung oder dergleichen). Nach dem Abhauen der Schneebollen hinter den Rädern besserte sich das auch nicht (ich hab min. vier angehalten und hab mir sogar den Raum hinter den Reifen angesehen. Einen Platten hab ich aber nicht bemerkt (vielleicht hat das der schnee-matsch untergrund auch etwas kaschiert k.A) Jedenfalls trat das typische Ziehen in eine Richtung und das typische "wobbelnde" Geräusch erst 200m vor einer Siedlung auf (zum Glück hab ich die noch erreicht, Handyemfpang gabs nämlich nicht). Naja, und beim Aussteigen hab ich dann das Maleur gesehen. war alles sehr seltsam. Aber ein :thumbsup: an Conti, die haben den reifen so gebaut das sich eine schützende Gummischicht auf den Felgenrand legt und diese schützt. Die Felge ist absolut unbeschädigt, nichtmal nen Kratzer. Nur dreckig isse :) Ursache war überings, wie ich heut erfahren habe ein sehr kleiner, dafür sehr spitzer Gegenstand der zum schleichenden Luftverlust geführt hat. Hätte man es früher bemerkt hätte das ReifenSprayzeugs helfen können. Aber war halt nicht so

Beiträge: 1 053

Registrierungsdatum: 12. Juli 2009

Wohnort: Winterberg

  • Private Nachricht senden

12

Donnerstag, 23. Dezember 2010, 15:23

danke für die Mail, leider kann ich nicht direkt darauf antworten, wenn sie aus der Community geschickt wird und eine E-Mail -Addi von dir war nicht enthalten.

Aber:
Am Protokoll haben wir nichts geändert, nur die Deffintionen des RomRaiders durch die neuen IDs samt ihrer Addressen, sowie ein paar ECU-parameter (Interne-nicht-SSMIII relevante Messgrössen) hinzugfügt.

Also musst du dir nur die Deffintionen für den Diesel im "gelben Forum" herunterladen und die entsprechenden Diesel IDs (> ID90) in deine ID-Deffintionen übernehmen

Gruss Sarah