Suzuki Vitara 1.6 TBI

Your chance to introduce yourself and your vehicle
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Suzuki Vitara 1.6 TBI

Post by Rhinoman »

This is my MY2000 off-road prepared Suzuki Vitara:

Image

I bought this vehicle from new in June 2000 and have done lots of work on reverse engineering the stock ECU. About 10 years ago I looked into a building a replacement ECU, I was quite shocked by how badly designed Megasquirt was so I developed my own ECU design. I am going to take that original design and modify it with an ST processor. A low-z injector is used so a peak-hold injector driver is required, I may reuse the driver from an OEM ECU or design my own.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Suzuki Vitara 1.6 TBI

Post by AndreyB »

Nice :)

Do you know trigger(s) shape on this?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

There is only one sensor which Suzuki call the 'Crank Position Sensor' but it is actually in the distributor, its a Hall effect sensor with a (from memory) open-collector output pulled up to 12V. I had a website for the original ECU design, I don't know how much of that I still have I will have to resurrect that as well.

Image
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

There is also an 'Ignition Fail Safe' signal, taken from the noise suppresser on the low side of the ignition coil, injection pulses are triggered from this signal so no spark = no fuel.
User avatar
kb1gtt
contributor
contributor
Posts: 3758
Joined: Tue Sep 10, 2013 1:42 am
Location: ME of USA

Re: Suzuki Vitara 1.6 TBI

Post by kb1gtt »

Those Suzuki's are nice. Small enough you can fit between trees, and when you get stuck it's easier to pull it out. Yet it's large enough you can do some nice weekend rock crawling.

Is your PCB design something you can and are willing to share? If so I can offer a review to help make it better. If not, that's also cool. Just wanted to offer a second set of eyes.

What's your general engine setup? Natural aspirated, with distributor, etc? Is that one injector in the throttle body? I generally don't expect lowZ on a 1.6 liter. Some years ago I helped develop a board that used LowZ, I a usable circuit done in KICAD, which could be handy if you want a PCB with native LowZ. Either that or you can use the JBPerf LowZ board to convert a HighZ to LowZ.
Welcome to the friendlier side of internet crazy :)
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

This is the remnants of my original ECU, there were a few issues caused by the lack of an RF ground and no load dump protection above 45V, once I was able to re-flash the OEM ECU I abandoned this one. the processor was an 80-pin dsPIC30f something.

Image

Image
Last edited by Rhinoman on Sat Oct 17, 2015 6:43 pm, edited 1 time in total.
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

kb1gtt wrote:Those Suzuki's are nice. Small enough you can fit between trees, and when you get stuck it's easier to pull it out. Yet it's large enough you can do some nice weekend rock crawling.
Is your PCB design something you can and are willing to share? If so I can offer a review to help make it better. If not, that's also cool. Just wanted to offer a second set of eyes.
What's your general engine setup? Natural aspirated, with distributor, etc? Is that one injector in the throttle body? I generally don't expect lowZ on a 1.6 liter. Some years ago I helped develop a board that used LowZ, I a usable circuit done in KICAD, which could be handy if you want a PCB with native LowZ. Either that or you can use the JBPerf LowZ board to convert a HighZ to LowZ.
I used to drive it quite long distances, the longest trip was the Sweden Off Road Tour in 2002. I also have a Jimny which is my daily driver.
I will publish the schematics and PCB design, I will do some updating first.
The engine is a N/A, single throttle body, single injector design, these were all low-z injectors. I've done a few low-z designs for OEM ECUs, there are many different configurations so I will need to think about how best to implement it, I don't need all the diagnostic capabilities that a modern ECU requires and the current ST processor doesn't have many pins. The stock ECU has a PH driver on a hybrid circuit which would be simple to re-use, I may use the original and then replace that with one of my own.
User avatar
kb1gtt
contributor
contributor
Posts: 3758
Joined: Tue Sep 10, 2013 1:42 am
Location: ME of USA

Re: Suzuki Vitara 1.6 TBI

Post by kb1gtt »

Back before I had issues at FredEMS, I helped Marcos develop this board http://puma.freeems.org/ which uses an LM1949 with 2N6044. I believe that's pretty much that same circuit used in the JBPerf converter board. It basically uses the transistor in it's analog region to function as a variable resistor, so it has reasonably low frequencies. Is your engine a 4 cyl? For a 4 cyl you should have more than enough pins on the discovery F4 board, if you really need more pins we have the 176 brain board as an option as well.

http://rusefi.com/forum/viewtopic.php?f=4&t=749
Welcome to the friendlier side of internet crazy :)
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

Its a 4-cyl engine. One of the reasons for using the 80-pin processor was to make layout easier, the board was etched in my kitchen. I don't recall how many pins are actually needed, the stock ECU uses an 84-pin Toshiba processor with external EPROM and a 68-pin port expander:

Image

From what I remember the LM1949 uses a crude timer for the peak circuit rather than measuring the level, the stock ECU uses a comparator based circuit that implements a peak detect with a window comparator for the hold. That's similar to most of the circuits that I've come across on OEM ECUs driving low-z injectors.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Suzuki Vitara 1.6 TBI

Post by AndreyB »

Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

That would work, the stock ECU isn't fussy about the duty cycle, when I test it I usually just drive it with a square wave.

The injector driver circuit is a fairly conventional high side/low side driver with recirculation through the low side, it is driven from one of the output compare channels.

Image
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

kb1gtt wrote:Is your engine a 4 cyl? For a 4 cyl you should have more than enough pins on the discovery F4 board.
Yes, for some reason I was thinking that it was a 44-pin processor, 100 pins is more than enough.
User avatar
kb1gtt
contributor
contributor
Posts: 3758
Joined: Tue Sep 10, 2013 1:42 am
Location: ME of USA

Re: Suzuki Vitara 1.6 TBI

Post by kb1gtt »

This may or may not be of interest. For common rail direct injection (DI), you generally need a near equiv of P+H, but the push is from an 80V supply, then hold is from 12V. The typical circuit for driving this is very similar to the schematic you posted above. Some day I want to experiment with DI, and I made a simulation for how I may plan to drive the DI injector. Basically I plan to include an inductor that is charged up, then discharged into the injector,creating an 80V spike, which then decays to the normal 12V hold. One of the things I liked about this circuit is that it decays from the push to the hold state with out high frequency switching, or complicated PID stuff. Here is a picture of the QUCS simulation. Source file is found in that same general location.

https://sourceforge.net/p/daecu/code/HEAD/tree/wiki/simulations/QUCS_souce_files/picture_docs/DI_3.PNG?format=raw

I tend to not like P+H that toggles between a high current switch and low current switch, as those commonly get an overshoot as you collapse from push to hold state. I think that MA3556 chip is analog / PID controlling the transistor, such that you do not overshoot as you decay from push to hold. Is there a datasheet for that chip? I don't know what it does, or how it does it, and I couldn't find a datasheet.
Welcome to the friendlier side of internet crazy :)
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

All the PH injector circuits that 've worked with have used a similar topology, modern designs drive most actuators hat way to allow the ability to disconnect one side of the load in the event of a short circuit.
I've worked on the design of DCI ECUs, the pull-in voltage varies the maximum I recall was 90V, the last system I worked on was designed to run several different injector types but the most common used was a 45V/20A pull-in and had a complex injector strategy that included inserting 45V pulses into the hold period during start or low battery operation. The high voltage supply was from a boost converter and some good sized caps.
The MA3556 is a hybrid circuit that contains two quad-comparators and some discrete components, it uses one comparator for peak detect and two others as a window comparator for hold, I've traced out enough of the circuit to determine how it works.
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

MA3556:

Image

Image

The majority of the chips in this ECU are custom chips or have no available documentation, it took a while to reverse engineer it, particularly the processor.
User avatar
kb1gtt
contributor
contributor
Posts: 3758
Joined: Tue Sep 10, 2013 1:42 am
Location: ME of USA

Re: Suzuki Vitara 1.6 TBI

Post by kb1gtt »

Wow, it's been a while sense I've seen carbon silk screen resistors. I've wonder why we don't see them more often. I believe it's a tolerance issue. It looks like that PCB is single sided, but perhaps a GND plane on the back side. I don't see via's. Is there an equiv data sheet for the m1924fp? I can't seem to find a datasheet for the comparator.

On the direct injection simulation, you can control the higher voltage by controlling the pulse to the charging coil. So with a lower voltage you simply increase the dwell. I kind of like this instantaneous charging approach, as you don't normally have 80V. Anything over about 50V is considered hazardous and needs additional considerations in terms of a variety of compliance and regulatory blah blah blah stuff. I'd bet those limits are why you saw 45V as a common voltage. I understand the 80V stuff commonly has multiple pulses during combustion, and you need the increased voltage to get a faster slew rate, which is what allows 3 to 4 pulses during combustion.
Welcome to the friendlier side of internet crazy :)
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

Printed thick film resistors aren't so common these days because laser trimming is no longer required to get a good tolerances. 0.1% chip resistors are cheap and don't need a ceramic substrate which is a relatively expensive process and adds a lot of equipment to the production line. On the rear are two printed current sense resistors which aren't used in this application.
The safety issues with 80V are trivial, the different specs are mostly just down to injectors from different suppliers, if you can get an injector to work effectively at a lower voltage then there are big savings in the cost of silicon in the ECU, a 45V injector driver will clamp at maybe 75V which means 100V FETs, those aren't that common as an automotive device, 80V/90V injectors are going to clamp at something like 150V and that will be an expensive ECU.
On the larger engines there are anything up to seven injector pulses per cycle at lower RPM, meeting modern emissions standards is a complex process.
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

I'm slowly working through the configuration, what do the tpsmin and tpsmax values represent? is it meant to be resistance? On the Vit the TPS is a pot between 5V and 0V and hence is a voltage output.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Suzuki Vitara 1.6 TBI

Post by AndreyB »

Code: Select all

	/**
	 * tpsMax value as 10 bit ADC value. Not Voltage!
	 * offset 86
	 */
	int16_t tpsMax;
The simplest way to find these values would probably be to use tpsinfo command which would show current value.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

How do you determine idle? on the Vit I have an idle switch. TPS absolute position is ADC/2, TPS relative position is (ADC/2 - Idle value). On the later models without an idle switch they use a set voltage for throttle closed which, from memory, is 1V.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Suzuki Vitara 1.6 TBI

Post by AndreyB »

Short answer: do not detect idle pretty much.

There is some code to read the idle switch but it's probably not really used at the moment anyway. Idle control is not great (but it's not hopeless also)
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

OK, no problem for now.
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

This is the target idle table pulled from the stock ECU:
Image

I will reduce that to 15deg steps, I haven't found an example of how to add that to the suzuki_vitara.cpp file. There is also a throttle opener that opens the throttle butterfly a little when its colder. Its not important for now - I've never seen it operate, I need to check the stock code for details on that.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Suzuki Vitara 1.6 TBI

Post by AndreyB »

"Manual idle" operates with valve position without understanding what kind of RPM it would produce.
"auto idle" which goes to get specific RPMs does not currently take CLT into account. Since you are far from the first one to ask for it I should really make some progress with that: https://sourceforge.net/p/rusefi/tickets/219/
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

Today I took some measurements for the injector:

Image

The injector is 1.3 Ohms, 1.65mH.
sasha.kams
Posts: 33
Joined: Thu Aug 21, 2014 5:30 pm
Location: Russia, Saratov

Re: Suzuki Vitara 1.6 TBI

Post by sasha.kams »

russian wrote:"Manual idle" operates with valve position without understanding what kind of RPM it would produce.
"auto idle" which goes to get specific RPMs does not currently take CLT into account. Since you are far from the first one to ask for it I should really make some progress with that: https://sourceforge.net/p/rusefi/tickets/219/
Попробуйте добавить коэффициент к изменению положения РХХ по оборотам/расходу воздуха.
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

I finally got round to finishing populating the PSU, analogue inputs and the CANbus. When I started wiring up a cable to connect it to my test set I realised that there was no way to turn the ECU on - RusEFI doesn't have hardware support for a conventional main relay. Tomorrow I will make up a circuit in the prototyping area, the schematic below shows what is needed, I have designed several of these circuits so it won't be a problem except that I have very few through hole components. The main relay resistance measures as 87 Ohms, so the current will be around 500mA at 45V load dump.

Image

The second input is from the processor which, at key off, holds the main relay on until it has finished a controlled shutdown. If that isn't an issue then the circuit could be replaced with just a 1A diode.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Suzuki Vitara 1.6 TBI

Post by AndreyB »

Rhinoman wrote:RusEFI doesn't have hardware support for a conventional main relay.
I am not sure if we are talking about the same thing or not, but I believe in my case I am controlling a main relay:

Code: Select all

	boardConfiguration->mainRelayPin = GPIOE_6;
...
	/**
	 * main relay is always on if ECU is on, that's a good enough initial implementation
	 */
	if (boardConfiguration->mainRelayPin != GPIO_UNASSIGNED)
		enginePins.mainRelay.setValue(true);
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Rhinoman
contributor
contributor
Posts: 256
Joined: Thu Sep 24, 2015 2:14 pm
Location: Wiltshire, UK

Re: Suzuki Vitara 1.6 TBI

Post by Rhinoman »

Are you turning the ECU on with a signal from the ignition switch?
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Suzuki Vitara 1.6 TBI

Post by AndreyB »

I am. Please note that I am just a software developer so I am not sure how wise it is.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Post Reply