Subaru Forester Owners Forum banner

41 - 58 of 58 Posts

·
Registered
2003 Forester AT
Joined
·
88 Posts
I tapped the head unit ACC for one power source and the power window ON for the other. Any ACC source will work but you need to use an ON source that stays live through cranking. This was the easiest to set up, most certain method other than leaving it on permanently or pushing a manual switch before turning the keys. I leave my car parked for days at a time and run a parking mode dashcam so my battery drains while parked, I didn't want to leave the car for a week and have the Arduino slowly drain it too low due to being always on. My family also drive my car and they'd forget to push the button to turn it on if it was manual.

When powering the Arduino for testing you shouldn't need to use a battery or anything else, it can be powered over USB. Plug USB into your laptop before putting the keys in the car and it'll be ready to go once you start the car. I would recommend leaving the car-sourced power disconnected while testing, powering it only via USB.

The baud rate in Serial.begin(250000); doesn't have anything to do with the CAN signal rate or the car, it's the serial port communication rate from Arduino -> computer/laptop/etc. Connect to the Arduino via USB, open the Arduino software, set it to the correct serial port and open the serial monitor. Inside the serial monitor you can specify the baud rate your serial port will use. As long as the sketch and serial monitor specify the same rate, everything should work fine change both to be the highest option you can choose in the serial monitor.

To have the CAN signals retransmitted unmolested, comment out the entire if block (not just this line):
Code:
if ((canId == 0x02) && (buf[1] != 128)) {
Or if you aren't sure about that you can change that line in the sketch to this:
Code:
if ((canId == 0x02) && (buf[1] != 128) && (false)) {
That should ensure that the condition is never met so it skips all the scaling math. Setting the scaling coefficient to 1 could still alter the signal if your CAN signals are different to my AUDM one somehow, so it's preferrable to skip it all rather than do that.
Good call on the power sources. I'll probably try that and see how it goes, I do think it's the simplest way if it works. I definitely do not want any manual steps.

Ah, my mistake on the baud rate. I know a lot of these concepts in a vacuum but not necessarily applied to CANBUS or the arduinos.

Hoping to have enough time to do this project early next week and test things out.
 

·
Registered
2009 Forester XT
Joined
·
616 Posts
Discussion Starter #42
@Hired-Goon I've got 2 more questions - Do I have my CANBUS signal wires correct Red - CanH, Blue - CanL?

Next, on the original sketch, you identify the boards and pin number at the beginning, but should they both remain "CS", or does one have to be designated "SS" on the chip/slave select?

Sent from my E6910 using Tapatalk
 

·
Registered
MY03 Forester X
Joined
·
6 Posts
@Hired-Goon I've got 2 more questions - Do I have my CANBUS signal wires correct Red - CanH, Blue - CanL?

Next, on the original sketch, you identify the boards and pin number at the beginning, but should they both remain "CS", or does one have to be designated "SS" on the chip/slave select?

Sent from my E6910 using Tapatalk
Your wires seem to match my car as that's what I had. You can always try reversing the connections and seeing what happens, worst case you swap them back and restart the car. Make sure it's right on both the car and angle sensor sides.

If you're referring to "SPI_CS_PIN_Car", that's just a name of a variable which is passed in at "MCPCAN CAN_Car(SPI_CS_PIN_Car);" to set up the board that's using that pin. Chip/slave select mean the same thing. You could remove the variables all together and just pass in "MCPCAN CAN_Car(10);" and it'd still work.
 

·
Registered
2003 Forester AT
Joined
·
88 Posts
Quick update on the STI front, the VDC intrusion was a bit more pronounced last night, so I was able to take note that it seemed to only activate on left turns. I also learned that my scantool does indeed communicate with the VDC system to poll wheel speed sensor data, SAS output, yaw rate sensor output, etc. I'm surprised because it was a relatively inexpensive model I picked up to reset the SAS on our Hyundai.

I measured the SAS output lock to lock and got 463 to -447, so I don't think my steering is centered. Even though the SAS has been re-zeroed with the calibration technique, it obviously is still upsetting the system. The shop owner that installed the rack is saying the steering was "off one notch" when initially installed and when he tried to correct by adjusting at the steering knuckle it actually made the VDC response worse. He's saying to have the alignment rechecked. I think I'm going to just take matters into my own hands and try to zero out the tie rod ends and then re-center the wheel / knuckle and go from there. I'll probably need to get realigned after that anyway.

At any rate, I think my problem is more of a physical one which is sort of supported by the lack of many GR STIs with issues. However, I still plan to work on this project for the sake of learning. Plus, even if I don't have significant VDC intrusion assuming we can fix the mechanical issue, I'd still prefer to adjust back to what the car is used to seeing stock. Perhaps I'd otherwise have no issues on say dry pavement, but then maybe with slick roads from rain or snow maybe it would kick in prematurely.

Haven't gotten started just yet, too many immediate chores got in the way, plus I've been waiting on a different connector. The molex style connector I got was really a micro version meant for use on boards themselves. I got a Deutch-style 6 pin connector for good durability. I wish I could find a dead SAS I could cannibalize for the harness...
 

·
Registered
2018 FXT-T CVT / 2007 FXT 5MT
Joined
·
1,323 Posts
I'm sorry you've been struggling with this for so long. As reference I have a 2007 FXT which was the first year for VDC. I also have an 05 STI steering rack which is 15:1...I had the rack professionally installed but my installer never had any VDC issues with the rack and I continue to have no problems with the VDC system so if the theories of the VDC seeing different angles being off is the problem, they must have more aggressive VDC on the 2009s.

edit: Apologies disregard above as it seems only the Auto FXT Sports had VDC, my 5MT did not so my experience would not mirror yours.
 

·
Registered
2009 Forester XT
Joined
·
616 Posts
Discussion Starter #46
So I'm pretty sure my CANBUS shield(s) are toast, or I have 2 bad Arduino boards or both. I can only get info to transmit from shield to shield sporadically.

First, I flipped the input and output can wires in the car, and got info on the serial monitor to appear, but I think I was getting info on car side, and calculations didn't make sense (byte 0, byte 1, steering angle in and out were all over the place).

Next I separated the can bus shields onto 2 Arduinos, repinned them appropriately, and used example sketches from dfrobot to determine if my board(s) and shields were communicating. I found one combination of components in a certain direction that worked, although messages were not sent at the rate of 100ms as outlined in the sketch. I assume processing is fried.

I also found out that according to dfrobot, the power switch on the shields are to be "off" when powered through the Arduino or damage is risked to both components. Was unaware of this prior, and always ran them with the switch on.

Do these theories pan out? Wondering before forking over the cash to replace all three? THIS SUCKS!!!!

Sent from my E6910 using Tapatalk
 

·
Registered
2018 FXT-T CVT / 2007 FXT 5MT
Joined
·
1,323 Posts
With all this headache I can't help but wonder if it isn't best to just go back to the old rack
 

·
Registered
2009 Forester XT
Joined
·
616 Posts
Discussion Starter #48
With all this headache I can't help but wonder if it isn't best to just go back to the old rack
I agree and feel that way often, but the old one was rusted out at the hard lines, and this is the way I went at the time. Honestly though, the quicker ratio is awesome and is well worth it for the feel of the drive. All this work is just to get the light off on the dash . The car behaves perfectly fine with the traction control inoperable, I just want to have a safety net in case I push things a bit far.....

Sent from my E6910 using Tapatalk
 

·
Registered
2003 Forester AT
Joined
·
88 Posts
So I'm pretty sure my CANBUS shield(s) are toast, or I have 2 bad Arduino boards or both. I can only get info to transmit from shield to shield sporadically.

First, I flipped the input and output can wires in the car, and got info on the serial monitor to appear, but I think I was getting info on car side, and calculations didn't make sense (byte 0, byte 1, steering angle in and out were all over the place).

Next I separated the can bus shields onto 2 Arduinos, repinned them appropriately, and used example sketches from dfrobot to determine if my board(s) and shields were communicating. I found one combination of components in a certain direction that worked, although messages were not sent at the rate of 100ms as outlined in the sketch. I assume processing is fried.

I also found out that according to dfrobot, the power switch on the shields are to be "off" when powered through the Arduino or damage is risked to both components. Was unaware of this prior, and always ran them with the switch on.

Do these theories pan out? Wondering before forking over the cash to replace all three? THIS SUCKS!!!!

Sent from my E6910 using Tapatalk
I've been nervous about the same thing. Struggling a bit with my buck DC-DC converter which shouldn't be the case b.c the potentiometer just varies the resistance in the bridge or whatever (again I get the gist but not an expert)... I'm going to monkey with it a bit more with my multimeter, I think I may just be misinterpreting what I'm getting on the digital display for the converter. I do think you're right about needing to have the power switch set to off.

The worst part is all the shipping. If I get this project to work I might buy duplicates of everything in the future for the NEXT project so I don't duplicate shipping expenses every time haha.

With all this headache I can't help but wonder if it isn't best to just go back to the old rack

I agree and feel that way often, but the old one was rusted out at the hard lines, and this is the way I went at the time. Honestly though, the quicker ratio is awesome and is well worth it for the feel of the drive. All this work is just to get the light off on the dash . The car behaves perfectly fine with the traction control inoperable, I just want to have a safety net in case I push things a bit far.....

Sent from my E6910 using Tapatalk

Same theme with me, I'm not going back. Though my rack was one of the few STI racks that was NOT leaking, it still has almost 90k miles on it and the 13:1 rack feels way better. It's not even as much the ratio as the lack of "dead space" at the center.

I actually think if I can get the rack ends centered perfectly I might have less issues than the forester crew, but I still want to see this project through regardless, especially since I've already purchased everything and gotten started. I've benefited a lot from various forums over the years including this one, and I'm hoping to be one of the few that can help with questions on this type of fix in the future. 99% of the time I don't need traction control so worst-case scenario I'm with skirby and would just run the new rack with VDC disarmed. However, on the STI there's two available stages of traction control, and the intermediate one allows for brake vectoring without cutting throttle. I'd like to still have that option available to assist the limited slip diffs in keeping the correct wheel turning in low traction situations.
 

·
Registered
MY03 Forester X
Joined
·
6 Posts
Next I separated the can bus shields onto 2 Arduinos, repinned them appropriately, and used example sketches from dfrobot to determine if my board(s) and shields were communicating. I found one combination of components in a certain direction that worked, although messages were not sent at the rate of 100ms as outlined in the sketch. I assume processing is fried.
In my testing the Arduino was more than capable of outputting every car CAN bus message without any delays so if your one is having trouble there might be something off.
If you haven't already tried it, try using both boards to individually read the angle sensor data only, as connecting to a network with only one signal makes diagnosis a lot easier.
I also found out that according to dfrobot, the power switch on the shields are to be "off" when powered through the Arduino or damage is risked to both components. Was unaware of this prior, and always ran them with the switch on.
The power switch on the CAN shield switches on power from the DB-9 port. If you haven't plugged a power source into the CAN board's DB-9 port it shouldn't cause any damage. I haven't looked at the circuit diagrams but it would be the bridging of power sources that would cause issues from what I suspect so you might still be alright from this.

I've been nervous about the same thing. Struggling a bit with my buck DC-DC converter which shouldn't be the case b.c the potentiometer just varies the resistance in the bridge or whatever (again I get the gist but not an expert)... I'm going to monkey with it a bit more with my multimeter, I think I may just be misinterpreting what I'm getting on the digital display for the converter. I do think you're right about needing to have the power switch set to off.
For the buck converter I set mine to 7v using a multimeter then left it at that. It should be a set and forget exercise so what's going on with it?
I mentioned it a few posts ago but try disconnecting the buck converter/car power and just power the Arduino through USB - this separates powering the device from signal problems. I got my signalling set up and working fully before I worried about powering it from the car.
 

·
Registered
2009 Forester XT
Joined
·
616 Posts
Discussion Starter #51
@Hired-Goon In order to receive data from the SAS, can I connect right to it, or do I need to connect to the rest of the system and sift through all the can bus data? (I'm a little apprehensive toward the latter)

Also, would the example sketch from DFROBOT do it?

Sent from my E6910 using Tapatalk
 

·
Registered
MY03 Forester X
Joined
·
6 Posts
@Hired-Goon In order to receive data from the SAS, can I connect right to it, or do I need to connect to the rest of the system and sift through all the can bus data? (I'm a little apprehensive toward the latter)

Also, would the example sketch from DFROBOT do it?

Sent from my E6910 using Tapatalk
Your first question makes me think you're tapping the signals rather than intercepting them at the moment. This won't work as the original signals will still make it through to the VDC unit. The angle sensor must not have its data lines connected to the car CAN bus, cutting some wires or using an extra set of angle sensor plugs to intercept is required for this to actually work. So yes, connect the Arduino/CAN board directly to the angle sensor data lines and make sure those same lines are disconnected from the car network. The only signals on the CAN bus should be the messages from the angle sensor. The angle sensor still needs power and using the regular power line is fine for that. If you powered it from your own power source instead of the normal one you could even test this with the car turned off. Supply power to the sensor, read its output, car not involved.
If you end up needing to read from the entire network not just the sensor, you can apply masking during CAN init that restricts it to reading messages from a particular source. If you need help with that (you can't read the angle sensor separately) let me know.

If the example sketch you're using is the "Receiver" sketch at https://wiki.dfrobot.com/CAN-BUS_Shield_V2__SKU__DFR0370_, this should output every transmission on the network so it should be fine if you've only got it reading messages sent by the angle sensor.
 

·
Registered
2009 Forester XT
Joined
·
616 Posts
Discussion Starter #53
I cut the data lines long ago. I was just questioning if the angle sensor would put out info if not receiving any, if that makes sense. I'd have tried this method long ago if I knew it was that simple. I'll report back.

Sent from my E6910 using Tapatalk
 

·
Registered
2003 Forester AT
Joined
·
88 Posts
In my testing the Arduino was more than capable of outputting every car CAN bus message without any delays so if your one is having trouble there might be something off.
If you haven't already tried it, try using both boards to individually read the angle sensor data only, as connecting to a network with only one signal makes diagnosis a lot easier.

The power switch on the CAN shield switches on power from the DB-9 port. If you haven't plugged a power source into the CAN board's DB-9 port it shouldn't cause any damage. I haven't looked at the circuit diagrams but it would be the bridging of power sources that would cause issues from what I suspect so you might still be alright from this.


For the buck converter I set mine to 7v using a multimeter then left it at that. It should be a set and forget exercise so what's going on with it?
I mentioned it a few posts ago but try disconnecting the buck converter/car power and just power the Arduino through USB - this separates powering the device from signal problems. I got my signalling set up and working fully before I worried about powering it from the car.

It turns out the potentiometer must've been turned many turns past maxed out. I just hadn't turned far enough - I'd turned quite a bit and was actually concerned I would cause damage myself. I'll use the USB during testing but I've got the converter dialed in at 7V now as well.

I think I've got the box sorted and I've uploaded the modified sketch (scaling factor 1.15). I'm still trying to see if I can get OEM SAS connectors to avoid cutting. If not, I'll go ahead and dive in soon. The wiring is pretty tight inside the steering column area on my car, so I'd like to find connectors.

Planning to get another alignment soon to see if we can get the lock to lock angles evened out without messing up the toe in/out.
 

·
Registered
2003 Forester AT
Joined
·
88 Posts
@Hired-Goon I've got 2 more questions - Do I have my CANBUS signal wires correct Red - CanH, Blue - CanL?

Next, on the original sketch, you identify the boards and pin number at the beginning, but should they both remain "CS", or does one have to be designated "SS" on the chip/slave select?

Sent from my E6910 using Tapatalk
FYI looking through some diagrams on the12volt.com (website I used to use a lot for installing car audio components), they list the CanH and CanL wire colors as you described for Subarus of our vintage. I'm sure there are subtle differences between models etc but I don't think something like this would be different.

@Hired-Goon can you clarify, it does not technically matter where you tap into the CANBUS network does it? If every device on the network receives data from all devices (including itself?) and it just decides what's relevant and what's not, technically we could tap the network at one of these large connectors instead of at the SAS right?

I'm still hoping to find a way to get my hands on SAS male and female connectors (might have to buy a dash harness and a dead SAS) just for the sake of keeping things clean and easy, but if this does not work out I might be better off tapping elsewhere. Things are very tight at the steering column and frankly I don't know if I have room to get in there to cut and crimp.

 

·
Registered
2009 Forester XT
Joined
·
616 Posts
Discussion Starter #56
FYI looking through some diagrams on the12volt.com (website I used to use a lot for installing car audio components), they list the CanH and CanL wire colors as you described for Subarus of our vintage. I'm sure there are subtle differences between models etc but I don't think something like this would be different.

@Hired-Goon can you clarify, it does not technically matter where you tap into the CANBUS network does it? If every device on the network receives data from all devices (including itself?) and it just decides what's relevant and what's not, technically we could tap the network at one of these large connectors instead of at the SAS right?

I'm still hoping to find a way to get my hands on SAS male and female connectors (might have to buy a dash harness and a dead SAS) just for the sake of keeping things clean and easy, but if this does not work out I might be better off tapping elsewhere. Things are very tight at the steering column and frankly I don't know if I have room to get in there to cut and crimp.

Actually if I fully understand, you must interupt the CANBUS wires between the SAS and the rest of the system. Your CanBus shields are not "connected" to each other, rather one simply receives (from the SAS), and the other replaces that info with revised scaling, acting as the replacement SAS. The flow is as follows:

SAS->receiving shield->Arduino scaling->sending shield->CanBus network

Sent from my E6910 using Tapatalk
 

·
Registered
MY03 Forester X
Joined
·
6 Posts
Skirbykat's correct, the SAS must not be connected to the car network. You can tap the car network anywhere, but the SAS must not be part of that network. The Arduino sits between the SAS and car network.
I damaged my SAS somehow during the rack swap and picked up a replacement at a pick-it-yourself wrecker for cheap. I grabbed the car-side plug while I was in there giving me a full set of plugs to work with. I've never managed to find anywhere that can supply the plugs directly.
 

·
Registered
2003 Forester AT
Joined
·
88 Posts
Gotcha, that makes sense now that you guys explain it. We can't get the rest of the network "hear" what the SAS is saying without it being corrected first.

Ah yes, my life would be so much easier if we had more "pick-a-part" lots. There seem to be fewer and fewer around in the US. I think a lot nearby allows for this, maybe I can do the same thing you did. I suppose there wouldn't be much retail demand for these connectors on the whole.

The local dealership notified me they will not perform an alignment because of the steering rack. Good times. Suits me, I've actually had neutral to negative experiences with Subaru dealerships on the whole, to the extent I am reluctant to purchase another one. Luckily there's strong third party support out there.

I think I'm going to revert to my old alignment plan. If I adjust tie rod ends precisely the same amount on both sides, it shouldn't significantly mess up my toe settings. If I can do that enough to require about 8 degrees of steering wheel correction (per uncorrected SAS data output) to have the wheels pointed straight, then I should be in good shape after hopping 1 or 2 splines on the intermediate shaft to recenter the steering wheel. Thereafter I'll find out if my device is capable of zeroing the SAS (it does for our Hyundai but the Subarus seem more finicky), as well as whether my VDC intrusion persists.
 
41 - 58 of 58 Posts
Top