-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
new SSM1 Definitions #31
Comments
Hi Osvaldo, please create a dump file of your ECU IDs:
After a while (max. 30s) a file named "dump.dat" will appear in your home directory. I'll get back to you as soon as I find time for it. |
Sent via email! Thanks!! Let me know how else I can help... |
Hi there. |
77 BB CA ist the ABS control unit, I can add this address with the right data into SSM1defs_ABS.xml the next days... As the Rom-ID A2 01 13 doesn't start with a 7x, any change in the SSM1defs_Engine.xml don't make a difference, as the ECU uses in addition to the RomID flagbytes which define the available functions. I can take care of ABS. |
Ah yes, Ax 0x xx IDs... As L1800Turbo already mentioned, these ECUs are using flag bytes. Can you please create a dump file (as described above) to find out if the current code works with your ECU ? |
Thanks to you both, Comer352L and L1800Turbo, for responding. I have sent you the data via email. Please ——Cheers, boffo |
Hmm... I have not received anything yet ?! The Linux driver for FTDI hardware (ftdi_sio) supports non-standard baud rates well, so I suspect Hterm is to blame. First step is to get the SSM1 ID request command working properly... |
Files were sent to the email address found in the credits window of FreeSSM, I couldn't find one on GitHub. The Linux ftdi_sio driver seems to works fine with the Python-Serial or the C++ Serial modules. But terminal programs like "socat" will not work, even when using ispeed and ospeed. With Hterm.exe in Windows it can connect to the ECU at 1953 baud rate. I can then send (in hex format) "00 46 48 49", to which the ECU will respond repeatedly (about 5-7 per second) with the ROM-ID. Also "00 46 48 50", or, "00 46 48 51" will give another set of numbers. Sending "12 00 00 00" or simply "12" will stop the data stream. ——Cheers boffo |
Nothing arrived.:(
Got it, thanks.
Maybe these programs use glibc functions to access/configure the serial port and you are facing this bug.
The 2nd method is deprecated now but still works with many drivers. It has the advantage of being able to predict the resulting baudrate exactly, taking baud_base value and divisior into account.
That's the expected behavior. The 4th byte is the number of extra data = flag bytes. Also: at least with some controllers, a set address command must be issued before the 0x00 command. Older ECUs didn't care about about bytes 2-4. Very old ECUs even accepted 3 bytes only. Can you please try the following command sequence: |
Computer bugs....hmm! , quite astounding how they can go on for decades.
That does seem how this ECU is behaving, a "78 xx xx 00" needs to be sent before the "00" commands work. Here is the response from : I have cobbled together a simple Python(Linux) script that connects to the ECU through the ftdi-rs232 module. It has absolutely no problem communicating with and sending commands to the ECU at the 1953bps baud rate, I still have to do a bit of work to do on the reading the response side of things. So at least we know that the hardware is all good to go in Linux. |
It's hard to fix, at least without breaking the existing API. Maintaining APIs for decades is not trivial, especially when the hardware it was initially designed for changes much during that time...
Does the requested address matter ? 78 12 34 00 work ?
What's the response to command 00 80 00 20 ? Don't send the xx 00 80 xx commands !
Ok, so this ECU sends up to the max. number of flag bytes it supports, even if more bytes are requested. |
Something to bear in mind, is that in the 1990s Australia was about ten years behind the rest world when comes to OBD-ii and pollution standards. Some of the sensors that are present in the EU & US models are not fitted to this model. e.i. the barometer and manifold vacuum, only one O2 sensor. ——Boffo |
Ok, so this ECU insists on 00 46 48 xx as flag byte request. I wonder if S****U was playing games with diagnostic tool manufacturers... |
Unfortunately I don't have more time today and likely also tomorrow. SSMP1base.cpp An additional message box will appear and (hopefully) display the flag bytes. |
This made me wonder as I didn't see it in the original SSM code.. Unfortunately I never finished the Axxx data cards, but this is a snippet from the Impreza '96 cassette:
The Original SSM actually seems to use 00 80 00 17 for flag byte requests. I didn't analyze the Legacy '97 cassette so far, although I don't expect big differences... |
Yes, thanks. I had a bit of trouble compiling the latest commits. Error messages about "Qscreen" in the files : About.cpp, FreeSSM.cpp. @L1800Turbo -- I didn't have time to check those addresses. Also, I notice that people blank out manufacturers names, is there something in the rules about not posting manufactures names on GitHUb ? Like "Don't mention the war" . ;-0 |
Yes, I have the original tools to find out details about the communication. |
I can confirm that 00 80 00 xx is used for the last SSM1 ECU/TCUs. And IIRC, other values didn't work (at least with the models I had tested).
Yes, but I don't think byte 4 is the problem here, because 0x49, 0x50, 0x51 seem to work, too. |
That's weird, because (according to what you have written above) the flag bytes should be F7 78 85 00 00 00 00 DC 00 F4 7F 40 00 80 00.
Something really went wrong, please restart from scratch. |
@boffo97 According to one of my testing protocols, a 1999 2.5 Legacy TCU for example sends its' 3 byte ID permanently after it has received the 00 80 00 00 command. |
@boffo97 |
Yes, sorry about the confusion. A2 01 14 is the ECU that I have been running the tests on, the 1997 Outback.
I used both Hterm.exe in Windows10, and use Python scripts in Linux with ftdi-rs232 usb-serial modules. Both return the same results. Other programs that sort of work are JECScan.exe and SelectMonitor.exe . On the compiling issue, I have re-done a complete git clone and also updated all the QT5 stuff on two computers; one is a desktop and the other is the laptop that is used to connect to the ECU. Both have the same problem. When I can get a chance, I will retry your suggestions. BTW, this is great work you are doing . I'm surpised that after all these years you are still active on this project, most give up after a couple. ——Cheers Boffo |
Fixed now. |
Yes, thanks, Comer352L, it has done the trick. 👍 Cheers. |
My system (XUbuntu 18.04.5) is using QT 5.9.. For it to work, I also
updated the file "About.cpp" line 105 : #if QT_VERSION < 0x050000 to
#if QT_VERSION < 0x051400.
Tested using XUbuntu 21.10(daily build), which installed QT 5.15.2, it
has no problem compiing . 👍
Urgh... that one slipped through my thingers, thanks !
Qt 5.9 is really old !
|
Hi, I'm having a similar problem, I compiled the master, but can't connect. My Rom ID is A3 01 11. Is there any news about this? Is there something I can do to help supporting these ECUs? |
Hi, I have a classic Impreza year 97 imported from Japan that has the yellow SSM1 plug.
I have the serial cable working properly but I'm getting that there are no definitions for it.
How can I help to create the definitions?
This is the info I got when trying the engine module:
Rom ID 0b04690101
System Type Unknown (A3 01 13)
Thanks!
The text was updated successfully, but these errors were encountered: