VW was using ignition timing to trim idle speed as far back as the Digifant cars, which may have been their first electronically controlled ignition models. It worked well enough that one could eliminate the (problematic) idle motor and it would work just fine even at -11F.
I would be surprised if Subaru WASN'T doing it too.
They most likely are, but the car does have an IAC valve so it's probably expecting at least some contribution from one.
Unlike the early Miatas (I assume everything is like an early Miata until proven otherwise), the IAC valve on the Subaru is separately mounted to the intake manifold. Easiest possible way to deal with that is to do absolutely nothing :) Idle speed control is going to be unaffected by my project. Yay Subaru.
So I'm actually surprisingly close to actually bolting this thing up and trying it, really. Hmm.
In reply to Keith Tanner :
That moment of trepidation when you realize the last step in trying something is actually doing it.
Not unlike checking everything again before firing the engine for the first time, or waggling the shifter five times between getting in and starting the engine just to make SURE it's in Neutral.
The fact that the van has no halfshafts or rear hubs does limit the potential for collateral damage if I screw something up.
The shifter wiggling, that made me laugh.
Man. This is ridiculously cool.
Glad you're enjoying it. I think so to. "Cool" is a major motivator in my projects.
I was thinking about the "something stuck in the throttle" error sensing, and I'm not sure it's necessary.
- if something is stuck in the throttle and preventing it from closing, there's nothing the electronics can do about that because they don't have control over anything but the actual throttle position. The driver will likely figure it out eventually and shut down the engine.
- if something is stuck in the throttle and preventing it from opening too far, well, that's not really a dangerous problem and again, there's not much the electronics can do.
What I HAVE done as a result of some of this thinking is to do a range of motion sweep on boot. The throttle body will now do a calibration sweep and record the minimum and maximum sensor voltages, and use that to scale the 0-100 reading. It's like a real DBW system :) It also zeros the pedal sensor on boot unless it sees more than a certain voltage, in which case it assumes that someone has their foot on the pedal and this is not a good time to zero.
Okay, time to get to work on putting this together into a version that can be installed on a vehicle, at least in an ugly manner on a vehicle that's on the lift.
Ha, 'cool' has been my motivator since I realized how cool it looked sliding hot wheels around the living room carpet.
What happens when someone like me tries to start it like a '75 chevy with your foot halfway down? You mention the not being a good time to zero but does it just cancel and do it on the next boot or time delay?
If something is stuck in the throttle, the same thing happens as with a cable throttle, no?
OEM applications will try to close the throttle to match desired TPS. And that little motor working through two large gear reductions is STRONG. I saw a safety demonstration for drive by wire where a carrot was placed in the throttle body then the ignition was turned on. The point was made: NEVER stick anything in the throttle unless you are certain (key in pocket, battery disconnected/throttle unplugged, etc) that it won't get powered up.
That is the other key, that I don't recall if you have covered already: Unpowered position is about 15% throttle or so, your controller must be able to close the throttle as well as open it. This is by design, a control failure gives you more than idle so you can limp the car up to a tow truck.
iansane said:
What happens when someone like me tries to start it like a '75 chevy with your foot halfway down? You mention the not being a good time to zero but does it just cancel and do it on the next boot or time delay?
That's why it checks to see what the reading is before zeroing. It knows approximately where zero should be, and if it's more than (checks notes) 0.2v away from that it says "this guy used to own a '75 Chevy so he's got his foot on the pedal, abort". Then it reverts to that pre-set zero which is pretty darn close anyhow. It's only correcting 1-2% at most. The throttle pedal zeroing doesn't seem to be very necessary really, but since I was doing calibration routines I threw it in. Oh, the fun I have on a Monday night.
It does have the ability to pull the throttle completely closed, yes. I know an LS PCM will go to the idle position on a "something is wrong with my throttle" failure. If you remove power from the TB, it goes to a slightly open position. I'll check to see what the TPS reading is there just out of curiosity.
I'm waiting for another Subaru pedal to show up because I think it's going to be the one that fits best, but I've started working on putting this into a form that can be tested. I also spent some time looking at the throttle body and intake manifold and it looks very much like a bolt-on with a few tweaks to rubber coolant line routing.
I'll come up with an actual enclosure later, but this lets me lay everything out in a quasi-permanent manner. It'll take 12v and ground from somewhere, steal 5v from the reference voltage for the stock TPS and return a TPS signal - the last part isn't wired in yet.
Function confirmed on the bench. The controller will live near the engine for the quickest response from the throttle body - it's trying to do closed loop positioning, so a signal delay would probably be less than ideal.
I've got other stuff to do on the van right now so I'm not going to start pulling the intake manifold apart. Well, probably not.
In reply to cyow5 :
BMW M73 v12 engine was one of the very few OEM setups with stepper motor DBW.
In reply to Keith Tanner :
signal delay? huh? you mean speed of light amount of delay?!
Keith,
you are really re-inventing the wheel here...
The Rusefi and Speeduino both will control your DBW throttle pedal and ETB and Spark and Fuel and all the other fun...
EDIT: oops, Speeduino does not do DBW. Rusefi does.
Do you have the pedal and ETB interfaced with the Subaru ECU?
i reckon you can make your life a lot easier and finish this quicker by just grabbing a pre-built , aftermarket ECU setup...
having a ETB open up to 100% while sitting at a stoplight will... be... uh.... bad....
like Uncle Rodney come Knocking ...
mosey on over to the Slack channel of Rusefi and those guys can get you up an running in a few hours ...
rusefi.slack.com
I have vehicles with aftermarket ECUs and have for nearly a quarter century. I know very well what's involved and I am very much not interested in dealing with that crap.
Up and running is a long, long, long way from running well and managing cold start and idle control with a PS load and all the hard edge cases that everyone glosses over. That is reinventing the wheel, tearing out the entire control system when all I need is one fairly simple control modification.
The pedal doesn't NEED to be interfaced with the Subaru ECU for this application, I just have to feed it a TPS signal. Think of this as an electric cable and it makes sense. Why replace everything when I can just replace that cable?
If the throttle body opens to 100% while I'm sitting at a stoplight, I'll turn off the engine. This car has a manual transmission, so the engine is decoupled from the transmission in that case. Uncle Rodney, whoever that is, might hear a little extra noise. But I'm not going to go peeling out across the intersection. If I'm underway and the throttle somehow pins open (which can happen with a 15' long 35 year old mechanical cable as well), I'm dealing with a vehicle that probably can run the quarter in under 30 seconds.
Also, if you read this thread you'll learn that I have the same checks in the system that Subaru would and it fails closed. Loss of power to the throttle body? Closed throttle. Loss of signal from one of the throttle pedal sensors? Closed throttle. Loss of signal from one of of the throttle body sensors? Closed throttle. Disagreement between two sensors? Closed throttle. So far, the only thing that could cause the throttle to pin open would possibly be failure of the H bridge and even then I'm not sure that would happen as it would have to fail closed.
If I needed this done quickly, I could do it quickly. But it's a project, the fact that I've set it aside occasionally so I can do other things doesn't mean I'm struggling for months. And I've learned things, so that's a win.
Keith Tanner said:
I have vehicles with aftermarket ECUs and have for nearly a quarter century. I know very well what's involved and I am very much not interested in dealing with that crap. .
Fair enough...
i don't trust my coding ability to do a project without some funky bugs or loops making machinery freeze up/ stop/ zoom/ crash/ explode/ etc...
You are a braver man than me ...
The good thing is that the code is really simple. And the best way to learn is by practice! All those weirdly named open source ECUs started as projects like this. Then it's just testing and iteration.
One nice thing about this project is that it's easy to bench test. How does it deal with running for 12 hours straight? No problem, I can do that test without a car. All I need is a power source and a couple of clamps to fix the pedal in place.
if you want to get a list of the hardware used/ needed for ETB and Pedals, the Proteus BOM is open source / public.
you can figure out the actual chips/ wiring needed for both of the electronic throttle body and the pedal .
although one note : the chip shortage is ugly. even cheap 35 cent chips are in short supply.
https://wiki.rusefi.com/Hardware/Proteus/Hardware-Proteus-Fabrication/
https://rusefi.com/docs/ibom/proteus_0_4_ibom.html
of course the firmware is open source too, but i myself could not figure out what code does what part of the process ...
i run my VEE12 BMW off a proteus unit, with 2 ETB and one gas pedal
I think I've got everything I need for control parts - but thanks to the efforts of obsolete and clownkiller, I now have what I think is going to be the best pedal for my application along with the pigtail.
The pedal arm is steel so I can edit it. The return springs are external so I can adjust the tension if needed, and more importantly the pedal pad itself pivots so it should work well for the very upright seating position of the Vanagon and give a more natural swing. I'll do some test fitting into the van this week, and if it fits like I hope I'll start doing a testable wiring setup with a full length harness. Part of that will probably involve trying to shield the signal wires running the length of the car. I don't have a length of shielded wire long enough so I'll see what I can learn about possibilities. Learning yay!
How many conductors do you need and how long? I believe I still have a fair amount of 22 awg 2 conductor shielded wire sitting around here. I can take a look and can send you some if you'd like.
From the factory, only the primary pedal signal is shielded, but since I'm not really prioritizing one over the other it seems I should shield both signal wires. So that's two conductors and it's about 15' from the pedal to the engine.
The factory wiring looks to be 20 or 18 AWG, and given the length of the run I'm wondering if I should err on larger for this analog signal. I could put a controller at the pedal end and send the requested throttle position via CAN, but we'll go there if this version doesn't work out - although now I'm feel the pull of "that would be cool". Heck, given the cost of shielded wire that would be cheaper :)
Hmm, I think a Pi Pico can do CAN natively and I've got a stack of those I haven't played with much. We might be taking a bit of a side trip to consider alternative options. I'll spend some time looking at this. Sometimes it's fun to implement the same thing different ways to learn more about all of them.
This is making changing to a DBW throttle body less intimidating for me. It *would* make plenum design options well opened up not having to be limited to the length of a cable and I am certain the stand alone I have is capable of running the required programming.