Nissan 370Z Forum

Nissan 370Z Forum (http://www.the370z.com/)
-   DIY Section (Do-It-Yourself) (http://www.the370z.com/diy-section-do-yourself/)
-   -   DIY: Replace dreaded steering-lock on 2009s and early 2010s. (http://www.the370z.com/diy-section-do-yourself/47181-diy-replace-dreaded-steering-lock-2009s-early-2010s.html)

kenchan 01-17-2012 11:30 AM

bump for those that PM'ed about this issue.

GaleForce 01-17-2012 12:10 PM

When spring rolls around, and my Z comes out of storage for its Oil change... I'm going to try to sweet talk the service people at my local Nissan dealer to see if they will replace it under warranty... The worst they can say is no...

KaienZ34 01-17-2012 12:15 PM

Quote:

Originally Posted by GaleForce (Post 1494245)
When spring rolls around, and my Z comes out of storage for its Oil change... I'm going to try to sweet talk the service people at my local Nissan dealer to see if they will replace it under warranty... The worst they can say is no...


What is your plan for this? Telling them your cars does it from time to time and it's the same part that has been recalled on the GT-R??

GaleForce 01-17-2012 12:49 PM

Quote:

Originally Posted by KaienZ34 (Post 1494255)
What is your plan for this? Telling them your cars does it from time to time and it's the same part that has been recalled on the GT-R??

Yeah, something like that. Telling them its an intermittant problem that I can temporarily fix by hitting the lock solinoid. Might print out this thread, depends how receptive they are. If they want to do me a solid, great, if not, I tried and can't fault them for it.

Honestly this is my first Nissan, I bought it in August and stored it at the end of October. Past experiences have been with Honda and GM dealerships. The service I got from Honda was second to none! Very helpful, and very honest. GM on the other hand, their service has been horrible. I have needed to print off fixes from the Internet for them before, I've also had to do my own repairs because the techs couldn't fix it. And it wasn't isolated to one dealership. I got this kind of service from 4 different GM dealers. It will be a very very long time before I spend any more of my hard earned money on a vehicle made by General Motors.

Hopefully Nissan's service will be closer to what I got from Honda... we'll see...

Edit- my Z still has a year of factory warranty left.

kenchan 01-17-2012 02:13 PM

i summarized the temporary solutions to try in the DIY (very bottom)... just in case someone is stranded in the middle of nowhere. :D

Montez 01-17-2012 02:55 PM

Looks like 09/10 Max's are having that problem as well.

Will not start - Maxima Forums

kenchan 01-17-2012 03:02 PM

based on info at courtesyparts the 09+ maxima's are using a slightly different lock... but might be the same issue.

Product SKU: 48700-A35001

Ours is: 48700-JF00A (revB, C, D)

wstar 01-17-2012 03:04 PM

I haven't been able to find this in the Service Manual (censored so as not to aid theft?), but what would happen if you just removed the whole thing from the steering column and never re-installed it? Just never locks up? Not a huge issue IMHO. Would the car throw a code with it unplugged? I wonder if it's one UpRev can silence.

kenchan 01-17-2012 03:11 PM

Quote:

Originally Posted by wstar (Post 1494542)
I haven't been able to find this in the Service Manual (censored so as not to aid theft?), but what would happen if you just removed the whole thing from the steering column and never re-installed it? Just never locks up? Not a huge issue IMHO. Would the car throw a code with it unplugged? I wonder if it's one UpRev can silence.

if you removed this unit car probably wont start cause the ECU will not receive the 'all clear' signal from the BCM. BUT i think if one can make a relay simulating this switch like how the vette folks did it on their car, it can probably work.

Montez 01-17-2012 03:13 PM

Quote:

Originally Posted by kenchan (Post 1494540)
based on info at courtesyparts the 09+ maxima's are using a slightly different lock... but might be the same issue.

Product SKU: 48700-A35001

Ours is: 48700-JF00A (revB, C, D)

Yeah different part, same issue.....

fritz 01-18-2012 07:53 AM

Mine was intermittent (a bit like a manual lock needing a shake and seemed normal enough) but then expired...... and is on hold for possible warranty, if winter wheels and tires do not void it. Tricky Niss.

"Must be manufactured" in 2010 was my written deal on the car itself. The type B steering lock was made in early 2009 and the gas pedal assy made in late 2008.
Is that normal on a 2010 build car?

What happened to Just-in-time (JIT) production methods...I wonder.

Apart from un- reliability---4+ times now--the car's great. A curate's egg.

Any folk with an old lock? I'd like to disect it and try a relay to fool the CPU/BCM into thinking the lock is there. A real ignition switch and starter button could be nice too.


How are steering lock messages sent to the electronics to allow the engine to start ?

Fritz

wstar 01-18-2012 08:47 AM

EDIT: Scratch that idea, there's no easy way to fake it with a relay. Most of it is trivially fake-able since it's just "apply voltage to energize" and 2x redundant inverted feedback status switches that inform BCM + IPDM E/R whether the lock is in the commanded state, but then there's one critical bit that wouldn't work out: the BCM feedback on pin 111, which actually expects some timed pulses and state changes from some controller inside the lock unit in response to lock/unlock commands. So you'd need something a little more complex to fake it, like a cheap little microcontroller.

Even if you replaced the lock unit with a microcontroller-based fake: if you ever turned the steering wheel while the BCM thought it was locked, I wouldn't be surprised if it a threw a code because the steering angle changed when it shouldn't be possible.

KaienZ34 01-18-2012 09:10 AM

^^Cool info i hope it works.

ChrisSlicks 01-18-2012 09:20 AM

Quote:

Originally Posted by wstar (Post 1495800)
EDIT: Scratch that idea, there's no easy way to fake it with a relay. Most of it is trivially fake-able since it's just "apply voltage to energize" and 2x redundant inverted feedback status switches that inform BCM + IPDM E/R whether the lock is in the commanded state, but then there's one critical bit that wouldn't work out: the BCM feedback on pin 111, which actually expects some timed pulses and state changes from some controller inside the lock unit in response to lock/unlock commands. So you'd need something a little more complex to fake it, like a cheap little microcontroller.

Even if you replaced the lock unit with a microcontroller-based fake: if you ever turned the steering wheel while the BCM thought it was locked, I wouldn't be surprised if it a threw a code because the steering angle changed when it shouldn't be possible.

Maybe a 555 timer chip in combination. Although with the price of cheap integrated micro-controllers these days I would probably be tempted to go that route too.

kenchan 01-18-2012 11:03 AM

ok sorry guys, you are like talking chinese to me now... no idea wat you're saying. :icon17:

ChrisSlicks 01-18-2012 11:56 AM

Quote:

Originally Posted by kenchan (Post 1496033)
ok sorry guys, you are like talking chinese to me now... No idea wat you're saying. :icon17:

可能在组合的一块555个定时器芯片。 虽然便宜的联合微型控制器的价格我大概那些日子会被诱惑连同路线也是

wstar 01-18-2012 12:03 PM

Hmm I still think I don't quite understand it. I blame Nissan's documentation :) This is my best current guess at how the whole thing operates, now:

The lock unit supposedly has 7 pins on it. I'm giving them my own names for now since I still haven't found a pinout for connector M40, which is the actual connector at the lock unit:

G1: Grounded permanently
G2: Grounded permanently
P1: power supply, switched by IPDM E/R
P2: power supply, switched by BCM
S1: feedback switch output: +12V when locked, 0V when unlocked
S2: feedback switch output: 0V when locked, +12V when unlocked
C: communication line between lock module and BCM

Physical states:
The steering lock can be in one of two physical states: locked or unlocked. Once it has switched to a given state, it will remain in that state until commanded to change, regardless of whether any power is supplied to the unit. No relay has to remain energized to maintain one of the states or anything like that.

Power supply states:
P1 (IPDM E/R): When ignition is ACC or ON, no voltage supplied. Temporarily supplies battery voltage for a short while after opening the driver's door when ignition is OFF, or after pushing the ignition button once when it's LOCKed.
P2 (BCM): When ignition is OFF or ACC, +12V is supplied. When ignition is ON, it is not.
None of this completely makes sense, but the bottom line is, when the ignition is ON, neither power supply pin gets voltage, so no change to steering lock status can occur. When ignition is not ON, one of the two power pins (or both) will give it power at the right times for it to respond to a lock or unlock command, somehow.
It could be the case that P1 (IPDM E/R) only powers the feedback switches that drive S1 and S2, and P2 (BCM) powers everything else (the mini-controller that communicates with the BCM and actually moves the lock)

Switch states:
The S1 and S2 outputs are redundant inverted status outputs. They're almost certainly driven by physical switches that are tripped by the locking mechanism itself. In the unlocked state only one of them provides +12V, and in the locked state only the other does. If they're both +12V or both not +12V, that triggers a diagnostic failure. If they don't feedback that commands were followed correctly, that also triggers a diagnostic failure. Also of note: these are connected to both the IPDM E/R and the BCM, so for some reason both modules want to see this status.

BCM Communication Line:

This is the perplexing 7th pin "C":
http://www.the370z.com/members/wstar...ation-line.png

It's listed as both an input and an output for the BCM. It seems definitely sure that the BCM is who sends that little pulse train against a 12V background to send LOCK and UNLOCK commands, as an output. I misunderstood earlier that the pulse train came from the lock module.

What really makes no sense is how any of this could be an input back to the BCM. Maybe it's mislabeled (from my point of view), and it's a BCM-output only, and the BCM drives it at +12V while LOCKED, and 0V when unlocked for 15+ seconds, and whenever it wants to send a command, it applies the +12V (if unlocked before) and then sends the pulse signal.

I guess someone would have to figure out what the manual means by clipping onto this with a scope (or really, even a multi-meter would do, since the only complex bit is already documented in the diagram above).

ChrisSlicks 01-18-2012 12:25 PM

Quote:

Originally Posted by wstar (Post 1496139)
It's listed as both an input and an output for the BCM. It seems definitely sure that the BCM is who sends that little pulse train against a 12V background to send LOCK and UNLOCK commands, as an output. I misunderstood earlier that the pulse train came from the lock module.

What really makes no sense is how any of this could be an input back to the BCM. Maybe it's mislabeled (from my point of view), and the BCM drives it at +12V while LOCKED, and 0V when unlocked for 15+ seconds, and whenever it wants to send a command, it applies the +12V (if unlocked before) and then sends the pulse signal.

I guess someone would have to figure out what the manual means by clipping onto this with a scope (or really, even a multi-meter would do, since the only complex bit is already documented in the diagram above).

I think I agree from reading it that the pulse appears to be coming from the BCM. Not sure that you would capture the pulses with a multimeter, they appear to be only 1ms in duration at about 75ms, 35ms, 12ms apart respectively, definitely the job for a scope.

I think the main thing it going to be giving the ECU the correct signals on 97 (S1), 98 (S2).

wstar 01-18-2012 12:34 PM

Quote:

Originally Posted by ChrisSlicks (Post 1496172)
Not sure that you would capture the pulses with a multimeter, they appear to be only 1ms in duration at about 75ms, 35ms, 12ms apart respectively, definitely the job for a scope.

Well what I mean is, we don't really have to capture them, since they're documented and they have to come from the BCM because there's no other way it's signaling the module to make the change.

What I don't understand is whether the lock module also supplies voltage to this wire at times to provide feedback to the BCM or something.

One way or another, a replacement would need: a cheap microcontroller to sense the command pulses on the communication line and update a little NVRAM state indicating whether the fake lock is currently stuck-on or stuck-off, the microcontroller would need to be powered on any time either of the power supply pins lights up and provide S1/S2 feedback based on NVRAM, and possibly voltage feedback on the communication line as well.

wstar 01-18-2012 12:36 PM

Of course, for a race car you could probably remove this module completely and it would be ignored as part of disabling all anti-theft code via UpRev. Mostly I'm just thinking about whether we could make a cheap small replacement to avoid $500 when an A/B-series unit fails, or to swap in preemptively and avoid failure.

kenchan 01-18-2012 12:54 PM

Quote:

Originally Posted by ChrisSlicks (Post 1496123)
可能在组合的一块555个定时器芯片。 虽然便宜的联合微型控制器的价格我大概那些日子会被诱惑连同路线也是

is this your name in chinese, tiki tiki tembo? :icon17:

ChrisSlicks 01-18-2012 01:02 PM

Quote:

Originally Posted by wstar (Post 1496192)
Well what I mean is, we don't really have to capture them, since they're documented and they have to come from the BCM because there's no other way it's signaling the module to make the change.

What I don't understand is whether the lock module also supplies voltage to this wire at times to provide feedback to the BCM or something.

One way or another, a replacement would need: a cheap microcontroller to sense the command pulses on the communication line and update a little NVRAM state indicating whether the fake lock is currently stuck-on or stuck-off, the microcontroller would need to be powered on any time either of the power supply pins lights up and provide S1/S2 feedback based on NVRAM, and possibly voltage feedback on the communication line as well.

I think the output voltage signal only needs to be supplied when the unit is in the powered state and that the unit can be power off pin 106. Pin 111 is also temporarily powered to 12V prior to any signal being sent.

One test that may be revealing is whether you can simply permanently send an "UNLOCKED" status voltage without throwing a terminal error (might show as a lock error but still allow you to start and drive). I wonder if failed units where not sending a voltage on either pin or registering "LOCKED".

wstar 01-18-2012 01:10 PM

Oh I checked UpRev's rom editor, the 3x DTC codes related to the lock module aren't in the list UpRev can suppress (otherwise, I'd try just removing the unit and suppressing those DTCs).

ZedSled 01-18-2012 02:44 PM

This crap just happened to my Z last Friday, 13th (go figure) Got in my car to go to work in the morning and nothing happened when I pushed the start button. Got the little yellow missing key light. At the time I didnt know about the steering column trick or tapping the steering lock with a hammer. My car is now at Courtesy Nissan and they said the part is backordered for 3 weeks...WTF! Also my car is parked in the lot with the drivers side window down. Probably need to head up there and try the steering column trick to get my window back up.

BTW, this totally sucks!!! At least its under warranty and they supplied a loaner Nissan Sentra.

kenchan 01-18-2012 04:07 PM

Zedsled- you're at courtesy nissan... isn't that the same nissan aka courtesyparts?

if so they show they have the part in-house...(?)

LOCK SET-STEERING - 370Z (Z34) 2009+ :: Nissan Parts, NISMO and Nissan Accessories - Courtesyparts.com

corbin09 01-18-2012 04:20 PM

My car had this problem. I took it to the dealer and they would not warranty it. I was at 41k when it happened. Too bad this wasnt up. I got stranded at an Autozone and had to get a tow. Boooo Nissan for no recall. I hope when I got mine done they put the most up to date one on. I will have to check tonight!

fritz 01-19-2012 10:46 AM

That was a lot of good advice, thank-you ... but i'd still like an old lock to play with.
What do racers do about this "lock" nonsense ?

Maybe Chrisslicks had the answer within the push button switch:

Sooo, I can turn off accessories myself so do not even need the "lock" mode on the ign/start button. "Accessories" will do fine.

Can that "lock" mode be deleted easily?

(It's then easy to fit an ignition or fuel pump delete switch..hidden)

Fritz.

ChrisSlicks 01-19-2012 02:08 PM

Quote:

Originally Posted by fritz (Post 1498465)
That was a lot of good advice, thank-you ... but i'd still like an old lock to play with.
What do racers do about this "lock" nonsense ?

Maybe Chrisslicks had the answer within the push button switch:

Sooo, I can turn off accessories myself so do not even need the "lock" mode on the ign/start button. "Accessories" will do fine.

Can that "lock" mode be deleted easily?

(It's then easy to fit an ignition or fuel pump delete switch..hidden)

Fritz.

To remove the stock starter button would be a bit of work, the button in the stock setup is just a contact closure which sends the press signal to the BCM, the BCM decides what "state" the car should be in, e.g. ACC, ON or START and sends a start request to the IPDM via the CAN bus. The IPDM turns the ignition relay on, and turns the starter relay on. When the BCM feedback determines that the engine is running it sends a stop signal to the IPDM for the starter relay. It seems like it should be possible to just re-wire the relay's to manual toggle switches/buttons instead of the IPDM, same for the fuel pump relay. I think you would also have to deactivate the vehicle security system using UpRev. If you did that then the steering lock could be removed as the BCM would be out of the loop for startingthe car. The BCM might be unhappy, but to what degree I'm not sure. I guess it depends to what degree you need auxiliary systems like windows etc.

wstar 01-19-2012 03:50 PM

Quote:

Originally Posted by fritz (Post 1498465)
What do racers do about this "lock" nonsense ?

Quote:

Originally Posted by ChrisSlicks (Post 1498728)
I think you would also have to deactivate the vehicle security system using UpRev.

UpRev has a specific setting called "NATS off" you can set in their custom ROMs, which completely disables the Nissan Anti-Theft System code. Apparently only Pro-Tuners get this feature, not regular Tuner-licenses. Other than that little bit, the primary different between Tuner and Pro-Tuner is that Tuner is limited to one VIN, whereas Pro-Tuners can work on multiple cars. Most likely if you have a regular Tuner license, you can just go to a Pro-Tuner w/ the datafile and have them toggle this one option for you if you want, and then still edit the rest via Tuner and upload.

With NATS off, I would expect nothing about steering lock (or anything related) matters anymore and the equipment can be removed. The car also doesn't care about key-marriage at that point, although I'm not sure whether that means "any Nissan key in range will do", or if you don't have to have a key at all to start the car.

kenchan 01-19-2012 08:32 PM

guys, it looks like potentially up to Jan2010 build affected... 40th got hit today (high probability steering lock problem).

happytheman 01-19-2012 09:25 PM

This thread has left me light-headed, and feeling really dumb. :ugh2:

Ps. Here's the JF00D

http://www.nissanpartszone.com/parts...700-jf00d.html

Alchemy 01-19-2012 09:38 PM

subscribed, in case of emergency

MJB 01-19-2012 11:18 PM

Quote:

Originally Posted by kenchan (Post 1499489)
guys, it looks like potentially up to Jan2010 build affected... 40th got hit today (high probability steering lock problem).

Any idea if he had RevC or RevD? If so then I'm really going to start to worry:shakes head:

kenchan 01-20-2012 12:05 AM

Quote:

Originally Posted by MJB (Post 1499855)
Any idea if he had RevC or RevD? If so then I'm really going to start to worry:shakes head:

not sure. but ive not hear any repeat problems at the GTR forums using RevC so i am thinking his car was still using RevB...(?)

Vaughanabe13 01-20-2012 12:49 PM

Quote:

Originally Posted by wstar (Post 1496139)
Hmm I still think I don't quite understand it. I blame Nissan's documentation :) This is my best current guess at how the whole thing operates, now:

The lock unit supposedly has 7 pins on it. I'm giving them my own names for now since I still haven't found a pinout for connector M40, which is the actual connector at the lock unit:

G1: Grounded permanently
G2: Grounded permanently
P1: power supply, switched by IPDM E/R
P2: power supply, switched by BCM
S1: feedback switch output: +12V when locked, 0V when unlocked
S2: feedback switch output: 0V when locked, +12V when unlocked
C: communication line between lock module and BCM

Physical states:
The steering lock can be in one of two physical states: locked or unlocked. Once it has switched to a given state, it will remain in that state until commanded to change, regardless of whether any power is supplied to the unit. No relay has to remain energized to maintain one of the states or anything like that.

Power supply states:
P1 (IPDM E/R): When ignition is ACC or ON, no voltage supplied. Temporarily supplies battery voltage for a short while after opening the driver's door when ignition is OFF, or after pushing the ignition button once when it's LOCKed.
P2 (BCM): When ignition is OFF or ACC, +12V is supplied. When ignition is ON, it is not.
None of this completely makes sense, but the bottom line is, when the ignition is ON, neither power supply pin gets voltage, so no change to steering lock status can occur. When ignition is not ON, one of the two power pins (or both) will give it power at the right times for it to respond to a lock or unlock command, somehow.
It could be the case that P1 (IPDM E/R) only powers the feedback switches that drive S1 and S2, and P2 (BCM) powers everything else (the mini-controller that communicates with the BCM and actually moves the lock)

Switch states:
The S1 and S2 outputs are redundant inverted status outputs. They're almost certainly driven by physical switches that are tripped by the locking mechanism itself. In the unlocked state only one of them provides +12V, and in the locked state only the other does. If they're both +12V or both not +12V, that triggers a diagnostic failure. If they don't feedback that commands were followed correctly, that also triggers a diagnostic failure. Also of note: these are connected to both the IPDM E/R and the BCM, so for some reason both modules want to see this status.

BCM Communication Line:

This is the perplexing 7th pin "C":
http://www.the370z.com/members/wstar...ation-line.png

It's listed as both an input and an output for the BCM. It seems definitely sure that the BCM is who sends that little pulse train against a 12V background to send LOCK and UNLOCK commands, as an output. I misunderstood earlier that the pulse train came from the lock module.

What really makes no sense is how any of this could be an input back to the BCM. Maybe it's mislabeled (from my point of view), and it's a BCM-output only, and the BCM drives it at +12V while LOCKED, and 0V when unlocked for 15+ seconds, and whenever it wants to send a command, it applies the +12V (if unlocked before) and then sends the pulse signal.

I guess someone would have to figure out what the manual means by clipping onto this with a scope (or really, even a multi-meter would do, since the only complex bit is already documented in the diagram above).

The lock module almost certainly uses serial communication on line "C", which could be relative to the 12V power, but more likely it is relative to an internal voltage regulator (I'm guessing 3.3V or 5V) and probably optoisolated. It doesn't even matter what kind of protocol they are using (I2C, SPI, proprietary, etc.) because you could just use a bus pirate to record the streams that are getting received/sent from the lock module. Of course, this would require that you have a module that is actually working (and not intermittently). You could use a tiny microcontroller and a couple of relays to emulate a functioning lock. The use of flash or EEPROM for saving the switch state might not be the best solution, depending on how fast the micro boots up and how much time is available to send the "all clear" signal.

I can't work on this, unfortunately, because my Z is in storage. But it sounds like it wouldn't be too hard to make a fake lock module.

wstar 01-20-2012 01:27 PM

Quote:

Originally Posted by Vaughanabe13 (Post 1500898)
The lock module almost certainly uses serial communication on line "C", which could be relative to the 12V power, but more likely it is relative to an internal voltage regulator (I'm guessing 3.3V or 5V) and probably optoisolated.

It's possible, but that would make the service manual wrong. The chart listed there is intended to be "what you see with a probe" on that line, and apparently it's 0V when it's been unlocked for 15+ seconds, 12V when it's locked (or recently unlocked), and then a signal a little negative pulse signal against a 12V background for the lock/unlock command. What makes no sense in that chart is: how does the BCM send the pulses against 12V to lock from the unlocked state, if the line is at 0V? :P Clearly, at the very least the chart just doesn't tell the whole story, but it does seem it's 12V and unlikely serial, just some timed pulses.

Quote:

It doesn't even matter what kind of protocol they are using (I2C, SPI, proprietary, etc.) because you could just use a bus pirate to record the streams that are getting received/sent from the lock module. Of course, this would require that you have a module that is actually working (and not intermittently). You could use a tiny microcontroller and a couple of relays to emulate a functioning lock. The use of flash or EEPROM for saving the switch state might not be the best solution, depending on how fast the micro boots up and how much time is available to send the "all clear" signal.
Good point on the flash, but how does a relay fix things? Is there such a thing as an electromechanical relay that keeps its persistent mechanical state through power cycles?

ChrisSlicks 01-20-2012 02:33 PM

Quote:

Originally Posted by wstar (Post 1500966)
It's possible, but that would make the service manual wrong. The chart listed there is intended to be "what you see with a probe" on that line, and apparently it's 0V when it's been unlocked for 15+ seconds, 12V when it's locked (or recently unlocked), and then a signal a little negative pulse signal against a 12V background for the lock/unlock command. What makes no sense in that chart is: how does the BCM send the pulses against 12V to lock from the unlocked state, if the line is at 0V? :P Clearly, at the very least the chart just doesn't tell the whole story, but it does seem it's 12V and unlikely serial, just some timed pulses.

This is common in the electronic world. The line is "pulled up" to the signal voltage (most electronics in the consumer world use 3.3V or 5V) and then switched to ground to send data pulses. Like you said this doesn't look like complicated data, just a simple pulse pattern with fixed frequency.

wstar 01-20-2012 03:45 PM

What I meant was: clearly the chart cannot be factually correct that the line is always 0V when unlocked for 15+ seconds, or the signal shown for the lock action could never take place :)

ChrisSlicks 01-20-2012 03:57 PM

I think what they meant is the line goes to 0V when idle, and is at 12V when communication is possible or if in the locked state.

Trips 01-20-2012 06:33 PM

Hey Ken,

I've stickied this like you asked so its easily available for other members.


All times are GMT -5. The time now is 05:31 AM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0 PL2