Introduction

An old hot rodding trick is to change the amount of cam advance to produce small changes in the way an engine behaves. Advancing the cam can add low RPM torque at the expense of high RPM power. Retarding the cam often has the opposite effect: It adds power at high RPM and takes it away at low RPM. This cam adjustment is always a compromise, improving power at one point in the rev range and hurting it elsewhere.
Eventually, engine designers came up with a way to allow the cam timing to change while the engine was running. That way, the cam can be advanced at low RPM, where it helps power there, and then retarded as the RPM comes up, eliminating any compromise. Moving the cam can also help with horsepower and emissions.
The first variable valve timing systems used a simple on/off switch. It wasn’t long before these gave way to more sophisticated systems that could move to any position between two stops. While an on/off variable valve timing system is a snap to control with aftermarket electronics, the continuously variable systems are a lot harder to deal with. You can just control the current running to the hydraulic valve, but at best this would result in cam timing that changed with your oil pressure and temperature. To get proper control over continuously variable valve timing takes a system that can monitor the cam advance in real time and use this feedback to make sure the cam is where it’s supposed to be.
Our first released model of VVTuner Camshaft Control Module allows the tuner to implement full control over the continuously variable intake camshaft found in the 2001-2005 Mazda Miata. By way of an interpolated 12×12 table referencing engine speed versus engine load, the user can accurately set the desired camshaft angle throughout the engine’s entire operational range. The camshaft angle is accurately rotationally positioned via closed loop control. The result is full user control over the Miata VVT system. Get all the area under the curve without compromise!
Currently, the VVTuner is available for the 2001-2005 Mazda MX-5 Miata only. Other trigger wheel arrangements (including aftermarket trigger wheels for the Miata) are not supported.
Installation
Your VVTuner CCM module will provide years of consistent and reliable operation if care is used during its handling and installation. The hardware is designed to work within the environment found within the interior of the typical automobile and the rugged applications that may be experienced. However, the controller is an electronic device that is sensitive to moisture, shock, and static discharge. Heeding the installation instructions and recommendations will guarantee the operation and reliability of the VVTuner CCM.
MAP sensor
The VVTuner CCM has a built in MAP sensor. This is a 2.5 bar unit that reads up to 21 psi of boost. Plumb it to a vacuum port on the intake manifold plenum. The best location is usually to tee the signal off the vacuum line to the fuel pressure regulator.
Crankshaft Trigger Wheel
The crank shaft trigger wheel can easily be installed incorrectly. If you have removed the crank pulley or trigger wheel, verify the trigger wheel installation as depicted below. When installing the wheel, ensure that the center outward bevel is against the accessory pulley. If the wheel is installed backwards, a low or otherwise incorrect RPM value will be displayed in MyVVT. The VVTuner does not support non-factory trigger wheels such as the Flyin’ Miata 36-2 design.
Figure 1: Crank Trigger Wheel

General Wiring Considerations
All connections should be soldered for optimal results. Using low quality crimp on connectors or “wire stabs” will ultimately lead to an unreliable or failed connection. Use heat shrink tubing or quality electrical tape (I.E. 3M 33+) to protect all taps and splices. Solid conductor wire should be avoided at all costs as vibration will eventually fatigue and damage the conductor. Instead, you should only use stranded wire that is rated for a minimum of 90 degrees Celsius and is oil and gasoline resistant, such as TXL or equivalent marine / mil-spec wiring.
Power Source: Selecting a power source is critical to reliable operation of the VVTuner system. Observe the following procedures when selecting a 12 Volt power source:
- Connect the positive supply voltage to a switched circuit that is powered both while the vehicle is being cranked and running.
- Ensure that the selected power source can supply ample current to the VVTuner CCM if tapping an existing source.
- If the unit will have a dedicated circuit, it shall be protected with a fuse no larger than 5 Amps.
- Use a wire size no smaller than 20 AWG.
Grounding: Grounding is important to ensure validation of the monitored signals. An ideal ground connection is either directly to the battery or to the engine. We do not recommend the use of “vampire taps” or grounding directly to the chassis.
Wiring Connections
Ground Selection: When connecting the sensor grounds, the ideal connection point is directly to the VVTuner CCM (Fig. 2). This will assist in preventing noise from being induced into the system. However, circumstances may be such that the method displayed in Figure 2 may not be possible (I.E. the use of factory wiring) and, therefore, you may have to use the methods in Figure 3 instead.
Trigger Output Wiring to EMS (Optional): If wiring connections are to be made to an EMS, pin 9 on the VVTuner CCM connector must be connected. By default, the trigger output signal’s ground is isolated from the system ground. Ideally, pin 9 should be connected directly to the EMS’s ground source. This will minimize noise induction on the trigger signals. Figure 3 depicts such a ground connection.
If the VVTuner CCM and EMS share the same ground or a direct ground to the EMS is undesirable, pins 9 and 10 can be connected together either by way of a short piece of wire or a solder bridge between the two pins.
Shielding: If the wires are run for more than 3 feet (1 meter) or run through the engine compartment, we recommend shielding the wires to the CKP and CMP sensors, as well as the signal wires running from the VVTuner CCM to the EMS. The shield should be grounded to the VVTuner CCM but not at the other end, to avoid ground loops. For short runs of wiring inside the passenger compartment, the shielding may be omitted.
Figure 2:

Figure 3:

Sensor Connections: When connecting the crankshaft and camshaft trigger sensors to the VVTuner CCM, observe the diagram found in Figure 4. The images shown are viewed from the open end of the connector found on the engine wiring harness. Ensure that the connectors are properly wired as damage to the sensors can occur if wired incorrectly.
Figure 4:

Figure 5:

Mounting
Do not mount the VVTuner CCM within the engine compartment of the vehicle. The enclosure is neither sealed nor protected from the harmful environment that is found under the hood of a car. The controller must be securely mounted to a bulkhead-like structure in a way that significant vibration is eliminated.
Instead, mount the VVTuner CCM within the vehicle’s cabin area. Furthermore, locate the controller in such a location that neither the driver or passenger are likely to accidentally hit the module. Good locations include behind the seat or under the ECU cover panel on 1.6 models, somewhere a passenger isn’t likely to hit even if flailing around in a panic because you got on the brakes too late on the back stretch of Road Atlanta. Wiring and vacuum hoses must be routed so that it will not come into contact with any moving parts such as pedal assemblies or heater/AC controls. That hole in the firewall near the clutch pedal, for example, looks easy to use, but any vacuum line through it is easy to pinch.
Communication Settings
Before establishing a connection between the laptop and the VVTuner CCM, the user must ensure proper communications settings. Furthermore, the serial port must not be in use by another program or application. You’ll need a 2.5 mm serial cable such as the Innovate / Microsquirt tuning cable.
The default VVTuner comm port setting is “COM1”. This can be changed by navigating to the “Communication” menu item and selecting “Settings…”. From here, the desired comm port can be selected. Upon choosing a valid port, pressing the “OK” button will enable VVTuner to use the selected comm port. Pressing the “Cancel” button will discard your change.
Tuning
Once properly installed and communication has been established between the tuning laptop and VVTuner, the controls and use will be fairly straight-forward if you’ve even done any tuning before. When you open the VVTuner software, you’ll see a 12×12 advance target table, PID tuning parameters, and system status indicators.

The 12×12 advance target table allows real time adjustment of target advance at any point along the X and Y axis. Engine speed (RPM) is represented along the X-axis while engine load (MAP) is represented along the Y-axis. As both the engine speed and load change, a corresponding cell is targeted in the table. The target cell represents the closest camshaft advance data point for the engine’s current RPM and MAP. The value within the target cell is interpolated (averaged) between the target cell and the cells to its top, top right, and left. To command more camshaft advance, insert a larger number in the cell. To command less advance, insert a smaller number.
Status values displayed along the top of the screen include engine speed (RPM), engine load (MAP), target advance (degrees), current advance (degrees), and the duty cycle of the signal sent to the OCV. Along the status bar at the bottom of the screen, the indicators display serial connection status, engine status, battery voltage, logging status, and VVTuner CCM version.
VVTuner’s advance control implements a closed loop feedback algorithm with PID loop to insure that the amount of advance commanded results in the actual advance. VVTuner constantly monitors the real time target advance value and compares it against the actual value observed by reading the crank and cam position sensors. Any difference between target advance and actual observed values is considered an error. The PID loop will attempt to correct the error. The PID parameters allow real time adjustment of how the error is corrected. PID is comprised of 3 terms:
- P. This term tells the VVTuner how aggressively it needs to correct. A higher value here will result in possible quicker correction, but too high of a value can result in overshoot of target and possible oscillations. Too low of a value may result as never being able to reach target.
- I. This term tells the VVT tuner how much “acceleration” is needed to bring the observed advance to target advance if the error is large. A larger I value will result in quicker corrections, but too much I value may result in unsteady operation.
- D. If I is acceleration, then D is the brakes. The D term will slow corrections down as the observed advance approaches the target. The D term can be implemented to reduce overshoot of target, however too much D term could result in undershoot or the ability to never reach the target.
The idea is to eliminate any advance error as quickly as possible by quickly bringing observed advance to target advance, but slowing down the correction as the error approaches zero such that the target is achieved quickly and without and undershoot, overshoot, or oscillations around the target. The values preprogrammed to VVTuner were found to work well with a standard 2001-2005 Miata VVT motor after extensive research. However, as no two engines are alike, you may need to alter the PID values. Please note that when any of the three parameters are adjusted, the loop is re-initialized and the PID I-value accumulation is reset to its starting point.
Troubleshooting
Problem: Power is applied to the VVTuner, but the LED does not illuminate.
Solution 1: Confirm that the polarity is not reversed on the VVTuner connector.
Solution 2: Confirm that the wires are connected in the proper locations on the VVTuner connector.
Solution 3: Confirm the voltage supplied to the VVTuner is no less than 11 VDC.
Problem: A correct RPM Value is shown in VVTuner, but the camshaft never advances
Solution 1: Ensure that the OCV solenoid wiring is connected at both the controller and solenoid. Polarity does not matter.
Solution 2: Ensure that a valid target table is loaded into VVTuner.
Solution 3: With VVTuner running, set the PID values to the following:
- P = 20
- I = 15
- D = 0
Start a data log and observe the change in “PID i”.
Solution 4: With VVTuner running, select from the Menu “Controller -> OCV Duty Cycle Limits and verify the values are within a usable range (I.E. the Low value isn’t too high and the High value isn’t too low).
Solution 5: Confirm proper operation of the OCV solenoid.
Problem: Power is applied to the CCM and the LED is illuminated, but VVTuner will not establish a connection.
Solution 1: Ensure that the serial cable is firmly inserted into the CCM’s serial port.
Solution 2: Confirm that the appropriate communication port is selected within VVTuner. From the Menu, select “Communication -> Settings…”.
Solution 3: Ensure that the selected COM port is not in use by another application.
Problem: The displayed RPM displayed is low and/or wildly erratic.
Solution: Verify that the crankshaft trigger wheel is installed in the proper orientation.

Glossary
VVTuner CCM “VVTuner Camshaft Control Module”. The hardware interface that accepts signals from various inputs including camshaft and crankshaft sensors, pressure sensors, and system voltage to accurately control the camshaft position based upon the user’s settings.
AWG “American Wire Gauge”. Unit of measurement as related to the cross sectional size of a wire. Smaller numbers represent a larger wire.
CKP Sensor “CranKshaft position sensor”. Relays information about crankshaft speed and position to the VVTuner.
CMP Sensor “CaMshaft position sensor”. Relays information about camshaft speed and position to the VVTuner.
DC (Duty Cycle) A percentage measurement within a given amount of time (period) where where the digital signal level is high versus low. A period where the signal level is high exactly half the time results in a 50% duty cycle. A period where the signal level is high for the entire duration of the period results in a 100% duty cycle.
EMS “Engine Management System”. The primary engine control computer.
NA Chassis code for the 90-97 Mazda Miata.
NB Chassis code for the 99-05 Mazda Miata.
NB2 Chassis code for the 01-05 Mazda Miata (with VVT).
OCV “Oil Control Valve”. The OCV is modulated by an electric solenoid to vary the amount of oil pressure that the camshaft spool valve receives. It is controlled by the VVTuner CCM to command camshaft advance.
PID “Proportional/Integral/Derivative” A method whereby a direct and accurate calculation can be placed upon a system by defining a set point and measuring the deviation (error) between the actual process value (result) and the set point to quickly reach the desired result with minimal deviation in the shortest possible time frame. The VVTuner CCM uses a PID loop to maintain the user’s target camshaft advance.
Spool Valve The spool valve is attached between the cam shaft and timing belt. A varied oil pressure is placed upon the valve (by the OCV) to advance or retard the rotating position of the cam shaft in relation to the timing belt and crank shaft.
VDC “Volts Direct Current”
