Page 1 of 2

Adding ALDL to ELM protocol - What have I done!

Posted: Fri Sep 17, 2021 8:05 pm
by Tazzi
With the development of the latest OBDX tool and a new manufacture bringing it to light, I have been motivated to finish the development of the ELM side for all protocols.

In saying that, I cannot explain the absolute hate I have for ELM cables and its protocol. The literally tears and blood them f*ing things have caused from day dot. They have single handedly shortened my life spam, I know it. Then topping them off with only supporting string commands which was the absolute most inefficient way for transferring data from app to tool. But as much shit as I give them, they were a simple starting point back when I barely understood the difference between a string and bytes, and are great for beginners.

So this now leads us to a first with ELM protocol standards, implementing ALDL. It both hurts and pleases me to show the below image of an OBDX setting up ALDL and sending a simple ALDL frame (01 00) to request diagnostic data from an VY BCM.
ELM_ALDL_Demo.PNG
ELM_ALDL_Demo.PNG (17.46 KiB) Viewed 3707 times
For those wondering what the commands are.. we have:
AT I (Request ELM name)
AT @1 (Request OBDX name)
AT SP F (Set protocol to F = ALDL)
01 00 (send ALDL frame request of F1 57 01 00 B6)
01 00 11 FB ... (BCMs response frame)
AT H1 (enable headers so we see full frame)
01 00 (Send same frame again)
F1 75 01 00 11 FB (BCM response with headers on)
ATMA (monitor all live data)
..all bus data after this.

For those technically inclined, the length byte and checksums are automatically calculated and put into the frame. And the response also has its header, length and checksum bytes removed as its all validated by the tool before sending to the user. Oh and the echo is also ignored too.

The single downfall with the basic setup is if someone was to filter for a frame such as the VT-VZ heartbeat (08 55 A3), this frame would not be displayed because that is a no data payload frame (08= header, 55=length, A3=checksum). This is the equivalent of a VPW frame with no payload (6C 10 F1 XX) where XX is the checksum and first three bytes are the header, technically the ELM does not show this to the user with default settings.

This can be over-ridden by enabling headers to get the full frame sent, but regardless I now understand why the ELM developers did what they did for all other protocols in the attempt to try make it as easy as possible for the end user.

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Fri Sep 17, 2021 9:15 pm
by ironduke
Elm is the arduino of obd tools.. Definitely nice to get started, I learned a lot from using an elm and I still am.. Very easy to use with a serial terminal tool like termite. Definitely opened some doors.. lol..

I did stop work with the elm myself because I managed to get the gm mdi to work. I have a few of those and it is so much easier communication wise once you learn how to connect with it...

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Mon Sep 20, 2021 1:49 pm
by Tazzi
ironduke wrote:Elm is the arduino of obd tools.. Definitely nice to get started, I learned a lot from using an elm and I still am.. Very easy to use with a serial terminal tool like termite. Definitely opened some doors.. lol..

I did stop work with the elm myself because I managed to get the gm mdi to work. I have a few of those and it is so much easier communication wise once you learn how to connect with it...
I love working with specfic J tools. Unfortunately they are not all equal, and also don't all respond identical as they should as per SAE, but in general its my go to with all my current commercial software.

I do look forward to migrating to obdx tools fulltime since Im sick of updates from 3rd party scantools which end up causing problems :roll:

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Mon Sep 20, 2021 9:35 pm
by antus
Tazzi, you sick sick man! I dont know whether to laugh or cry. But I do understand the undeniable urge to do something you shouldn't when you know you can with technology.

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Mon Sep 20, 2021 11:16 pm
by monaro308
Can't believe this was back in 2014.
You were ELMing your way then.
elm.JPG

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Tue Sep 21, 2021 9:54 am
by Tazzi
antus wrote:Tazzi, you sick sick man! I dont know whether to laugh or cry. But I do understand the undeniable urge to do something you shouldn't when you know you can with technology.
Most certainly a "Hold my beer" moment :lol:
monaro308 wrote:Can't believe this was back in 2014.
You were ELMing your way then.
elm.JPG
yeeeeeeeeeeeeeeeeeeeeeep thats going back some time now! Man how time flys!

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Wed Sep 22, 2021 11:37 am
by Holden202T
we've all been playing this game for far too long now Tazzi ;)

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Thu Sep 23, 2021 7:46 pm
by The1
yeh i looked at ELM originally with vz tool and backed out pretty quick for J2534 lol, your a legend sticking with ELM as long as you did.

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Sat Oct 02, 2021 10:12 pm
by mattyjf01
Nice
I went a bit backwards Arduino J2534 then Elm

Does it support SW-CAN?

Re: Adding ALDL to ELM protocol - What have I done!

Posted: Sat Oct 02, 2021 10:40 pm
by ironduke
mattyjf01 wrote:Nice
I went a bit backwards Arduino J2534 then Elm

Does it support SW-CAN?
It can with a little bit of work.. If you wire up 14 to gnd and pin 6 to pin 1 then define a custom protocol at 33.3k then it seems to work fine. I didn't get it to wake up the gmlan data line though, it was a few years ago but I remember needing to jump pin 1 to voltage to wake up modules, then use the elm327 to talk on it.. or if I had the key on it would work just fine..

I'm not sure where it is but I did the pin wiring with a double pole switch at the end of the case so I could switch to high speed can or gmlan with the flick of a switch.. not automated though and couldn't talk to both at the same time.