Welcome to the North American Subaru Impreza Owners Club Friday September 21, 2018
Home Forums WikiNASIOC Products Store Modifications Upgrade Garage
NASIOC
Go Back   NASIOC > NASIOC Technical > FA Series Factory 2.0L Turbo Powertrain

Welcome to NASIOC - The world's largest online community for Subaru enthusiasts!
Welcome to the NASIOC.com Subaru forum.

You are currently viewing our forum as a guest, which gives you limited access to view most discussions and access our other features. By joining our community, free of charge, you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is free, fast and simple, so please join our community today!

If you have any problems with the registration process or your account login, please contact us.
* Registered users of the site do not see these ads. 
Reply
 
Thread Tools Display Modes
Old 06-24-2018, 02:46 AM   #1
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default 2015+ Canbus Mapping Thread for RCP Track MK2

Mods, please move if this is not the right spot.

I currently own a RaceCapture Pro, which I use in another car. It provides telemetry data for the car. Autosport labs recently announced a RaceCapture Track MK2, an upgrade version of the MK1 which provides a remote GPS antenna and a second can bus channel.

I went ahead an placed my pre order, which should ship in early July. I'm stoke because the remote GPS receiver has a very high refresh rate: 1/5/10/15/20/50 Hz. Which is much better than any harry's laptimer or track addict app can provide on a cell phone; most cellphones are 1 Hz.

Additionally the second canbus network allows you to connect an AnalogX. This gives you the ability to add senders to the 2nd can network. EGT, Oil Pressure, etc. As long as the sender is a linear one.

Data is then streamed real time to a Android/Apple app, or can be sent through a RPi to a screen.

More info can be found here:

https://www.autosportlabs.com/produc...turetrack-mk2/

In any case, I'm starting this thread to document the mapping of the canbus. The goal is to reverse engineer the can ids for : TPS, Brake, Engine RPM, Coolant temp and Steering angle. Eventually over time, I'd like to map the some of the canbus datapoints: feedback knock, fine knock learn, afr, af correction 1, af learning 1, etc. I know this data has to be on the canbus, because this is likely where the AP is pulling the info from. No rush obviously, but would love to have this info all in once place.

If anyone else is trying to reverse engineer the canbus on the WRX, please post here.

My unit won't ship to after July 13th, so I won't update the thread until after that.
* Registered users of the site do not see these ads.
Boggie1688 is offline   Reply With Quote
Sponsored Links
* Registered users of the site do not see these ads.
Old 06-24-2018, 10:10 AM   #2
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Check out SubaruDieselCrew, RomRaider Forums and BtSsm for what you're after. All that you need is available already in some shape or form. We are monitoring and logging 30+ PIDs off 2015s+ at 50-80Hz.

The main question will be can you consume SSM PIDs or only OBDII PIDs?

Hopefully your device supports SSM-over-CAN else you'll be stuck with E-OBDII which is not well documented or reverse engineered yet for Hitachi ECU/TCU Subarus (most 2014+ USDM vehicles).

ActiveOBD and Torque allow for E-OBDII Mode 0x22 and 0x23 PID monitoring and logging so you cam use those to test or verify output.

All the data you're after (and then some) is exposed on the CAN bus via SSM and E-OBDII.

Last edited by Perscitus; 06-24-2018 at 10:16 AM.
Perscitus is offline   Reply With Quote
Old 06-25-2018, 01:03 AM   #3
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

It doesn't have ssm support. Someone has made a Arduino based ssm box that can retransmit the data on to a 2nd can network.

Well see what I decide to do when it get here.
Boggie1688 is offline   Reply With Quote
Old 06-25-2018, 07:12 AM   #4
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Yeah, with this device you'd need E-OBDII Mode 0x22 PIDs to be defined for the 2015s... and yes I think the AP uses a mix of SSM and E-OBD data (since some of the fields they expose are not found at any SSM addresses).

https://subdiesel.wordpress.com/generic/protocols/extended-obd-ii/
Perscitus is offline   Reply With Quote
Old 06-25-2018, 11:25 AM   #5
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Quote:
Originally Posted by Perscitus View Post
Yeah, with this device you'd need E-OBDII Mode 0x22 PIDs to be defined for the 2015s... and yes I think the AP uses a mix of SSM and E-OBD data (since some of the fields they expose are not found at any SSM addresses).

https://subdiesel.wordpress.com/generic/protocols/extended-obd-ii/
All the advance data stuff is a nice to have.

For me the must haves are :
Throttle
Rpm
Brake
Oil Temp
Coolant Temps
Oil pressure (analog sender)
Diff temp (analog sender)

All of the above is like found via obd.

The stuff I'd like to have as a cherry on top are:
Afr
Ethanol raw
Fbk
Fkl
Af correction 1
Af learning 1

I found the schematics for the ssm box. I'm also trying to get a hold of the guy who built it. Two forms exists here, find as much as I can via obd or build this ssm box and use the definitions found by the room community.

I'll keep you posted.
Boggie1688 is offline   Reply With Quote
Old 06-25-2018, 03:17 PM   #6
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Good luck. SSM box (or the use of a Tactrix OPv2 or OBDLink LX/MX) might be the way to go.

Throttle - SSM, OBDII and E-OBDII
Rpm - SSM, OBDII and E-OBDII
Brake - likely just SSM and/or E-OBDII
Oil Temp - OBDII and E-OBDII
Coolant Temps - SSM, OBDII and E-OBDII
Oil pressure (analog sender) - likely E-OBDII only (unless you re-use say TGV signal, then SSM too)
Diff temp (analog sender) - likely E-OBDII only (unless you re-use say TGV signal, then SSM too)

Afr - SSM, OBDII, E-OBDII
Ethanol raw - likely via another analog signal?
Fbk - E-OBDII only it seems
Fkl - SSM and E-OBDII
Af correction 1 - SSM, OBDII, E-OBDII
Af learning 1 - SSM, OBDII, E-OBDII

How about AF Correction / Learning #3?
Final Fuel Base, CL/OL Status/Flag, Load, IAT, IMT, Fuel Temp
Perscitus is offline   Reply With Quote
Old 06-25-2018, 03:41 PM   #7
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Quote:
Originally Posted by Perscitus View Post
Good luck. SSM box (or the use of a Tactrix OPv2 or OBDLink LX/MX) might be the way to go.

Throttle - SSM, OBDII and E-OBDII
Rpm - SSM, OBDII and E-OBDII
Brake - likely just SSM and/or E-OBDII
Oil Temp - OBDII and E-OBDII
Coolant Temps - SSM, OBDII and E-OBDII
Oil pressure (analog sender) - likely E-OBDII only (unless you re-use say TGV signal, then SSM too)
Diff temp (analog sender) - likely E-OBDII only (unless you re-use say TGV signal, then SSM too)

Afr - SSM, OBDII, E-OBDII
Ethanol raw - likely via another analog signal?
Fbk - E-OBDII only it seems
Fkl - SSM and E-OBDII
Af correction 1 - SSM, OBDII, E-OBDII
Af learning 1 - SSM, OBDII, E-OBDII

How about AF Correction / Learning #3?
Final Fuel Base, CL/OL Status/Flag, Load, IAT, IMT, Fuel Temp
Thanks for that!

Can I ask where you found it? Or was that just off the top of your head?

If it is available via obd, I may focus on that first. If I don't need a SSM box, it makes the install much more simple. The RCP Track MK2 only has two can bus networks. I need to use one to hook up an AnalogX, which allows me to add up to 4 analog senders.

I do have a RCP Pro, that has two networks and a GPIO array for analog senders, but it is already installed on my other car. I don't wanna swap them, if i don't need to.

All this matter because a SSM box would take up one of the can networks on the RCP Track MK2. Which means, I'd need to gather every data point from SSM. The second channel would not be used for OBDII because it would be then dedicated to the AnalogX.

In any case, all of this is just speculation till I get the RCP Track MK2 installed. Target ship date right now is July 13th.
Boggie1688 is offline   Reply With Quote
Old 06-25-2018, 03:47 PM   #8
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Oh one other question I was digging around and someone mentioned that SSM is only 8-10hz for datalogging. Is that true? The AP appears to be able to clear 65-80Hz. Makes me wonder if they are doing OBDII or EOBDII.
Boggie1688 is offline   Reply With Quote
Old 06-25-2018, 04:43 PM   #9
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Yup off the top of my head (sadly, been at this for toooo long).

SSM comes in two flavors (or at least used to until 2014 Model Year)
hence the source of the confusion....

SSM over K-line - likely about 10Hz (with just a few PIDs logged)
SSM over CAN - tops out >100Hz (depending on how many PIDs you log)

On the 2014/15+ Hitachi ECU Subarus (like the 2015 WRX), SSM over CAN monitoring and logging of the lower-precision non floating-point (the only available) 1-byte fields can easily hit 60Hz even with 30+ PIDs being monitored/logged.

TCU monitoring/logging via the same SSM over CAN channel hits >100Hz for 1-2 PIDs (say CVTF and Impeller or Turbine RPM).
Perscitus is offline   Reply With Quote
Old 07-20-2018, 12:38 PM   #10
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Quote:
Originally Posted by Perscitus View Post
Yup off the top of my head (sadly, been at this for toooo long).

SSM comes in two flavors (or at least used to until 2014 Model Year)
hence the source of the confusion....

SSM over K-line - likely about 10Hz (with just a few PIDs logged)
SSM over CAN - tops out >100Hz (depending on how many PIDs you log)

On the 2014/15+ Hitachi ECU Subarus (like the 2015 WRX), SSM over CAN monitoring and logging of the lower-precision non floating-point (the only available) 1-byte fields can easily hit 60Hz even with 30+ PIDs being monitored/logged.

TCU monitoring/logging via the same SSM over CAN channel hits >100Hz for 1-2 PIDs (say CVTF and Impeller or Turbine RPM).
Turns out I might be able to script ssm via can. I'm going to try when the unit gets here, which I think is next week.

This page has given me the packet structure: https://subdiesel.wordpress.com/gene.../ssm2-via-can/

Do you know where I can find a library of address to request and what they encode? And also the forumla to decode then? It seems like you might know.
Boggie1688 is offline   Reply With Quote
Old 07-20-2018, 12:47 PM   #11
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Would the LOGGER definition xml link be the right one? I kinda think it is, just want to confirm.
Boggie1688 is offline   Reply With Quote
Old 07-20-2018, 02:32 PM   #12
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Subaru diesel crew is a good resource and a bunch of positively twisted enthusiasts.

Im not too close to this anymore, but I think you should start with logger defs from RR forums, the generic and FA20DIT one... then maybe get the Tactrix brothers to help you establish the CAN SSM handshake, protocol basics, etc.

BtSsm developer would be of help too. Maybe you can use his app somehow.

http://www.romraider.com/forum/viewtopic.php?f=8&t=1642 (v336 logger defs, scan the XML for the protocol info in the header, most of the standard SSM params are fair game, trial and error in BtSsm or RRs logger when trying to get data back, I've built a few profiles for 2015s and 2016s before)

http://www.romraider.com/forum/viewt...hp?f=8&t=10701 (2015+ ECUID and generic PIDs)

Last edited by Perscitus; 07-21-2018 at 09:18 PM.
Perscitus is offline   Reply With Quote
Old 07-22-2018, 10:49 PM   #13
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Thanks!

I totally missed that 336 thread. I clicked on it, but the title said out of date and i completely ignored it. Those xml files have a bunch of formulas, which should prove to be helpful!

Thanks a ton!
Boggie1688 is offline   Reply With Quote
Old 07-27-2018, 05:30 PM   #14
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Quote:
Originally Posted by Perscitus View Post
Subaru diesel crew is a good resource and a bunch of positively twisted enthusiasts.

Im not too close to this anymore, but I think you should start with logger defs from RR forums, the generic and FA20DIT one... then maybe get the Tactrix brothers to help you establish the CAN SSM handshake, protocol basics, etc.

BtSsm developer would be of help too. Maybe you can use his app somehow.

http://www.romraider.com/forum/viewtopic.php?f=8&t=1642 (v336 logger defs, scan the XML for the protocol info in the header, most of the standard SSM params are fair game, trial and error in BtSsm or RRs logger when trying to get data back, I've built a few profiles for 2015s and 2016s before)

http://www.romraider.com/forum/viewt...hp?f=8&t=10701 (2015+ ECUID and generic PIDs)
Not sure if you are interested in the project or not, but I thought I'd share my progress.

I bought an arduino and can shield to tap into the ECU. I then found a library that was designed for ISO TP, multi frame can messaging. Unfortunately, programming skills suck and I can't figure out how to use the damn library. I screwed around with it a bit, and I got the car to freak out and throw check engine lights. I think I was flooding the can bus with packets, and the ecu threw the check engine light because it couldn't hear anything from the other devices. I also tested some of the Subaru diesel can maps, which proved to be totally incorrect. I guess the can address have changed for the 15+ WRXs.

In any case, I took a step back and decided instead of guessing what to do send, lets sniff what the accessport is sending out onto the bus. I taped the ODB can wires for my arduino, then connected the accessport. I set the AP to a single gauge requesting RPM, then made sure the datalogging parameters did not have anything besides RPM. Started logging can with the arduino, and connected the AP.

I repeated the above steps by slightly changed my procedure each time:
1. RPM only
2. RPM TPS only
3. RPM TPS OilT Only
4. RPM TPS (cycle TPS nothing to WOT to nothing) only
5. RPM (started the car let it idle for 30 seconds turned it off) only

The fruits of my labor thus far can be found here:


0x7E0 = Tester device (AP)
0x7E8 = ECU

Within the tester device packet, you can see the 2nd payload byte is the request length, and the 3rd payload byte is the read request. I'm still trying to figure out which bytes relate to which engine parameter: rpm, tps, oilt, etc. I'm going to do more logging this evening with different parameters and see how that changes the tester device packet.

Within the ECU response packet, you can see the 2nd payload byte is the response length, and the 3rd payload byte is the confirmation of the read request. We see a 0x08 shift added to the read request byte. A8->E8. Decipher the response packet has been easier, although I have yet to request enough engine parameters to reach multi frame responses. So, we'll see what happens when I request more than 3 parameters.

Right now my biggest problem is identifying the address of each request parameter. If you look at the tester device packet, the requested byte length doesn't match up well with the address requested.

RPM packet says 8
RPM/TPS packet says 11
RPM/TPS/OilT packet says 17

There is suppose to be a 00 padding following the A8 byte. For the RPM only packet, 8 seems right. But when you look at the subsequent RPM/TPS or RPM/TPS/OilT the bytes no longer add up to the requested byte length. Scratching my head on this one. Hopefully changing the parameters around will shed some light on this.

I still need to figure out how to send a multi frame requests on my Arduino. If you know anyone that can help, it would be appreciated. Otherwise, I might try to stick to just sending multiple single frame requests. Hoping that nothing I request has an address greater than 4 bytes.

Last edited by Boggie1688; 08-02-2018 at 12:24 AM.
Boggie1688 is offline   Reply With Quote
Old 07-28-2018, 11:48 PM   #15
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Good progress! As I mentioned before, you might want to reach out to Tactrix OP guys or the BtSsm lead developer - they've been down this path before and/or join and post up in the appropriate section of RR forums.

From the XML defs, consider the details I highlight here... especially the SSM-over-CAN protocol details, the ECU sample field (RPM, byte count, etc, notice target=1 to give it away as an ECU field), vs ATF/CVTF temp TCU field (target=2, 1 byte vanilla field).

Luckily with the simpler Hitachi ECUs on the newer cars, the logger fields are all 1-byte int8/16 fields. Older Subarus had a mix of these and some 2-byte, 4-byte and floating point precision fields. And yes, you will not see anything north of 4-bytes per field.
The logging payload itself, depending on how you set things up take up some real estate, but the ECU should easily allow up to ~20 odd fields to be monitored/logged continuously and concurrently without causing any CAN bus hiccups or ripples.




Perscitus is offline   Reply With Quote
Old 07-29-2018, 10:45 PM   #16
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Its weird, some of those formulas work and others don't. I'm not sure what is going on. For example RPM appears to be x/5 not x/4.

The temp for coolant formula works, 32+9(x-40)/4 but that same def shows that for oil temp, which doesn't work at all.

GRRRRRR. I guess they are freebies so I shouldn't complain.

Thus far, I've confirmed RPM, Coolant, AF Learning, AF Correction, AFR. Some of these parameters I can pull direct from the can bus without ssm. I'm not sure how many I can pull without overloading the bus either.

The datalogger gets here tomorrow. I'm sure it will take a day to confirm everything is playing nice together.
Boggie1688 is offline   Reply With Quote
Old 07-30-2018, 08:33 AM   #17
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

That sounds about right. These are SSM PIDs exposed over CAN (so its no surprise you can sniff/scrape them off the bus). Some do not return values or meaningful data for specific engine/MY combos or for Hitachi ECU based 2014+ Subarus (like the current-gen WRX)... Engine Oil temp is one of those.

It's gone to E-OBDII Mode 0x22 and 23 la la land on these. Older Denso-based Subarus have this data exposed under the SSM PID youll see in the XML, just not these newer Hitachi-based cars.
Perscitus is offline   Reply With Quote
Old 07-31-2018, 07:23 PM   #18
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

So I've got alot of it done, and tested it against the datalogger. It all works.

I'm having issues figuring out the formula for the following:
Boost
Target Boost
Oil Temp
Intake Manifold Temp
Requested Torque
Calculated Load
Fuel Pressure
DAM (never moves)
Fine Knock Learn (never moves)
Feedback Knock (i got this one to give me 1.41 by turning the AC on , but can't figure out the formula)

Any chance you would have an idea? I searched through all the definitions and none of them seem to work. Alternatively, do you know a good way to derive formulas yourself?
Boggie1688 is offline   Reply With Quote
Old 07-31-2018, 08:27 PM   #19
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Good goood logging padawan. The SSM over CAN bus force is strong with you.

There is actually a very prosaic reason why some of those PIDs don't change or work for you - they are no longer available via SSM on Hitachi ECU/TCU Subarus - only via E-OBDII Modes 0x22, 0x23.

Examples: FLKC, Boost Target, Intake Manifold Temp, Fuel Pressure (LPFP, HPFP), Engine Oil Temp.

APs must packet sniff them off the CAN bus using E-OBDII PIDs.

I will update this post later with some screencaps of what should work and formulas for a few of the ones that have changed.

I built this list for non-AP (stock or tuned using any solution) monitoring and logging of newer Subarus (USDM, JDM, ADM, EDM) back in 2014/15 in collaboration with the BtSsm developer.
Perscitus is offline   Reply With Quote
Old 07-31-2018, 09:47 PM   #20
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

OH INTERESTING!!

I seriously killed hours trying to make heads or tails from the packets I sniffed. I specifically set the AP to one parameter; IE oil temp and then sniffed the bus. I definitely got packets with information inside of them so naturally I just went to work on figuring out which byte would be relevant and how to convert it to a meaningful value.

Thanks a bunch!!!
Boggie1688 is offline   Reply With Quote
Old 07-31-2018, 11:37 PM   #21
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Hope this helps... most of these are fair game for FA20DIT, some generic formula samples... I need to connect up to the car to share the updated FKC, Total Timing, IAM/DAM formulas.

https://legacygt.com/forums/attachment.php?attachmentid=267601&stc=1&d=1533093 884.jpg
https://legacygt.com/forums/attachment.php?attachmentid=267602&stc=1&d=1533093 884.jpg
https://legacygt.com/forums/attachment.php?attachmentid=267603&stc=1&d=1533093 884.jpg
https://legacygt.com/forums/attachment.php?attachmentid=267604&stc=1&d=1533093 884.jpg

https://legacygt.com/forums/attachment.php?attachmentid=267605&stc=1&d=1533094 090.jpg
https://legacygt.com/forums/attachment.php?attachmentid=267606&stc=1&d=1533094 090.jpg
https://legacygt.com/forums/attachment.php?attachmentid=267607&stc=1&d=1533094 090.jpg
https://legacygt.com/forums/attachment.php?attachmentid=267608&stc=1&d=1533094 090.jpg
Perscitus is offline   Reply With Quote
Old 07-31-2018, 11:55 PM   #22
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Thanks, I'll take a look at them here shortly. I'm kinda burnt out for today. I'm going to load these into the data logger and just at it for awhile.

In any case, I thought I'd share this for you and anyone else interested.


First sheet, is every can packet that needs to be sent to log the parameters listed on the side. There are two sections there without coloring, the first one I have no idea what it is. I think it might be Ethanol Final, the second one might have been Oil T. I forgot if I selected that or not.

More importantly, the second sheet has the response packets you will see when sending the first sheets list of can packets. I've highlighted which byte equals which value. I mapped the position on the right of the each logged parameter. I'll update the sheet later to include the formulas when I finalize it.

Also for all of this to work, I believe there is two can packets you need to send to the ecu to put it into a mode where you can start querying information. I'll post all of that when I'm done done.

Thanks for the help man. Its been hours of staring and developing strict testing methodology. I'm on the last leg, and it feels great.

Last edited by Boggie1688; 08-02-2018 at 12:25 AM.
Boggie1688 is offline   Reply With Quote
Old 08-01-2018, 11:52 PM   #23
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

Weird issue.

If I push my packets used for 26+ data points the ecu screams no and gives me zero data. If I bring down my requests to 15 is data points, the ecu gives me everything without any complaints.

I've decoded both the 26+ and 15 data points can packets. I can hook up my AP to requests the packets and my datalogger can simultaneously decode and record the responses. WEIRD.

In any case, I'll deal with the 26+ data points later. It was really everything a tuner would want to record for an etune. Figured it would be easier to just record everything constantly. I've settled for using the 15 data points on the day to day.

Here is a screenshot of everything in action. As far as I can tell, there is no delay.



I managed to decode intake manifold temp, fuel pressure, and I think ethanol percentage from the can bus!

All that I have left is boost, fbk, and fkl. The later two will probably be prove to be damn near impossible because I can't get the car to knock past -1.41. Even that is super rare. When I did get the car to knock, it was simulated by the AC condenser. I saw the byte jump from 0 to 255. To be safe, I'll set a formula that just displays some value greater than 0 if a byte greater than zero is detected.

I also tried manifold pressure via OBDII. Nothing comes up. It says it should be PID 11, but I don't get any data. Any ideas?
Boggie1688 is offline   Reply With Quote
Old 08-02-2018, 07:54 AM   #24
Perscitus
Scooby Specialist
 
Member#: 378214
Join Date: Jan 2014
Chapter/Region: Tri-State
Location: Blue Hole
Default

Nice work! Remember some of those fields might be E-OBDII and encrypted.

The simultaneous PID limit is a well known limitation. Just not discussed in this forum.
There is a payload limit on the request size and it varies ECU to ECU and MY to MY. Far worse in older mid-00s Denso-based Subarus.

Compounded by the payload difference of requesting a 4-byte floating point precision field vs a simple 1-byte uint8/16 field. (4 for the price of one).
On a 2015+ WRX you should be able to log ~30 concurrent PIDs, add or remove just one at a time to find the limit.

You do not want to log all or as many as possible for any meaningful log analysis or etuning needs.

What you will notice with time is the higher the payload, the more PIDs you force your logger to iterate through before writing a line or displaying data, the higher the logging latency and sometimes data will get out of sync. Not good for etuning needs.

There is also an inherent latency introduced by inspecting the packets and writing a log (even to a fast microSD card on a quad-core phone)... easily about 10ms.

Ideally you want to stay ~30-40Hz sampling rate for etuning needs, knowing 60Hz+ is optimal.
Do share the intake manifold temp PID details, I'll try it. Mem address, field lenght, formula, etc.

https://legacygt.com/forums/showpost...postcount=2085
https://legacygt.com/forums/showpost...postcount=2119

Last edited by Perscitus; 08-02-2018 at 11:00 AM.
Perscitus is offline   Reply With Quote
Old 08-02-2018, 03:40 PM   #25
Boggie1688
Scooby Specialist
 
Member#: 165955
Join Date: Dec 2007
Location: California
Vehicle:
2015 WRX Base
WRB

Default

I know that with the 27ish data requests, the AP is logging at 65hz. I assume my data logger can handle that as it is designed to handle 100 can bus maps. I just can't figure out why the ecu rejects my request for the 27 data points when I send the same exact can packets the AP sends but from the datalogger. I have a feeling it is a timing issue, but I'm not sure.

If I setup the AP to send the requests, aka hit logging for the 27 data points on the AP. My datalogger can decode the ecu replies no problem. I know the issues is on my send side.

As for the intake manifold temp, this was done on can bus. With a ssm request to the ecu. The subID of the can packet, and the payload byte position will change depending on how many request were send to the ecu. Formula is 32+9(x-50)/5, for F. As of right now, I am pulling zero information via OBD.

The challenge here is everytime I want a new data point, it changes the packets I send to request information. The relative positions change inside the set of packets I send to the ecu. And the relative position of the byte inside the response packets change as well. So each time, I need to remap the request packets to the ecu, and remap the reply packets.

I was thinking about making a spread sheet, where you can just select which data points you want, and it strings together the send packets and tells you which bytes to pay attention to in the return. Assuming I'm not lazy and stop where I am now.

Theoretically speaking, I should be able to do this for everything the AP can record. Of course, it will take a crap load more time. For now, I'm focused on boost, FBK, and FKL. I also need to wire up my analog senders into the datalogger.

Maybe after that, and a vacation, I'll come back and finish up mapping the rest of the data.
Boggie1688 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

All times are GMT -4. The time now is 12:04 PM.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by Searchlight © 2018 Axivo Inc.
Copyright ©1999 - 2017, North American Subaru Impreza Owners Club, Inc.