Auto Rev Match: I got bored again

Jonohhh

True Classic
So, over Thanksgiving break, having a little bit of time resulted in my usual habit of being entirely unable to leave things alone, so here it is: manual transmission auto rev matching implementation.

Two linear potentiometers - one on each shift cable, measures the current left to right and front to back position of the shift lever. The output of those sensors is read by my Arduino, which then determines the currently selected gear based on the known values for each shifter position, before sending a message over the cars C CAN network to my standalone ECU, which corresponds to the selected gear.

1000018059.jpg


When the clutch is pressed, the ECU will enable the rev match mode and match engine speed to the currently selected gear (by either blipping the throttle, or cutting ignition/fuel, depending on whether it's an up or down shift), eliminating the need to blip on downshifts, and assisting in completely seamless upshifts with absolutely zero effort or attention required. Even better, upshifts can be rev matched by ignition/fuel cut alone - meaning the throttle plate can stay open, and boost is maintained throughout the gear change.


Which is fine and dandy... except once I got the above working, I quickly realized that the parts in bold weren't gonna work for what I wanted, because EMU Blacks rev match feature:

a) never left the alpha development stage

b) sucks

c) works only by selecting "calculated" current gear, and simply revs to the rpm of one gear lower if you press the clutch while braking. Not good enough for me.


So I made my own.

Instead of simply sending the currently selected gear over CAN, I had to take a different approach: requesting throttle blips and ignition cuts directly from the Arduino!


So in reality, it ended up being that my Arduino would:

Read the shift position potentiometers, and determine the currently selected gear.

Read vehicle speed, engine speed, and clutch pedal position from the ECU over CAN.

Calculate the speed of the clutch plate based on the average of the front axle wheel speeds, and the ratio of the currently selected gear.

Compare engine speed to clutch plate speed (rpm error, which represents the slip rpm at the clutch interface)

And, if a handful of conditions are met (the most obvious of which is if the clutch pedal has reached the floor limit switch), and the engine speed is a certain amount slower than the clutch plate, it'll send a a gearbox blip request over CAN to my ECU.

The ECU reads this as if it's a sequential gearbox, and uses a few of its internal tables to clamp the maximum blip duration, the throttle percent during blip, and the conditions required for it to do it. The check for clutch pedal position happens both on my Arduino, and on my ECU, for redundancy, to lower the chances that there is an accidental blip while in gear.

This redundancy isn't as good as it could be because it relies on a single switch, but the good news is that these events are so short that essentially no acceleration of the car happens if it were to go off while in gear.

It works well, but it's certainly not perfect. In the future I'm going to emulate a VW DQ250 DCT (which the ECU supports) so that I can have finer control over the blip and cut intensity, hopefully resulting in it feeling as good as an OEM implementation.




That's pretty much all for now. I truthfully don't even want this feature but it's fun to mess around with things like this so, there it is. I'll probably never use it again once I finish perfecting it.



 
Last edited:
Very cool. A lot of work could have been avoided if the ECU functioned as expected / intended. But you got there. Nice job.
 
So, over Thanksgiving break, having a little bit of time resulted in my usual habit of being entirely unable to leave things alone, so here it is: manual transmission auto rev matching implementation.

..and if you get bored again, put an electric motor on the input shaft of the transmission. Use the pots you already added to determine which gear you are shifting into as you are doing the shifting, and match the speed of the input shaft to the output shaft for the gear you are selecting. The synchros will have a very easy life.
 
Wait... you don't have to half-lift on the up shift or heel and toe the down shift? Next they will make something to automatically move the shift lever...
Yessir, that's the end result.

Its funny you mention making the shifter move by itself... Though it's ambitious and I may never get to it, I would really love to use this car as a test bed for some electrohydraulic control systems. For whatever reason, I'm obsessed with them and am actually working on a project right now that involves precise positional control of a hydraulic actuator using engine oil pressure and some used VVT solenoids from my BMW. An automated manual is little more than that at the end of the day - basically making my own version of fiats MTA version of this exact gearbox.

The first step, and what I've been working on, is summing the clutch inputs from both the pedal, and an external source, to allow automated control of the clutch alongside a functional pedal. I'll definitely update the thread if I make progress on that front - but for the meantime I'm back to being distracted by another one of my projects.
 
Yessir, that's the end result.

Its funny you mention making the shifter move by itself... Though it's ambitious and I may never get to it, I would really love to use this car as a test bed for some electrohydraulic control systems. For whatever reason, I'm obsessed with them and am actually working on a project right now that involves precise positional control of a hydraulic actuator using engine oil pressure and some used VVT solenoids from my BMW. An automated manual is little more than that at the end of the day - basically making my own version of fiats MTA version of this exact gearbox.

The first step, and what I've been working on, is summing the clutch inputs from both the pedal, and an external source, to allow automated control of the clutch alongside a functional pedal. I'll definitely update the thread if I make progress on that front - but for the meantime I'm back to being distracted by another one of my projects.

As someone who did their graduate work in Dynamics and Controls, I find this really cool, what a fun project! Unfortunately as a driver, however, I'd rather heel/toe double clutch and rev it myself. That's what makes driving stick fun!
 
As someone who did their graduate work in Dynamics and Controls, I find this really cool, what a fun project! Unfortunately as a driver, however, I'd rather heel/toe double clutch and rev it myself. That's what makes driving stick fun!
Yeah I have this exact conflict...I do stuff like this to learn, even if I don't really want it in practice. I too would rather get the satisfaction of nailing heel toe downshifts.

The first drive was absolutely awesome, the second was cool, the third I didn't really think much of it, and by the fourth I had pulled my Arduino out to work on something else - unless it's fully automated, being interesting kinda ends here. So, I'm on the fence about how much more I'll put into making it better, or if I should just work on my custom automatic transmission controller for one of my other cars.

Decisions...
 
How about designing a sequential shift mechanism for the X trans.
Now that would be neat, definitely quite the mechanism it'd be too. I do plan to make the X shifter better once I'm driving it regularly again - the stock floppy shifter just ain't cuttin it lol.
 
If you do design a sequential shift mechanism, please incorporate a display to show which gear you're in.
 
That'd be a neat project one day...the X is currently in the "maybe I should stop messing with things and actually restore the damn thing" phase.
 
Could a sequential shifter use the existing transmission? How could it be implemented?
There are a couple aftermarket sequential shift mechanisms for standard American manual shift transmissions (e.g. Tremec T56). Here's one brand:

And some include a small dash display to indicate what gear you are in, as suggested by @MikeHynes.
 
It'd probably be very difficult given the design of the gearboxes shift mechanism, made even more difficult by the sloppy nature of it.
 
Back
Top