Tesla Research

After purchasing the Tesla Model S Drive Unit from EV West, this is essentially a salvaged drive unit made into a kit with a controller from EV controls, it seems there is some work to make this "ready to run" unit working.

EV Controls user Guide

EVTV research

Inside | Hacking | Capturing CAN | Delivered | update | update. | first shipment | 63 Impala | Drive Train | Inside | Hacking | HACKED | Hacked

EVBMW research

The Tesla Project : 15,000 RPM | IGBT Driver | Teardown | It Lives | Logic Board V2 | Back Together | Just Crusin | Thermal Velocity

Others research

lightbulb test | Tesla motor hacked!

Wiring up the Harness



Now showing CanBus signals coming from a working inverter

Motor Position Encoder

1002722-00-C - SENSOR ENCODER

RPM shows a value when the shaft is spun by hand after connecting sensor showing it working

Found by experimentation that the sensor wheel has 72 teeth:

This is slightly below the stator frequency due to induction motor slip.

Max speed of the motor (according to Tesla) is 18,000 rpm or 300 revs/sec.
Max frequency from sensor is 300 x 72 = 21.6 kHz.

Accelerator Pedal (APP Sensor)

Now showing accelerator position after connecting to inverter

NOTE: This did not work as the supplied diagram is wrong

This one is correct for the supplied pedal:


Brake is showing as working (red dot on the right), and we can now select "D" drive (as well as other modes).

700hp upgrade

The original motor was designed for a 300vDC battery and was down-tuned to limit the power to approx 250kW which is about 800A.
In the Mass-EV project the battery is 33 x 12vDC AGM batteries, which have a rest voltage of 12.6vDC and max 13.8vDC.

This means a pack voltage of between 415v and 455v.
Also the car has 3 packs in parallel each capable of 600A, giving 18,000A

Also the IKW75N60T IGBT array is 16 x 75A (100C rating) for all 6 banks (2 directions by 3 phases).
This is a limit of 1,200A.

Since we are using our own logic board we can unleash the full power of this which is 1.2kA x 455v = 546kW or 732hp.

This is not a sustainable power as things will probably get quite hot very quickly.
With a high power cooling system it will be enough for 10secs of power to get a good standing 1/4 mile.

Also checking Wikipedia figures for torque it looks like it would be in the region of 900 lbft (1,220 Nm).

It's also possible using extreme cooling and series-parallel lithium pack to get even more power.

The IGBTs are capable of 225A and 600vDC each if held at less than 25C.
This would be 16 x 225A = 3,600A, 3600 x 600 = 2,160,000W or 2.16 MW (2897hp),
though I doubt that motor would withstand that for more than a second.

Delving in:

Driver board

Driver board connector

JST CPT connector


Driver and output datasheets

1ED020I12FA2 | IKW75N60T

IGBT boards

IGBT board diagram (gates have 10R serial, 2x20R)

Connections to the gate driver are mirrored

Tesla Gate Driver Replacement

During testing one of the original driver boards had a fault.
Replacing with another original part was just not an option, they are not available.

This is using a Cree/Wolfspeed CGD15HB62P1 gate driver board as a replacement for the Tesla one.
The CGD15HB62P1 is sold by both RS and Farnell, and probably others, so it's something which is readily available.

It uses the same Infineon 1ED020I12 driver so is compatible with anything which connects to the original Tesla board.
The board plus DC-DC converter comes in under £250 (inc UK VAT).
They are not the right shape to fit in the original space, but there is space above the IGBTs to fit a board so will fit inside the inverter housing.


This board is intended to be used with a Cree IGBT module, so it needs some modification.
The supply is 15vDC instead of 12vDC so needs a DC-DC converter,
also the board is intended to be connected directly to the gates so a connection needs to be added before the on-board gate resistors.

If you are intending to connect the original logic board you will also
need a lead to convert from the JST plug to the Molex socket on the CGD15HB62P1 board,
This would need to include the DC-DC converter inline.


Properly mounted

..with screened leads for the gates

Plenty of space inside sleeve

Trinary control

What is trinary control, and why is it better?
Baically it's shoot-through protection, but details are here

Original gschem schematic

This is the 1.3Mhz trinary PWM (50/50) to inspect the transitions:
.equ LOW_IN   = 0x00
.equ HIGH_OUT = 0xFF
.equ DDRB     = 0x04
.equ PORTB    = 0x05

    ldi	r24, LOW_IN
    ldi	r25, HIGH_OUT


;   nop equivalent to jump
;   nop
    out	DDRB,  r24; OFF

    out	PORTB, r24
    out	DDRB,  r25; LOW

    out	DDRB,  r24; OFF

    out	PORTB, r25
    out	DDRB,  r25; HIGH

    rjmp loop

TIME:200nS/div, Blue:TP1(2vDC/div), Red:TP2(2vDC/div), Orange:TP3(2vDC/div), Green:TP4(2vDC/div).

This is showing fast transitions for high (Green) and low (Red) with the max wait 100nS and max switch 100nS.
Which means the total switching delay is 200nS well within the 1uS required.

Latest Tesla version of trinary.asm:

Hooking Up To Motor

Driver board only

TIME:200nS/div, Blue:TP1(2vDC/div), Red:TP2(2vDC/div), Orange:TP3(2vDC/div), Green:TP4(2vDC/div).

TIME:200nS/div, Blue:TP1(2vDC/div), Red:TP2(2vDC/div), Orange:TP3(2vDC/div), Green:TP4(2vDC/div).

Low power output

Output switching transition without load (~50nS):

TIME:50nS/div, Blue:TP1(2vDC/div), Green:V-phase(4vDC/div).

TIME:50nS/div, Blue:TP1(2vDC/div), Green:V-phase(4vDC/div).

Switching delay with a load (2uS max)

TIME:500nS/div, Blue:TP1(2vDC/div), Green:V-phase(4vDC/div).

TIME:500nS/div, Blue:TP1(2vDC/div), Green:V-phase(4vDC/div).

Trinary interface input vs output (~3.33kHz 50:50 PWM)

TIME:50uS/div, Blue:TP1(2vDC/div), Green:V-phase(4vDC/div).

Original inkscape drawing

Checking V-phase Motor input (PWM ~4kHz, field rotation ~1kHz)

TIME:200uS/div, Blue:MCU V-phase(2vDC/div), Red:MCU W-Phase(2vDC/div), Green:MCU U-Phase(2vDC/div), Yellow: Motor V-phase(4vDC/div).

Adding Schmitt Triggers

7414 Schmitt Trigger inverters are very fast, in the order of 10nS switch times.
This is much faster than the BC5x7B circuits so it makes sense to use one as an inverter.
Also having 2 in series provides a good buffered output.

Original gschem schematic

Low Side

TIME:50nS/div, Blue:TP1(2vDC/div), Red:TP3(2vDC/div), Green:TP5(2vDC/div), Yellow:TP6(2vDC/div).

TIME:50nS/div, Blue:TP1(2vDC/div), Red:TP3(2vDC/div), Green:TP5(2vDC/div), Yellow:TP6(2vDC/div).

High Side

TIME:50nS/div, Blue:TP1(2vDC/div), Red:TP2(2vDC/div), Yellow:TP4(2vDC/div).

TIME:50nS/div, Blue:TP1(2vDC/div), Red:TP2(2vDC/div), Yellow:TP4(2vDC/div).

Input from MCU vs Inverter Output

TIME:200nS/div, Blue:TP1(2vDC/div), Red:Motor V-phase(4vDC/div), Green:TP4(2vDC/div), Yellow:TP6(4vDC/div).

TIME:200nS/div, Blue:TP1(2vDC/div), Red:Motor V-phase(4vDC/div), Green:TP4(2vDC/div), Yellow:TP6(4vDC/div).

TIME:50uS/div, Blue:TP1(2vDC/div), Red:Motor V-phase(4vDC/div).

Logic interface

To create the logic interface between the Arduino and the Tesla driver board a bit of stripboard needs to be laid out.

Original inkscape drawing | mask

MCU Upgrade to SAM3X (Arduino Due)

Original gschem schematic

Original inkscape drawing | mask

Compact design to fit inside inverter housing

Plus added sensor and fault inputs:

Original gschem schematic