Python Code

Competition Controls Group

I started Competition Controls Group in ’21 to focus on developing professional level control strategies and calibration tools for motorsports applications. After working in professional motorsports from ’13 to ’21 I had seen that while there are some great controls strategies and calibration tools at the OEM level, there really weren’t many good options in motorsports where the programs tend to be smaller scale, performance focused, and on a much faster development cycle.


I got my start in motorsports back in ’10 with the RIT Formula SAE team, and was powertrain lead for F20 and F21. Those were the first years of the single cylinder (turbo for F21), full monocoque era for RIT so quite a challenging development project. I was a Mech E major so at the time my focus (or more accurately my knowledge) was on the mechanical systems design more than the controls side. We used an M400 MoTeC ECU and had a good engine dyno to calibrate on, but we were still basically steady state tuning by hand.

I started at Roush Yates Engines after graduating in ’13, initially doing track support for the NASCAR Cup series. Not long after getting into the swing of the weekly NASCAR schedule RYE unveiled the 3.5l TT-V6 EcoBoost project by setting the FIA 10 mile standing start speed record and I got moved over to that program. Initially doing design work for integration into the Riley Daytona Prototype for the IMSA series but moving back to focus on calibration and track support as soon as we started track testing. ’14 was the first season of IMSA after the merger between Rolex Sportscar and ALMS series, which came with some big rules changes including allowing turbo v6’s and free engine controls. Previously they had been forced to run a spec ECU with no traction control and of course no turbos/anti-lag etc. We started with a base software for the Bosch MS5.0 but quickly had to develop some better strategies for Anti-Lag, Traction Control, etc. I got my first W with #01 Chip Ganassi Racing guys at the 12 hours of Sebring that year. The DP program lasted for 2 seasons and was effectively a development program for the EcoBoost powertrain for the Ford GT LeMans program.

In ’15 Ford unveiled the GT with plans to win LeMans on the 50th anniversary of their first win in ’66. That program had 2 2-car teams, one running GTE-Pro in the World Endurance Championship and the other running GTLM in IMSA with all 4 cars at LeMans. That was a full factory backed program which meant plenty of budget to develop the controls software which was one of the few areas that wasn’t homologated and thus free to be developed. I was effectively leading the controls development by that point and providing track support for the #67 WEC car. We focused most of our controls development on drivability, efficiency, and consistency. With the balance of performance rules in endurance racing, the gains were often in improving consistency across the race more than improving on the fastest laptime. We also made some progress throughout this program on tools for automating calibration tasks and report generation.

The GT program came to an end after ’19 season and I moved back into NASCAR cup support. At that point I was focused on tool development since everyone has to run the McLaren Tag-400N with spec software. That’s a much different challenge in that there’s very little that you can do on the controls side, but engine hardware is less constrained. The engine spec for the GT program had been homologated for the full 4 seasons so we effectively ran the same base engine calibration the whole time. On the NASCAR side engine specs change much more frequently so having good tools to quickly and consistently generate new base engine calibrations was a major focus.

In ’21 I decided to leave RYE to start Competition Controls Group and focus on software tool and controls strategy development. I started by spending several months learning to be a better programmer. All through the race programs we were always under pressure to get something close enough to try for the next track event, so it’s been refreshing to step back and start with a clean slate to build new tools from the ground up.


I’ve been developing a library of functions to do many common data analysis and calibration tasks which can be put together into tools for specific applications. Initially I plan to do some tools for MoTeC M1 ECUs, but I’m also interested in and have already done some custom tools for customers with specific needs. Let me know what you’re interested in.

More to come…

Phil Vars