Dyno Function requirements:

Sweeps, defined start RPM1(Starting at a static RPM undependent of torque), defined top RPM2 and defined time between RPM1 and RPM2 or defined RPMs/Sec.

Should also be able to start at high RPM1 and end at a low RPM2, running the sweep backwards.


Static RPM undependent of torque.


A constant load (easier to tune acceleration enrichments while allowing the rpms to rise)

Much like a inertia-mode, letting the amount of power decide the acceleration-rate, could be a great future.



Holding it at a defined RPM for defined timed before moving to next defined RPM (every 250rpm maybe?)

ECU-Hardware requirements:


At least two Hall-sensor inputs for RPM measurement of each hub(maybe four for future 4wd expansion possibilities).

Maybe a inductive clamp-on inductive pickup, when running cars with automatic transmissions.

Two-four loadcell inputs (4ch of mcp3208. 12bit resolution/channel should be enough, that’s 1nm / unit at 8000nm on 2wd)

Wideband O2 input (One or two)

A bunch of type-k inputs.

Some low-temperature inputs(0-100c - IAT and SAE/DIN-correction, maybe for measuring hub-temperature ? )

Some pressure inputs (Maybe 3-4 ? MAP and Exhaustpressure – and weather-correction)


Two-four 0-5v for controlling the breakingpower.

Coolingfan output (Rising fan-speed when the run is about to begin and running it at a lower speed between runs, configurable. Needs external fan-controller.)

Dyno Software requirements (could be a simple visualstudio application):


While the run is made the Torque and HP measurements should be ploted onto a view that has configurable X- and Y-axles.

Be able to choose to plot every run on the same screen(like dynojet, very easy to see differences between every run.

Be able to add several curves directly to the sheet, like map, exhaustpressure egt´s and so on.

Dyno plan with v3 and VemsTune

!Simple Torque- rpm curve (for tune):


!Advanced Torque- rpm curve (for Tune):


!RPM- time curve (for measure):



Measurements made by Arduino MCU using MCP3208 and PID is controlled by V3(/RoundV)?2 (Probably RoundV?2), RPM and TargetRPM? sent from Arduino.

2 Hall inputs

8 EGT Inputs (0-5v)

2 0-7bar Pressure

2 MAP 7bar

2 Torque inputs (0-5v)

+ Extra configurable 0-5v inputs.

Need High-side output driver from Roundv2! Transformator is controlled via 0-5v or 0-10v (configurable)


Ive now tested the dyno and it works quite well, but i need help with the RPM control.

Im using a board with arduino nano (atmega328) with 2 mcp3208 and 2 ad627 in-amps (for loadcells).

How can we use v3 or round to pid control it?

Or if you have some kind of pid-library i could borrow/steal/have a look at.

Ive made small boards with optocoupler( for insulation, fried an opamp without it) and rc-filter, so all i need from the round is PWM 0-100% @ ~3906hz.

How to send current-rpm and target-rpm to the round from my MCU?

I have a few free pwm-outputs and also one frequency-output that outputs 50% duty.

Some sort of communication would probably be the best:

MCU -> Round: RPM, TargetRPM?, TargetRPM/SEK?.....

Round -> MCU: WB-Lambda, PID-output

Please give me some sort of feedback of how i should go on .


Got my own PID working good, still need some work but im happy with the results. I probably just need to read some more regarding automationcontrol

BMW 325 Turbo.



A graph to show the repeatability of the dyno and also the ignition angle control of the VEMS Ecu.

The runs are made with fw 1.1.96 and the ignition-angle was raised with 1deg per run from 5000rpm and up.

The V3 ecu is definitely a real high-end ecu.


Gunni : Can you make the dyno read information from the VEMS ecu like the VEMS gauge does over AIM, this way you can log all the channels on to the dyno and analyse power gains and losses in the dyno chart.


Thats a very good idea and could probably be made kind of easy, the problem is that when AIM is enabled on the v3 it cant communicate with vemstune on the same time. It would be nice though //Erikk