Custom Oil Temp Sensor for AiM MXL

The AiM MXL datalogger is a great piece of equipment, but it does have a few shortfalls.  One of the major issues is its inability to interpret the BMW stock oil temperature sensor over the CANbus.  I’m no computer scientist, so let’s just say what it does; it reads a constant -54F.  Obviously this is no help to me as the driver trying to determine whether my engine is healthy or not.  Since there was no solution on the horizon from AiM, I decided to just go with an aftermarket sensor.

The best place to check for engine oil temps is the pan, and Turner Motorsports makes a very nice adapter to easily allow you to add a sensor.  The mounting plate actually replaces the stock oil level sensor located in the bottom of the pan.  This isn’t an issue for a race car, you should be checking your oil level the old fashioned way before every outing.

The adapter flange is threaded in M12x1.50mm, allowing you to simply thread in the BMW stock sensor.  Unfortunately I need an aftermarket sensor to connect with the AiM MXL.  AiM only offers the sensor in 1/8″NPT/10mm/5mm, so an adapter is needed.  I used an Auto Meter 2277 adapter, which is a simple brass bung adapter with a copper crush washer.

Note: in the pictures below, the sensor shown is not correct.  AiM accidentally sent a brake pressure sensor.  I caught the mistake before installing in the car, and the correct fluid temp sensor was sent in exchange.

TMS Oil Temp Sensor Flange Sensor Adapter and TMS Flange

With the new sensor installed and plugged into the AiM MXL, all I needed to do was hookup the laptop to setup the new sensor.  That’s it, now I had a proper oil temp reading… only one problem; the AiM PT100 temp sensor has no probe.  Its length terminates at the ends of the threads, so it does not protrude into the oil sump.  This problem is compounded by using the Auto Meter adapter.  Essentially the sensor is located down in a hole, away from the normal flow of oil.  Sure it’s better than no oil reading, but there has to be a better solution.

AiM PT100 with Metric AdapterThe photo at the right shows the problem with using the AiM PT100 and adapter.

With no other sensor option from AiM, the only other possibility would be to create a custom sensor.  AiM’s RaceStudio allows for the creation of custom sensor profiles, you just need the resistance readings at various temperatures.  After a little searching on the internet I found a GM Delphi temperature sensor that came in M12x1.5mm thread and had a proper long probe.

See more about the sensor here at Ballenger Motorsports’ website.

Another hurdle to overcome is that the AiM analog inputs use voltage difference sensors rather than resistance based.  So this GM temp sensor would require a pull up resistor soldered inline to achieve a mV reading.  A stripped down AiM 719 (4 pin plastic) patch cable would provide the basis for the harness, and the GM plug on the other end was provided by the same store where the sensor was purchased.

Pull Up Resistor

The photo above shows how I soldered in a 1k ohm resistor, bridging from the Blue (Vref) wire to the White (Vout) wire.  The Black wire is ground and the Red wire is 12V and not used.

The following photo shows everything wired up and covered in heat shrink.  The GM sensor uses Weatherpack style crimped pins.  I picked up a cheap set of crimpers from eBay for the job, which is very simple.  You can see the difference between the GM (long probe) and AiM PT sensor in a side-by-side comparison.

GM vs AiM fluid temp sensor

Now with everything wired up, installed in the car, and plugged up, you have to build the custom sensor in RaceStudio.  This requires a little math, as you will be converting the resistance based table provided with the sensor to a variable voltage table that the AiM MXL can use.  To make life a little easier, I made an Excel spreadsheet, where all you have to do is plug in the temperature, corresponding resistance values, and the resistance of your pullup resistor.  The reference voltage should be set to 5v for this application.

Since the GM sensor data was provided in Celsius, I also inserted a formula to convert to Fahrenheit.  Essentially plug in the numbers in the green fields to get results in the white fields.  From there you simply copy the Vout millivolt (mV) values and corresponding Fahrenheit temps to your custom sensor in RaceStudio.

Custom Sensor Spread Sheet

Note: RaceStudio will only accept 20 values per sensor.  Your beginning and ending values must contain your entire range of expected temperature readings.  In other words there is no point in including values of -40F when your car will never see that.  However if you start your values at say 77F and on a cold day your sump is 50F, you will get an error message on the MXL as it doesn’t know how to interpolate a reading off the chart.  So pick the best 20 value range that covers all expected temperature readings.

Click the screenshot of the Excel spreadsheet to download a .zip file containing a copy that you can edit for your own custom temp sensor.  The tables are already filled in for the GM Delphi sensor.  I also included images of how to fill in the custom sensor fields, AiM 719 wiring colors, as well as wiring of a pull-up resistor.

SmartyCam Custom Sensor ErrorKnown Issues:  Your custom sensor will display on you MXL (or any other AiM display logger) just like an AiM proprietary sensor would.  I have my dash set to always display water and oil temps.  Your logs will also capture this information correctly.  Unfortunately the AiM SmartyCam does not handle custom sensors properly.  The SmartyCam overlay will try to convert the Fahrenheit temperature into Fahrenheit, which of course leads to erroneous readings.  AiM (both America and Italy) are aware of this problem, but a fix doesn’t appear to be coming very soon.  The screen capture on the side shows my oil temp at 511F, which of course is incorrect.  It’s a minor nuisance, as the temp is correct where it really counts (on the dash and in the logs.)

I’ve been told by AiM US that there is a new temp sensor in the works that has a proper probe.  I will update if and when it becomes available.

Update 8/24/20: AiM did come out with a new liquid temperature sensor, with an elongated probe.  It can be found here:
https://www.moreheadspeedworks.com/product/aim-tr-oilwater-temp-sensor/

And even a better solution for M52TU and M54 engines, is MSW’s flange kit, which is already threaded for 1/8th NPT sensors, which saves the hassle of having to use adapters:

https://www.moreheadspeedworks.com/product/msw-bmw-oil-temp-sensor-flange-m5x-s54-e36-e46-z3-z4/

Correct Oil Temp on MXL

Spec E46 Build Part XI: Data Acquisition

Up until this true race car build I have been using my Android smart phone as my source for data acquisition.  The Race Chrono app, paired with an external Bluetooth GPS, has been a great tool, especially for the price.  However, with a dedicated race car, I wanted a dedicated system.

I had picked up a lightly used AiM MXL Pista dash logger from eBay back when I was gathering parts for the E36 GTS build.  At the time I was debating between the AiM and Racepack loggers, ultimately settling on the AiM due to their widespread use at the club racing level of competition.  Having a highly adopted system means it’s easier to get data from other drivers for comparison as well as troubleshooting the system.

The MXL is the previous generation of dash loggers, so the prices were reasonable with the new MXL2/MXS/MXG now on the market.  It still does nearly everything I could ask of it.  It provides a LCD display of all the critical information I choose (temps, pressures, speed, revs, shift lights) and alarms for when user set thresholds are exceeded.  It also provides lapping info, including forecasted (or predicted) lap times.

Spec E46 AiM MXL Installed
The other nice thing about the MXL paired with a modern CANbus car is that it can pull almost any available information that the car is already reading.  So RPM, fuel level, temps, steering angle, TPS, etc are already ready to record.  Additional analog inputs allowed me to add standalone sensors for brake pressure, oil temperature, oil pressure, fuel pressure, and differential temperature.

AiM Oil and Fuel Pressure AiM Brake Pressure Sensor

The MXL essentially replaces the stock dash in the Spec E46, so I mounted in directly to the steering column, just behind the steering wheel.  I used some scrap carbon fiber sheet to fabricate a simple mount that is secured using the two screws that hold the wiper and lighting stalks.  The wiring harness run from the back of the MXL to behind the dash where it splits to the analog sensors, power/ground, and the CANbus.  I added a 4-port CAN expansion so that the GPS, Smarty Cam, and a Memory Key could be added.

SpecE46_IMAG2848 SpecE46_IMAG2842

The other aspect of data acquisition is getting video of your laps.  I’ve been using GoPros for this, but it’s a constant hassle.  The batteries don’t last long, their WiFi remote is very temperamental, and you don’t have any ability for automatic start and stop.  While the video is high quality in resolution and color terms, it’s not very good for the race environment.  The rolling shutter sensor means you get a wavy jello effect of objects in the distance (clouds are the most obvious.)  The other, perhaps most frustrating, negative of using the GoPro is that to truly use the video for driver improvement means hours of post production editing to actually produce a helpful video.

The solution to this is the AiM SmartyCam HD, a truly purpose built motorsports camera.  The price is certainly way above the GoPro, but time and frustrations saved has made it worth it.  The camera interfaces with the AiM MXL dash for both additional data (including GPS) but also means its internal battery is charged by the car and it starts and stops automatically.  It’s pretty much a set it and forget it driver tool.  The raw video is 720p, so not as high def as the GoPros, but the CMOS sensor eliminates the wavy effect and it has light metering functions and stabilization tailored to use in a car.  The end result is actually better video than you can get from any GoPro (for the purpose of in car video.)

The other nice thing about the SmartyCam is that it overlays data on the video in real time.  Speed, lap times, revs, brake pressure, throttle position, temps and pressures are all automatically displayed on the video.  The gauges and graphics are fairly canned when compared to what is possible with RaceRender or Dashware, but it is also much easier to use and saves hours of time.  Because everything is automated means you can simply pull the SD card at the end of a session and have instant feedback from viewing on a laptop.

Another form of data acquisition is the on-board transponder that is required by most racing organizers for timing and scoring.  MyLaps (formerly AMB) has a solid monopoly on this market, so that’s what I ended up purchasing.  It’s a fairly simple system and install.  The physical transponder device is mounted near the front of the car and must be less than 2 feet above the road surface.  I made a simple aluminum mount out of some scrap sheet, which was then riveted to the right frame horn.  Four small rivet nuts then allowed me to bolt the transponder to this mount.  The cable from the transponder runs up through an existing hole in the passenger footwell to the center stack of the dash.  That’s where the “key” resides and power and ground functions are split off.  I integrated the power into the switch panel so the transponder could be switched on and off.

Transponder and Key MyLaps Transponder InstalledMyLaps Transponder Installed