Software On ELM Street - OBD2 Software Development
Re: ELM327 Software Development
huh... my power supply was too low (~6volts)... pumped it up to 12 and now it works.... thats reaaaallly odd.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Re: ELM327 Software Development
tweaked the setup, removed "timeout" and "baud timeout" parameters. And setup time is a cool ~170ms
Will be interested to see if removing those timeout parameters help out with setting up the 115200baud rate upgrade.
Code: Select all
[00:00:46:295] ELM Device Successfully Found!
[00:00:46:305] Requesting Fast 115200 Baud..
[00:00:46:313] ELM Device Accepted Baud Change Command, Checking Communications..
[00:00:46:386] ELM Device Sent ID frame..Responding with CR
[00:00:46:388] ELM Device Accepted Baud Change Command!
[00:00:46:389] Disabling Echo...
[00:00:46:393] Echo Disabled Successfully!
[00:00:46:394] Disabling LineFeed...
[00:00:46:398] LineFeed Disabled Successfully!
[00:00:46:399] Enabling Headers...
[00:00:46:403] Headers Enabled Successfully!
[00:00:46:404] Allowing Long Frames...
[00:00:46:407] Long Messages Enabled!
[00:00:46:409] Setting CAN 11Bit 500Kb Protocol...
[00:00:46:415] Protocol Set Successfully!
[00:00:46:416] Disable CAN Auto Format...
[00:00:46:421] CAN Auto Format Disabled!
[00:00:46:426] Setting CAN Error Format...
[00:00:46:431] CAN Auto Format Set!
[00:00:46:433] Setting Multiline Control header...
[00:00:46:438] CAN Multiline Control header Set!
[00:00:46:440] Setting Multiline Control data...
[00:00:46:446] CAN Multiline Control data Set!
[00:00:46:448] Setting Multiline Control mode...
[00:00:46:453] CAN Multiline Control mode Set!
[00:00:46:454] Setting CAN 11Bit Header...
[00:00:46:459] Custom CAN Headers Set: 7E0
[00:00:46:461] Checking Input Voltage..
[00:00:46:466] Voltage Found!
[00:00:46:468] Connection Established!
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Re: ELM327 Software Development
Too easy, Its now pulling vins correctly on CAN. Stupid flow control in the ELM wasnt setting up correctly.
Reading multiline frames are now 100% supported... now to just get writing multine frames so some dpid action can happen
Reading multiline frames are now 100% supported... now to just get writing multine frames so some dpid action can happen
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Re: ELM327 Software Development
Nope, I call B***sh*t on this.
Its physically not possible to fire off a multiline response from the elm327 so that the ecu can read it.
eg
7E0 10 13 XX XX XX ect
..right there is the problem, the 10 indicates its a multiline response.. but the elm will take that as a "length" byte.
And if I was to use the extended addressing (ATCEA) and make the 10 as the extended address.. then the actual multline frame length 13 will be used.. but because the 13 is larger than a standard message.. this causes the elm to respond "?".
From what I have read, and after attempting every possible solution. Its simply not possible on the ELM327. But on an ELM329.. it would be.. as unformatted messages can be sent by using a "." at the beginning.
A custom interface would need to be used. Maybe a CAN shield will do... hmm...
Either way, that brings us back to no DPID reading... will have to suss out how to request enhanced pids singularly.
I actually have a sneaky suspicion.. that the enhanced requests Iv done actually work.. but the first inital frame sent is a "7F" message.. but the following frame is the actual response.. this seems to be a common trend on these ecus as seen with the vin reading.
hmm.. more testing to do...
Its physically not possible to fire off a multiline response from the elm327 so that the ecu can read it.
eg
7E0 10 13 XX XX XX ect
..right there is the problem, the 10 indicates its a multiline response.. but the elm will take that as a "length" byte.
And if I was to use the extended addressing (ATCEA) and make the 10 as the extended address.. then the actual multline frame length 13 will be used.. but because the 13 is larger than a standard message.. this causes the elm to respond "?".
From what I have read, and after attempting every possible solution. Its simply not possible on the ELM327. But on an ELM329.. it would be.. as unformatted messages can be sent by using a "." at the beginning.
A custom interface would need to be used. Maybe a CAN shield will do... hmm...
Either way, that brings us back to no DPID reading... will have to suss out how to request enhanced pids singularly.
I actually have a sneaky suspicion.. that the enhanced requests Iv done actually work.. but the first inital frame sent is a "7F" message.. but the following frame is the actual response.. this seems to be a common trend on these ecus as seen with the vin reading.
hmm.. more testing to do...
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Re: ELM327 Software Development
mmmmm the advantages of using an avt
ill be working on my DPID adx soon

ill be working on my DPID adx soon

Re: ELM327 Software Development
*kicks ELM*.. stupid elm and its stupid inabilities to send messages...Jayme wrote:mmmmm the advantages of using an avt![]()
ill be working on my DPID adx soon
Looks like the crew making STN's still hasnt mastered the multiframe messages either.. they have been promising that for almost 2years lol.
hmmm the elm does have a mcp2551 on board.. all I need is to pick up a mcp2515 can controller..hijack the CAN line and implement our own solution

buuuuutttt thats for another time.
That significantly limits the CAN abilities on the elm.. oh well, will make so with what I got.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Re: ELM327 Software Development
huh.. looks like the VZ ecu saw the messages.. but they were invalid when I added the pci byte so were ignored.. kinda... its actually stopped the ecu communicating competely until I turned the power supply on/off.
eh... also means I cant reverse engineer the tech2 easily with the elms.
Bugger it, off to eagle it is to design something..
eh... also means I cant reverse engineer the tech2 easily with the elms.

Bugger it, off to eagle it is to design something..
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Re: ELM327 Software Development
Added support for VZ v6 (E55) fault code reading.
Im also trying to develop some cool gauges/controls as seen in the image. Any ideas/preferences are welcome!
Im thinking of making a digital gauge to add in there as well, and possibly a little vertical/horizontal bar chart.
And so that all these can be used effectively, I will/want to add a user selection box of all the supported PIDS so that any bar/chart/gauge can be used to view the pid. All of which can be moved around on the screen. I will also have to look into allowing for the screen size to increase to maximize possible displays
I just have to figure out how to tell which control is which programically.. somehow search for the title or a tag name? Something like this?
and when it comes to updating the control.. I guess something like this will be needed
I like the idea of flexibility with moving gauges around.. but whether this will simply be a pain or if it will actually be used is a whole other thing. It would allow only the desired values to be requested by the ECU which minimizes any wasted requests. I know personally, I would use the same setup most of the time.. so a memory feature would also be beneficial. Will update with the next version some time tomorrow.
Im also trying to develop some cool gauges/controls as seen in the image. Any ideas/preferences are welcome!
Im thinking of making a digital gauge to add in there as well, and possibly a little vertical/horizontal bar chart.
And so that all these can be used effectively, I will/want to add a user selection box of all the supported PIDS so that any bar/chart/gauge can be used to view the pid. All of which can be moved around on the screen. I will also have to look into allowing for the screen size to increase to maximize possible displays
I just have to figure out how to tell which control is which programically.. somehow search for the title or a tag name? Something like this?
Code: Select all
'User adds gauge
if comboboxgauges.selecteditems = customcontrols.gauge then
dim ThisPID as new gauge
thisPID.name = GaugePIDNAME
thisPID.tag = pid
thisPID.size = default
thisPID.location = default
thisPID.Moveable = true 'allow movement
ArrayControls() += thisPID 'save control in array so it can be edited,found,destroyed
end if
Code: Select all
'update all controls
For each control in ArrayControls
if control.tag = "pidname"
control.value = Cint( "&H" & ECUResponse(3) & ECUResponse(4))
Next
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

- Holden202T
- Posts: 10394
- Joined: Sat Feb 28, 2009 9:05 pm
- Location: Tenambit, NSW
- Contact:
Re: ELM327 Software Development
looks neat 

No matter what the question is, the answer is always more horsepower! 
Just starting out? Have a read of the getting started guide
Basic tuning of a delco ECM with $12P thread
Advanced tuning of a delco ECM with $12P thread

Just starting out? Have a read of the getting started guide
Basic tuning of a delco ECM with $12P thread
Advanced tuning of a delco ECM with $12P thread
Re: ELM327 Software Development
Now I have to generate a list of supported pids... for each protocol.. VPW is sorted I think. Ill need to add max/min values on each parameter so any help there will be appreciated.. Ill post up a list of PIDs... and hopefully someone can give me an idea of the "range" of these values so I can set max values for each gauge.
Also knowledge of the units would probably be useful as well.
The enhanced PIDs are not lost either! Pretty sure I can setup the DPIDs like so....:
7E0 04 2C F9 00 0C -> put revs into F9
Then I can fire it off like..:
7E0 02 AA F9
And.. I should get back:
7E0 F9 XX XX
Am going to give that a crack now.
Also knowledge of the units would probably be useful as well.
The enhanced PIDs are not lost either! Pretty sure I can setup the DPIDs like so....:
7E0 04 2C F9 00 0C -> put revs into F9
Then I can fire it off like..:
7E0 02 AA F9
And.. I should get back:
7E0 F9 XX XX
Am going to give that a crack now.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726

Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
