<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://openinverter.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Davefiddes</id>
	<title>openinverter.org wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://openinverter.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Davefiddes"/>
	<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/Special:Contributions/Davefiddes"/>
	<updated>2026-04-28T18:12:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=6103</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=6103"/>
		<updated>2026-03-23T15:01:04Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Update with the details of the V3.2 PCB installation process. Many extra steps and workarounds are no longer required and have been removed. Fixed various grammatical errors and misspellings.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video] and [https://www.youtube.com/watch?v=0CNPzwMdJ1E V3.2 update].&lt;br /&gt;
&lt;br /&gt;
Note: This guide applies to the V3.2 PCB as shipped from the [https://evbmw.com/index.php/evbmw-webshop/tesla-boards/tesla-model-3-du-32 EV BMW Web Shop].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
==== Electronics Assembly Tools ====&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Desoldering braid&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
&lt;br /&gt;
==== Hand Tools ====&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
* Side cutters&lt;br /&gt;
&lt;br /&gt;
==== Commissioning Tools ====&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
* USB CAN adapter with [https://github.com/davefiddes/openinverter-can-tool OpenInverter CAN Tool] &#039;&#039;&#039;OR&#039;&#039;&#039; ESP32 CAN interface with [https://github.com/jsphuebner/esp32-web-interface/tree/can-backend esp32-web-interface] can firmware&lt;br /&gt;
* Multimeter&lt;br /&gt;
* 48V DC power supply &#039;&#039;&#039;OR&#039;&#039;&#039; battery with current limiting heating element or incandescent light bulb &lt;br /&gt;
* Dual channel throttle pedal (e.g. BMW E36 throttle pedal)&lt;br /&gt;
* Momentary switch&lt;br /&gt;
* SPST changeover switch&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the Inverter Housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gently before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not to apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully check that all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way low-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters to lift but not cut the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
#* Save as many of the clips as they will also be required later&lt;br /&gt;
&lt;br /&gt;
== Remove Current Sensor Block ==&lt;br /&gt;
&lt;br /&gt;
The black current sensor block is located on the underside of the PCB. It needs to be preserved to fit to the replacement PCB.&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded with heat sensitive glue into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin Low-Voltage Connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
#* Watch the [https://youtu.be/bd2mMFvEq1E?si=-SRyUgExIidEUA9D&amp;amp;t=3072 video demonstration]&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Connect a CAN interface&lt;br /&gt;
#* Pin 12 - CANH&lt;br /&gt;
#* Pin 2 - CANL&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;br /&gt;
# Verify current consumption is around 300mA&lt;br /&gt;
&lt;br /&gt;
=== Verify Status ===&lt;br /&gt;
It is important to check that the components we have fitted are working correctly while the board is still easy to work on.&lt;br /&gt;
# Using the CAN configuration tool check the errors list&lt;br /&gt;
#* There should be two errors: HIRESOFS and OILPUMPFAULT&lt;br /&gt;
#* More errors indicate that trouble shooting is required&lt;br /&gt;
# Set the multimeter to DC volts and check the following test points:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Black Lead !! style=&amp;quot;color:red&amp;quot; | Red Lead !! Expected Voltage !! Description&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP8 || 12.1 V || High-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP6 || -5.1 V || High-side phase A gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP9 || 12.1 V || High-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP11 || -5.1 V || High-side phase C gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP12 || 12.1 V || High-side phase B gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP14 || -5.1 V || High-side phase B gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP17 || 18.2 V || Low-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP16 || 18.2 V || Low-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP15 || 18.2 V || Low-side phase B gate drive positive supply&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the GATE FAULT LED is lit look at the m3_phaseX_xx Spot Values for clues:&lt;br /&gt;
* RxCRC indicates a communications problem between the MCU and the gate driver ICs. All 6 chips have to be working to correctly initialise. Check the orientation and soldering on the upper side of all 6 gate driver ICs.&lt;br /&gt;
* Any fault values reported on the m3_phaseX_xx Spot Values should point to the affected gate driver IC&lt;br /&gt;
* Check the soldering on the gate drive IC and for any dislodged passive components near the affected IC&lt;br /&gt;
* The gate drive supply voltages should be identical to each other and very close the values in the table. The power supplies are current limited so any problems should not damage parts but need to be fixed before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Current Sensor Block Installation ==&lt;br /&gt;
&lt;br /&gt;
# The current sensors are fitted to the underside of the PCB and protected by a plastic block for shipping&lt;br /&gt;
# Cut the cable ties holding the protection blocks in place and remove them&lt;br /&gt;
# Clip the black plastic current sensor block housing over the sensor ICs&lt;br /&gt;
# Flip the board back over to the component side&lt;br /&gt;
# Screw in the 3 Torx T10 mounting screws&lt;br /&gt;
&lt;br /&gt;
== Main 30-pin Connector Fitting ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the 30-pin connector array&lt;br /&gt;
# Use solder braid and some flux to clean all the excess solder from all pins&lt;br /&gt;
# Insert the connector into the PCB&lt;br /&gt;
# Tack two corner pins with solder&lt;br /&gt;
# Flip the board over and ensure that plastic mount on the connector is flush with the board&lt;br /&gt;
#* It is critical that the connector is mounted flush otherwise the mating connector on the wiring harness will not engage cleanly&lt;br /&gt;
# Solder all of the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Fitting the PCB to the Inverter Chassis ==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the PCB ===&lt;br /&gt;
&lt;br /&gt;
# The PCB is supplied with 3 thermistor temperature sensors&lt;br /&gt;
# Insert each thermistor into the underside of the PCB&lt;br /&gt;
#* Don&#039;t solder the thermistors at this stage, just bend the leads to hold them in place&lt;br /&gt;
# Place the insulation shield recovered from the Tesla PCB over the underside of the board&lt;br /&gt;
# Fit the shield using the 6 plastic clips from the Tesla PCB&lt;br /&gt;
# Optional: Fit the WiFi/Terminal header and SWD Prog headers if desired&lt;br /&gt;
#* WiFi control boards will not fit or function within the inverter when fitted to the motor but can be useful for bench testing &lt;br /&gt;
&lt;br /&gt;
=== Fitting the PCB to the Chassis ===&lt;br /&gt;
&lt;br /&gt;
# Place the main inverter chassis on the bench&lt;br /&gt;
# Lower the PCB onto the chassis in roughly the following order&lt;br /&gt;
## HVIL pins at the top of the board&lt;br /&gt;
## Locating dowel in the top-right of the board&lt;br /&gt;
## 4 DC bus capacitor pins in the middle of the board&lt;br /&gt;
## Main MOSFET pins&lt;br /&gt;
## Locating dowel in the bottom-left of the board&lt;br /&gt;
#* Tap gently and be careful not to apply any significant pressure&lt;br /&gt;
#* MOSFET pins may require gentle tweaking to get the alignment correct&lt;br /&gt;
# Check with a finger that pins are through the board&lt;br /&gt;
#* Each MOSFET position has two pins (labelled S and G)&lt;br /&gt;
#* There are two HVIL pins (labelled CONN1)&lt;br /&gt;
#* There are 4 DC bus capacitor pins (labelled E12, E13, E14 and E15)&lt;br /&gt;
# Screw in each of the T20 fasteners to the PCB&lt;br /&gt;
#* V3.2 PCB only : Don&#039;t fit a screw in H10 as the hole is in the wrong place&lt;br /&gt;
#* Hole alignment is improving with each board revision. A little jiggling from side to side may be required to get all fasteners to fit.&lt;br /&gt;
&lt;br /&gt;
=== Soldering the Chassis Components ===&lt;br /&gt;
&lt;br /&gt;
# Lift the inverter chassis to be able to look into the side&lt;br /&gt;
# Push the leads of thermistor ST1 down into the thermal compound on the chassis&lt;br /&gt;
# Solder the leads on the thermistor&lt;br /&gt;
# Repeat for thermistors ST2 and ST3 in between the MOSFETs&lt;br /&gt;
# Solder the 4 DC bus capacitor pins E12, E13, E14 and E15&lt;br /&gt;
# Recheck each of the MOSFET pins are visible through the PCB before starting to solder&lt;br /&gt;
#* Some inverters have only 3 pairs of MOSFETs for each phase others 4&lt;br /&gt;
# Solder each MOSFET pin&lt;br /&gt;
#* Be careful when soldering not to keep the iron on the pin for too long. If heat is applied for too long the solder, assisted by gravity, can wick down the pins into the bus bars on the chassis and cause shorts.&lt;br /&gt;
# Fit the plastic clip over the top of the 30-pin main connector&lt;br /&gt;
&lt;br /&gt;
== Bench Testing the Motor ==&lt;br /&gt;
&lt;br /&gt;
=== Low Voltage Testing ===&lt;br /&gt;
&lt;br /&gt;
# Place the inverter on a suitable work surface next to the motor&lt;br /&gt;
# Connect the wiring harness to:&lt;br /&gt;
#* Inverter, oil pump and resolver on the motor&lt;br /&gt;
#* 12V power supply&lt;br /&gt;
#* CAN configuration tool&lt;br /&gt;
# Turn on the 12V PSU&lt;br /&gt;
# Confirm:&lt;br /&gt;
#* The LEDs behave the same way as the original power on test&lt;br /&gt;
#* The CAN configuration tool should now show no errors&lt;br /&gt;
#* The oil pump will be running continuously&lt;br /&gt;
#* It may be possible to hear the 8.8kHz resolver exciter tone&lt;br /&gt;
&lt;br /&gt;
=== Spinning the Motor ===&lt;br /&gt;
&lt;br /&gt;
# Check the following inverter parameters:&lt;br /&gt;
#* throtcur = 1&lt;br /&gt;
#* brakeregen = 0 (disabling regen is critical when using a DC power supply to avoid inverter and PSU damage)&lt;br /&gt;
#* offthrotregen = 0&lt;br /&gt;
# Connect the following:&lt;br /&gt;
#* Momentary switch to the Start input and 12V&lt;br /&gt;
#* Changeover switch to the Forward and Reverse inputs and 12V positive&lt;br /&gt;
#* Throttle pedal to the two inputs&lt;br /&gt;
# Connect the 3 phases on the inverter to the motor&lt;br /&gt;
#* Short equal lengths of 10mm^2 cable should be sufficient&lt;br /&gt;
# Connect the PSU or battery to the inverter&lt;br /&gt;
#* The positive connection on the inverter is the one nearest the 30-pin low voltage connector&lt;br /&gt;
#* If using a battery use an incandescent light bulb or heating element as a pre-charge and current limiter&lt;br /&gt;
# Press the Start button&lt;br /&gt;
#* Verify that the inverter goes into Run mode&lt;br /&gt;
# Select forward&lt;br /&gt;
# Depress the throttle pedal&lt;br /&gt;
# Observe the motor spinning!&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Mini_Mainboard&amp;diff=6076</id>
		<title>Mini Mainboard</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Mini_Mainboard&amp;diff=6076"/>
		<updated>2026-03-06T13:37:16Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Hardware detection */ Add Tesla M3 FDU variant updating expected voltages and ADC readings to reflect 5.0 V supply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mini mainboard front.jpg|thumb|Mini mainboard front]]&lt;br /&gt;
The mini mainboard is the smallest form factor openinverter motor control board. It has the same functionality as the [[Main Board Version 3]] but offloads a few components. It is meant to be used as a daughter board on top of an adapter board. The adapter board must (or may) implement:&lt;br /&gt;
&lt;br /&gt;
* The Wifi module socket&lt;br /&gt;
* Relay drivers&lt;br /&gt;
In addition the mini mainboard allows talking to SPI peripherals. Therefore some pins have double mapping:&lt;br /&gt;
&lt;br /&gt;
* SIG_CRUISE: MOSI (SJ3 must be closed to the right side for that).&lt;br /&gt;
* OUT_BRAKE: MISO&lt;br /&gt;
* OUT_ERR: SCK&lt;br /&gt;
* OUT_OUVTG: /CS&lt;br /&gt;
Like previous boards it contains a 5V switching regulator that can be loaded with about 500 mA. Alternatively It can be powered with a single 5V rail, which has to sit at 5.3V though for sufficient resolver excitation amplitude.&lt;br /&gt;
&lt;br /&gt;
As opposed to earlier mainboards the current sensor inputs are now designed for 5V input, i.e. 2.5V @ 0A. This interfaces directly with most current sensors that OEMs use and also with Melexis chips, LEM HTFS and Tamura L06P current sensors.&lt;br /&gt;
== Digital inputs ==&lt;br /&gt;
There are external 7 digital inputs on JP2. A voltage of &amp;gt;7V is interpreted as a logical 1 (high). They all have a cutoff frequency of 40Hz.&lt;br /&gt;
# Cruise Control (Pin 4). This input sets the current motor speed as the set point for cruise control. Cruise control is disabled with the Brake input. In SPI mode: MOSI&lt;br /&gt;
# Start (Pin 5). This input starts the inverter operation.&lt;br /&gt;
# Brake input (Pin 6). This input is connected to the brake pedal. It sets a configurable negative torque (regen) which overrides the throttle. I.e. if you press both, brake pedal and throttle, the throttle is ignored.&lt;br /&gt;
# Forward (Pin 7). If this input is high the motor spins forward.&lt;br /&gt;
# Reverse (Pin 8). If this input is high the motor spins backward. When neither input is high the motor will not spin at all.&lt;br /&gt;
# Emergency stop (Pin 9). The PWM is enabled as long as this input is high and shut down as soon as it goes low.&lt;br /&gt;
# BMS input (Pin 10). This input limits the motor torque (both negative and positive) if a BMS signals an over or undervoltage condition. It is active high, i.e. high means over/undervoltage.&lt;br /&gt;
There is one more digital inputs on JP1&lt;br /&gt;
# Gate driver error/Desat (Pin 5) This pin is pulled high (5V). When pulled low an error is signalled and the PWM is inhibited&lt;br /&gt;
&lt;br /&gt;
== Digital outputs ==&lt;br /&gt;
There are 5 outputs on JP2. They just source 3.3V with 220 Ohm series resistance and are meant to drive FETs or NPN transistors. &lt;br /&gt;
# Precharge output (Pin 15) This output is activated when the inverter is powered up. It is disabled as soon as the DC contactor is enabled.&lt;br /&gt;
# DC contactor output (Pin 16) This output is activated when the bus voltage is above a given threshold and the start pin goes high. It is disabled on overcurrent, motor overheat and emergency stop.&lt;br /&gt;
# Error output (Pin 17) This output is activated on over current, motor overheat, emergency stop, throttle out of range. In SPI mode: SCK&lt;br /&gt;
# Brake output (Pin 18) This output is high when potnom reaches a certain negative threshold. The purpose is to switch on the brake light on a certain regen level At startup this pin is configured as an analog input to sense some preset adapter boards In SPI mode: MISO&lt;br /&gt;
# Voltage output (Pin 19) This output is activated when the bus voltage surpasses an upper or lower threshold. In SPI mode: /CS&lt;br /&gt;
== PWM outputs ==&lt;br /&gt;
There is one external PWM output on JP2, Pin 20. It outputs a duty cycle that is proportional to the motor or heatsink temperature or speed. Its offset and gain is software configurable. The frequency is fixed to 17kHz.&lt;br /&gt;
&lt;br /&gt;
There are 6 internal PWM outputs on JP1.  The outputs are 3.3V, 16mA. Frequency is configurable to 4.4, 8.8 or 17.6kHz.&lt;br /&gt;
# PWM Top phase 1 (Pin 6)&lt;br /&gt;
# PWM Bottom phase 1 (Pin 7)&lt;br /&gt;
# PWM Top phase 2 (Pin 8)&lt;br /&gt;
# PWM Bottom phase 2 (Pin 9)&lt;br /&gt;
# PWM Top phase 3 (Pin 10)&lt;br /&gt;
# PWM Bottom phase 3 (Pin 11)&lt;br /&gt;
There is a configurable dead time between top and bottom outputs.&lt;br /&gt;
&lt;br /&gt;
== Analog Inputs and over-current protection ==&lt;br /&gt;
There are 3 external analog inputs on JP2.&lt;br /&gt;
# Throttle input, 0-6.6V (Pin 11). Cutoff frequency 16Hz, input resistance 10k.&lt;br /&gt;
# Redundant throttle or Regen pot input, 0-6.6V (Pin 12). Cutoff frequency 16Hz, input resistance 10k.&lt;br /&gt;
# KTY83 temperature sensor input (Pin 14 positive, Pin 13 negative).  Cutoff frequency 16Hz&lt;br /&gt;
There are 4 internal analog inputs on JP1.&lt;br /&gt;
# Udc (Pin 17) Bus voltage input. 0-3.3V, cutoff frequency 16Hz&lt;br /&gt;
# Heatsink temperature (Pin 18), cutoff frequency 16Hz&lt;br /&gt;
# Il1 (Pin 19) Current phase 1. 0V=-Imax, 2.5V=0A, 5V=Imax (software configurable). Cutoff frequency 48kHz.&lt;br /&gt;
# Il2 (Pin 20) Current phase 2&lt;br /&gt;
The two current sensors are used for the programmable hardware over-current protection. A trip limit can be programmed that configures a hardware comparator. When the given current limit is hit, the PWM signals will be shut down without software interaction.&lt;br /&gt;
&lt;br /&gt;
== Position feedback ==&lt;br /&gt;
Multiple position feedback types are supported via JP1. On the back of the board you will find solder jumper SJ1 that enables a 500 Ohm pull-up resistor that is needed for open collector encoders.&lt;br /&gt;
&lt;br /&gt;
# Single channel pulse encoder - signal connected to Pin 14&lt;br /&gt;
# Dual channel quadrature encoder - connected to Pin 14 (A) and Pin 15 (B)&lt;br /&gt;
# Resolver - Exciter coil connected to Pin 13 (R1) and Pin 12 (R2). Feedback coils positive connected to Pin 14 (S2) and Pin 15 (S3). Negative poles of coils tied together and connected to Pin 16 (S1S4)&lt;br /&gt;
# SinCos feedback chip 0-3.3V - connected to Pin 14 and 15&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
JP1 provides a TTL level (3.3V) UART interface, Pin 3 (RX), Pin 4 (TX)&lt;br /&gt;
&lt;br /&gt;
The communication parameters are fixed to 115200 8N2 (2 stop bits!) and may be raised to 921600.&lt;br /&gt;
&lt;br /&gt;
CAN interface Pin 1 is CANH, Pin 2 is CANL&lt;br /&gt;
&lt;br /&gt;
== Power input ==&lt;br /&gt;
The main board contains a regulated buck converter to power all of its components. The allowed input voltage is 7-26V.&lt;br /&gt;
&lt;br /&gt;
== Pin Header Summary ==&lt;br /&gt;
Pin Header JP1&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Pin&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Signal&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|CANH&lt;br /&gt;
|CANH&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|CANL&lt;br /&gt;
|CANL&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|RX&lt;br /&gt;
|Serial console&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|TX&lt;br /&gt;
|Serial console&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|DESAT&lt;br /&gt;
|Gate driver fault&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|PWM1P&lt;br /&gt;
|Power stage PWM&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|PWM1N&lt;br /&gt;
|Power stage PWM&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|PWM2P&lt;br /&gt;
|Power stage PWM&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|PWM2N&lt;br /&gt;
|Power stage PWM&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|PWM3P&lt;br /&gt;
|Power stage PWM&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|PWM3N&lt;br /&gt;
|Power stage PWM&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|R2&lt;br /&gt;
|Resover excitation R2&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|R1&lt;br /&gt;
|Resover excitation R1&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|ENC_A/S2&lt;br /&gt;
|Encoder channel A or single channel input/Resolver S2&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|ENC_B/S3&lt;br /&gt;
|Encoder channel B/Resolver S3&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|S1S4&lt;br /&gt;
|GND/Resolver center point S1S4&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|TMPHS&lt;br /&gt;
|Heatsink temperature sensor&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|UDC&lt;br /&gt;
|Bus voltage&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|IL1&lt;br /&gt;
|Phase current 1&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|IL2&lt;br /&gt;
|Phase current 2&lt;br /&gt;
|}&lt;br /&gt;
Pin header JP2&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Pin&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Signal&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|GND&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|VCC&lt;br /&gt;
|Vcc (7-26V)&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|5V&lt;br /&gt;
|500mA output&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|SIG_CRUISE/MOSI&lt;br /&gt;
|Cruise Control Input (12V) or SPI MOSI (3.3V)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|SIG_START&lt;br /&gt;
|Start input (12V)&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|SIG_BRAKE&lt;br /&gt;
|Brake Input (12V)&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|SIG_FORWARD&lt;br /&gt;
|Forward (12V)&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|SIG_REVERSE&lt;br /&gt;
|Reverse (12V)&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|SIG_EMCYSTOP&lt;br /&gt;
|Emergency stop (12V)&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|SIG_BMS&lt;br /&gt;
|BMS Over/Under Voltage input (12V)&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|THROTTLE2&lt;br /&gt;
|Regen Pot Input (0-6.6V)&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|THROTTLE1&lt;br /&gt;
|Throttle Input (0-6.6V)&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|MTEMP-&lt;br /&gt;
|Motor Temperature Input -&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|MTEMP+&lt;br /&gt;
|Motor Temperature Input +&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|OUT_PRE&lt;br /&gt;
|Precharge Output (3.3V)&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|OUT_DCSW&lt;br /&gt;
|DC contactor output (3.3V)&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|OUT_ERR/SCK&lt;br /&gt;
|Error Signal or SPI SCK (both 3.3V)&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|OUT_BRAKE/MISO&lt;br /&gt;
|Brake output or SPI MISO (both 3.3V)&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|OUT_OUVTG/CS&lt;br /&gt;
|Over/Under Voltage or SPI /CS (both 3.3V)&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|PWM_USER&lt;br /&gt;
|Temperature PWM output (3.3V)&lt;br /&gt;
|}&lt;br /&gt;
== Hardware detection ==&lt;br /&gt;
Because the mini mainboard is primarily meant to be mounted on some sort of base board, we wanted to introduce a detection mechanism for the base board in case any special treatment is needed.&lt;br /&gt;
&lt;br /&gt;
We chose to assign a secondary meaning to the OUT_BRAKE pin because its level can be measured by the ADC. So OUT_BRAKE can be brought to a certain voltage level with a high impedance voltage divider. The voltage level encodes the hardware variant. It will not disturb normal operation because its total resistance is chosen at least one order of magnitude larger than the output impedance of OUT_BRAKE, which is about 270 Ohms.&lt;br /&gt;
[[File:Board address voltage divider.png|thumb]]&lt;br /&gt;
A the upper voltage divider resistor R1 is connected to the &amp;quot;5V&amp;quot; rail which actually sits at 5.3V. R2 is connected to GND&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Variant&lt;br /&gt;
!R1&lt;br /&gt;
!R2&lt;br /&gt;
!voltage&lt;br /&gt;
!ADC&lt;br /&gt;
!+/-3% range&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
| MG&lt;br /&gt;
|47k&lt;br /&gt;
|2k7&lt;br /&gt;
|0.27 V&lt;br /&gt;
|337&lt;br /&gt;
|327-347&lt;br /&gt;
|Not Mini-MB based, upper voltage 5.0V&lt;br /&gt;
|-&lt;br /&gt;
| Tesla M3 RDU&lt;br /&gt;
|47k&lt;br /&gt;
|3k3&lt;br /&gt;
|0.33 V&lt;br /&gt;
|407&lt;br /&gt;
|395-419&lt;br /&gt;
|Not Mini-MB based, upper voltage 5.0V&lt;br /&gt;
|-&lt;br /&gt;
| Jaguar iPace&lt;br /&gt;
|47k&lt;br /&gt;
|3k9&lt;br /&gt;
|0.41 V&lt;br /&gt;
|504&lt;br /&gt;
|489-519&lt;br /&gt;
|Not Mini-MB based, upper voltage 5.0V&lt;br /&gt;
|-&lt;br /&gt;
|Nissan Leaf Gen3&lt;br /&gt;
|47k&lt;br /&gt;
|4k7&lt;br /&gt;
|0.48 V&lt;br /&gt;
|598&lt;br /&gt;
|580-616&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Renault Zoe Gen1&lt;br /&gt;
|47k&lt;br /&gt;
|5k1&lt;br /&gt;
|0.52 V&lt;br /&gt;
|643&lt;br /&gt;
|624-662&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tesla M3 FDU&lt;br /&gt;
|47k&lt;br /&gt;
|5k6&lt;br /&gt;
|0.53 V&lt;br /&gt;
|660&lt;br /&gt;
|641-680&lt;br /&gt;
|Not Mini-MB based, upper voltage 5.0V&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
|47k&lt;br /&gt;
|6k8&lt;br /&gt;
|0.67 V&lt;br /&gt;
|831&lt;br /&gt;
|806-856&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
|47k&lt;br /&gt;
|7k5&lt;br /&gt;
|0.73 V&lt;br /&gt;
|905&lt;br /&gt;
|878-932&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
|47k&lt;br /&gt;
|8k2&lt;br /&gt;
|0.79 V&lt;br /&gt;
|977&lt;br /&gt;
|948-1006&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
|47k&lt;br /&gt;
|9k1&lt;br /&gt;
|0.86 V&lt;br /&gt;
|1067&lt;br /&gt;
|1035-1099&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
|47k&lt;br /&gt;
|10k&lt;br /&gt;
|0.93 V&lt;br /&gt;
|1154&lt;br /&gt;
|1119-1189&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
|47k&lt;br /&gt;
|12k&lt;br /&gt;
|1.08 V&lt;br /&gt;
|1338&lt;br /&gt;
|1298-1378&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Parameters&amp;diff=6001</id>
		<title>Tesla Model 3 Drive Unit PCB Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Parameters&amp;diff=6001"/>
		<updated>2025-12-13T18:18:49Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ More sensible limits for oil temp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[https://github.com/davefiddes/stm32-sine stm32-sine M3_DU]] firmware has additional parameters over the regular stm32-sine [[Parameters]].&lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
&lt;br /&gt;
The following additional parameters can be configured:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|6=High frequency 8.8kHz resolver exciter to support the Tesla M3 resolver&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|12&lt;br /&gt;
|24&lt;br /&gt;
|12&lt;br /&gt;
|Motor temperature sensor. 24=TeslaM3. Note: Some drive units are not fitted with a sensor but this should still be selected to ensure correct operation of the inverter firmware.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 12=TeslaM3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Oil Pump&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|tmpoilmax&lt;br /&gt;
|°C&lt;br /&gt;
|70&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Maximum permitted temperature for the oil. As the oil temperature gets within 10°C of the maximum the throttle will be limited to be 10% per °C. For example at 9°C below the limit the throttle cannot exceed 90%.&lt;br /&gt;
|-&lt;br /&gt;
|tmpoilhigh&lt;br /&gt;
|°C&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|45&lt;br /&gt;
|The upper temperature bound for the oil speed control. If the temperature exceeds this the pump will operate at full speed (255).&lt;br /&gt;
|-&lt;br /&gt;
|tmpoillow&lt;br /&gt;
|°C&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|25&lt;br /&gt;
|The lower temperature bound for the oil speed control. If the temperature exceeds this the pump speed will vary linearly between pumpspeed or pumpspeedidle and the maximum possible speed.&lt;br /&gt;
|-&lt;br /&gt;
|pumpspeed&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|70&lt;br /&gt;
|The minimum speed (0-255) of the oil pump when the inverter is in run mode. The speed can be higher at elevated temperatures.&lt;br /&gt;
|-&lt;br /&gt;
|pumpspeedidle&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|17&lt;br /&gt;
|The minimum speed (0-255) of the oil pump when the inverter is idle. The speed can be higher at elevated temperatures to pull heat out of the motor after the vehicle has come to a stop.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot Values ==&lt;br /&gt;
The following additional values are available for diagnostic purposes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|tmpoil&lt;br /&gt;
|°C&lt;br /&gt;
|The oil temperature as measured by the oil pump in the drive unit. This can be used as a proxy for the motor temperatures for drive units which lack a dedicated sensor.&lt;br /&gt;
|-&lt;br /&gt;
|upmp&lt;br /&gt;
|V&lt;br /&gt;
|Supply voltage to the oil pump (typically 12-14V)&lt;br /&gt;
|-&lt;br /&gt;
|pmprev&lt;br /&gt;
|RPM&lt;br /&gt;
|The rotational speed of the oil pump in rpm.&lt;br /&gt;
|-&lt;br /&gt;
|oilpres&lt;br /&gt;
|PSI&lt;br /&gt;
|The oil pressure measured by the pump&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseA_hi&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase A high-side gate driver chip on the inverter PCB. Anything other than &amp;quot;Ok&amp;quot; indicates a serious fault.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseA_lo&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase A low-side gate driver chip on the inverter PCB.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseB_hi&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase B high-side gate driver chip on the inverter PCB.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseB_lo&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase B low-side gate driver chip on the inverter PCB.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseC_hi&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase C high-side gate driver chip on the inverter PCB.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseC_lo&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase C low-side gate driver chip on the inverter PCB.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=6000</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=6000"/>
		<updated>2025-12-13T18:01:28Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add missing spot value for uptime&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|exckp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|3000&lt;br /&gt;
|Exciter controller gain (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|cogkp&lt;br /&gt;
|&lt;br /&gt;
| -1000&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|[https://openinverter.org/forum/viewtopic.php?t=5660 Anti-cogging modulator] gain. This generates a trapezoidal wave form to counter the cogging current of IPM motors.&lt;br /&gt;
|-&lt;br /&gt;
|cogph&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Anti-cogging modulator phase angle between cogging current and electrical rotor angle&lt;br /&gt;
|-&lt;br /&gt;
|cogmax&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|30000&lt;br /&gt;
|0&lt;br /&gt;
|Maximum amplitude of the anti-cogging current&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|A&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|excurmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|0&lt;br /&gt;
|Exciter current maximum (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;minpulse&#039;&#039;&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively (Obsolete)&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
|modmax&lt;br /&gt;
|dig&lt;br /&gt;
|37000&lt;br /&gt;
|45000&lt;br /&gt;
|37836&lt;br /&gt;
|Values over 37836 over-modulate the PWM sine wave. This can achieve a slightly higher AC voltage at the expense of greater motor losses. (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|11&lt;br /&gt;
|9&lt;br /&gt;
|Filter co-efficient applied to idc prior to derating. Increasing this makes the DC current derating smoother.&lt;br /&gt;
|-&lt;br /&gt;
|tmphsmax&lt;br /&gt;
|°C&lt;br /&gt;
|50&lt;br /&gt;
|150&lt;br /&gt;
|85&lt;br /&gt;
|Maximum permitted temperature of the inverter heatsink. As the temperature gets within 10°C of this limit the throttle will be scaled back by 10% for every degree until it hits the limit.&lt;br /&gt;
|-&lt;br /&gt;
|tmpmmax&lt;br /&gt;
|°C&lt;br /&gt;
|70&lt;br /&gt;
|300&lt;br /&gt;
|300&lt;br /&gt;
|Maximum permitted temperature of the motor. As the temperature gets within 10°C of this limit the throttle will be scaled back by 10% for every degree until it hits the limit.&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|accelmax&lt;br /&gt;
|rpm/10ms&lt;br /&gt;
|1&lt;br /&gt;
|1000&lt;br /&gt;
|1000&lt;br /&gt;
|Maximum permitted acceleration increase (traction control)&lt;br /&gt;
|-&lt;br /&gt;
|accelflt&lt;br /&gt;
|dig&lt;br /&gt;
|1&lt;br /&gt;
|5&lt;br /&gt;
|3&lt;br /&gt;
|Filter between the motor speed and the acceleration rate limiter. Higher values will smooth the input but will make the acceleration rate limiter react more slowly.&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
|outmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0=DC switch output, 1=Motor temp controls the fan output, 2=Heatsink temp controls fan output&lt;br /&gt;
|-&lt;br /&gt;
|fanthresh&lt;br /&gt;
|°C&lt;br /&gt;
|20&lt;br /&gt;
|300&lt;br /&gt;
|50&lt;br /&gt;
|Temperature at which the fan output is turned on when outmode is 1 or 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
|controlid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|2047&lt;br /&gt;
|63&lt;br /&gt;
|The CAN ID used for controlling the [[CAN communication#Inverter_control_via_CAN_-_new!|controlling the inverter via CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|controlcheck&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=Check the counter field in canio CAN frames &#039;&#039;&#039;for legacy VCUs only&#039;&#039;&#039;, 1=Validate the 8-bit truncated STM32 CRC in the canio frame&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage (only &amp;quot;sine&amp;quot; software) &lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1 (only &amp;quot;sine&amp;quot; software) &lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2 (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3 (only &amp;quot;sine&amp;quot; software) &lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|A&lt;br /&gt;
|Current in the direct(d) axis (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|iq&lt;br /&gt;
|A&lt;br /&gt;
|Current in the quadrature(q) axis (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|ifw&lt;br /&gt;
|A&lt;br /&gt;
|Field weakening current (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|ud&lt;br /&gt;
|dig&lt;br /&gt;
|Computed voltage in the direct(d) axis (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|uq&lt;br /&gt;
|dig&lt;br /&gt;
|Computed voltage in the quadrature(q) axis (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|uexc&lt;br /&gt;
|dig&lt;br /&gt;
|Computed exciter voltage (only &amp;quot;FOC&amp;quot; software for the Renault Zoe variant)&lt;br /&gt;
|-&lt;br /&gt;
|anticog&lt;br /&gt;
|dig&lt;br /&gt;
|Amplitude of the anti-cogging modulation waveform (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|regenpreset&lt;br /&gt;
|%&lt;br /&gt;
|Regen preset value which can come from pot2 in potmode=0 or received via CAN&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir / seldir&lt;br /&gt;
|&lt;br /&gt;
|Selected rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|rotordir&lt;br /&gt;
|&lt;br /&gt;
|Actual rotor direction&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_desat&lt;br /&gt;
|&lt;br /&gt;
|Gate driver desaturation event&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|uptime&lt;br /&gt;
|&lt;br /&gt;
|The number of 10ms ticks since power was applied to the inverter&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Parameters&amp;diff=5999</id>
		<title>Tesla Model 3 Drive Unit PCB Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Parameters&amp;diff=5999"/>
		<updated>2025-12-13T17:58:58Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Document new spot values and tidy up a bit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[https://github.com/davefiddes/stm32-sine stm32-sine M3_DU]] firmware has additional parameters over the regular stm32-sine [[Parameters]].&lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
&lt;br /&gt;
The following additional parameters can be configured:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|6=High frequency 8.8kHz resolver exciter to support the Tesla M3 resolver&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|12&lt;br /&gt;
|24&lt;br /&gt;
|12&lt;br /&gt;
|Motor temperature sensor. 24=TeslaM3. Note: Some drive units are not fitted with a sensor but this should still be selected to ensure correct operation of the inverter firmware.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 12=TeslaM3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Oil Pump&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|tmpoilmax&lt;br /&gt;
|°C&lt;br /&gt;
|70&lt;br /&gt;
|300&lt;br /&gt;
|300&lt;br /&gt;
|Maximum permitted temperature for the oil. As the oil temperature gets within 10°C of the maximum the throttle will be limited to be 10% per °C. For example at 9°C below the limit the throttle cannot exceed 90%.&lt;br /&gt;
|-&lt;br /&gt;
|tmpoilhigh&lt;br /&gt;
|°C&lt;br /&gt;
|10&lt;br /&gt;
|300&lt;br /&gt;
|45&lt;br /&gt;
|The upper temperature bound for the oil speed control. If the temperature exceeds this the pump will operate at full speed (255).&lt;br /&gt;
|-&lt;br /&gt;
|tmpoillow&lt;br /&gt;
|°C&lt;br /&gt;
|10&lt;br /&gt;
|300&lt;br /&gt;
|25&lt;br /&gt;
|The lower temperature bound for the oil speed control. If the temperature exceeds this the pump speed will vary linearly between pumpspeed or pumpspeedidle and the maximum possible speed.&lt;br /&gt;
|-&lt;br /&gt;
|pumpspeed&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|70&lt;br /&gt;
|The minimum speed (0-255) of the oil pump when the inverter is in run mode. The speed can be higher at elevated temperatures.&lt;br /&gt;
|-&lt;br /&gt;
|pumpspeedidle&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|17&lt;br /&gt;
|The minimum speed (0-255) of the oil pump when the inverter is idle. The speed can be higher at elevated temperatures to pull heat out of the motor after the vehicle has come to a stop.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot Values ==&lt;br /&gt;
The following additional values are available for diagnostic purposes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|tmpoil&lt;br /&gt;
|°C&lt;br /&gt;
|The oil temperature as measured by the oil pump in the drive unit. This can be used as a proxy for the motor temperatures for drive units which lack a dedicated sensor.&lt;br /&gt;
|-&lt;br /&gt;
|upmp&lt;br /&gt;
|V&lt;br /&gt;
|Supply voltage to the oil pump (typically 12-14V)&lt;br /&gt;
|-&lt;br /&gt;
|pmprev&lt;br /&gt;
|RPM&lt;br /&gt;
|The rotational speed of the oil pump in rpm.&lt;br /&gt;
|-&lt;br /&gt;
|oilpres&lt;br /&gt;
|PSI&lt;br /&gt;
|The oil pressure measured by the pump&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseA_hi&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase A high-side gate driver chip on the inverter PCB. Anything other than &amp;quot;Ok&amp;quot; indicates a serious fault.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseA_lo&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase A low-side gate driver chip on the inverter PCB.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseB_hi&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase B high-side gate driver chip on the inverter PCB.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseB_lo&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase B low-side gate driver chip on the inverter PCB.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseC_hi&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase C high-side gate driver chip on the inverter PCB.&lt;br /&gt;
|-&lt;br /&gt;
|m3_phaseC_lo&lt;br /&gt;
|&lt;br /&gt;
|The status of the Phase C low-side gate driver chip on the inverter PCB.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Parameters&amp;diff=5998</id>
		<title>Tesla Model 3 Drive Unit PCB Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Parameters&amp;diff=5998"/>
		<updated>2025-12-13T17:48:02Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Document the new parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[https://github.com/davefiddes/stm32-sine stm32-sine M3_DU]] firmware has additional parameters over the regular stm32-sine [[Parameters]].&lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|6=High frequency 8.8kHz resolver exciter to support the Tesla M3 resolver&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|12&lt;br /&gt;
|24&lt;br /&gt;
|12&lt;br /&gt;
|Motor temperature sensor. 24=TeslaM3. Note: Some drive units are not fitted with a sensor but this should still be selected to ensure correct operation of the inverter firmware.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 12=TeslaM3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Oil Pump&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|tmpoilmax&lt;br /&gt;
|°C&lt;br /&gt;
|70&lt;br /&gt;
|300&lt;br /&gt;
|300&lt;br /&gt;
|Maximum permitted temperature for the oil. As the oil temperature gets within 10°C of the maximum the throttle will be limited to be 10% per °C. For example at 9°C below the limit the throttle cannot exceed 90%.&lt;br /&gt;
|-&lt;br /&gt;
|tmpoilhigh&lt;br /&gt;
|°C&lt;br /&gt;
|10&lt;br /&gt;
|300&lt;br /&gt;
|45&lt;br /&gt;
|The upper temperature bound for the oil speed control. If the temperature exceeds this the pump will operate at full speed (255).&lt;br /&gt;
|-&lt;br /&gt;
|tmpoillow&lt;br /&gt;
|°C&lt;br /&gt;
|10&lt;br /&gt;
|300&lt;br /&gt;
|25&lt;br /&gt;
|The lower temperature bound for the oil speed control. If the temperature exceeds this the pump speed will vary linearly between pumpspeed or pumpspeedidle and the maximum possible speed.&lt;br /&gt;
|-&lt;br /&gt;
|pumpspeed&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|70&lt;br /&gt;
|The minimum speed (0-255) of the oil pump when the inverter is in run mode. The speed can be higher at elevated temperatures.&lt;br /&gt;
|-&lt;br /&gt;
|pumpspeedidle&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|17&lt;br /&gt;
|The minimum speed (0-255) of the oil pump when the inverter is idle. The speed can be higher at elevated temperatures to pull heat out of the motor after the vehicle has come to a stop.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB&amp;diff=5997</id>
		<title>Tesla Model 3 Drive Unit PCB</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB&amp;diff=5997"/>
		<updated>2025-12-13T17:16:13Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Firmware Parameters */ Fix link formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source logic board for the Tesla Model 3 rear drive unit. Based on the inverter designed by Johannes Heubner using FOC control.&lt;br /&gt;
[[File:M3driver.png|thumb|458x458px|m3 inverter replacement pcb]]&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the model 3 drive unit inverters feature a PCB with both HV and LV circuits, the gate drivers, and logic. thus a simple replacement brain board is not possible. canbus control is complicated and requires use of tesla&#039;s diagnostics software for inverter pairing. this is a legal greyzone and not a fully opensource option. Instead a full fledged replacement board with gate drivers was designed to allow full lobotomization of elon, thus gaining full opensource control of the model 3/y drive units!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit&lt;br /&gt;
&lt;br /&gt;
https://github.com/davefiddes/stm32-sine&lt;br /&gt;
&lt;br /&gt;
https://www.evbmw.com/index.php/evbmw-webshop/tesla-boards/tesla-model-3-du-beta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
parts needed to be fitted:&lt;br /&gt;
&lt;br /&gt;
-current sensors: MLX91209LVA-CAA-002-SP (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-gate drivers: STGAP1BSTR (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-power transformer: VGT22EPC-200S6A12 (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-(for wiring harness) 30 pin mating connector: Sumitomo Original 6189-6987 61896987 https://www.aliexpress.com/item/1005005920568514.html&lt;br /&gt;
&lt;br /&gt;
-30 pin connector and pins are a private stocked part, so must be salvaged from the original board&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-11x torx T20 screws holding the board onto the case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-3x T10 securing the current sensor trim to the pcb &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;OR&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 2x T10 screws holding the pryofuse and current sensor trim&lt;br /&gt;
&lt;br /&gt;
[[File:M3-30-pinout.png|thumb|456x456px|lv 30 pin connector pinout]]&lt;br /&gt;
&lt;br /&gt;
== Installation Process ==&lt;br /&gt;
&lt;br /&gt;
See the [[Tesla Model 3 Drive Unit PCB Install]] page for a detailed guide on how to install and commission the PCB.&lt;br /&gt;
&lt;br /&gt;
== Firmware Parameters ==&lt;br /&gt;
&lt;br /&gt;
The [[https://github.com/davefiddes/stm32-sine stm32-sine M3_DU]] firmware has a number of additional parameters and spot values over the standard firmware. The [[Tesla Model 3 Drive Unit PCB Parameters]] page describes these.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB&amp;diff=5996</id>
		<title>Tesla Model 3 Drive Unit PCB</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB&amp;diff=5996"/>
		<updated>2025-12-13T17:14:41Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add a link to a new page on the new firmware parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source logic board for the Tesla Model 3 rear drive unit. Based on the inverter designed by Johannes Heubner using FOC control.&lt;br /&gt;
[[File:M3driver.png|thumb|458x458px|m3 inverter replacement pcb]]&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the model 3 drive unit inverters feature a PCB with both HV and LV circuits, the gate drivers, and logic. thus a simple replacement brain board is not possible. canbus control is complicated and requires use of tesla&#039;s diagnostics software for inverter pairing. this is a legal greyzone and not a fully opensource option. Instead a full fledged replacement board with gate drivers was designed to allow full lobotomization of elon, thus gaining full opensource control of the model 3/y drive units!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit&lt;br /&gt;
&lt;br /&gt;
https://github.com/davefiddes/stm32-sine&lt;br /&gt;
&lt;br /&gt;
https://www.evbmw.com/index.php/evbmw-webshop/tesla-boards/tesla-model-3-du-beta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
parts needed to be fitted:&lt;br /&gt;
&lt;br /&gt;
-current sensors: MLX91209LVA-CAA-002-SP (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-gate drivers: STGAP1BSTR (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-power transformer: VGT22EPC-200S6A12 (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-(for wiring harness) 30 pin mating connector: Sumitomo Original 6189-6987 61896987 https://www.aliexpress.com/item/1005005920568514.html&lt;br /&gt;
&lt;br /&gt;
-30 pin connector and pins are a private stocked part, so must be salvaged from the original board&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-11x torx T20 screws holding the board onto the case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-3x T10 securing the current sensor trim to the pcb &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;OR&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 2x T10 screws holding the pryofuse and current sensor trim&lt;br /&gt;
&lt;br /&gt;
[[File:M3-30-pinout.png|thumb|456x456px|lv 30 pin connector pinout]]&lt;br /&gt;
&lt;br /&gt;
== Installation Process ==&lt;br /&gt;
&lt;br /&gt;
See the [[Tesla Model 3 Drive Unit PCB Install]] page for a detailed guide on how to install and commission the PCB.&lt;br /&gt;
&lt;br /&gt;
== Firmware Parameters ==&lt;br /&gt;
&lt;br /&gt;
The [[ https://github.com/davefiddes/stm32-sine|stm32-sine M3_DU]] firmware has a number of additional parameters and spot values over the standard firmware. The [[Tesla Model 3 Drive Unit PCB Parameters]] page describes these.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5995</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5995"/>
		<updated>2025-12-13T16:57:57Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Spot values */ Add details of missing FOC spot values, annotate sine specific values&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|exckp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|3000&lt;br /&gt;
|Exciter controller gain (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|cogkp&lt;br /&gt;
|&lt;br /&gt;
| -1000&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|[https://openinverter.org/forum/viewtopic.php?t=5660 Anti-cogging modulator] gain. This generates a trapezoidal wave form to counter the cogging current of IPM motors.&lt;br /&gt;
|-&lt;br /&gt;
|cogph&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Anti-cogging modulator phase angle between cogging current and electrical rotor angle&lt;br /&gt;
|-&lt;br /&gt;
|cogmax&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|30000&lt;br /&gt;
|0&lt;br /&gt;
|Maximum amplitude of the anti-cogging current&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|A&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|excurmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|0&lt;br /&gt;
|Exciter current maximum (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;minpulse&#039;&#039;&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively (Obsolete)&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
|modmax&lt;br /&gt;
|dig&lt;br /&gt;
|37000&lt;br /&gt;
|45000&lt;br /&gt;
|37836&lt;br /&gt;
|Values over 37836 over-modulate the PWM sine wave. This can achieve a slightly higher AC voltage at the expense of greater motor losses. (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|11&lt;br /&gt;
|9&lt;br /&gt;
|Filter co-efficient applied to idc prior to derating. Increasing this makes the DC current derating smoother.&lt;br /&gt;
|-&lt;br /&gt;
|tmphsmax&lt;br /&gt;
|°C&lt;br /&gt;
|50&lt;br /&gt;
|150&lt;br /&gt;
|85&lt;br /&gt;
|Maximum permitted temperature of the inverter heatsink. As the temperature gets within 10°C of this limit the throttle will be scaled back by 10% for every degree until it hits the limit.&lt;br /&gt;
|-&lt;br /&gt;
|tmpmmax&lt;br /&gt;
|°C&lt;br /&gt;
|70&lt;br /&gt;
|300&lt;br /&gt;
|300&lt;br /&gt;
|Maximum permitted temperature of the motor. As the temperature gets within 10°C of this limit the throttle will be scaled back by 10% for every degree until it hits the limit.&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|accelmax&lt;br /&gt;
|rpm/10ms&lt;br /&gt;
|1&lt;br /&gt;
|1000&lt;br /&gt;
|1000&lt;br /&gt;
|Maximum permitted acceleration increase (traction control)&lt;br /&gt;
|-&lt;br /&gt;
|accelflt&lt;br /&gt;
|dig&lt;br /&gt;
|1&lt;br /&gt;
|5&lt;br /&gt;
|3&lt;br /&gt;
|Filter between the motor speed and the acceleration rate limiter. Higher values will smooth the input but will make the acceleration rate limiter react more slowly.&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
|outmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0=DC switch output, 1=Motor temp controls the fan output, 2=Heatsink temp controls fan output&lt;br /&gt;
|-&lt;br /&gt;
|fanthresh&lt;br /&gt;
|°C&lt;br /&gt;
|20&lt;br /&gt;
|300&lt;br /&gt;
|50&lt;br /&gt;
|Temperature at which the fan output is turned on when outmode is 1 or 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
|controlid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|2047&lt;br /&gt;
|63&lt;br /&gt;
|The CAN ID used for controlling the [[CAN communication#Inverter_control_via_CAN_-_new!|controlling the inverter via CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|controlcheck&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=Check the counter field in canio CAN frames &#039;&#039;&#039;for legacy VCUs only&#039;&#039;&#039;, 1=Validate the 8-bit truncated STM32 CRC in the canio frame&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage (only &amp;quot;sine&amp;quot; software) &lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1 (only &amp;quot;sine&amp;quot; software) &lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2 (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3 (only &amp;quot;sine&amp;quot; software) &lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|A&lt;br /&gt;
|Current in the direct(d) axis (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|iq&lt;br /&gt;
|A&lt;br /&gt;
|Current in the quadrature(q) axis (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|ifw&lt;br /&gt;
|A&lt;br /&gt;
|Field weakening current (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|ud&lt;br /&gt;
|dig&lt;br /&gt;
|Computed voltage in the direct(d) axis (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|uq&lt;br /&gt;
|dig&lt;br /&gt;
|Computed voltage in the quadrature(q) axis (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|uexc&lt;br /&gt;
|dig&lt;br /&gt;
|Computed exciter voltage (only &amp;quot;FOC&amp;quot; software for the Renault Zoe variant)&lt;br /&gt;
|-&lt;br /&gt;
|anticog&lt;br /&gt;
|dig&lt;br /&gt;
|Amplitude of the anti-cogging modulation waveform (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|regenpreset&lt;br /&gt;
|%&lt;br /&gt;
|Regen preset value which can come from pot2 in potmode=0 or received via CAN&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir / seldir&lt;br /&gt;
|&lt;br /&gt;
|Selected rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|rotordir&lt;br /&gt;
|&lt;br /&gt;
|Actual rotor direction&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_desat&lt;br /&gt;
|&lt;br /&gt;
|Gate driver desaturation event&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5994</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5994"/>
		<updated>2025-12-13T16:08:31Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ Add missing derate parameters with documentation from relevant forum threads&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|exckp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|3000&lt;br /&gt;
|Exciter controller gain (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|cogkp&lt;br /&gt;
|&lt;br /&gt;
| -1000&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|[https://openinverter.org/forum/viewtopic.php?t=5660 Anti-cogging modulator] gain. This generates a trapezoidal wave form to counter the cogging current of IPM motors.&lt;br /&gt;
|-&lt;br /&gt;
|cogph&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Anti-cogging modulator phase angle between cogging current and electrical rotor angle&lt;br /&gt;
|-&lt;br /&gt;
|cogmax&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|30000&lt;br /&gt;
|0&lt;br /&gt;
|Maximum amplitude of the anti-cogging current&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|A&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|excurmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|0&lt;br /&gt;
|Exciter current maximum (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;minpulse&#039;&#039;&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively (Obsolete)&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
|modmax&lt;br /&gt;
|dig&lt;br /&gt;
|37000&lt;br /&gt;
|45000&lt;br /&gt;
|37836&lt;br /&gt;
|Values over 37836 over-modulate the PWM sine wave. This can achieve a slightly higher AC voltage at the expense of greater motor losses. (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|11&lt;br /&gt;
|9&lt;br /&gt;
|Filter co-efficient applied to idc prior to derating. Increasing this makes the DC current derating smoother.&lt;br /&gt;
|-&lt;br /&gt;
|tmphsmax&lt;br /&gt;
|°C&lt;br /&gt;
|50&lt;br /&gt;
|150&lt;br /&gt;
|85&lt;br /&gt;
|Maximum permitted temperature of the inverter heatsink. As the temperature gets within 10°C of this limit the throttle will be scaled back by 10% for every degree until it hits the limit.&lt;br /&gt;
|-&lt;br /&gt;
|tmpmmax&lt;br /&gt;
|°C&lt;br /&gt;
|70&lt;br /&gt;
|300&lt;br /&gt;
|300&lt;br /&gt;
|Maximum permitted temperature of the motor. As the temperature gets within 10°C of this limit the throttle will be scaled back by 10% for every degree until it hits the limit.&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|accelmax&lt;br /&gt;
|rpm/10ms&lt;br /&gt;
|1&lt;br /&gt;
|1000&lt;br /&gt;
|1000&lt;br /&gt;
|Maximum permitted acceleration increase (traction control)&lt;br /&gt;
|-&lt;br /&gt;
|accelflt&lt;br /&gt;
|dig&lt;br /&gt;
|1&lt;br /&gt;
|5&lt;br /&gt;
|3&lt;br /&gt;
|Filter between the motor speed and the acceleration rate limiter. Higher values will smooth the input but will make the acceleration rate limiter react more slowly.&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
|outmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0=DC switch output, 1=Motor temp controls the fan output, 2=Heatsink temp controls fan output&lt;br /&gt;
|-&lt;br /&gt;
|fanthresh&lt;br /&gt;
|°C&lt;br /&gt;
|20&lt;br /&gt;
|300&lt;br /&gt;
|50&lt;br /&gt;
|Temperature at which the fan output is turned on when outmode is 1 or 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
|controlid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|2047&lt;br /&gt;
|63&lt;br /&gt;
|The CAN ID used for controlling the [[CAN communication#Inverter_control_via_CAN_-_new!|controlling the inverter via CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|controlcheck&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=Check the counter field in canio CAN frames &#039;&#039;&#039;for legacy VCUs only&#039;&#039;&#039;, 1=Validate the 8-bit truncated STM32 CRC in the canio frame&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5993</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5993"/>
		<updated>2025-12-13T15:19:24Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ Document the modmax parameter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|exckp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|3000&lt;br /&gt;
|Exciter controller gain (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|cogkp&lt;br /&gt;
|&lt;br /&gt;
| -1000&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|[https://openinverter.org/forum/viewtopic.php?t=5660 Anti-cogging modulator] gain. This generates a trapezoidal wave form to counter the cogging current of IPM motors.&lt;br /&gt;
|-&lt;br /&gt;
|cogph&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Anti-cogging modulator phase angle between cogging current and electrical rotor angle&lt;br /&gt;
|-&lt;br /&gt;
|cogmax&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|30000&lt;br /&gt;
|0&lt;br /&gt;
|Maximum amplitude of the anti-cogging current&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|A&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|excurmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|0&lt;br /&gt;
|Exciter current maximum (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;minpulse&#039;&#039;&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively (Obsolete)&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
|modmax&lt;br /&gt;
|dig&lt;br /&gt;
|37000&lt;br /&gt;
|45000&lt;br /&gt;
|37836&lt;br /&gt;
|Values over 37836 over-modulate the PWM sine wave. This can achieve a slightly higher AC voltage at the expense of greater motor losses. (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
|outmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0=DC switch output, 1=Motor temp controls the fan output, 2=Heatsink temp controls fan output&lt;br /&gt;
|-&lt;br /&gt;
|fanthresh&lt;br /&gt;
|°C&lt;br /&gt;
|20&lt;br /&gt;
|300&lt;br /&gt;
|50&lt;br /&gt;
|Temperature at which the fan output is turned on when outmode is 1 or 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
|controlid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|2047&lt;br /&gt;
|63&lt;br /&gt;
|The CAN ID used for controlling the [[CAN communication#Inverter_control_via_CAN_-_new!|controlling the inverter via CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|controlcheck&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=Check the counter field in canio CAN frames &#039;&#039;&#039;for legacy VCUs only&#039;&#039;&#039;, 1=Validate the 8-bit truncated STM32 CRC in the canio frame&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5992</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5992"/>
		<updated>2025-12-13T14:42:22Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ minpulse would appear to have disappeared some time ago (before 2020)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|exckp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|3000&lt;br /&gt;
|Exciter controller gain (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|cogkp&lt;br /&gt;
|&lt;br /&gt;
| -1000&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|[https://openinverter.org/forum/viewtopic.php?t=5660 Anti-cogging modulator] gain. This generates a trapezoidal wave form to counter the cogging current of IPM motors.&lt;br /&gt;
|-&lt;br /&gt;
|cogph&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Anti-cogging modulator phase angle between cogging current and electrical rotor angle&lt;br /&gt;
|-&lt;br /&gt;
|cogmax&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|30000&lt;br /&gt;
|0&lt;br /&gt;
|Maximum amplitude of the anti-cogging current&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|A&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|excurmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|0&lt;br /&gt;
|Exciter current maximum (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;minpulse&#039;&#039;&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively (Obsolete)&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
|outmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0=DC switch output, 1=Motor temp controls the fan output, 2=Heatsink temp controls fan output&lt;br /&gt;
|-&lt;br /&gt;
|fanthresh&lt;br /&gt;
|°C&lt;br /&gt;
|20&lt;br /&gt;
|300&lt;br /&gt;
|50&lt;br /&gt;
|Temperature at which the fan output is turned on when outmode is 1 or 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
|controlid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|2047&lt;br /&gt;
|63&lt;br /&gt;
|The CAN ID used for controlling the [[CAN communication#Inverter_control_via_CAN_-_new!|controlling the inverter via CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|controlcheck&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=Check the counter field in canio CAN frames &#039;&#039;&#039;for legacy VCUs only&#039;&#039;&#039;, 1=Validate the 8-bit truncated STM32 CRC in the canio frame&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5991</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5991"/>
		<updated>2025-12-13T14:34:36Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ Add details of anti-cogging modulator and Renault Zoe exciter params&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|exckp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|3000&lt;br /&gt;
|Exciter controller gain (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|cogkp&lt;br /&gt;
|&lt;br /&gt;
| -1000&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|[https://openinverter.org/forum/viewtopic.php?t=5660 Anti-cogging modulator] gain. This generates a trapezoidal wave form to counter the cogging current of IPM motors.&lt;br /&gt;
|-&lt;br /&gt;
|cogph&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Anti-cogging modulator phase angle between cogging current and electrical rotor angle&lt;br /&gt;
|-&lt;br /&gt;
|cogmax&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|30000&lt;br /&gt;
|0&lt;br /&gt;
|Maximum amplitude of the anti-cogging current&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|A&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|excurmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|0&lt;br /&gt;
|Exciter current maximum (Renault Zoe variant only)&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|minpulse&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
|outmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0=DC switch output, 1=Motor temp controls the fan output, 2=Heatsink temp controls fan output&lt;br /&gt;
|-&lt;br /&gt;
|fanthresh&lt;br /&gt;
|°C&lt;br /&gt;
|20&lt;br /&gt;
|300&lt;br /&gt;
|50&lt;br /&gt;
|Temperature at which the fan output is turned on when outmode is 1 or 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
|controlid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|2047&lt;br /&gt;
|63&lt;br /&gt;
|The CAN ID used for controlling the [[CAN communication#Inverter_control_via_CAN_-_new!|controlling the inverter via CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|controlcheck&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=Check the counter field in canio CAN frames &#039;&#039;&#039;for legacy VCUs only&#039;&#039;&#039;, 1=Validate the 8-bit truncated STM32 CRC in the canio frame&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5990</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5990"/>
		<updated>2025-12-13T13:50:53Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ Add details of new paramters for CAN control of throttle, direction, etc. Link to detailed wiki page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|minpulse&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
|outmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0=DC switch output, 1=Motor temp controls the fan output, 2=Heatsink temp controls fan output&lt;br /&gt;
|-&lt;br /&gt;
|fanthresh&lt;br /&gt;
|°C&lt;br /&gt;
|20&lt;br /&gt;
|300&lt;br /&gt;
|50&lt;br /&gt;
|Temperature at which the fan output is turned on when outmode is 1 or 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
|controlid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|2047&lt;br /&gt;
|63&lt;br /&gt;
|The CAN ID used for controlling the [[CAN communication#Inverter_control_via_CAN_-_new!|controlling the inverter via CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|controlcheck&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=Check the counter field in canio CAN frames &#039;&#039;&#039;for legacy VCUs only&#039;&#039;&#039;, 1=Validate the 8-bit truncated STM32 CRC in the canio frame&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5989</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5989"/>
		<updated>2025-12-13T13:02:17Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ Add details of fan control originally built by Zero EV&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|minpulse&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
|outmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0=DC switch output, 1=Motor temp controls the fan output, 2=Heatsink temp controls fan output&lt;br /&gt;
|-&lt;br /&gt;
|fanthresh&lt;br /&gt;
|°C&lt;br /&gt;
|20&lt;br /&gt;
|300&lt;br /&gt;
|50&lt;br /&gt;
|Temperature at which the fan output is turned on when outmode is 1 or 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5988</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5988"/>
		<updated>2025-12-13T12:51:54Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ Fix table formatting due to missing spaces before negative numbers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|minpulse&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5987</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5987"/>
		<updated>2025-12-13T12:43:38Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ Add documentation for missing parameters in hill hold and cruise control. Details from hill hold firmware release thread.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|minpulse&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|holdkp&lt;br /&gt;
|&lt;br /&gt;
|-100&lt;br /&gt;
|0&lt;br /&gt;
|-0.25&lt;br /&gt;
|How hard the throttle should be applied to counteract rollback in hill hold. Higher values reduce rollback at the risk of introducing oscillation due to sensor noise.&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
|cruisethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit when cruise control is enabled&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5986</id>
		<title>Parameters</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Parameters&amp;diff=5986"/>
		<updated>2025-12-13T12:18:22Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Parameter Reference */ Add some documentation for missing new throttle parameters. Information sourced from the relevant forum threads.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverter can be adapted to many kinds of motors, battery packs and driver preferences by changing parameters. A video on parameters is here: https://youtu.be/GQNQbBUsqf0&lt;br /&gt;
&lt;br /&gt;
A Parameter Database with common usage scenarios is here: https://openinverter.org/parameters/&lt;br /&gt;
&lt;br /&gt;
A synchronous motor tuning guide is here: [[Using FOC Software]]&lt;br /&gt;
&lt;br /&gt;
== Motor Parameters ==&lt;br /&gt;
The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.&lt;br /&gt;
&lt;br /&gt;
They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boost&#039;&#039;&#039; is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.&lt;br /&gt;
&lt;br /&gt;
Example: boost=1700&lt;br /&gt;
&lt;br /&gt;
At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fweak&#039;&#039;&#039; is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.&lt;br /&gt;
&lt;br /&gt;
A starting point for fweak is the motors nameplate:&lt;br /&gt;
&lt;br /&gt;
[[File:Fweak.png|210x210px]]&lt;br /&gt;
&lt;br /&gt;
With our illustration motor fweak=(355 V/230 V) * 50 Hz = 77 Hz. fweak can be configured lower than that resulting in more torque at the low end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fslipmin&#039;&#039;&#039;/&#039;&#039;&#039;fslipmax&#039;&#039;&#039; is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;polepairs&#039;&#039;&#039; is set to p, 2 in our example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmin&#039;&#039;&#039; should be set just below fslipmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fmax&#039;&#039;&#039; is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ampmin&#039;&#039;&#039; Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting. &lt;br /&gt;
&lt;br /&gt;
== Inverter Parameters ==&lt;br /&gt;
&#039;&#039;&#039;pwmfrq&#039;&#039;&#039; Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pwmpol&#039;&#039;&#039; Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don&#039;t know what you&#039;re doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;deadtime&#039;&#039;&#039; The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage! &lt;br /&gt;
&lt;br /&gt;
== Parameter Reference ==&lt;br /&gt;
The following parameters currently exist to customize the controller software. Type&lt;br /&gt;
 set param &amp;lt;value&amp;gt;&lt;br /&gt;
to change it. Type&lt;br /&gt;
 get param&lt;br /&gt;
to get the current value.&lt;br /&gt;
&lt;br /&gt;
Parameters are internally stored with 5 binary fraction digits. That means there are 32 possible values after the decimal point. So when you set a value of 0.35 you might end up with 0.33. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (FOC)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|iqkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Current controller proportional gain. Low inductance/resistance motors need less, high inductance/resistance motors more&lt;br /&gt;
|-&lt;br /&gt;
|idkp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|64&lt;br /&gt;
|Same as above but often a little higher then iqkp&lt;br /&gt;
|-&lt;br /&gt;
|curki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100000&lt;br /&gt;
|20000&lt;br /&gt;
|Current controller integral gain (id and iq)&lt;br /&gt;
|-&lt;br /&gt;
|vlimflt&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|16&lt;br /&gt;
| 10&lt;br /&gt;
|Amplitude limiting field weakening filter&lt;br /&gt;
|-&lt;br /&gt;
|vlimmargin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10000&lt;br /&gt;
|2500&lt;br /&gt;
|Field weakening is brought in at modmax-vlimmargin. Increase if you get short bursts of unwanted regen at speed&lt;br /&gt;
|-&lt;br /&gt;
|fwcurmax&lt;br /&gt;
|&lt;br /&gt;
| -1000 &lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Maximum field weakening current. Must be set to critical current of motor (TODO: link forum). Set to 0 for disabling field weakening&lt;br /&gt;
|-&lt;br /&gt;
|lqminusld&lt;br /&gt;
|mH&lt;br /&gt;
| 0&lt;br /&gt;
|1000&lt;br /&gt;
| 0&lt;br /&gt;
|Difference between d and q axis inductance. The higher, the more d-current is brought in for additional reluctance torque&lt;br /&gt;
|-&lt;br /&gt;
|fluxlinkage&lt;br /&gt;
|mWeber&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|90&lt;br /&gt;
|Magnetic link between rotor and stator, shapes MTPA curve&lt;br /&gt;
|-&lt;br /&gt;
|syncadv&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|  0&lt;br /&gt;
|65535&lt;br /&gt;
|10&lt;br /&gt;
|Shifts &amp;quot;syncofs&amp;quot; downwards/upwards with frequency. Must be set so that ud remains at 0 when coasting below field weakening speed. &#039;&#039;&#039;SUPER DANGEROUS!&#039;&#039;&#039; Setting it wrong can cause unwanted acceleration.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;curkifrqgain&#039;&#039;&lt;br /&gt;
|dig/Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|50&lt;br /&gt;
|Current controllers integral gain frequency coefficient (deprecated, removed)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;ffwstart&#039;&#039;&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|200&lt;br /&gt;
|Starting point of field weakening controller. Below that frequency it is disabled, above it its gain is increased proportional to frequency and hits &#039;&#039;fwkp&#039;&#039; at &#039;&#039;fmax&#039;&#039;. (deprecated, removed in latest release)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (sine)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|37813&lt;br /&gt;
|1700&lt;br /&gt;
|0 Hz Boost in digit. 1000 digit ~ 2.5%&lt;br /&gt;
|-&lt;br /&gt;
|fweakstrt&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|400&lt;br /&gt;
|Fweak value at potnom &amp;lt; 35%. Can improve low speed stability and reduce oscillation when set higher than fweak.  Set equal to fweak to disable. &lt;br /&gt;
|-&lt;br /&gt;
|fweak&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|67&lt;br /&gt;
|Frequency where V/Hz reaches its peak&lt;br /&gt;
|-&lt;br /&gt;
|fconst&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|400&lt;br /&gt;
|Maximum slip is increased from fslipmax to fslipconstmax as frequency approaches this value. Only effective when greater than fweak.&lt;br /&gt;
|-&lt;br /&gt;
|udcnom&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|Nominal voltage for fweak and boost. fweak and boost are scaled to the actual dc voltage. 0=don&#039;t scale&lt;br /&gt;
|-&lt;br /&gt;
|fslipmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Slip frequency at minimum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|3&lt;br /&gt;
|Slip frequency at maximum throttle&lt;br /&gt;
|-&lt;br /&gt;
|fslipconstmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|Slip frequency at maximum throttle and fconst. Set equal to fslipmax to disable.&lt;br /&gt;
|-&lt;br /&gt;
|fmin&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|1&lt;br /&gt;
|Below this frequency no voltage is generated&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Motor (common)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|polepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|2&lt;br /&gt;
|Pole pairs of motor (e.g. 4-pole motor: 2 pole pairs)&lt;br /&gt;
|-&lt;br /&gt;
|respolepairs&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Pole pairs of resolver (normally same as polepairs of motor, but sometimes 1)&lt;br /&gt;
|-&lt;br /&gt;
|sincosofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4096&lt;br /&gt;
|2048&lt;br /&gt;
|Mid point of sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|encflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|4&lt;br /&gt;
|Filter constant between pulse encoder and speed calculation. Makes up for slightly uneven pulse distribution&lt;br /&gt;
|-&lt;br /&gt;
|encmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=single channel encoder, 1=quadrature encoder,&lt;br /&gt;
2=quadrature /w index pulse, &lt;br /&gt;
3=SPI (deprecated),&lt;br /&gt;
4=Resolver,&lt;br /&gt;
5=sin/cos chip&lt;br /&gt;
|-&lt;br /&gt;
|fmax&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|200&lt;br /&gt;
|At this frequency rev limiting kicks in&lt;br /&gt;
|-&lt;br /&gt;
|numimp&lt;br /&gt;
|Imp/rev&lt;br /&gt;
|8&lt;br /&gt;
|8192&lt;br /&gt;
|60&lt;br /&gt;
|Pulse encoder pulses per turn&lt;br /&gt;
|-&lt;br /&gt;
|dirchrpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|2000&lt;br /&gt;
|100&lt;br /&gt;
|Motor speed at which direction change is allowed&lt;br /&gt;
|-&lt;br /&gt;
|dirmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0=button (momentary pulse selects forward/reverse), 1=switch (forward or reverse signal must be constantly high)&lt;br /&gt;
|-&lt;br /&gt;
|syncofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Phase shift of sine wave after receiving index pulse&lt;br /&gt;
|-&lt;br /&gt;
|snsm&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|Motor temperature sensor. 12=KTY83, 13=KTY84, 14=Leaf, 15=KTY81&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Inverter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfrq&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|PWM frequency. 0=17.6kHz, 1=8.8kHz, 2=4.4kHz, 3=2.2kHz. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|pwmpol&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|PWM polarity. 0=active high, 1=active low. DO NOT PLAY WITH THIS!&lt;br /&gt;
Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|deadtime&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|255&lt;br /&gt;
|28&lt;br /&gt;
|Deadtime between highside and lowside pulse. 28=800ns, 56=1.5µs. Not always linear, consult STM32 manual. Needs PWM restart&lt;br /&gt;
|-&lt;br /&gt;
|ocurlim&lt;br /&gt;
|A&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Hardware over current limit. RMS-current times sqrt(2) + some slack. Set negative if il1gain and il2gain are negative.&lt;br /&gt;
|-&lt;br /&gt;
|minpulse&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|1000&lt;br /&gt;
|Narrowest or widest pulse, all other mapped to full off or full on, respectively&lt;br /&gt;
|-&lt;br /&gt;
|il1gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L1&lt;br /&gt;
|-&lt;br /&gt;
|il2gain&lt;br /&gt;
|dig/A&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4.7&lt;br /&gt;
|Digits per A of current sensor L2&lt;br /&gt;
|-&lt;br /&gt;
|udcgain&lt;br /&gt;
|dig/V&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|6.15&lt;br /&gt;
|Digits per V of DC link&lt;br /&gt;
|-&lt;br /&gt;
|udcofs&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|DC link 0V offset&lt;br /&gt;
|-&lt;br /&gt;
|udclim&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|High voltage at which the PWM is shut down&lt;br /&gt;
|-&lt;br /&gt;
|snshs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Heatsink temperature sensor. 0=JCurve, 1=Semikron, 2=MBB600, 3=KTY81, 4=PT1000, 5=NTCK45+2k2, 6=Leaf&lt;br /&gt;
|-&lt;br /&gt;
|pinswap&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|Swap pins (only &amp;quot;FOC&amp;quot; software). Multiple bits can be set. 1=Swap Current Inputs, 2=Swap Resolver sin/cos, 4=Swap PWM output 1/3&lt;br /&gt;
0001 = 1 Swap Currents ony&lt;br /&gt;
&lt;br /&gt;
0010 = 2 Swap Resolver only&lt;br /&gt;
&lt;br /&gt;
0011 = 3 Swap Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
0100 = 4 Swap PWM 1 and 3 only&lt;br /&gt;
&lt;br /&gt;
0101 = 5 Swap PWM 1 and 3 and Currents&lt;br /&gt;
&lt;br /&gt;
0110 = 6 Swap PWM 1 and 3 and Resolver&lt;br /&gt;
&lt;br /&gt;
0111 = 7 Swap PWM 1 and 3 and Resolver and Currents&lt;br /&gt;
&lt;br /&gt;
1xxx likewise with PWM 2 and 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Derating&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|bmslimhigh&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Positive throttle limit on BMS under voltage&lt;br /&gt;
|-&lt;br /&gt;
|bmslimlow&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -1&lt;br /&gt;
|Regen limit on BMS over voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmin&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|450&lt;br /&gt;
|Minimum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|udcmax&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|520&lt;br /&gt;
|Maximum battery voltage&lt;br /&gt;
|-&lt;br /&gt;
|iacmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum peak AC current&lt;br /&gt;
|-&lt;br /&gt;
|idcmax&lt;br /&gt;
|A&lt;br /&gt;
|0&lt;br /&gt;
|5000&lt;br /&gt;
|5000&lt;br /&gt;
|Maximum DC input current&lt;br /&gt;
|-&lt;br /&gt;
|idckp&lt;br /&gt;
|dig&lt;br /&gt;
|0.1&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|Proportional rate of DC current derating&lt;br /&gt;
|-&lt;br /&gt;
|idcmin&lt;br /&gt;
|A&lt;br /&gt;
| -5000&lt;br /&gt;
|0&lt;br /&gt;
| -5000&lt;br /&gt;
|Maximum DC output current (regen)&lt;br /&gt;
|-&lt;br /&gt;
|throtmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Throttle limit&lt;br /&gt;
|-&lt;br /&gt;
|throtmin&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -100&lt;br /&gt;
|Throttle regen limit&lt;br /&gt;
|-&lt;br /&gt;
|ifltrise&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|10&lt;br /&gt;
|Controls how quickly slip and amplitude recover. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
|ifltfall&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|32&lt;br /&gt;
|3&lt;br /&gt;
|Controls how quickly slip and amplitude are reduced on over current. The greater the value, the slower&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Charger&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|chargemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0=Off, 3=Boost, 4=Buck&lt;br /&gt;
|-&lt;br /&gt;
|chargecur&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|50&lt;br /&gt;
|0&lt;br /&gt;
|Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current&lt;br /&gt;
|-&lt;br /&gt;
|chargekp&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|80&lt;br /&gt;
|Charge controller proportional gain. Lower if you have oscillation, raise to get best power factor.&lt;br /&gt;
|-&lt;br /&gt;
|chargeki&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Charge controller integral gain.&lt;br /&gt;
|-&lt;br /&gt;
|chargeflt&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|8&lt;br /&gt;
|Charge current filtering. Raise if you have oscillations&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|0&lt;br /&gt;
|Lowest charge mode duty cycle. This is needed for synchronous converters like in the Prius Gen2 where the lower IGBT is also active in buck mode and actually boosts the battery voltage into the bus capacitor when duty cycle is low.&lt;br /&gt;
|-&lt;br /&gt;
|chargepwmax&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|99&lt;br /&gt;
|90&lt;br /&gt;
|Charge mode duty cycle limit. Especially in boost mode this makes sure you don&#039;t overvolt you IGBTs if there is no battery connected.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Throttle&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|potmin&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|0&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot isn&#039;t pressed at all&lt;br /&gt;
|-&lt;br /&gt;
|potmax&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot&amp;quot; when pot is pushed all the way in&lt;br /&gt;
|-&lt;br /&gt;
|pot2min&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in 0 position&lt;br /&gt;
|-&lt;br /&gt;
|pot2max&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|4095&lt;br /&gt;
|4095&lt;br /&gt;
|Value of &amp;quot;pot2&amp;quot; when regen pot is in full on position&lt;br /&gt;
|-&lt;br /&gt;
|potmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|6&lt;br /&gt;
|0&lt;br /&gt;
|0=Pot 1 is throttle and pot 2 is regen strength preset&lt;br /&gt;
1=Pot 2 is proportional to pot 1 (redundancy)&lt;br /&gt;
&lt;br /&gt;
2=Throttle/regen controlled via CAN (like 0)&lt;br /&gt;
&lt;br /&gt;
3=Throttle via CAN with redundancy (like 1)&lt;br /&gt;
&lt;br /&gt;
4=Bidirectional throttle sets torque and direction (e.g. for boats)&lt;br /&gt;
&lt;br /&gt;
6=Bidirectional throttle controlled via CAN (like 4)&lt;br /&gt;
|-&lt;br /&gt;
|potlinearity&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Blend between a fully linear pedal (100%) and fully quadratic (0%). The throttle output is defined as potnom²*(1-potlinearity) + potnom * potlinearity. Regen is always linear.&lt;br /&gt;
|-&lt;br /&gt;
|throtramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Max positive throttle slew rate&lt;br /&gt;
|-&lt;br /&gt;
|throtramprpm&lt;br /&gt;
|rpm&lt;br /&gt;
|0&lt;br /&gt;
|20000&lt;br /&gt;
|20000&lt;br /&gt;
|No throttle ramping above this speed&lt;br /&gt;
|-&lt;br /&gt;
|ampmin&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|10&lt;br /&gt;
|Minimum relative sine amplitude (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|slipstart&lt;br /&gt;
|%&lt;br /&gt;
|10&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|% positive throttle travel at which slip is increased (only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|sinecurve&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=VoltageSlip - The first half of the throttle increases voltage but keeps slip at fslipin. Then the second half of the throttle increases slip up to fslipmax.&lt;br /&gt;
&lt;br /&gt;
1=Simultaneous - Increases slip and voltage at the same time across the whole range of the throttle. Can provide smoother throttle response.&lt;br /&gt;
(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtfilter&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|4&lt;br /&gt;
|How heavily the throttle is filtered. Lowering will increase throttle response at the expense of stability.(only &amp;quot;sine&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
|throtcur&lt;br /&gt;
|A/%&lt;br /&gt;
| -10&lt;br /&gt;
|10&lt;br /&gt;
|1&lt;br /&gt;
|Motor current per % of throttle travel (only &amp;quot;FOC&amp;quot; software)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Regen&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|brknompedal / brakeregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -50&lt;br /&gt;
|Foot on brake pedal regen torque&lt;br /&gt;
|-&lt;br /&gt;
|regenramp&lt;br /&gt;
|%/10ms&lt;br /&gt;
|0.1&lt;br /&gt;
|100&lt;br /&gt;
|100&lt;br /&gt;
|Ramp speed when entering regen. E.g. when you set brkmax to -30% and regenramp to 1, it will take 300ms to arrive at brake force of -60%&lt;br /&gt;
|-&lt;br /&gt;
|brknom / regentravel&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|30&lt;br /&gt;
|Range of throttle pedal travel allocated to regen&lt;br /&gt;
|-&lt;br /&gt;
|brkmax / offthrotregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| 0&lt;br /&gt;
| -30&lt;br /&gt;
|Foot-off throttle regen torque&lt;br /&gt;
|-&lt;br /&gt;
|brkcruise / cruiseregen&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
|0&lt;br /&gt;
| -30&lt;br /&gt;
|Maximum regen of cruise control&lt;br /&gt;
|-&lt;br /&gt;
|brkrampstr / regenrampstr&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|400&lt;br /&gt;
|10&lt;br /&gt;
|Below this frequency the regen torque is reduced linearly with the frequency&lt;br /&gt;
|-&lt;br /&gt;
|maxregentravelhz &lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|brkout / brklightout&lt;br /&gt;
|%&lt;br /&gt;
| -100&lt;br /&gt;
| -1&lt;br /&gt;
| -50&lt;br /&gt;
|Activate brake light output at this amount of braking force&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Automation&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|idlespeed&lt;br /&gt;
|rpm&lt;br /&gt;
| -100&lt;br /&gt;
|1000&lt;br /&gt;
| -100&lt;br /&gt;
|Motor idle speed. Set to -100 to disable idle function. When idle speed controller is enabled, brake pedal must be pressed on start.&lt;br /&gt;
|-&lt;br /&gt;
|idlethrotlim&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|50&lt;br /&gt;
|Throttle limit of idle speed controller&lt;br /&gt;
|-&lt;br /&gt;
|idlemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Motor idle speed mode. 0=always run idle speed controller, 1=only run it when brake pedal is released, 2=like 1 but only when cruise switch is on, 3=off, 4=Hill Hold&lt;br /&gt;
|-&lt;br /&gt;
|speedkp&lt;br /&gt;
|Hz&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|1&lt;br /&gt;
|Speed controller gain (Cruise and idle speed). Decrease if speed oscillates. Increase for faster load regulation&lt;br /&gt;
|-&lt;br /&gt;
|speedflt&lt;br /&gt;
|dig&lt;br /&gt;
|0&lt;br /&gt;
|16&lt;br /&gt;
|1&lt;br /&gt;
|Filter before cruise controller&lt;br /&gt;
|-&lt;br /&gt;
|cruisemode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=button (set when button pressed, reset with brake pedal), 1=switch (set when switched on, reset when switched off or brake pedal)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Contactor Control&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|udcsw&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|330&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close&lt;br /&gt;
|-&lt;br /&gt;
|udcswbuck&lt;br /&gt;
|V&lt;br /&gt;
|0&lt;br /&gt;
|1000&lt;br /&gt;
|540&lt;br /&gt;
|Voltage at which the DC contactor is allowed to close in buck charge mode&lt;br /&gt;
|-&lt;br /&gt;
|tripmode&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|What to do with relays at a shutdown event. 0=All off, 1=Keep DC switch closed, 2=close precharge relay&lt;br /&gt;
|-&lt;br /&gt;
|bootprec&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|Engage precharge relay in boot loader. Introduced for enabling Prius Gen3 DC/DC converter when precharge relay is released. Use together with tripmode=2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Auxillary PWM&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|pwmfunc&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|Quantity that controls the PWM output. 0=tmpm, 1=tmphs, 2=speed&lt;br /&gt;
|-&lt;br /&gt;
|pwmgain&lt;br /&gt;
|dig/C&lt;br /&gt;
|0&lt;br /&gt;
|65535&lt;br /&gt;
|100&lt;br /&gt;
|Gain of PWM output&lt;br /&gt;
|-&lt;br /&gt;
|pwmofs&lt;br /&gt;
|dig&lt;br /&gt;
| -65535&lt;br /&gt;
|65535&lt;br /&gt;
|0&lt;br /&gt;
|Offset of PWM output, 4096=full on&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Communication&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|canspeed&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|Baud rate of CAN interface 0=250k, 1=500k, 2=800k, 3=1M&lt;br /&gt;
|-&lt;br /&gt;
|canperiod&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0=send configured CAN messages every 100ms, 1=every 10ms&lt;br /&gt;
|-&lt;br /&gt;
|nodeid&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|63&lt;br /&gt;
|1&lt;br /&gt;
|Node ID for CAN SDO messages and for selective enabling of UART when sharing one ESP8266 module between multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;Testing&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|fslipspnt&lt;br /&gt;
|Hz&lt;br /&gt;
| -100&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Slip setpoint in mode 2. Written by software in mode 1&lt;br /&gt;
|-&lt;br /&gt;
|ampnom&lt;br /&gt;
|%&lt;br /&gt;
|0&lt;br /&gt;
|100&lt;br /&gt;
|0&lt;br /&gt;
|Nominal amplitude in mode 2. Written by software in mode 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spot values ==&lt;br /&gt;
The following values are available for diagnostic purposes. Type&lt;br /&gt;
 get &lt;br /&gt;
to get the current value. To read more then one you can provide a list like&lt;br /&gt;
 get il1,il2,udc&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Unit&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|Firmware version&lt;br /&gt;
|-&lt;br /&gt;
|hwver&lt;br /&gt;
|&lt;br /&gt;
|Hardware version&lt;br /&gt;
|-&lt;br /&gt;
|opmode&lt;br /&gt;
|&lt;br /&gt;
|Operating mode. 0=Off, 1=Run, 2=Manual_run, 3=Boost, 4=Buck, 5=Sine, 6=2 Phase sine&lt;br /&gt;
|-&lt;br /&gt;
|lasterr&lt;br /&gt;
|&lt;br /&gt;
|Last error message&lt;br /&gt;
|-&lt;br /&gt;
|udc&lt;br /&gt;
|V&lt;br /&gt;
|DC link voltage&lt;br /&gt;
|-&lt;br /&gt;
|uac&lt;br /&gt;
|V&lt;br /&gt;
|Calculated AC voltage&lt;br /&gt;
|-&lt;br /&gt;
|idc&lt;br /&gt;
|A&lt;br /&gt;
|Calculated DC current&lt;br /&gt;
|-&lt;br /&gt;
|il1&lt;br /&gt;
|A&lt;br /&gt;
|AC current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2&lt;br /&gt;
|A&lt;br /&gt;
|AC current L2&lt;br /&gt;
|-&lt;br /&gt;
|il1rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L1&lt;br /&gt;
|-&lt;br /&gt;
|il2rms&lt;br /&gt;
|A&lt;br /&gt;
|RMS current L2&lt;br /&gt;
|-&lt;br /&gt;
|ilmax&lt;br /&gt;
|A&lt;br /&gt;
|Calculated max of il1, il2, il3&lt;br /&gt;
|-&lt;br /&gt;
|boostcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted boost setting&lt;br /&gt;
|-&lt;br /&gt;
|fweakcalc&lt;br /&gt;
|A&lt;br /&gt;
|DC link adjusted fweak setting&lt;br /&gt;
|-&lt;br /&gt;
|fstat&lt;br /&gt;
|Hz&lt;br /&gt;
|Stator frequency&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor speed&lt;br /&gt;
|-&lt;br /&gt;
|cruisespeed&lt;br /&gt;
|rpm&lt;br /&gt;
|Motor RPM set point for cruise control if cruisemode=CAN&lt;br /&gt;
|-&lt;br /&gt;
|turns&lt;br /&gt;
|&lt;br /&gt;
|Number of turns the motor completed since power up&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|dig&lt;br /&gt;
|Sine amplitude, 37813=max&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|°&lt;br /&gt;
|Motor rotor angle, 0-360°. When using the SINE software, the slip is added to the rotor position.&lt;br /&gt;
This is not the physical angle, but a &amp;quot;virtual&amp;quot; angle. E.g. if your motor has four pole pairs (motor and resolver), then per one physical revolution the &amp;quot;angle&amp;quot; will change four times between 0 and 360°. Discussed here: https://openinverter.org/forum/viewtopic.php?p=71253#p71253&lt;br /&gt;
|-&lt;br /&gt;
|pot&lt;br /&gt;
|dig&lt;br /&gt;
|Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|pot2&lt;br /&gt;
|dig&lt;br /&gt;
|Regen Pot value, 4095=max&lt;br /&gt;
|-&lt;br /&gt;
|potnom&lt;br /&gt;
|%&lt;br /&gt;
|Scaled pot value, 0 accel.&lt;br /&gt;
potnom also includes the deratings. So say you have programmed udcmin=300V and you are tuning without HV, so udc=0, potnom will never be positive because it thinks the battery voltage is low. Discussed here: https://openinverter.org/forum/viewtopic.php?p=62930#p62930&lt;br /&gt;
&lt;br /&gt;
range:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; negative means regeneration (e.g. -30%, according to [[Schematics and Instructions|Schematics and Instructions - openinverter.org wiki]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; zero means &amp;quot;zero torque request&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 100% means full acceleraton.&lt;br /&gt;
|-&lt;br /&gt;
|dir&lt;br /&gt;
|&lt;br /&gt;
|Rotation direction. -1=REV, 0=Neutral, 1=FWD&lt;br /&gt;
|-&lt;br /&gt;
|tmphs&lt;br /&gt;
|°C&lt;br /&gt;
|Heatsink temperature&lt;br /&gt;
|-&lt;br /&gt;
|tmpm&lt;br /&gt;
|°C&lt;br /&gt;
|Motor temperature&lt;br /&gt;
|-&lt;br /&gt;
|uaux&lt;br /&gt;
|V&lt;br /&gt;
|Auxiliary voltage (i.e. 12V system). Measured on pin 11 (mprot)&lt;br /&gt;
|-&lt;br /&gt;
|pwmio&lt;br /&gt;
|&lt;br /&gt;
|raw state of PWM outputs at power up&lt;br /&gt;
|-&lt;br /&gt;
|canio&lt;br /&gt;
|&lt;br /&gt;
|Digital IO bits received via [[CAN communication#Controlling Digital IO via CAN|CAN]]&lt;br /&gt;
|-&lt;br /&gt;
|din_cruise&lt;br /&gt;
|&lt;br /&gt;
|Cruise Control. This pin activates the cruise control with the current speed. Pressing again updates the speed set point.&lt;br /&gt;
|-&lt;br /&gt;
|din_start&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;start&amp;quot;. This pin starts inverter operation&lt;br /&gt;
|-&lt;br /&gt;
|din_brake&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;brake&amp;quot;. This pin sets maximum regen torque (brknompedal). Cruise control is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|din_mprot&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;motor protection switch&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_forward&lt;br /&gt;
|&lt;br /&gt;
|Direction forward&lt;br /&gt;
|-&lt;br /&gt;
|din_reverse&lt;br /&gt;
|&lt;br /&gt;
|Direction backward&lt;br /&gt;
|-&lt;br /&gt;
|din_emcystop&lt;br /&gt;
|&lt;br /&gt;
|State of digital input &amp;quot;emergency stop&amp;quot;. Shuts down the inverter when =0&lt;br /&gt;
|-&lt;br /&gt;
|din_ocur&lt;br /&gt;
|&lt;br /&gt;
|Over current detected&lt;br /&gt;
|-&lt;br /&gt;
|din_bms&lt;br /&gt;
|&lt;br /&gt;
|BMS over voltage/under voltage&lt;br /&gt;
|-&lt;br /&gt;
|cpuload&lt;br /&gt;
|%&lt;br /&gt;
|CPU load for everything except communication&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tuning Guide ==&lt;br /&gt;
First you want to find a flat surface - a parking lot etc. so you can drive and stop without checking traffic. Change only one parameter at a time and save settings that work! &lt;br /&gt;
&lt;br /&gt;
1. set fslipmin so that you feel car taking off smoothly and try to change it by +/-0,1Hz and check differences in starting. Save when satisfied.&lt;br /&gt;
&lt;br /&gt;
2. lower boost value in 100 point until motor jitters at start. Then return it to last good value.&lt;br /&gt;
&lt;br /&gt;
3. try lowering ampmin in 0,1 increments and observe throttle travel. When throttle is not just smooth but becomes sluggish return some previous increments until throttle reaction is acceptable.&lt;br /&gt;
&lt;br /&gt;
4. change fweak value in +/-10Hz increments from starting point and observe torque in starting. This value is very dependent on battery voltage and is very subjective.&lt;br /&gt;
&lt;br /&gt;
Now you find a hill or ramp and set car on it. You want to hold car in position on slope just using throttle pedal. If there parameters are not good motor will jump or will feel sluggish&lt;br /&gt;
&lt;br /&gt;
1. add boost if motor is oscillating if it is smooth reduce it in 100 point increments until you get oscillation. Then return to last good value&lt;br /&gt;
&lt;br /&gt;
2. reduce/increase ampmin in 0,25 increments untill you get oscilation in motor and return last good value&lt;br /&gt;
&lt;br /&gt;
Now set the car into a hill to set fslipmax. Warning full throttle will be used. Be sure there is no other traffic!&lt;br /&gt;
&lt;br /&gt;
Set fslipmax to chosen value (guess it at 2xfslipmin if you have no other way) and try to take off with full throttle.&lt;br /&gt;
&lt;br /&gt;
If car feels sluggish with full throttle you have to add more slip.&lt;br /&gt;
&lt;br /&gt;
If motor starts to jitter there is too much slip. Try to reduce it in 0.1Hz increments.&lt;br /&gt;
&lt;br /&gt;
When you feel satisfied with settings save them and go on setting regen and braking effect.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenInverter]] [[Category:Inverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5979</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5979"/>
		<updated>2025-12-03T18:35:49Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Bench Testing the Motor */ Avoid repeating headings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
==== Electronics Assembly Tools ====&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Desoldering braid&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
&lt;br /&gt;
==== Hand Tools ====&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
&lt;br /&gt;
==== Commissioning Tools ====&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
* USB CAN adapter with [https://github.com/davefiddes/openinverter-can-tool OpenInverter CAN Tool] &#039;&#039;&#039;OR&#039;&#039;&#039; ESP32 CAN interface with [https://github.com/jsphuebner/esp32-web-interface/tree/can-backend esp32-web-interface] can firmware&lt;br /&gt;
* Multimeter&lt;br /&gt;
* 48V DC power supply &#039;&#039;&#039;OR&#039;&#039;&#039; battery with current limiting heating element or incandescent light bulb &lt;br /&gt;
* Dual channel throttle pedal (e.g. BMW E36 throttle pedal)&lt;br /&gt;
* Momentary switch&lt;br /&gt;
* SPST changeover switch&lt;br /&gt;
&lt;br /&gt;
== Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
=== Fit DC-DC Converter - Beta Version only ===&lt;br /&gt;
&lt;br /&gt;
# Insert the DC-DC converter and tack one pin&lt;br /&gt;
# Ensure there is some pressure on the top of the DC-DC converter&lt;br /&gt;
# Reflow the tacked pin to ensure the DC-DC converter is flush to the board&lt;br /&gt;
#* This is important to avoid fatigue of the converter pins&lt;br /&gt;
# Finish soldering all the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Connect a CAN interface&lt;br /&gt;
#* Pin 12 - CANH&lt;br /&gt;
#* Pin 2 - CANL&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;br /&gt;
# Verify current consumption is around 300mA&lt;br /&gt;
&lt;br /&gt;
=== Verify Status ===&lt;br /&gt;
It is important to check that the components we have fitted are working correctly while the board is still easy to work on.&lt;br /&gt;
# Using the CAN configuration tool check the errors list&lt;br /&gt;
#* There should be four errors: HIRESOFS, HICUROFS1, HICUROFS2 and OILPUMPFAULT&lt;br /&gt;
#* More errors indicates that trouble shooting is required&lt;br /&gt;
# Set the multimeter to DC volts and check the following test points:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Black Lead !! style=&amp;quot;color:red&amp;quot; | Red Lead !! Expected Voltage !! Description&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP8 || 12.1 V || High-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP6 || -5.1 V || High-side phase A gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP9 || 12.1 V || High-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP11 || -5.1 V || High-side phase C gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP12 || 12.1 V || High-side phase B gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP14 || -5.1 V || High-side phase B gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP17 || 18.2 V || Low-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP16 || 18.2 V || Low-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP15 || 18.2 V || Low-side phase B gate drive positive supply&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the GATE FAULT LED is lit look at the m3_phaseX_xx Spot Values for clues:&lt;br /&gt;
* RxCRC indicates a communications problem between the MCU and the gate driver ICs. All 6 chips have to be working to correctly initialise. Check the orientation and soldering on the upper side of all 6 gate driver ICs.&lt;br /&gt;
* Any fault values reported on the m3_phaseX_xx Spot Values should point to the affected gate driver IC&lt;br /&gt;
* Check the soldering on the gate drive IC and for any dislodged passive components near the affected IC&lt;br /&gt;
* The gate drive supply voltages should be identical to each other and very close the values in the table. The power supplies are current limited so any problems should not damage parts but need to be fixed before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Current Sensor Installation ==&lt;br /&gt;
&lt;br /&gt;
The current sensor ICs (U30 and U40) [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP] can be purchased new or recovered from the original Tesla PCB.&lt;br /&gt;
&lt;br /&gt;
# The current sensors are fitted to the underside of the PCB so flip the board onto the component side&lt;br /&gt;
# Orient the sensor with the chamfer towards the edge of the board, away from the rectangular hole for the phase conductor&lt;br /&gt;
# Push the current sensor until it sits flush with the board&lt;br /&gt;
# Flip the board back to site component side up&lt;br /&gt;
# Clip the black plastic current sensor housing back over the sensor ICs&lt;br /&gt;
# Push the leads of each of the current sensors down into the current sensor block&lt;br /&gt;
# Apply some flux and tack one pin of each sensor&lt;br /&gt;
#* Do not cut the leads of the sensor at this point&lt;br /&gt;
# Unclip the current sensor block and check the height of the sensor ICs above the PCB&lt;br /&gt;
#* There should be 4.7mm of exposed lead between the PCB and the black plastic of the sensor&lt;br /&gt;
# Reclip the current sensor block over the ICs&lt;br /&gt;
# Solder all of the remaining leads and cut the excess lead from the sensor IC wires&lt;br /&gt;
# Screw in the 3 Torx T10 mounting screws&lt;br /&gt;
#* Beta boards only: Do not fit the left hand screw as it will damage R127 and C23 and potentially short a circuit trace&lt;br /&gt;
&lt;br /&gt;
=== Verify Current Sensors ===&lt;br /&gt;
&lt;br /&gt;
# Reattach the power supply to the board&lt;br /&gt;
# Power up the board again&lt;br /&gt;
# The power, activity and gate fault LEDs should behave as on first power up&lt;br /&gt;
# Using the multimeter on DC Volts check between ground (H7) and TP22 (marked IL1)&lt;br /&gt;
#* The test points are located on the left hand edge of the board next to the GATE FAULT LED&lt;br /&gt;
#* The voltage should read 1.56 volts&lt;br /&gt;
# Repeat for TP23 (IL2) which should read the same value&lt;br /&gt;
# Optionally check the error list in your CAN configuration tool. The HICUROFS1 and HICUROFS2 errors should now not be present.&lt;br /&gt;
&lt;br /&gt;
== Main 30-pin Connector Fitting ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the 30-pin connector array&lt;br /&gt;
# Use solder braid and some flux to clean all the excess solder from all pins&lt;br /&gt;
# Insert the connector into the PCB&lt;br /&gt;
# Tack two corner pins with solder&lt;br /&gt;
# Flip the board over and ensure that plastic mount on the connector is flush with the board&lt;br /&gt;
#* It is critical that the connector is mounted flush otherwise the mating connector on the wiring harness will not engage cleanly&lt;br /&gt;
# Solder all of the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Fitting the PCB to the Inverter Chassis ==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the PCB ===&lt;br /&gt;
&lt;br /&gt;
# The PCB is supplied with 3 thermistor temperature sensors&lt;br /&gt;
# Insert each thermistor into the underside of the PCB&lt;br /&gt;
#* Don&#039;t solder the thermistors at this stage, just bend the leads to hold them in place&lt;br /&gt;
# Place the insulation shield recovered from the Tesla PCB over the underside of the board&lt;br /&gt;
# Fit the shield using the 6 plastic clips from the Telsa PCB&lt;br /&gt;
# Optional: Fit the WiFi/Terminal header and SWD Prog headers if desired&lt;br /&gt;
#* WiFi control boards will not fit or function within the inverter when fitted to the motor but can be useful for bench testing &lt;br /&gt;
&lt;br /&gt;
=== Fitting the PCB to the Chassis ===&lt;br /&gt;
&lt;br /&gt;
# Place the main inverter chassis on the bench&lt;br /&gt;
# Lower the PCB onto the chassis in roughly the following order&lt;br /&gt;
## HVIL pins at the top of the board&lt;br /&gt;
## Locating dowel in the top-right of the board&lt;br /&gt;
## 4 DC bus capacitor pins in the middle of the board&lt;br /&gt;
## Main MOSFET pins&lt;br /&gt;
## Locating dowel in the bottom-left of the board&lt;br /&gt;
#* Tap gently but don&#039;t apply any significant pressure&lt;br /&gt;
#* MOSFET pins may require gentle tweaking to get the alignment correct&lt;br /&gt;
# Check with a finger that pins are through the board&lt;br /&gt;
#* Each MOSFET position has two pins (labelled S and G)&lt;br /&gt;
#* There are two HVIL pins (labelled CONN1)&lt;br /&gt;
#* There are 4 DC bus capacitor pins( labelled E12, E13, E14 and E15)&lt;br /&gt;
# Screw in each of the T20 fasteners to the PCB&lt;br /&gt;
#* Beta boards only : Don&#039;t fit a screw in H10 as the hole is in the wrong place&lt;br /&gt;
#* Hole alignment is improving with each board revision. A little jiggling from side to side may be required to get all fasteners to fit.&lt;br /&gt;
&lt;br /&gt;
=== Soldering the Chassis Components ===&lt;br /&gt;
&lt;br /&gt;
# Lift the inverter chassis to be able to look into the side&lt;br /&gt;
# Push the leads of thermistor ST1 down into the thermal compound on the chassis&lt;br /&gt;
# Solder the leads on the thermistor&lt;br /&gt;
# Repeat for thermistors ST2 and ST3 in between the MOSFETs&lt;br /&gt;
# Solder the 4 DC bus capacitor pins E12, E13, E14 and E15&lt;br /&gt;
# Recheck each of the MOSFET pins are visible through the PCB before starting to solder&lt;br /&gt;
#* Some inverters have only 3 pairs of MOSFETs for each phase others 4&lt;br /&gt;
# Solder each MOSFET pin&lt;br /&gt;
#* Be careful when soldering not to keep the iron on the pin for too long. If heat is applied for too long the solder, assisted by gravity, can wick down the pins into the bus bars on the chassis and cause shorts.&lt;br /&gt;
&lt;br /&gt;
== Bench Testing the Motor ==&lt;br /&gt;
&lt;br /&gt;
=== Low Voltage Testing ===&lt;br /&gt;
&lt;br /&gt;
# Place the inverter on a suitable work surface next to the motor&lt;br /&gt;
# Connect the wiring harness to:&lt;br /&gt;
#* Inverter, oil pump and resolver on the motor&lt;br /&gt;
#* 12V power supply&lt;br /&gt;
#* CAN configuration tool&lt;br /&gt;
# Turn on the 12V PSU&lt;br /&gt;
#Confirm:&lt;br /&gt;
#* The LEDs behave the same way as the original power on test&lt;br /&gt;
#* The CAN configuration tool should now show no errors&lt;br /&gt;
#* The oil pump will be running continuously&lt;br /&gt;
#* It may be possible to hear the 8.8kHz resolver exciter tone&lt;br /&gt;
&lt;br /&gt;
=== Spinning the Motor ===&lt;br /&gt;
&lt;br /&gt;
# Check the following inverter parameters:&lt;br /&gt;
#* throtcur = 1&lt;br /&gt;
#* brakeregen = 0 (disabling regen is critical when using a DC power supply to avoid inverter and PSU damage)&lt;br /&gt;
#* offthrotregen = 0&lt;br /&gt;
# Connect the following:&lt;br /&gt;
#* Momentary switch to the Start input and 12V&lt;br /&gt;
#* Changeover switch to the Forward and Reverse inputs and 12V positive&lt;br /&gt;
#* Throttle pedal to the two inputs&lt;br /&gt;
# Connect the 3 phases on the inverter to the motor&lt;br /&gt;
#* Short equal lengths of 10mm^2 cable should be sufficient&lt;br /&gt;
# Connect the PSU or battery to the inverter&lt;br /&gt;
#* The positive connection on the inverter is the one nearest the 30-pin low voltage connector&lt;br /&gt;
#* If using a battery use an incandescent light bulb or heating element as a pre-charge and current limiter&lt;br /&gt;
# Press the Start button&lt;br /&gt;
#* Verify that the inverter goes into Run mode&lt;br /&gt;
# Select forward&lt;br /&gt;
# Depress the throttle pedal&lt;br /&gt;
# Observe the motor spinning!&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB&amp;diff=5978</id>
		<title>Tesla Model 3 Drive Unit PCB</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB&amp;diff=5978"/>
		<updated>2025-12-03T14:27:45Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Link to the new install process page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source logic board for the Tesla Model 3 rear drive unit. Based on the inverter designed by Johannes Heubner using FOC control.&lt;br /&gt;
[[File:M3driver.png|thumb|458x458px|m3 inverter replacement pcb]]&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the model 3 drive unit inverters feature a PCB with both HV and LV circuits, the gate drivers, and logic. thus a simple replacement brain board is not possible. canbus control is complicated and requires use of tesla&#039;s diagnostics software for inverter pairing. this is a legal greyzone and not a fully opensource option. Instead a full fledged replacement board with gate drivers was designed to allow full lobotomization of elon, thus gaining full opensource control of the model 3/y drive units!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit&lt;br /&gt;
&lt;br /&gt;
https://github.com/davefiddes/stm32-sine&lt;br /&gt;
&lt;br /&gt;
https://www.evbmw.com/index.php/evbmw-webshop/tesla-boards/tesla-model-3-du-beta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
parts needed to be fitted:&lt;br /&gt;
&lt;br /&gt;
-current sensors: MLX91209LVA-CAA-002-SP (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-gate drivers: STGAP1BSTR (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-power transformer: VGT22EPC-200S6A12 (can be sourced from original board)&lt;br /&gt;
&lt;br /&gt;
-(for wiring harness) 30 pin matting connector: Sumitomo Original 6189-6987 61896987 https://www.aliexpress.com/item/1005005920568514.html&lt;br /&gt;
&lt;br /&gt;
-30 pin connector and pins are a private stocked part, so must be salvaged from the original board&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-11x torx T20 screws holding the board onto the case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-3x T10 securing the current sensor trim to the pcb &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;OR&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 2x T10 screws holding the pryofuse and current sensor trim&lt;br /&gt;
&lt;br /&gt;
[[File:M3-30-pinout.png|thumb|456x456px|lv 30 pin connector pinout]]&lt;br /&gt;
&lt;br /&gt;
== Installation Process ==&lt;br /&gt;
&lt;br /&gt;
See the [[Tesla Model 3 Drive Unit PCB Install]] page for a detailed guide on how to install and commission the PCB.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5977</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5977"/>
		<updated>2025-12-03T14:25:12Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add details on how to spin the motor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
==== Electronics Assembly Tools ====&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Desoldering braid&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
&lt;br /&gt;
==== Hand Tools ====&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
&lt;br /&gt;
==== Commissioning Tools ====&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
* USB CAN adapter with [https://github.com/davefiddes/openinverter-can-tool OpenInverter CAN Tool] &#039;&#039;&#039;OR&#039;&#039;&#039; ESP32 CAN interface with [https://github.com/jsphuebner/esp32-web-interface/tree/can-backend esp32-web-interface] can firmware&lt;br /&gt;
* Multimeter&lt;br /&gt;
* 48V DC power supply &#039;&#039;&#039;OR&#039;&#039;&#039; battery with current limiting heating element or incandescent light bulb &lt;br /&gt;
* Dual channel throttle pedal (e.g. BMW E36 throttle pedal)&lt;br /&gt;
* Momentary switch&lt;br /&gt;
* SPST changeover switch&lt;br /&gt;
&lt;br /&gt;
== Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
=== Fit DC-DC Converter - Beta Version only ===&lt;br /&gt;
&lt;br /&gt;
# Insert the DC-DC converter and tack one pin&lt;br /&gt;
# Ensure there is some pressure on the top of the DC-DC converter&lt;br /&gt;
# Reflow the tacked pin to ensure the DC-DC converter is flush to the board&lt;br /&gt;
#* This is important to avoid fatigue of the converter pins&lt;br /&gt;
# Finish soldering all the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Connect a CAN interface&lt;br /&gt;
#* Pin 12 - CANH&lt;br /&gt;
#* Pin 2 - CANL&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;br /&gt;
# Verify current consumption is around 300mA&lt;br /&gt;
&lt;br /&gt;
=== Verify Status ===&lt;br /&gt;
It is important to check that the components we have fitted are working correctly while the board is still easy to work on.&lt;br /&gt;
# Using the CAN configuration tool check the errors list&lt;br /&gt;
#* There should be four errors: HIRESOFS, HICUROFS1, HICUROFS2 and OILPUMPFAULT&lt;br /&gt;
#* More errors indicates that trouble shooting is required&lt;br /&gt;
# Set the multimeter to DC volts and check the following test points:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Black Lead !! style=&amp;quot;color:red&amp;quot; | Red Lead !! Expected Voltage !! Description&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP8 || 12.1 V || High-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP6 || -5.1 V || High-side phase A gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP9 || 12.1 V || High-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP11 || -5.1 V || High-side phase C gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP12 || 12.1 V || High-side phase B gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP14 || -5.1 V || High-side phase B gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP17 || 18.2 V || Low-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP16 || 18.2 V || Low-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP15 || 18.2 V || Low-side phase B gate drive positive supply&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the GATE FAULT LED is lit look at the m3_phaseX_xx Spot Values for clues:&lt;br /&gt;
* RxCRC indicates a communications problem between the MCU and the gate driver ICs. All 6 chips have to be working to correctly initialise. Check the orientation and soldering on the upper side of all 6 gate driver ICs.&lt;br /&gt;
* Any fault values reported on the m3_phaseX_xx Spot Values should point to the affected gate driver IC&lt;br /&gt;
* Check the soldering on the gate drive IC and for any dislodged passive components near the affected IC&lt;br /&gt;
* The gate drive supply voltages should be identical to each other and very close the values in the table. The power supplies are current limited so any problems should not damage parts but need to be fixed before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Current Sensor Installation ==&lt;br /&gt;
&lt;br /&gt;
The current sensor ICs (U30 and U40) [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP] can be purchased new or recovered from the original Tesla PCB.&lt;br /&gt;
&lt;br /&gt;
# The current sensors are fitted to the underside of the PCB so flip the board onto the component side&lt;br /&gt;
# Orient the sensor with the chamfer towards the edge of the board, away from the rectangular hole for the phase conductor&lt;br /&gt;
# Push the current sensor until it sits flush with the board&lt;br /&gt;
# Flip the board back to site component side up&lt;br /&gt;
# Clip the black plastic current sensor housing back over the sensor ICs&lt;br /&gt;
# Push the leads of each of the current sensors down into the current sensor block&lt;br /&gt;
# Apply some flux and tack one pin of each sensor&lt;br /&gt;
#* Do not cut the leads of the sensor at this point&lt;br /&gt;
# Unclip the current sensor block and check the height of the sensor ICs above the PCB&lt;br /&gt;
#* There should be 4.7mm of exposed lead between the PCB and the black plastic of the sensor&lt;br /&gt;
# Reclip the current sensor block over the ICs&lt;br /&gt;
# Solder all of the remaining leads and cut the excess lead from the sensor IC wires&lt;br /&gt;
# Screw in the 3 Torx T10 mounting screws&lt;br /&gt;
#* Beta boards only: Do not fit the left hand screw as it will damage R127 and C23 and potentially short a circuit trace&lt;br /&gt;
&lt;br /&gt;
=== Verify Current Sensors ===&lt;br /&gt;
&lt;br /&gt;
# Reattach the power supply to the board&lt;br /&gt;
# Power up the board again&lt;br /&gt;
# The power, activity and gate fault LEDs should behave as on first power up&lt;br /&gt;
# Using the multimeter on DC Volts check between ground (H7) and TP22 (marked IL1)&lt;br /&gt;
#* The test points are located on the left hand edge of the board next to the GATE FAULT LED&lt;br /&gt;
#* The voltage should read 1.56 volts&lt;br /&gt;
# Repeat for TP23 (IL2) which should read the same value&lt;br /&gt;
# Optionally check the error list in your CAN configuration tool. The HICUROFS1 and HICUROFS2 errors should now not be present.&lt;br /&gt;
&lt;br /&gt;
== Main 30-pin Connector Fitting ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the 30-pin connector array&lt;br /&gt;
# Use solder braid and some flux to clean all the excess solder from all pins&lt;br /&gt;
# Insert the connector into the PCB&lt;br /&gt;
# Tack two corner pins with solder&lt;br /&gt;
# Flip the board over and ensure that plastic mount on the connector is flush with the board&lt;br /&gt;
#* It is critical that the connector is mounted flush otherwise the mating connector on the wiring harness will not engage cleanly&lt;br /&gt;
# Solder all of the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Fitting the PCB to the Inverter Chassis ==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the PCB ===&lt;br /&gt;
&lt;br /&gt;
# The PCB is supplied with 3 thermistor temperature sensors&lt;br /&gt;
# Insert each thermistor into the underside of the PCB&lt;br /&gt;
#* Don&#039;t solder the thermistors at this stage, just bend the leads to hold them in place&lt;br /&gt;
# Place the insulation shield recovered from the Tesla PCB over the underside of the board&lt;br /&gt;
# Fit the shield using the 6 plastic clips from the Telsa PCB&lt;br /&gt;
# Optional: Fit the WiFi/Terminal header and SWD Prog headers if desired&lt;br /&gt;
#* WiFi control boards will not fit or function within the inverter when fitted to the motor but can be useful for bench testing &lt;br /&gt;
&lt;br /&gt;
=== Fitting the PCB to the Chassis ===&lt;br /&gt;
&lt;br /&gt;
# Place the main inverter chassis on the bench&lt;br /&gt;
# Lower the PCB onto the chassis in roughly the following order&lt;br /&gt;
## HVIL pins at the top of the board&lt;br /&gt;
## Locating dowel in the top-right of the board&lt;br /&gt;
## 4 DC bus capacitor pins in the middle of the board&lt;br /&gt;
## Main MOSFET pins&lt;br /&gt;
## Locating dowel in the bottom-left of the board&lt;br /&gt;
#* Tap gently but don&#039;t apply any significant pressure&lt;br /&gt;
#* MOSFET pins may require gentle tweaking to get the alignment correct&lt;br /&gt;
# Check with a finger that pins are through the board&lt;br /&gt;
#* Each MOSFET position has two pins (labelled S and G)&lt;br /&gt;
#* There are two HVIL pins (labelled CONN1)&lt;br /&gt;
#* There are 4 DC bus capacitor pins( labelled E12, E13, E14 and E15)&lt;br /&gt;
# Screw in each of the T20 fasteners to the PCB&lt;br /&gt;
#* Beta boards only : Don&#039;t fit a screw in H10 as the hole is in the wrong place&lt;br /&gt;
#* Hole alignment is improving with each board revision. A little jiggling from side to side may be required to get all fasteners to fit.&lt;br /&gt;
&lt;br /&gt;
=== Soldering the Chassis Components ===&lt;br /&gt;
&lt;br /&gt;
# Lift the inverter chassis to be able to look into the side&lt;br /&gt;
# Push the leads of thermistor ST1 down into the thermal compound on the chassis&lt;br /&gt;
# Solder the leads on the thermistor&lt;br /&gt;
# Repeat for thermistors ST2 and ST3 in between the MOSFETs&lt;br /&gt;
# Solder the 4 DC bus capacitor pins E12, E13, E14 and E15&lt;br /&gt;
# Recheck each of the MOSFET pins are visible through the PCB before starting to solder&lt;br /&gt;
#* Some inverters have only 3 pairs of MOSFETs for each phase others 4&lt;br /&gt;
# Solder each MOSFET pin&lt;br /&gt;
#* Be careful when soldering not to keep the iron on the pin for too long. If heat is applied for too long the solder, assisted by gravity, can wick down the pins into the bus bars on the chassis and cause shorts.&lt;br /&gt;
&lt;br /&gt;
== Bench Testing the Motor ==&lt;br /&gt;
&lt;br /&gt;
=== Low Voltage Testing ===&lt;br /&gt;
&lt;br /&gt;
# Place the inverter on a suitable work surface next to the motor&lt;br /&gt;
# Connect the wiring harness to:&lt;br /&gt;
#* Inverter, oil pump and resolver on the motor&lt;br /&gt;
#* 12V power supply&lt;br /&gt;
#* CAN configuration tool&lt;br /&gt;
# Turn on the 12V PSU&lt;br /&gt;
#Confirm:&lt;br /&gt;
#* The LEDs behave the same way as the original power on test&lt;br /&gt;
#* The CAN configuration tool should now show no errors&lt;br /&gt;
#* The oil pump will be running continuously&lt;br /&gt;
#* It may be possible to hear the 8.8kHz resolver exciter tone&lt;br /&gt;
&lt;br /&gt;
=== Bench Testing the Motor ===&lt;br /&gt;
&lt;br /&gt;
# Check the following inverter parameters:&lt;br /&gt;
#* throtcur = 1&lt;br /&gt;
#* brakeregen = 0 (disabling regen is critical when using a DC power supply to avoid inverter and PSU damage)&lt;br /&gt;
#* offthrotregen = 0&lt;br /&gt;
# Connect the following:&lt;br /&gt;
#* Momentary switch to the Start input and 12V&lt;br /&gt;
#* Changeover switch to the Forward and Reverse inputs and 12V positive&lt;br /&gt;
#* Throttle pedal to the two inputs&lt;br /&gt;
# Connect the 3 phases on the inverter to the motor&lt;br /&gt;
#* Short equal lengths of 10mm^2 cable should be sufficient&lt;br /&gt;
# Connect the PSU or battery to the inverter&lt;br /&gt;
#* The positive connection on the inverter is the one nearest the 30-pin low voltage connector&lt;br /&gt;
#* If using a battery use an incandescent light bulb or heating element as a pre-charge and current limiter&lt;br /&gt;
# Press the Start button&lt;br /&gt;
#* Verify that the inverter goes into Run mode&lt;br /&gt;
# Select forward&lt;br /&gt;
# Depress the throttle pedal&lt;br /&gt;
# Observe the motor spinning!&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5976</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5976"/>
		<updated>2025-12-03T13:43:46Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Split tools into 3 categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
==== Electronics Assembly Tools ====&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Desoldering braid&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
&lt;br /&gt;
==== Hand Tools ====&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
&lt;br /&gt;
==== Commissioning Tools ====&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
* USB CAN adapter with [https://github.com/davefiddes/openinverter-can-tool OpenInverter CAN Tool] &#039;&#039;&#039;OR&#039;&#039;&#039; ESP32 CAN interface with [https://github.com/jsphuebner/esp32-web-interface/tree/can-backend esp32-web-interface] can firmware&lt;br /&gt;
* Multimeter&lt;br /&gt;
* 48V DC power supply &#039;&#039;&#039;OR&#039;&#039;&#039;&#039; 24V battery&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
=== Fit DC-DC Converter - Beta Version only ===&lt;br /&gt;
&lt;br /&gt;
# Insert the DC-DC converter and tack one pin&lt;br /&gt;
# Ensure there is some pressure on the top of the DC-DC converter&lt;br /&gt;
# Reflow the tacked pin to ensure the DC-DC converter is flush to the board&lt;br /&gt;
#* This is important to avoid fatigue of the converter pins&lt;br /&gt;
# Finish soldering all the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Connect a CAN interface&lt;br /&gt;
#* Pin 12 - CANH&lt;br /&gt;
#* Pin 2 - CANL&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;br /&gt;
# Verify current consumption is around 300mA&lt;br /&gt;
&lt;br /&gt;
=== Verify Status ===&lt;br /&gt;
It is important to check that the components we have fitted are working correctly while the board is still easy to work on.&lt;br /&gt;
# Using the CAN configuration tool check the errors list&lt;br /&gt;
#* There should be four errors: HIRESOFS, HICUROFS1, HICUROFS2 and OILPUMPFAULT&lt;br /&gt;
#* More errors indicates that trouble shooting is required&lt;br /&gt;
# Set the multimeter to DC volts and check the following test points:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Black Lead !! style=&amp;quot;color:red&amp;quot; | Red Lead !! Expected Voltage !! Description&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP8 || 12.1 V || High-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP6 || -5.1 V || High-side phase A gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP9 || 12.1 V || High-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP11 || -5.1 V || High-side phase C gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP12 || 12.1 V || High-side phase B gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP14 || -5.1 V || High-side phase B gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP17 || 18.2 V || Low-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP16 || 18.2 V || Low-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP15 || 18.2 V || Low-side phase B gate drive positive supply&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the GATE FAULT LED is lit look at the m3_phaseX_xx Spot Values for clues:&lt;br /&gt;
* RxCRC indicates a communications problem between the MCU and the gate driver ICs. All 6 chips have to be working to correctly initialise. Check the orientation and soldering on the upper side of all 6 gate driver ICs.&lt;br /&gt;
* Any fault values reported on the m3_phaseX_xx Spot Values should point to the affected gate driver IC&lt;br /&gt;
* Check the soldering on the gate drive IC and for any dislodged passive components near the affected IC&lt;br /&gt;
* The gate drive supply voltages should be identical to each other and very close the values in the table. The power supplies are current limited so any problems should not damage parts but need to be fixed before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Current Sensor Installation ==&lt;br /&gt;
&lt;br /&gt;
The current sensor ICs (U30 and U40) [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP] can be purchased new or recovered from the original Tesla PCB.&lt;br /&gt;
&lt;br /&gt;
# The current sensors are fitted to the underside of the PCB so flip the board onto the component side&lt;br /&gt;
# Orient the sensor with the chamfer towards the edge of the board, away from the rectangular hole for the phase conductor&lt;br /&gt;
# Push the current sensor until it sits flush with the board&lt;br /&gt;
# Flip the board back to site component side up&lt;br /&gt;
# Clip the black plastic current sensor housing back over the sensor ICs&lt;br /&gt;
# Push the leads of each of the current sensors down into the current sensor block&lt;br /&gt;
# Apply some flux and tack one pin of each sensor&lt;br /&gt;
#* Do not cut the leads of the sensor at this point&lt;br /&gt;
# Unclip the current sensor block and check the height of the sensor ICs above the PCB&lt;br /&gt;
#* There should be 4.7mm of exposed lead between the PCB and the black plastic of the sensor&lt;br /&gt;
# Reclip the current sensor block over the ICs&lt;br /&gt;
# Solder all of the remaining leads and cut the excess lead from the sensor IC wires&lt;br /&gt;
# Screw in the 3 Torx T10 mounting screws&lt;br /&gt;
#* Beta boards only: Do not fit the left hand screw as it will damage R127 and C23 and potentially short a circuit trace&lt;br /&gt;
&lt;br /&gt;
=== Verify Current Sensors ===&lt;br /&gt;
&lt;br /&gt;
# Reattach the power supply to the board&lt;br /&gt;
# Power up the board again&lt;br /&gt;
# The power, activity and gate fault LEDs should behave as on first power up&lt;br /&gt;
# Using the multimeter on DC Volts check between ground (H7) and TP22 (marked IL1)&lt;br /&gt;
#* The test points are located on the left hand edge of the board next to the GATE FAULT LED&lt;br /&gt;
#* The voltage should read 1.56 volts&lt;br /&gt;
# Repeat for TP23 (IL2) which should read the same value&lt;br /&gt;
# Optionally check the error list in your CAN configuration tool. The HICUROFS1 and HICUROFS2 errors should now not be present.&lt;br /&gt;
&lt;br /&gt;
== Main 30-pin Connector Fitting ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the 30-pin connector array&lt;br /&gt;
# Use solder braid and some flux to clean all the excess solder from all pins&lt;br /&gt;
# Insert the connector into the PCB&lt;br /&gt;
# Tack two corner pins with solder&lt;br /&gt;
# Flip the board over and ensure that plastic mount on the connector is flush with the board&lt;br /&gt;
#* It is critical that the connector is mounted flush otherwise the mating connector on the wiring harness will not engage cleanly&lt;br /&gt;
# Solder all of the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Fitting the PCB to the Inverter Chassis ==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the PCB ===&lt;br /&gt;
&lt;br /&gt;
# The PCB is supplied with 3 thermistor temperature sensors&lt;br /&gt;
# Insert each thermistor into the underside of the PCB&lt;br /&gt;
#* Don&#039;t solder the thermistors at this stage, just bend the leads to hold them in place&lt;br /&gt;
# Place the insulation shield recovered from the Tesla PCB over the underside of the board&lt;br /&gt;
# Fit the shield using the 6 plastic clips from the Telsa PCB&lt;br /&gt;
# Optional: Fit the WiFi/Terminal header and SWD Prog headers if desired&lt;br /&gt;
#* WiFi control boards will not fit or function within the inverter when fitted to the motor but can be useful for bench testing &lt;br /&gt;
&lt;br /&gt;
=== Fitting the PCB to the Chassis ===&lt;br /&gt;
&lt;br /&gt;
# Place the main inverter chassis on the bench&lt;br /&gt;
# Lower the PCB onto the chassis in roughly the following order&lt;br /&gt;
## HVIL pins at the top of the board&lt;br /&gt;
## Locating dowel in the top-right of the board&lt;br /&gt;
## 4 DC bus capacitor pins in the middle of the board&lt;br /&gt;
## Main MOSFET pins&lt;br /&gt;
## Locating dowel in the bottom-left of the board&lt;br /&gt;
#* Tap gently but don&#039;t apply any significant pressure&lt;br /&gt;
#* MOSFET pins may require gentle tweaking to get the alignment correct&lt;br /&gt;
# Check with a finger that pins are through the board&lt;br /&gt;
#* Each MOSFET position has two pins (labelled S and G)&lt;br /&gt;
#* There are two HVIL pins (labelled CONN1)&lt;br /&gt;
#* There are 4 DC bus capacitor pins( labelled E12, E13, E14 and E15)&lt;br /&gt;
# Screw in each of the T20 fasteners to the PCB&lt;br /&gt;
#* Beta boards only : Don&#039;t fit a screw in H10 as the hole is in the wrong place&lt;br /&gt;
#* Hole alignment is improving with each board revision. A little jiggling from side to side may be required to get all fasteners to fit.&lt;br /&gt;
&lt;br /&gt;
=== Soldering the Chassis Components ===&lt;br /&gt;
&lt;br /&gt;
# Lift the inverter chassis to be able to look into the side&lt;br /&gt;
# Push the leads of thermistor ST1 down into the thermal compound on the chassis&lt;br /&gt;
# Solder the leads on the thermistor&lt;br /&gt;
# Repeat for thermistors ST2 and ST3 in between the MOSFETs&lt;br /&gt;
# Solder the 4 DC bus capacitor pins E12, E13, E14 and E15&lt;br /&gt;
# Recheck each of the MOSFET pins are visible through the PCB before starting to solder&lt;br /&gt;
#* Some inverters have only 3 pairs of MOSFETs for each phase others 4&lt;br /&gt;
# Solder each MOSFET pin&lt;br /&gt;
#* Be careful when soldering not to keep the iron on the pin for too long. If heat is applied for too long the solder, assisted by gravity, can wick down the pins into the bus bars on the chassis and cause shorts.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5975</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5975"/>
		<updated>2025-12-03T12:38:01Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add the section on finally mounting the PCB to the chassis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
* USB CAN adapter with [https://github.com/davefiddes/openinverter-can-tool OpenInverter CAN Tool] &#039;&#039;&#039;OR&#039;&#039;&#039; ESP32 CAN interface with [https://github.com/jsphuebner/esp32-web-interface/tree/can-backend esp32-web-interface] can firmware&lt;br /&gt;
* Multimeter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
=== Fit DC-DC Converter - Beta Version only ===&lt;br /&gt;
&lt;br /&gt;
# Insert the DC-DC converter and tack one pin&lt;br /&gt;
# Ensure there is some pressure on the top of the DC-DC converter&lt;br /&gt;
# Reflow the tacked pin to ensure the DC-DC converter is flush to the board&lt;br /&gt;
#* This is important to avoid fatigue of the converter pins&lt;br /&gt;
# Finish soldering all the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Connect a CAN interface&lt;br /&gt;
#* Pin 12 - CANH&lt;br /&gt;
#* Pin 2 - CANL&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;br /&gt;
# Verify current consumption is around 300mA&lt;br /&gt;
&lt;br /&gt;
=== Verify Status ===&lt;br /&gt;
It is important to check that the components we have fitted are working correctly while the board is still easy to work on.&lt;br /&gt;
# Using the CAN configuration tool check the errors list&lt;br /&gt;
#* There should be four errors: HIRESOFS, HICUROFS1, HICUROFS2 and OILPUMPFAULT&lt;br /&gt;
#* More errors indicates that trouble shooting is required&lt;br /&gt;
# Set the multimeter to DC volts and check the following test points:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Black Lead !! style=&amp;quot;color:red&amp;quot; | Red Lead !! Expected Voltage !! Description&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP8 || 12.1 V || High-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP6 || -5.1 V || High-side phase A gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP9 || 12.1 V || High-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP11 || -5.1 V || High-side phase C gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP12 || 12.1 V || High-side phase B gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP14 || -5.1 V || High-side phase B gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP17 || 18.2 V || Low-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP16 || 18.2 V || Low-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP15 || 18.2 V || Low-side phase B gate drive positive supply&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the GATE FAULT LED is lit look at the m3_phaseX_xx Spot Values for clues:&lt;br /&gt;
* RxCRC indicates a communications problem between the MCU and the gate driver ICs. All 6 chips have to be working to correctly initialise. Check the orientation and soldering on the upper side of all 6 gate driver ICs.&lt;br /&gt;
* Any fault values reported on the m3_phaseX_xx Spot Values should point to the affected gate driver IC&lt;br /&gt;
* Check the soldering on the gate drive IC and for any dislodged passive components near the affected IC&lt;br /&gt;
* The gate drive supply voltages should be identical to each other and very close the values in the table. The power supplies are current limited so any problems should not damage parts but need to be fixed before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Current Sensor Installation ==&lt;br /&gt;
&lt;br /&gt;
The current sensor ICs (U30 and U40) [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP] can be purchased new or recovered from the original Tesla PCB.&lt;br /&gt;
&lt;br /&gt;
# The current sensors are fitted to the underside of the PCB so flip the board onto the component side&lt;br /&gt;
# Orient the sensor with the chamfer towards the edge of the board, away from the rectangular hole for the phase conductor&lt;br /&gt;
# Push the current sensor until it sits flush with the board&lt;br /&gt;
# Flip the board back to site component side up&lt;br /&gt;
# Clip the black plastic current sensor housing back over the sensor ICs&lt;br /&gt;
# Push the leads of each of the current sensors down into the current sensor block&lt;br /&gt;
# Apply some flux and tack one pin of each sensor&lt;br /&gt;
#* Do not cut the leads of the sensor at this point&lt;br /&gt;
# Unclip the current sensor block and check the height of the sensor ICs above the PCB&lt;br /&gt;
#* There should be 4.7mm of exposed lead between the PCB and the black plastic of the sensor&lt;br /&gt;
# Reclip the current sensor block over the ICs&lt;br /&gt;
# Solder all of the remaining leads and cut the excess lead from the sensor IC wires&lt;br /&gt;
# Screw in the 3 Torx T10 mounting screws&lt;br /&gt;
#* Beta boards only: Do not fit the left hand screw as it will damage R127 and C23 and potentially short a circuit trace&lt;br /&gt;
&lt;br /&gt;
=== Verify Current Sensors ===&lt;br /&gt;
&lt;br /&gt;
# Reattach the power supply to the board&lt;br /&gt;
# Power up the board again&lt;br /&gt;
# The power, activity and gate fault LEDs should behave as on first power up&lt;br /&gt;
# Using the multimeter on DC Volts check between ground (H7) and TP22 (marked IL1)&lt;br /&gt;
#* The test points are located on the left hand edge of the board next to the GATE FAULT LED&lt;br /&gt;
#* The voltage should read 1.56 volts&lt;br /&gt;
# Repeat for TP23 (IL2) which should read the same value&lt;br /&gt;
# Optionally check the error list in your CAN configuration tool. The HICUROFS1 and HICUROFS2 errors should now not be present.&lt;br /&gt;
&lt;br /&gt;
== Main 30-pin Connector Fitting ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the 30-pin connector array&lt;br /&gt;
# Use solder braid and some flux to clean all the excess solder from all pins&lt;br /&gt;
# Insert the connector into the PCB&lt;br /&gt;
# Tack two corner pins with solder&lt;br /&gt;
# Flip the board over and ensure that plastic mount on the connector is flush with the board&lt;br /&gt;
#* It is critical that the connector is mounted flush otherwise the mating connector on the wiring harness will not engage cleanly&lt;br /&gt;
# Solder all of the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Fitting the PCB to the Inverter Chassis ==&lt;br /&gt;
&lt;br /&gt;
=== Preparing the PCB ===&lt;br /&gt;
&lt;br /&gt;
# The PCB is supplied with 3 thermistor temperature sensors&lt;br /&gt;
# Insert each thermistor into the underside of the PCB&lt;br /&gt;
#* Don&#039;t solder the thermistors at this stage, just bend the leads to hold them in place&lt;br /&gt;
# Place the insulation shield recovered from the Tesla PCB over the underside of the board&lt;br /&gt;
# Fit the shield using the 6 plastic clips from the Telsa PCB&lt;br /&gt;
# Optional: Fit the WiFi/Terminal header and SWD Prog headers if desired&lt;br /&gt;
#* WiFi control boards will not fit or function within the inverter when fitted to the motor but can be useful for bench testing &lt;br /&gt;
&lt;br /&gt;
=== Fitting the PCB to the Chassis ===&lt;br /&gt;
&lt;br /&gt;
# Place the main inverter chassis on the bench&lt;br /&gt;
# Lower the PCB onto the chassis in roughly the following order&lt;br /&gt;
## HVIL pins at the top of the board&lt;br /&gt;
## Locating dowel in the top-right of the board&lt;br /&gt;
## 4 DC bus capacitor pins in the middle of the board&lt;br /&gt;
## Main MOSFET pins&lt;br /&gt;
## Locating dowel in the bottom-left of the board&lt;br /&gt;
#* Tap gently but don&#039;t apply any significant pressure&lt;br /&gt;
#* MOSFET pins may require gentle tweaking to get the alignment correct&lt;br /&gt;
# Check with a finger that pins are through the board&lt;br /&gt;
#* Each MOSFET position has two pins (labelled S and G)&lt;br /&gt;
#* There are two HVIL pins (labelled CONN1)&lt;br /&gt;
#* There are 4 DC bus capacitor pins( labelled E12, E13, E14 and E15)&lt;br /&gt;
# Screw in each of the T20 fasteners to the PCB&lt;br /&gt;
#* Beta boards only : Don&#039;t fit a screw in H10 as the hole is in the wrong place&lt;br /&gt;
#* Hole alignment is improving with each board revision. A little jiggling from side to side may be required to get all fasteners to fit.&lt;br /&gt;
&lt;br /&gt;
=== Soldering the Chassis Components ===&lt;br /&gt;
&lt;br /&gt;
# Lift the inverter chassis to be able to look into the side&lt;br /&gt;
# Push the leads of thermistor ST1 down into the thermal compound on the chassis&lt;br /&gt;
# Solder the leads on the thermistor&lt;br /&gt;
# Repeat for thermistors ST2 and ST3 in between the MOSFETs&lt;br /&gt;
# Solder the 4 DC bus capacitor pins E12, E13, E14 and E15&lt;br /&gt;
# Recheck each of the MOSFET pins are visible through the PCB before starting to solder&lt;br /&gt;
#* Some inverters have only 3 pairs of MOSFETs for each phase others 4&lt;br /&gt;
# Solder each MOSFET pin&lt;br /&gt;
#* Be careful when soldering not to keep the iron on the pin for too long. If heat is applied for too long the solder, assisted by gravity, can wick down the pins into the bus bars on the chassis and cause shorts.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=File:M3-30-pinout.png&amp;diff=5974</id>
		<title>File:M3-30-pinout.png</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=File:M3-30-pinout.png&amp;diff=5974"/>
		<updated>2025-12-03T10:33:47Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Davefiddes uploaded a new version of File:M3-30-pinout.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;m3 inverter 30 pin connector&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5973</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5973"/>
		<updated>2025-12-02T18:45:09Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add DC-DC converter installation and current consumption check&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
* USB CAN adapter with [https://github.com/davefiddes/openinverter-can-tool OpenInverter CAN Tool] &#039;&#039;&#039;OR&#039;&#039;&#039; ESP32 CAN interface with [https://github.com/jsphuebner/esp32-web-interface/tree/can-backend esp32-web-interface] can firmware&lt;br /&gt;
* Multimeter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
=== Fit DC-DC Converter - Beta Version only ===&lt;br /&gt;
&lt;br /&gt;
# Insert the DC-DC converter and tack one pin&lt;br /&gt;
# Ensure there is some pressure on the top of the DC-DC converter&lt;br /&gt;
# Reflow the tacked pin to ensure the DC-DC converter is flush to the board&lt;br /&gt;
#* This is important to avoid fatigue of the converter pins&lt;br /&gt;
# Finish soldering all the remaining pins&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Connect a CAN interface&lt;br /&gt;
#* Pin 12 - CANH&lt;br /&gt;
#* Pin 2 - CANL&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;br /&gt;
# Verify current consumption is around 300mA&lt;br /&gt;
&lt;br /&gt;
=== Verify Status ===&lt;br /&gt;
It is important to check that the components we have fitted are working correctly while the board is still easy to work on.&lt;br /&gt;
# Using the CAN configuration tool check the errors list&lt;br /&gt;
#* There should be four errors: HIRESOFS, HICUROFS1, HICUROFS2 and OILPUMPFAULT&lt;br /&gt;
#* More errors indicates that trouble shooting is required&lt;br /&gt;
# Set the multimeter to DC volts and check the following test points:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Black Lead !! style=&amp;quot;color:red&amp;quot; | Red Lead !! Expected Voltage !! Description&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP8 || 12.1 V || High-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP6 || -5.1 V || High-side phase A gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP9 || 12.1 V || High-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP11 || -5.1 V || High-side phase C gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP12 || 12.1 V || High-side phase B gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP14 || -5.1 V || High-side phase B gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP17 || 18.2 V || Low-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP16 || 18.2 V || Low-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP15 || 18.2 V || Low-side phase B gate drive positive supply&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the GATE FAULT LED is lit look at the m3_phaseX_xx Spot Values for clues:&lt;br /&gt;
* RxCRC indicates a communications problem between the MCU and the gate driver ICs. All 6 chips have to be working to correctly initialise. Check the orientation and soldering on the upper side of all 6 gate driver ICs.&lt;br /&gt;
* Any fault values reported on the m3_phaseX_xx Spot Values should point to the affected gate driver IC&lt;br /&gt;
* Check the soldering on the gate drive IC and for any dislodged passive components near the affected IC&lt;br /&gt;
* The gate drive supply voltages should be identical to each other and very close the values in the table. The power supplies are current limited so any problems should not damage parts but need to be fixed before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Current Sensor Installation ==&lt;br /&gt;
&lt;br /&gt;
The current sensor ICs (U30 and U40) [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP] can be purchased new or recovered from the original Tesla PCB.&lt;br /&gt;
&lt;br /&gt;
# The current sensors are fitted to the underside of the PCB so flip the board onto the component side&lt;br /&gt;
# Orient the sensor with the chamfer towards the edge of the board, away from the rectangular hole for the phase conductor&lt;br /&gt;
# Push the current sensor until it sits flush with the board&lt;br /&gt;
# Flip the board back to site component side up&lt;br /&gt;
# Clip the black plastic current sensor housing back over the sensor ICs&lt;br /&gt;
# Push the leads of each of the current sensors down into the current sensor block&lt;br /&gt;
# Apply some flux and tack one pin of each sensor&lt;br /&gt;
#* Do not cut the leads of the sensor at this point&lt;br /&gt;
# Unclip the current sensor block and check the height of the sensor ICs above the PCB&lt;br /&gt;
#* There should be 4.7mm of exposed lead between the PCB and the black plastic of the sensor&lt;br /&gt;
# Reclip the current sensor block over the ICs&lt;br /&gt;
# Solder all of the remaining leads and cut the excess lead from the sensor IC wires&lt;br /&gt;
# Screw in the 3 Torx T10 mounting screws&lt;br /&gt;
#* Beta boards only: Do not fit the left hand screw as it will damage R127 and C23 and potentially short a circuit trace&lt;br /&gt;
&lt;br /&gt;
=== Verify Current Sensors ===&lt;br /&gt;
&lt;br /&gt;
# Reattach the power supply to the board&lt;br /&gt;
# Power up the board again&lt;br /&gt;
# The power, activity and gate fault LEDs should behave as on first power up&lt;br /&gt;
# Using the multimeter on DC Volts check between ground (H7) and TP22 (marked IL1)&lt;br /&gt;
#* The test points are located on the left hand edge of the board next to the GATE FAULT LED&lt;br /&gt;
#* The voltage should read 1.56 volts&lt;br /&gt;
# Repeat for TP23 (IL2) which should read the same value&lt;br /&gt;
# Optionally check the error list in your CAN configuration tool. The HICUROFS1 and HICUROFS2 errors should now not be present.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5972</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5972"/>
		<updated>2025-12-02T14:51:41Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Detail the current sensor installation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
* USB CAN adapter with [https://github.com/davefiddes/openinverter-can-tool OpenInverter CAN Tool] &#039;&#039;&#039;OR&#039;&#039;&#039; ESP32 CAN interface with [https://github.com/jsphuebner/esp32-web-interface/tree/can-backend esp32-web-interface] can firmware&lt;br /&gt;
* Multimeter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Connect a CAN interface&lt;br /&gt;
#* Pin 12 - CANH&lt;br /&gt;
#* Pin 2 - CANL&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;br /&gt;
&lt;br /&gt;
=== Verify Status ===&lt;br /&gt;
It is important to check that the components we have fitted are working correctly while the board is still easy to work on.&lt;br /&gt;
# Using the CAN configuration tool check the errors list&lt;br /&gt;
#* There should be four errors: HIRESOFS, HICUROFS1, HICUROFS2 and OILPUMPFAULT&lt;br /&gt;
#* More errors indicates that trouble shooting is required&lt;br /&gt;
# Set the multimeter to DC volts and check the following test points:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Black Lead !! style=&amp;quot;color:red&amp;quot; | Red Lead !! Expected Voltage !! Description&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP8 || 12.1 V || High-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP6 || -5.1 V || High-side phase A gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP9 || 12.1 V || High-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP11 || -5.1 V || High-side phase C gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP12 || 12.1 V || High-side phase B gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP14 || -5.1 V || High-side phase B gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP17 || 18.2 V || Low-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP16 || 18.2 V || Low-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP15 || 18.2 V || Low-side phase B gate drive positive supply&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the GATE FAULT LED is lit look at the m3_phaseX_xx Spot Values for clues:&lt;br /&gt;
* RxCRC indicates a communications problem between the MCU and the gate driver ICs. All 6 chips have to be working to correctly initialise. Check the orientation and soldering on the upper side of all 6 gate driver ICs.&lt;br /&gt;
* Any fault values reported on the m3_phaseX_xx Spot Values should point to the affected gate driver IC&lt;br /&gt;
* Check the soldering on the gate drive IC and for any dislodged passive components near the affected IC&lt;br /&gt;
* The gate drive supply voltages should be identical to each other and very close the values in the table. The power supplies are current limited so any problems should not damage parts but need to be fixed before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Current Sensor Installation ==&lt;br /&gt;
&lt;br /&gt;
The current sensor ICs (U30 and U40) [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP] can be purchased new or recovered from the original Tesla PCB.&lt;br /&gt;
&lt;br /&gt;
# The current sensors are fitted to the underside of the PCB so flip the board onto the component side&lt;br /&gt;
# Orient the sensor with the chamfer towards the edge of the board, away from the rectangular hole for the phase conductor&lt;br /&gt;
# Push the current sensor until it sits flush with the board&lt;br /&gt;
# Flip the board back to site component side up&lt;br /&gt;
# Clip the black plastic current sensor housing back over the sensor ICs&lt;br /&gt;
# Push the leads of each of the current sensors down into the current sensor block&lt;br /&gt;
# Apply some flux and tack one pin of each sensor&lt;br /&gt;
#* Do not cut the leads of the sensor at this point&lt;br /&gt;
# Unclip the current sensor block and check the height of the sensor ICs above the PCB&lt;br /&gt;
#* There should be 4.7mm of exposed lead between the PCB and the black plastic of the sensor&lt;br /&gt;
# Reclip the current sensor block over the ICs&lt;br /&gt;
# Solder all of the remaining leads and cut the excess lead from the sensor IC wires&lt;br /&gt;
# Screw in the 3 Torx T10 mounting screws&lt;br /&gt;
#* Beta boards only: Do not fit the left hand screw as it will damage R127 and C23 and potentially short a circuit trace&lt;br /&gt;
&lt;br /&gt;
=== Verify Current Sensors ===&lt;br /&gt;
&lt;br /&gt;
# Reattach the power supply to the board&lt;br /&gt;
# Power up the board again&lt;br /&gt;
# The power, activity and gate fault LEDs should behave as on first power up&lt;br /&gt;
# Using the multimeter on DC Volts check between ground (H7) and TP22 (marked IL1)&lt;br /&gt;
#* The test points are located on the left hand edge of the board next to the GATE FAULT LED&lt;br /&gt;
#* The voltage should read 1.56 volts&lt;br /&gt;
# Repeat for TP23 (IL2) which should read the same value&lt;br /&gt;
# Optionally check the error list in your CAN configuration tool. The HICUROFS1 and HICUROFS2 errors should now not be present.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5971</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5971"/>
		<updated>2025-12-02T13:06:29Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add section on verifying correct operation and voltages on initial power up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
* USB CAN adapter with [https://github.com/davefiddes/openinverter-can-tool OpenInverter CAN Tool] &#039;&#039;&#039;OR&#039;&#039;&#039; ESP32 CAN interface with [https://github.com/jsphuebner/esp32-web-interface/tree/can-backend esp32-web-interface] can firmware&lt;br /&gt;
* Multimeter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* U30, U40 current sensors : [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP]&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Connect a CAN interface&lt;br /&gt;
#* Pin 12 - CANH&lt;br /&gt;
#* Pin 2 - CANL&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;br /&gt;
&lt;br /&gt;
=== Verify Status ===&lt;br /&gt;
It is important to check that the components we have fitted are working correctly while the board is still easy to work on.&lt;br /&gt;
# Using the CAN configuration tool check the errors list&lt;br /&gt;
#* There should be two errors: HIRESOFS and OILPUMPFAULT&lt;br /&gt;
#* More errors indicates that trouble shooting is required&lt;br /&gt;
# Set the multimeter to DC volts and check the following test points:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Black Lead !! style=&amp;quot;color:red&amp;quot; | Red Lead !! Expected Voltage !! Description&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP8 || 12.1 V || High-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP7 || TP6 || -5.1 V || High-side phase A gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP9 || 12.1 V || High-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP10 || TP11 || -5.1 V || High-side phase C gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP12 || 12.1 V || High-side phase B gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP13 || TP14 || -5.1 V || High-side phase B gate drive negative supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP17 || 18.2 V || Low-side phase A gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP16 || 18.2 V || Low-side phase C gate drive positive supply&lt;br /&gt;
|-&lt;br /&gt;
| TP18 || TP15 || 18.2 V || Low-side phase B gate drive positive supply&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5969</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5969"/>
		<updated>2025-12-01T18:22:37Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Remove the step prefix. The wiki will number each heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* U30, U40 current sensors : [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP]&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
== Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5966</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5966"/>
		<updated>2025-11-27T13:00:13Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Up to initial power on&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
* Bench PSU capable of supplying 12V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Step 3: Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Step 5: Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
* As above but use a 250W soldering iron and fresh solder&lt;br /&gt;
&lt;br /&gt;
== Step 6: Assemble Recovered Components to the PCB ==&lt;br /&gt;
&lt;br /&gt;
=== Purchasable Components ===&lt;br /&gt;
&lt;br /&gt;
The following components can be purchased new and do not need to be recovered:&lt;br /&gt;
&lt;br /&gt;
* U30, U40 current sensors : [https://www.mouser.ie/ProductDetail/482-91209LVACAA002SP MLX91209LVA-CAA-002-SP]&lt;br /&gt;
* Gate drive transformer : [https://www.mouser.ie/ProductDetail/810-VGT22EPC200S6A12 TDK VGT22EPC-200S6A12]&lt;br /&gt;
* Gate driver IC : [https://www.mouser.ie/ProductDetail/511-STGAP1BSTR STGAP1BSTR]&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Drive Transformer ===&lt;br /&gt;
# Remove the additional framing left around the PCB to protect it in shipping&lt;br /&gt;
# Apply some flux to the gate drive transformer pads&lt;br /&gt;
# Orient the transformer to match the footprint&lt;br /&gt;
# Tack one leg of the transformer to secure it before soldering the other pins&lt;br /&gt;
&lt;br /&gt;
=== Install Gate Driver ICs ===&lt;br /&gt;
# Orient the first gate driver IC with the dimple indicating pin 1 with the small arrow in the top right corner of the footprint&lt;br /&gt;
# Tack opposite corners of the IC&lt;br /&gt;
# Use standard SMD drag soldering technique to solder each pin&lt;br /&gt;
# Inspect the board using a magnifier or microscope&lt;br /&gt;
#* Be careful to avoid shorts between pins - these can be cleaned up with desoldering braid&lt;br /&gt;
#* Access on the lower side of the chips nearest to the bottom of the board is limited. Be careful to avoid dislodging the many small passive components around the IC.&lt;br /&gt;
&lt;br /&gt;
== Step 7: Initial Power Up Testing ==&lt;br /&gt;
&lt;br /&gt;
Before attempting to install the PCB on the inverter chassis it is important to test the assembly on the bench. This allows faults from the assembly process to be rectified more simply.&lt;br /&gt;
&lt;br /&gt;
=== First Power On ===&lt;br /&gt;
&lt;br /&gt;
# Connect 12V power temporarily to the board using dupont cables and a bench PSU&lt;br /&gt;
#* Pin 22 - Unswitched +12V&lt;br /&gt;
#* Pin 3 - Switched +12V&lt;br /&gt;
#* Top left mounting hole - Ground&lt;br /&gt;
# Identify the 3 indicator LEDs on the board:&lt;br /&gt;
#* D7 3V3 ACTIVE - Located top right of the board&lt;br /&gt;
#* D18 - Located above the MCU&lt;br /&gt;
#* D58 GATE FAULT - Located on the left edge of the board next to the USA/IE flag&lt;br /&gt;
# Set the current limit on the bench PSU to 500mA&lt;br /&gt;
# Turn on the PSU and check the LED&lt;br /&gt;
#* 3V3 ACTIVE LED should be permanently lit&lt;br /&gt;
#* D18 should light for 1 second then start flashing at 2Hz&lt;br /&gt;
#* GATE FAULT should flash once and then remain off&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5965</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5965"/>
		<updated>2025-11-27T12:00:31Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Step 4: Remove current sensor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Step 3: Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Step 5: Remove 30-pin low-voltage connector ==&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
# As above but use a 250W soldering iron and fresh solder&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5964</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5964"/>
		<updated>2025-11-27T11:59:46Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add a section to cover the 30-pin LV connector removal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Blow torch or 250W soldering iron&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Step 3: Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;br /&gt;
&lt;br /&gt;
== Step 5: Remove 30-pin low-voltage connector&lt;br /&gt;
&lt;br /&gt;
# Clamp the plastic holder on the bottom of the array of pins that make up the low-voltage connector in a vice&lt;br /&gt;
# Hold the PCB firmly by the far edge and apply a lifting force&lt;br /&gt;
# Apply a blow torch quickly to the 30 solder connections and move back and forth quickly&lt;br /&gt;
# As the solder melts quickly lift the PCB and torch away&lt;br /&gt;
#* The key to success is to use a lot of heat but for a very short time&lt;br /&gt;
#* At this point the Tesla PCB is sacrificed to obtain the connector pin array. There is no known source for connector at this point.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Technique ===&lt;br /&gt;
&lt;br /&gt;
# As above but use a 250W soldering iron and fresh solder&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5963</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5963"/>
		<updated>2025-11-27T11:49:36Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Step 4: Remove current sensor */ Add missing step about clips on the sensor enclosure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Step 3: Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Release the 4 plastic clips in the centre of the sensor block&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5962</id>
		<title>Tesla Model 3 Drive Unit PCB Install</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Drive_Unit_PCB_Install&amp;diff=5962"/>
		<updated>2025-11-26T18:54:09Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: First cut at a set of written instructions for the installation. Covers up to about the 1 hour mark in the video only.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document outlines the step-by-step procedure for installing a [[Tesla Model 3 Drive Unit PCB]] in a Tesla Model 3. Please follow these instructions carefully to ensure a successful installation. The information here is derived from [https://www.youtube.com/watch?v=bd2mMFvEq1E Damien Maguire&#039;s installation video].&lt;br /&gt;
&lt;br /&gt;
=== Tools Required ===&lt;br /&gt;
&lt;br /&gt;
* Soldering iron&lt;br /&gt;
* Solder&lt;br /&gt;
* Gel flux such as Kingbo RMA-218&lt;br /&gt;
* Vacuum desoldering gun&lt;br /&gt;
** 320°C&lt;br /&gt;
** 0.8 mm desoldering nozzle&lt;br /&gt;
* Tweezers&lt;br /&gt;
* Magnifying glass&lt;br /&gt;
* Torx T10 screwdriver&lt;br /&gt;
* Torx T20 screwdriver&lt;br /&gt;
* Small flat bladed screwdriver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Fit missing components to the replacement PCB - Beta Version only ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Beta version of the replacement PCB, you will need to fit some missing components before installation. These will be supplied in a bag with the board.&lt;br /&gt;
&lt;br /&gt;
=== Components To Fit ===&lt;br /&gt;
&lt;br /&gt;
* U5 - ACPL-M49T-000E - Located in top right (Buffalo, New York)&lt;br /&gt;
* U33 - ACPL-M49T-000E - Located in the upper centre (Chicago, Illinois)&lt;br /&gt;
* Q983, Q43, Q982, Q42, Q981, Q41 - STD45P4LLF6 - Located across the lower part of the board&lt;br /&gt;
&lt;br /&gt;
=== Fitting Notes ===&lt;br /&gt;
&lt;br /&gt;
* Apply gel flux to the pads before soldering.&lt;br /&gt;
* Use a magnifying glass to ensure proper alignment of the two optocouplers (U5 and U33). The circle indicator on the component should match the bar on silkscreen that indicates pin 1&lt;br /&gt;
* When soldering the transistors solder the small pins first to hold them in place, then solder the larger tab last. You may find heavier gauge solder useful for the tab. Apply heat to the tab and allow capillary action to draw solder under the tab.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Remove OEM PCB from the inverter housing ==&lt;br /&gt;
&lt;br /&gt;
[[File:M3inverter-parts.jpg|thumb|454x454px|parts/ connections to salvage/ unsolder]]&lt;br /&gt;
&lt;br /&gt;
# Remove unnecessary hardware from the housing:&lt;br /&gt;
#* Remove the coolant connectors from the housing to allow it to sit flat on the workbench.&lt;br /&gt;
#* Remove the gasket around the edge of the housing carefully to avoid damaging it.&lt;br /&gt;
# Identify the 3 groups of components to be desoldered:&lt;br /&gt;
#* The red rectangles indicate the power transistors&lt;br /&gt;
#** Some drive units only have 3 of the 4 transistors fitted&lt;br /&gt;
#* The red circles indicate the main DC bus capacitor&lt;br /&gt;
#* The yellow circles indicate the HV interlock connections on the main DC connector&lt;br /&gt;
# Apply a small amount of flux to each joint to be removed&lt;br /&gt;
# Apply the desoldering gun and allow it to heat the joint fully. Wiggle it gentle before applying the vacuum.&lt;br /&gt;
#* Try to hold the desoldering gun perpendicular to the PCB to ensure a good vacuum&lt;br /&gt;
#* Additional heat from a soldering iron may help&lt;br /&gt;
# Use tweezers to wiggle each pin to verify it is free&lt;br /&gt;
#* If a pin is not free try the desoldering gun again&lt;br /&gt;
#* If problems persist, resolder the joint and try again&lt;br /&gt;
#* Be careful not apply heat from the soldering iron or desolder gun for extended periods otherwise you might lift a pad on the PCB&lt;br /&gt;
# Once a pin is free move on to the next pin and repeat the process from step 3&lt;br /&gt;
# Carefully review all the pins are loose with tweezers&lt;br /&gt;
# Unscrew the 11 screws securing the PCB to the housing using the Torx T20 screwdriver.&lt;br /&gt;
# Unclip the 30-way lov-voltage connector clip&lt;br /&gt;
#* Insert a flat bladed screwdriver vertically&lt;br /&gt;
#* Squeeze towards the center of the connector whilst lifting&lt;br /&gt;
# Carefully lift up the PCB&lt;br /&gt;
#* If it requires force to lift the PCB, carefully review the desoldering and mounting screws&lt;br /&gt;
# Flip the PCB over and use a pair of side cutters remove the black plastic clips holding the insulating shield to the underside of the PCB&lt;br /&gt;
#* Save the insulating shield for later with the replacement PCB&lt;br /&gt;
&lt;br /&gt;
== Step 3: Recover gate drive components from the Tesla PCB (Optional) ==&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Transformer ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all of the legs of the gate driver power supply transformer&lt;br /&gt;
# Slip a flat bladed screwdriver under the edge of the transformer and use its weight to apply a small amount of pressure&lt;br /&gt;
# Use a hot air gun to apply a lot of heat to the legs on one side of the transformer&lt;br /&gt;
# As the heat gun melts the conformal coating and solder gently lift up the leg&lt;br /&gt;
# Move up the side of the transformer&lt;br /&gt;
# Repeat on the other side&lt;br /&gt;
&lt;br /&gt;
=== Remove Gate Driver Chips ===&lt;br /&gt;
&lt;br /&gt;
# Apply some flux to all the pins on each gate driver chip U303, U293, U302, U292, U301 and U291&lt;br /&gt;
# Place a scalpel under the edge of the first chip&lt;br /&gt;
# Use a heat gun to desolder the chip&lt;br /&gt;
# As the solder melts it will be possible to lift the chip with the scalpel&lt;br /&gt;
#* The conformal coating means the chip will not lift as easily as a regular PCB. Only a tiny amount of force will be required to break the adhesion though.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Remove current sensor ==&lt;br /&gt;
&lt;br /&gt;
# Unscrew the 3 screws securing the current sensor block using the Torx T10 screwdriver&lt;br /&gt;
#* Boards fitted with pyrofuses will have 2 T10 screws.&lt;br /&gt;
# Apply fresh solder and flux to all 4 pins on each current sensor&lt;br /&gt;
#* Aim to bridge all 4 pins&lt;br /&gt;
#* The process will emit some smoke as it burns off the conformal coating&lt;br /&gt;
# Insert the flat bladed screwdriver gently between the plastic housing and the PCB&lt;br /&gt;
# Apply heat with a soldering iron to one of the current sensors while levering the housing to release it&lt;br /&gt;
#* The current sensors are bonded into the current sensor housing. Be careful not to apply a lot of force.&lt;br /&gt;
#* Once the leads start moving move to the next sensor&lt;br /&gt;
#* Move back and forth between the sensors until the whole assembly has been removed&lt;br /&gt;
#* The two sensors should remain soldered to the PCB&lt;br /&gt;
# Desolder each current sensor by apply some flux and hot air&lt;br /&gt;
#* Use tweezers to gently work the sensors free from the board&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=5937</id>
		<title>Tesla Model 3 Rear Drive Unit</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=5937"/>
		<updated>2025-11-16T17:26:27Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* External Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== External Documentation ==&lt;br /&gt;
[https://openinverter.org/forum/viewtopic.php?f=10&amp;amp;t=575 Tesla Model 3 Rear Drive Unit Hacking] (forum thread)&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit (Hardware and reverse engineering details)&lt;br /&gt;
&lt;br /&gt;
https://github.com/davefiddes/stm32-sine (STM32 replacement PCB firmware dev. branch)&lt;br /&gt;
&lt;br /&gt;
==Part Numbers==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part Number&lt;br /&gt;
!Description&lt;br /&gt;
!Max Current&lt;br /&gt;
!Cars&lt;br /&gt;
|-&lt;br /&gt;
|1120970-00-F&lt;br /&gt;
|(ASY,M3,3DU,REAR,IGBT) - original RWD and/or &amp;quot;binned&amp;quot; Perf&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3&lt;br /&gt;
|-&lt;br /&gt;
|1120980-00-G&lt;br /&gt;
|(ASY,M3,REAR 3DU,MOSFET,GLOBAL) - early AWD motor&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-G&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-H&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor 2021 with few hints on it&#039;s actual existence ([2])&lt;br /&gt;
|???A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-J&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - current (Jan 2022) AWD (EPC [3]) &lt;br /&gt;
|???A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521365-00-B&lt;br /&gt;
|(ASY, REMAN, 3DU-Rear 800 MOSFET) - Remanufactured 1120980-00-G&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521487-00-A&lt;br /&gt;
|(ASY, REMAN, 3DU-REAR 630 MOSFET) - Remanufactured 1120990-00-G&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Details from https://www.reddit.com/r/teslamotors/comments/ioat3d/rear_motor_efficiency_improvements_980_vs_990/.  &amp;lt;br&amp;gt;&lt;br /&gt;
[2] https://www.ebay.de/itm/185026392386 &amp;lt;br&amp;gt;&lt;br /&gt;
[3] https://epc.tesla.com/en/catalogs/138/categories/10030/subcategories/42427&lt;br /&gt;
&lt;br /&gt;
== Connectors and Pinouts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
!Description&lt;br /&gt;
!Pins&lt;br /&gt;
!Compatible Plugs&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|X090&lt;br /&gt;
|Inverter connector&lt;br /&gt;
|30&lt;br /&gt;
|Toyota 90980-12712 (Sumitomo 6189-6987)&lt;br /&gt;
|https://prd.sws.co.jp/components/en/detail.php?number_s=61896987&lt;br /&gt;
https://www.aliexpress.com/item/1005005920568514.html&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Rotor Shaft Resolver&lt;br /&gt;
|10 (8 connected)&lt;br /&gt;
|TE Connectivity 1-2282337-1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Oil Pump&lt;br /&gt;
|3&lt;br /&gt;
|TE Connectivity 1-1718644-1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|HV connector&lt;br /&gt;
|2&lt;br /&gt;
|TE Connectivity HC-STAK 90° 2840900-1&lt;br /&gt;
|[https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&amp;amp;DocId=Specification+Or+Standard%7F114-162001%7FJ%7Fpdf%7FEnglish%7FENG_SS_114-162001_J.pdf%7F2840900-1 TE  Product Application]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Power Figures ==&lt;br /&gt;
Taken from tesla:&lt;br /&gt;
&lt;br /&gt;
==== RWD Variant ====&lt;br /&gt;
Voltage: 350v&lt;br /&gt;
&lt;br /&gt;
Max Power: 239 KW @ 5525 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 420 nm @ 325-5200 rpm&lt;br /&gt;
&lt;br /&gt;
==== AWD Variant ====&lt;br /&gt;
Voltage: 335v&lt;br /&gt;
&lt;br /&gt;
Max Power: 203 KW @ 6700 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 330 nm @ 325-5200 rpm&lt;br /&gt;
&lt;br /&gt;
==== Performance Variant ====&lt;br /&gt;
Voltage: 320v&lt;br /&gt;
&lt;br /&gt;
Max Power: 219 KW @ 5075 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 420 nm @ 325-4800 rpm&lt;br /&gt;
&lt;br /&gt;
== Mechanical Specification ==&lt;br /&gt;
Max rotor speed: 18,447 rpm&lt;br /&gt;
&lt;br /&gt;
Input shaft gear: 31 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft input: 81 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft output: 24 teeth&lt;br /&gt;
&lt;br /&gt;
Ring gear: 83 teeth&lt;br /&gt;
&lt;br /&gt;
Gearbox Ratio: (81/31) * (83/24) = 9.036&lt;br /&gt;
&lt;br /&gt;
Weight: 80 kg&lt;br /&gt;
&lt;br /&gt;
Dimensions approx: 676 x 554 x 353 mm&lt;br /&gt;
&lt;br /&gt;
Details from https://www.youtube.com/watch?v=SRUrB7ruh-8 &amp;amp; https://eveurope.eu/en/product/tesla-model-3-rwd-drive-kit.&lt;br /&gt;
&lt;br /&gt;
== Inverter Components ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Manufacturer&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
!Quantity&lt;br /&gt;
!Datasheet&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|ST GK026&lt;br /&gt;
|SiC FET drive transistors&lt;br /&gt;
|24&lt;br /&gt;
|https://www.st.com/en/power-transistors/sctw100n65g2ag.html (?)&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STGAP1AS&lt;br /&gt;
|Gate Drivers&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-management/stgap1as.html&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STD46P4LLF6&lt;br /&gt;
|P-channel Power MOSFET 40V&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-transistors/std46p4llf6.html&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|3N0408&lt;br /&gt;
|N-channel Power Transistor&lt;br /&gt;
|6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|TMS320F28377DPTPQ&lt;br /&gt;
|C2000 Delfino MCU&lt;br /&gt;
|1&lt;br /&gt;
|[https://www.ti.com/lit/gpn/tms320f28377d TMS320F2837xD Dual-Core Microcontrollers Datasheet]&lt;br /&gt;
[https://www.ti.com/lit/ug/spruhm8i/spruhm8i.pdf TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual]&lt;br /&gt;
|-&lt;br /&gt;
|On Semi&lt;br /&gt;
|TCA0372BDW&lt;br /&gt;
|Resolver amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.onsemi.com/pdf/datasheet/tca0372-d.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|LMV844&lt;br /&gt;
|Temperature sensor amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.ti.com/lit/gpn/lmv844&lt;br /&gt;
|-&lt;br /&gt;
|Microchip&lt;br /&gt;
|25LC256E&lt;br /&gt;
|EEPROM&lt;br /&gt;
|1&lt;br /&gt;
|http://ww1.microchip.com/downloads/en/DeviceDoc/20005715A.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|SN65HVD1040A&lt;br /&gt;
|CAN Transceiver&lt;br /&gt;
|2&lt;br /&gt;
|https://www.ti.com/lit/ds/symlink/sn65hvd1040a-q1.pdf&lt;br /&gt;
|-&lt;br /&gt;
|NXP&lt;br /&gt;
|TJA1021&lt;br /&gt;
|LIN Transceiver&lt;br /&gt;
|1&lt;br /&gt;
|https://www.nxp.com/docs/en/data-sheet/TJA1021.pdf&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom&lt;br /&gt;
|ACPL-C87BT-000E&lt;br /&gt;
|DC HV sense&lt;br /&gt;
|1&lt;br /&gt;
|https://docs.broadcom.com/docs/AV02-3564EN&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|TLF35584QVVS2&lt;br /&gt;
|DC-DC Power and system watchdog&lt;br /&gt;
|1&lt;br /&gt;
|https://uk.farnell.com/infineon/tlf35584qvvs1xuma2/multi-volt-pwr-supply-ic-40-to/dp/3155085&lt;br /&gt;
|-&lt;br /&gt;
|TDK&lt;br /&gt;
|VGT22EPC-222S6A12&lt;br /&gt;
|DC-DC Transformer (gate drive?)&lt;br /&gt;
|1&lt;br /&gt;
|https://product.tdk.com/en/search/transformer/transformer/gate-drive/info?part_no=VGT22EPC-200S6A12&lt;br /&gt;
|}&lt;br /&gt;
Details from https://www.youtube.com/watch?v=l6dV2re3rtM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Oil specification ==&lt;br /&gt;
There are two variants of rear drive unit in terms of oil. One where the oil is also inside the motor and one where it isn&#039;t. Where the gear oil is also inside the motor the oil will be black in colour. In this case FUCHS BluEV EDF 7005 oil is required, not using this oil will degrade the motor and cause failure in the long term. The oil filter is available as a BluePrint part number ADBP210139.&lt;br /&gt;
&lt;br /&gt;
== Cooling ==&lt;br /&gt;
The drive unit has a water cooling loop which runs into the inverter then out and into a water/oil plate heat-exchanger before returning to the car. The system uses NW18 connectors. The cooling hoses supplied use the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|FIP-NW18-90°-3&lt;br /&gt;
|90 degree fitting made from 66% Nylon/30% Glass Fibre&lt;br /&gt;
|-&lt;br /&gt;
|FIP-NW18-180°-1&lt;br /&gt;
|Straight fitting made from 66% Nylon/30% Glass Fibre&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A variety of confirmed compatible fittings can be purchase from https://www.aliexpress.com/item/1005007457411094.html in straight, 45 degree or 90 degree format as required.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tesla]]&lt;br /&gt;
[[Category:Motor]]&lt;br /&gt;
[[Category:Inverter]]&lt;br /&gt;
[[Category:Gearbox]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=5934</id>
		<title>Tesla Model 3 Rear Drive Unit</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=5934"/>
		<updated>2025-11-16T14:07:59Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Connectors and Pinouts */ Add link to supplier of the main inverter connector&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== External Documentation ==&lt;br /&gt;
[https://openinverter.org/forum/viewtopic.php?f=10&amp;amp;t=575 Tesla Model 3 Rear Drive Unit Hacking] (forum thread)&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit (Hardware and reverse engineering details)&lt;br /&gt;
&lt;br /&gt;
https://github.com/jsphuebner/stm32-sine/tree/tesla-m3-gate-driver (STM32 &amp;quot;modboard&amp;quot; firmware dev. branch)&lt;br /&gt;
&lt;br /&gt;
==Part Numbers==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part Number&lt;br /&gt;
!Description&lt;br /&gt;
!Max Current&lt;br /&gt;
!Cars&lt;br /&gt;
|-&lt;br /&gt;
|1120970-00-F&lt;br /&gt;
|(ASY,M3,3DU,REAR,IGBT) - original RWD and/or &amp;quot;binned&amp;quot; Perf&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3&lt;br /&gt;
|-&lt;br /&gt;
|1120980-00-G&lt;br /&gt;
|(ASY,M3,REAR 3DU,MOSFET,GLOBAL) - early AWD motor&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-G&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-H&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor 2021 with few hints on it&#039;s actual existence ([2])&lt;br /&gt;
|???A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-J&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - current (Jan 2022) AWD (EPC [3]) &lt;br /&gt;
|???A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521365-00-B&lt;br /&gt;
|(ASY, REMAN, 3DU-Rear 800 MOSFET) - Remanufactured 1120980-00-G&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521487-00-A&lt;br /&gt;
|(ASY, REMAN, 3DU-REAR 630 MOSFET) - Remanufactured 1120990-00-G&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Details from https://www.reddit.com/r/teslamotors/comments/ioat3d/rear_motor_efficiency_improvements_980_vs_990/.  &amp;lt;br&amp;gt;&lt;br /&gt;
[2] https://www.ebay.de/itm/185026392386 &amp;lt;br&amp;gt;&lt;br /&gt;
[3] https://epc.tesla.com/en/catalogs/138/categories/10030/subcategories/42427&lt;br /&gt;
&lt;br /&gt;
== Connectors and Pinouts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
!Description&lt;br /&gt;
!Pins&lt;br /&gt;
!Compatible Plugs&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|X090&lt;br /&gt;
|Inverter connector&lt;br /&gt;
|30&lt;br /&gt;
|Toyota 90980-12712 (Sumitomo 6189-6987)&lt;br /&gt;
|https://prd.sws.co.jp/components/en/detail.php?number_s=61896987&lt;br /&gt;
https://www.aliexpress.com/item/1005005920568514.html&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Rotor Shaft Resolver&lt;br /&gt;
|10 (8 connected)&lt;br /&gt;
|TE Connectivity 1-2282337-1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Oil Pump&lt;br /&gt;
|3&lt;br /&gt;
|TE Connectivity 1-1718644-1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|HV connector&lt;br /&gt;
|2&lt;br /&gt;
|TE Connectivity HC-STAK 90° 2840900-1&lt;br /&gt;
|[https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&amp;amp;DocId=Specification+Or+Standard%7F114-162001%7FJ%7Fpdf%7FEnglish%7FENG_SS_114-162001_J.pdf%7F2840900-1 TE  Product Application]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Power Figures ==&lt;br /&gt;
Taken from tesla:&lt;br /&gt;
&lt;br /&gt;
==== RWD Variant ====&lt;br /&gt;
Voltage: 350v&lt;br /&gt;
&lt;br /&gt;
Max Power: 239 KW @ 5525 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 420 nm @ 325-5200 rpm&lt;br /&gt;
&lt;br /&gt;
==== AWD Variant ====&lt;br /&gt;
Voltage: 335v&lt;br /&gt;
&lt;br /&gt;
Max Power: 203 KW @ 6700 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 330 nm @ 325-5200 rpm&lt;br /&gt;
&lt;br /&gt;
==== Performance Variant ====&lt;br /&gt;
Voltage: 320v&lt;br /&gt;
&lt;br /&gt;
Max Power: 219 KW @ 5075 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 420 nm @ 325-4800 rpm&lt;br /&gt;
&lt;br /&gt;
== Mechanical Specification ==&lt;br /&gt;
Max rotor speed: 18,447 rpm&lt;br /&gt;
&lt;br /&gt;
Input shaft gear: 31 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft input: 81 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft output: 24 teeth&lt;br /&gt;
&lt;br /&gt;
Ring gear: 83 teeth&lt;br /&gt;
&lt;br /&gt;
Gearbox Ratio: (81/31) * (83/24) = 9.036&lt;br /&gt;
&lt;br /&gt;
Weight: 80 kg&lt;br /&gt;
&lt;br /&gt;
Dimensions approx: 676 x 554 x 353 mm&lt;br /&gt;
&lt;br /&gt;
Details from https://www.youtube.com/watch?v=SRUrB7ruh-8 &amp;amp; https://eveurope.eu/en/product/tesla-model-3-rwd-drive-kit.&lt;br /&gt;
&lt;br /&gt;
== Inverter Components ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Manufacturer&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
!Quantity&lt;br /&gt;
!Datasheet&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|ST GK026&lt;br /&gt;
|SiC FET drive transistors&lt;br /&gt;
|24&lt;br /&gt;
|https://www.st.com/en/power-transistors/sctw100n65g2ag.html (?)&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STGAP1AS&lt;br /&gt;
|Gate Drivers&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-management/stgap1as.html&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STD46P4LLF6&lt;br /&gt;
|P-channel Power MOSFET 40V&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-transistors/std46p4llf6.html&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|3N0408&lt;br /&gt;
|N-channel Power Transistor&lt;br /&gt;
|6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|TMS320F28377DPTPQ&lt;br /&gt;
|C2000 Delfino MCU&lt;br /&gt;
|1&lt;br /&gt;
|[https://www.ti.com/lit/gpn/tms320f28377d TMS320F2837xD Dual-Core Microcontrollers Datasheet]&lt;br /&gt;
[https://www.ti.com/lit/ug/spruhm8i/spruhm8i.pdf TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual]&lt;br /&gt;
|-&lt;br /&gt;
|On Semi&lt;br /&gt;
|TCA0372BDW&lt;br /&gt;
|Resolver amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.onsemi.com/pdf/datasheet/tca0372-d.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|LMV844&lt;br /&gt;
|Temperature sensor amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.ti.com/lit/gpn/lmv844&lt;br /&gt;
|-&lt;br /&gt;
|Microchip&lt;br /&gt;
|25LC256E&lt;br /&gt;
|EEPROM&lt;br /&gt;
|1&lt;br /&gt;
|http://ww1.microchip.com/downloads/en/DeviceDoc/20005715A.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|SN65HVD1040A&lt;br /&gt;
|CAN Transceiver&lt;br /&gt;
|2&lt;br /&gt;
|https://www.ti.com/lit/ds/symlink/sn65hvd1040a-q1.pdf&lt;br /&gt;
|-&lt;br /&gt;
|NXP&lt;br /&gt;
|TJA1021&lt;br /&gt;
|LIN Transceiver&lt;br /&gt;
|1&lt;br /&gt;
|https://www.nxp.com/docs/en/data-sheet/TJA1021.pdf&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom&lt;br /&gt;
|ACPL-C87BT-000E&lt;br /&gt;
|DC HV sense&lt;br /&gt;
|1&lt;br /&gt;
|https://docs.broadcom.com/docs/AV02-3564EN&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|TLF35584QVVS2&lt;br /&gt;
|DC-DC Power and system watchdog&lt;br /&gt;
|1&lt;br /&gt;
|https://uk.farnell.com/infineon/tlf35584qvvs1xuma2/multi-volt-pwr-supply-ic-40-to/dp/3155085&lt;br /&gt;
|-&lt;br /&gt;
|TDK&lt;br /&gt;
|VGT22EPC-222S6A12&lt;br /&gt;
|DC-DC Transformer (gate drive?)&lt;br /&gt;
|1&lt;br /&gt;
|https://product.tdk.com/en/search/transformer/transformer/gate-drive/info?part_no=VGT22EPC-200S6A12&lt;br /&gt;
|}&lt;br /&gt;
Details from https://www.youtube.com/watch?v=l6dV2re3rtM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Oil specification ==&lt;br /&gt;
There are two variants of rear drive unit in terms of oil. One where the oil is also inside the motor and one where it isn&#039;t. Where the gear oil is also inside the motor the oil will be black in colour. In this case FUCHS BluEV EDF 7005 oil is required, not using this oil will degrade the motor and cause failure in the long term. The oil filter is available as a BluePrint part number ADBP210139.&lt;br /&gt;
&lt;br /&gt;
== Cooling ==&lt;br /&gt;
The drive unit has a water cooling loop which runs into the inverter then out and into a water/oil plate heat-exchanger before returning to the car. The system uses NW18 connectors. The cooling hoses supplied use the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|FIP-NW18-90°-3&lt;br /&gt;
|90 degree fitting made from 66% Nylon/30% Glass Fibre&lt;br /&gt;
|-&lt;br /&gt;
|FIP-NW18-180°-1&lt;br /&gt;
|Straight fitting made from 66% Nylon/30% Glass Fibre&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A variety of confirmed compatible fittings can be purchase from https://www.aliexpress.com/item/1005007457411094.html in straight, 45 degree or 90 degree format as required.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tesla]]&lt;br /&gt;
[[Category:Motor]]&lt;br /&gt;
[[Category:Inverter]]&lt;br /&gt;
[[Category:Gearbox]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Batteries&amp;diff=5878</id>
		<title>Batteries</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Batteries&amp;diff=5878"/>
		<updated>2025-09-23T11:50:23Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* OEM modules */ Link to the MEB and Tesla M3 battery specific module pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wiki Category ==&lt;br /&gt;
[[:Category:Battery]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
There are a wide variety of battery chemistries available for use as the main traction battery of an EV. To use each chemistry safely, and to ensure an adequate service life from the battery pack it is important to understand the requirements for the chemistry you are using. Failure to do so may lead to premature or catastrophic failure of the pack.&lt;br /&gt;
&lt;br /&gt;
Good pack design will allow for a nominal amount of abuse. People make mistakes and the pack should allow a margin for safety - and for longevity!&lt;br /&gt;
&lt;br /&gt;
== Battery pack specification ==&lt;br /&gt;
When deciding on your battery pack, here are some basic parameters to consider:&lt;br /&gt;
&lt;br /&gt;
=== Capacity (kWh) ===&lt;br /&gt;
&#039;&#039;&#039;How far do you want to go?&#039;&#039;&#039; A standard  car conversion will need a kWh for each 3, maybe 4 miles of range (very approximately). For a middleweight motorcycle, a kWh should give around 9 miles. Your mileage may vary, &#039;&#039;as they say.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Voltage (V) ===&lt;br /&gt;
&#039;&#039;&#039;How fast do you want to go?&#039;&#039;&#039; The pack voltage defines the maximum speed your motor can spin. Motors are usually specified with &amp;quot;KV&amp;quot; - or RPM-per-volt. Check the KV of your motor and how fast it needs to spin to get your desired top speed. e.g. if you need 3,000 RPM from a 25 KV motor then your pack voltage needs to be  3,000 / 25 = 120 V. The exact number of cells in series you need depends on the cell design, but 3.8 V for Li-ion and 3.2 V for LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; is a reasonable guess.&lt;br /&gt;
&lt;br /&gt;
=== Maximum current (A) ===&lt;br /&gt;
&#039;&#039;&#039;How quickly do you want to accelerate?&#039;&#039;&#039; Your motor&#039;s maximum power will be specified in kW. To estimate your maximum current draw, divide the peak power by the battery voltage. e.g. a 30 kW motor with a 120 V battery pack will pull 30,000 / 120 = 250 A. The higher the current rating of the cells, the heavier they will be for a given capacity. Ideally, you want &amp;quot;enough&amp;quot; current capacity for full throttle acceleration, but no more. You can put cells in parallel to double the current rating of your pack (which of course will half the voltage). Running &#039;&#039;cells&#039;&#039; in parallel is easy, but don&#039;t attempt to parallel battery &#039;&#039;packs&#039;&#039; unless you really know what you are doing. It&#039;s complicated&amp;lt;ref&amp;gt;https://www.orionbms.com/manuals/pdf/parallel_strings.pdf (Backup: [https://web.archive.org/web/20210322000103/https://www.orionbms.com/manuals/pdf/parallel_strings.pdf Web Archive])&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== Mass (kg) ===&lt;br /&gt;
&#039;&#039;&#039;Can your vehicle carry the weight?&#039;&#039;&#039; You&#039;ll need to keep the kerb weight within the original design limits. For a car, your pack could be a few hundred kg. For a motorcycle, likely less than 100 kg. This is a huge variable - and each new generation of battery tech seems to be a little lighter. For older EV or hybrid batteries, you can reckon on approximately 10 kg/kWh. Nissan Leaf batteries are relatively light (7.5 kg/kWh). With the latest technology (e.g. Kokam pouch cells or 18650s), you can get this down to 5-6 kg/kWh.&lt;br /&gt;
&lt;br /&gt;
=== Volume (L) ===&lt;br /&gt;
&#039;&#039;&#039;Will it fit?&#039;&#039;&#039; Batteries are bulky. They are getting smaller, but finding enough space might be your biggest challenge. You could be looking at over 5 L/kWh for older EV or hybrid batteries. Current state-of-the-art is the Tesla Model 3, which gets this down to 2.5 L/kWh by using 2170 cylindrical cells.&lt;br /&gt;
&lt;br /&gt;
There is much, much more to battery design than this (e.g. maximum charge rate, terminations, cooling, clamping), but the above should help work out which options will or won&#039;t work for your project...&lt;br /&gt;
&lt;br /&gt;
== Cell chemistry ==&lt;br /&gt;
&lt;br /&gt;
=== Lithium Iron Phosphate (LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;) ===&lt;br /&gt;
Lithium Iron Phosphate (also known as LFP, or LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;) batteries offer a good compromise between safety, energy density and ease of use for DIY conversions. They are available in a number of formats, commonly pouch cells, prismatic cells and cylindrical cells.&lt;br /&gt;
&lt;br /&gt;
==== LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; pouch cells ====&lt;br /&gt;
The majority of this content is drawn from this thread &amp;lt;ref&amp;gt;[https://web.archive.org/web/20210124061443/https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761&amp;amp;start=900 https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761&amp;amp;start=900] (Backup: [https://web.archive.org/web/20210124061443/https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761&amp;amp;start=900 Web Archive])&amp;lt;/ref&amp;gt; discussing the use of the A123 20Ah pouch cell. However, many of the general points apply equally to other similar pouch cells.&lt;br /&gt;
&lt;br /&gt;
===== General build requirements =====&lt;br /&gt;
Pouch cells are vulnerable to damage from debris, and must be held in compression (see the datasheet for your battery, but 10-12 psi is recommended for the A123 pouch cells as a guide). A rigid container capable of preventing damage and providing compression is therefore required. Be aware the cells expand and contract in use, so allowance for this must be included in the structure of the case.&lt;br /&gt;
&lt;br /&gt;
The pouch cells should be separated to prevent abrasion between cells, and also to avoid the development of hot spots. Prebuilt modules from A123 systems had thin foam sheets or heatsinks between each cell. Be sure to avoid any debris that could rub on the pouch surface, particularly if using recycled cells.&lt;br /&gt;
&lt;br /&gt;
Mylar, &#039;Fish paper&#039;&amp;lt;ref&amp;gt;https://www.americanmicroinc.com/fish-paper/ (Backup: [https://web.archive.org/web/20221016210644/https://www.americanmicroinc.com/electrical-insulator-materials/fish-paper/ Web Archive])&amp;lt;/ref&amp;gt; or a compliant foam&amp;lt;ref&amp;gt;https://www.rogerscorp.com/elastomeric-material-solutions/poron-industrial-polyurethanes (Backup: [https://web.archive.org/web/20220604010733/https://rogerscorp.com/elastomeric-material-solutions/poron-industrial-polyurethanes Web Archive])&amp;lt;/ref&amp;gt; may be appropriate materials to serve this purpose. This material should not be flammable. If the material is heat insulating, it is important to address thermal management.&lt;br /&gt;
&lt;br /&gt;
===== Compression =====&lt;br /&gt;
Compression is required to prevent premature failure of the cell. Without compression electrolyte will become unevenly distributed, causing current gradients in the cell and uneven heating. Local temperatures can become high enough to form gas formation leading to cells &#039;puffing up&#039; even when the pack is otherwise held within temperature and voltage constraints. This will be exacerbated in packs with otherwise poor thermal management. Compression forces gas generated to the margins of the cell, outside of the cell stack, minimising its effect cell performance. Gas in the middle cells will create a dead space which does not store or release energy.&lt;br /&gt;
&lt;br /&gt;
There is ~1% expansion through a discharge cycle. As the cell ages, the nominal cell thickness can grow by 3-5%. For A123 cells the ideal pressure is between 4 and 18psi with the ideal pressure being ~12psi. Maintaining 12psi can increase the life by 500 cycles over that of 4 or 18psi&lt;br /&gt;
&lt;br /&gt;
There is some suggestion that in uses where 1C is never exceeded compression &#039;&#039;may&#039;&#039; not be required.&lt;br /&gt;
&lt;br /&gt;
Highly rigid endplates with a mechanism to allow for a limited degree of expansion (e.g. steel bands) are considered an effective solution to this challenge.&lt;br /&gt;
&lt;br /&gt;
It should be noted that compression is a challenge specific to pouch cells. Cylindrical cells are designed to maintain their own compression within the cell&#039;s electrode stack by their design.&lt;br /&gt;
&lt;br /&gt;
This thread provides more information and experimentation relating to pack compression: &amp;lt;nowiki&amp;gt;https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=52244&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Pouch Cell Pack Design Examples =====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;placeholder*&lt;br /&gt;
&lt;br /&gt;
===== Notes regarding recycled pouch cells =====&lt;br /&gt;
Pouch cells are somewhat fragile, and breaching the insulation is not difficult, especially in a cells removed from existing packs and repurposed. If the pouch has had their poly-layers compromised you may see a number of faults:&lt;br /&gt;
* Black spots around the perimeter of the cell indicate electrolyte leakage&lt;br /&gt;
* Voltage on the outside of the bag. Note that microvoltage between the pouch and the electrode is normal (and due to a capacitive effect).&lt;br /&gt;
While the majority of these cells should no longer be in the market, a significant number of faulty cells made it back into the &#039;greymarket&#039; in around 2013. These cells had misaligned tabs which can also lead to isolation failures between the tab and the pack. These cells should be avoided, particularly in high demand applications.&lt;br /&gt;
&lt;br /&gt;
===== Situations likely to cause pouch cell failure =====&lt;br /&gt;
&#039;&#039;Taken directly from wb9k&#039;s&#039;&#039;&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;https://endless-sphere.com/forums/memberlist.php?mode=viewprofile&amp;amp;u=33107 &amp;lt;/ref&amp;gt; &#039;&#039;post on endless sphere in the A123 thread&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761 (Backup: [https://web.archive.org/web/20210116021026/https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761 Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Overcharge&#039;&#039;&#039;. Any extended time above 3.8 Volts will generate enough heat and electrochemical activity to puff a cell, especially one that is improperly compressed.&lt;br /&gt;
# &#039;&#039;&#039;Overdischarge followed by charge&#039;&#039;&#039;. Any A123 cell that has been pulled low enough to come to rest at &amp;lt;300 mV should be immediately scrapped. The published number for that is 500 mV, but the real figure is closer to 300, so that&#039;s a &amp;quot;safety buffer&amp;quot; if you will. Below this Voltage, the Cu electrodes start to dissolve into the electrolyte. When charge is applied, the Cu forms dendrites that puncture the separator layer, forming an internal short in the cell. This can puff a cell in a hurry---the more charge current on tap, the worse it&#039;s prone to be.&lt;br /&gt;
# &#039;&#039;&#039;Driving a cell negative&#039;&#039;&#039;. I&#039;ve neglected to mention this before, but it is a possibility. I don&#039;t know much about the specific mechanism at this time.&lt;br /&gt;
# &#039;&#039;&#039;Malfunctioning or misinformed electronics&#039;&#039;&#039;. This is the most common cause of all of the above in my experience. At this stage of the game, it is critical for YOU to understand how your BMS functions on at least a cursory level. Choose your BMS very carefully and periodically verify that it is operating properly. They&#039;re not all created equal. Make sure V sense lines are securely connected and free of corrosion. Just because your BMS says there was never a problem doesn&#039;t necessarily make it so. Avoid harnesses or ribbon cables between multiple modules if possible--they are problematic wherever they are used in any mobile electronics.&lt;br /&gt;
# &#039;&#039;&#039;Exposure to or generation of sufficient heat&#039;&#039;&#039;. I don&#039;t know exactly at what temperature gas formation begins in the electrolyte, but we spec a max storage temp of 80 (or 85?) degrees C and I suspect this is the reason. The hotter, the puffier--to a point. This is why soldering tabs poses a real hazard to cell health. If you feel you must solder, sink or blow the heat away from the body of the cell. Use a big iron that can make sufficient local heat quickly, before the whole mass of the cell gets hot. You might even get the cell warm enough to melt separator if not careful.&lt;br /&gt;
# &#039;&#039;&#039;No compression, not enough compression, improperly distributed compression&#039;&#039;&#039;. This is a pack/module design issue. Apply 10, maybe 15 psi to your cell stack end to end and then band snugly and evenly. Use hard endplates of some sort--never wrap cells directly or allow their shape to become distorted. Protect all areas of the pouch from impact damage. This obviously does not apply to cylindrical cells.&lt;br /&gt;
&lt;br /&gt;
==== LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; prismatic cells ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;placeholder*&lt;br /&gt;
&lt;br /&gt;
==== LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; cylindrical cells ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;placeholder*&lt;br /&gt;
&lt;br /&gt;
==== LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; cell ageing ====&lt;br /&gt;
&#039;&#039;Derived (barely paraphrased) from wb9k&#039;s&#039;&#039;&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt; &#039;&#039;post on endless sphere in the A123 thread&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Capacity loss is caused by the lithium that was available for storage becoming permanently plated on the cathode. Being unable to move within the cell it is no longer available to store energy. The impact of this plating is greater than the amount of lithium &#039;lost&#039; to plating because not only is the lithium no longer available, it is also preventing access to that part of the cathode meaning Li that can still move has to take a longer path to reach the cathode. Lithium plating is one cause of increased cell resistance (there are others), a sign of worsening cell health.&lt;br /&gt;
&lt;br /&gt;
There is no linear relationship between actual capacity loss and impedance rise. However some cell defects will also increase impedance.&lt;br /&gt;
&lt;br /&gt;
Increasing cell resistance may cause a number of symptoms which may be confused with High Self Discharge.&amp;lt;ref&amp;gt;https://earthshipbiotecture.com/a-lithium-ion-battery-primer/ (Backup: [https://web.archive.org/web/20220524233332/https://earthshipbiotecture.com/a-lithium-ion-battery-primer/ Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Elevated Peukert Losses. As more energy per amount of current through the cell is lost as heat, the cells useable capacity decreases. So the apparent capacity loss is higher than the actual capacity loss of cycleable lithium. When used in low current applications (e.g. solar energy storage) the actual and apparent decrease in capacity will be small. In high current draw applications (like EV traction packs), the Peukert loss increases proportionally, so the apparent capacity loss increases much faster than the actual capacity loss.&lt;br /&gt;
# Greater voltage excursion under the same load. Due to increased cell resistancethe voltage will sag further under the same load than a cell in optimal condition. The inverse is also true, the voltage will be higher for the same amount of charging current applied. The cell will then rebound to a voltage further from the loaded and charging voltages. This, obviously, can look like high self discharge but is a different phenomenon.&lt;br /&gt;
# Absolute maximum current decrease.&lt;br /&gt;
Elevated impedance causes a more complex constellation of symptoms, some of which may be easy to confuse with High Self Discharge (HSD). Ohm&#039;s law (E=I/R) holds the key to understanding here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1) Elevated Peukert losses.&#039;&#039;&#039; Because more energy per unit of current through the cell is lost as heat, less of the cell&#039;s capacity is actually USABLE. Thus, apparent capacity loss can be significantly greater than actual capacity loss caused by the loss of cycleable Li alone. In low current applications, the two numbers will be close together. In high current applications, Peukert losses increase in proportion, so apparent loss of capacity breaks further and further away from actual capacity loss as current increases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2) Greater voltage excursion under the same load.&#039;&#039;&#039; Elevated resistance across the cell means that voltage will sag more under the same load than it did when the cell was healthier. Conversely, voltage will rise higher with the same amount of applied charge current than it did when it was healthier. At the same time, rebound/settling voltages will be further away from loaded/charging voltages. In other words, the cell will rebound to a voltage further away from loaded voltage, all else being equal. Similarly, voltage will settle farther from the charge voltage with the same charge applied. This can give the illusion of elevated self-discharge, but the phenomenon is actually not the same thing. Again, the greater the charge and load currents, the greater the effect becomes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3) Absolute max current decreases.&#039;&#039;&#039; Because the cell&#039;s series resistance is elevated, the maximum possible current through the cell is decreased.&lt;br /&gt;
&lt;br /&gt;
Just to confuse things further, there can be many factors that lead to impedance rise. Some are related to Li plating, others are not.&lt;br /&gt;
&lt;br /&gt;
=== Lithium-ion ===&lt;br /&gt;
Lithium-ion (Li-ion) batteries have a greater energy density than Lithium Iron Phosphate batteries, but have more challenging needs to use safely. The ideal operating range of Li-ion batteries is between +15 and +45°C. The upper limit of temperature is particularly important as Li-ion batteries experience thermal runaway - an unstoppable chain reaction that can occur in milliseconds releasing the stored energy in the cell. This can produce temperatures of 400°C and a fire that is extremely difficult to put out. Thermal runaway can start as low as 60°C and becomes much more likely at 100°C&lt;br /&gt;
&lt;br /&gt;
Risk factors for thermal runaway:&lt;br /&gt;
* Short Circuits - either internally or externally&lt;br /&gt;
* Overcharging&lt;br /&gt;
* Excessive current draw or when charging&lt;br /&gt;
&lt;br /&gt;
==== Li-ion pouch cells ====&lt;br /&gt;
Kokam produce high-performance Li-ion pouch cells&amp;lt;ref&amp;gt;https://kokam.com/en/product/cell/lithium-ion-battery (Backup: [https://web.archive.org/web/20220423100132/https://kokam.com/en/product/cell/lithium-ion-battery Web Archive])&amp;lt;/ref&amp;gt;. These combine relative ease of use and pack construction with performance close to cylindrical cells. &lt;br /&gt;
&lt;br /&gt;
==== Li-ion 18650 and other cylindrical cells ====&lt;br /&gt;
Cylindrical cells are favoured by Tesla, and are probably the main reason why their cars achieve such excellent performance. They are light, compact, powerful and expensive. Unfortunately, cylindrical cells are  difficult (and potentially dangerous) to use in DIY conversions. There are two good reasons for this: thermal management and cell configuration.&lt;br /&gt;
&lt;br /&gt;
As stated above, Li-ion cells are prone to thermal runaway. So you need perfect battery and thermal management to ensure that no cell ever exceeds the critical voltage or temperature. If this happens, a cell can short-circuit internally, releasing a lot of energy - potentially explosively. Furthermore, the individual cells are small, so need to be arranged in parallel. In the case of the Tesla Model S 85kW pack, there are 74 cells in parallel. Imagine if one of those cells fails and becomes short circuited internally. You now have 73 very high power cells all feeding in to that short circuit...&lt;br /&gt;
&lt;br /&gt;
In fact, you don&#039;t have to imagine: you can watch this [https://www.youtube.com/watch?v=WdDi1haA71Q famous video] instead (courtesy of Rich Rebuilds).&lt;br /&gt;
&lt;br /&gt;
[[File:Chemvolt.png|Cell voltages / Type]]&lt;br /&gt;
&lt;br /&gt;
== OEM modules ==&lt;br /&gt;
Using an OEM module means a lot of the difficulties and safety issues associated with battery design are taken care of e.g. cooling, clamping, etc.&lt;br /&gt;
&lt;br /&gt;
Here is a handy list of OEM modules:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Manufacturer&lt;br /&gt;
!Model&lt;br /&gt;
!Capacity (kWh)&lt;br /&gt;
!Weight (kg)&lt;br /&gt;
!w (mm)&lt;br /&gt;
!d (mm)&lt;br /&gt;
!h (mm)&lt;br /&gt;
!Gravity (kg/kWh)&lt;br /&gt;
!Volume (L/kWh)&lt;br /&gt;
!Voltage (V)&lt;br /&gt;
!Current (cont A)&lt;br /&gt;
!Current (peak A)&lt;br /&gt;
!Cell arrangement&lt;br /&gt;
!Cell type&lt;br /&gt;
!Chemistry&lt;br /&gt;
!OEM numbers&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model S 85kWh&lt;br /&gt;
|5.3&lt;br /&gt;
|26&lt;br /&gt;
|690&lt;br /&gt;
|315&lt;br /&gt;
|80&lt;br /&gt;
|4.9&lt;br /&gt;
|3.3&lt;br /&gt;
|22.8&lt;br /&gt;
|500&lt;br /&gt;
|750&lt;br /&gt;
|6s74p&lt;br /&gt;
|18650&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model S 100kWh&lt;br /&gt;
|6.4&lt;br /&gt;
|28&lt;br /&gt;
|680&lt;br /&gt;
|315&lt;br /&gt;
|80&lt;br /&gt;
|4.4&lt;br /&gt;
|2.7&lt;br /&gt;
|22.8&lt;br /&gt;
|&lt;br /&gt;
|870&lt;br /&gt;
|6s86p&lt;br /&gt;
|18650&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|[[Tesla Model 3 Battery|Model 3 LR (inner)]]&lt;br /&gt;
|19.2&lt;br /&gt;
|98.9&lt;br /&gt;
|1854&lt;br /&gt;
|292&lt;br /&gt;
|90&lt;br /&gt;
|5.2&lt;br /&gt;
|2.5&lt;br /&gt;
|91.1&lt;br /&gt;
|&lt;br /&gt;
|971&lt;br /&gt;
|25s46p&lt;br /&gt;
|2170&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|[[Tesla Model 3 Battery|Model 3 LR (outer)]]&lt;br /&gt;
|17.7&lt;br /&gt;
|86.6&lt;br /&gt;
|1715&lt;br /&gt;
|292&lt;br /&gt;
|90&lt;br /&gt;
|4.9&lt;br /&gt;
|2.5&lt;br /&gt;
|83.9&lt;br /&gt;
|&lt;br /&gt;
|971&lt;br /&gt;
|23s46p&lt;br /&gt;
|2170&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|[[Tesla Model 3 Battery|Model 3 SR (inner)]]&lt;br /&gt;
|13.0&lt;br /&gt;
|58.9&lt;br /&gt;
|1385&lt;br /&gt;
|326&lt;br /&gt;
|90&lt;br /&gt;
|&lt;br /&gt;
|3.7&lt;br /&gt;
|91.1&lt;br /&gt;
|&lt;br /&gt;
|603&lt;br /&gt;
|24s31p&lt;br /&gt;
|2170&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|[[Tesla Model 3 Battery|Model 3 SR (outer)]]&lt;br /&gt;
|12.0&lt;br /&gt;
|58.9&lt;br /&gt;
|1380&lt;br /&gt;
|344&lt;br /&gt;
|90&lt;br /&gt;
|&lt;br /&gt;
|3.8&lt;br /&gt;
|83.9&lt;br /&gt;
|&lt;br /&gt;
|603&lt;br /&gt;
|24s31p&lt;br /&gt;
|2170&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model 3 [https://moneyballr.medium.com/tesla-lfp-model-3-battery-design-bcf559ea1cc1 LFP] (inner)&lt;br /&gt;
|13.38&lt;br /&gt;
|86&lt;br /&gt;
|1860&lt;br /&gt;
|323&lt;br /&gt;
|81&lt;br /&gt;
|6.4&lt;br /&gt;
|&lt;br /&gt;
|83&lt;br /&gt;
|[https://lifepo4.com.au/shop/cells-lifepo4/catl/catl161ah-tesla-3-2v-lfp-lithium-iron-phosphate-battery/ 161]&lt;br /&gt;
|&lt;br /&gt;
|23s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|LiFePo4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model 3 [https://moneyballr.medium.com/tesla-lfp-model-3-battery-design-bcf559ea1cc1 LFP] (outer)&lt;br /&gt;
|15.07&lt;br /&gt;
|93.48&lt;br /&gt;
|1948&lt;br /&gt;
|323&lt;br /&gt;
|81&lt;br /&gt;
|6.2&lt;br /&gt;
|&lt;br /&gt;
|93.5&lt;br /&gt;
|[https://lifepo4.com.au/shop/cells-lifepo4/catl/catl161ah-tesla-3-2v-lfp-lithium-iron-phosphate-battery/ 161]&lt;br /&gt;
|&lt;br /&gt;
|25s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|LiFePo4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Calb&lt;br /&gt;
|4s3p&lt;br /&gt;
|2.19&lt;br /&gt;
|12&lt;br /&gt;
|355&lt;br /&gt;
|151&lt;br /&gt;
|108&lt;br /&gt;
|5.5&lt;br /&gt;
|2.6&lt;br /&gt;
|14.6&lt;br /&gt;
|&lt;br /&gt;
|900&lt;br /&gt;
|4s3p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Calb&lt;br /&gt;
|6s2p&lt;br /&gt;
|2.19&lt;br /&gt;
|12&lt;br /&gt;
|355&lt;br /&gt;
|151&lt;br /&gt;
|108&lt;br /&gt;
|5.5&lt;br /&gt;
|2.6&lt;br /&gt;
|22.2&lt;br /&gt;
|&lt;br /&gt;
|600&lt;br /&gt;
|6s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chevrolet&lt;br /&gt;
|Volt 2012&lt;br /&gt;
|4&lt;br /&gt;
|38&lt;br /&gt;
|470&lt;br /&gt;
|180&lt;br /&gt;
|280&lt;br /&gt;
|9.5&lt;br /&gt;
|5.9&lt;br /&gt;
|88.8&lt;br /&gt;
|&lt;br /&gt;
|676&lt;br /&gt;
|24s3p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|i3 60Ah&lt;br /&gt;
|2&lt;br /&gt;
|13&lt;br /&gt;
|410&lt;br /&gt;
|310&lt;br /&gt;
|150&lt;br /&gt;
|6.5&lt;br /&gt;
|9.5&lt;br /&gt;
|28.8&lt;br /&gt;
|210&lt;br /&gt;
|350&lt;br /&gt;
|8s2p&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|i3 60Ah (12S)&lt;br /&gt;
|2.7&lt;br /&gt;
|25&lt;br /&gt;
|410&lt;br /&gt;
|310&lt;br /&gt;
|150&lt;br /&gt;
|9.26&lt;br /&gt;
|7.1&lt;br /&gt;
|45.6&lt;br /&gt;
|&lt;br /&gt;
|[https://www.goingelectric.de/forum/download/file.php?id=129932 310]&lt;br /&gt;
|12s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|61 27 7 625 066&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|i3 94Ah&lt;br /&gt;
|4.15&lt;br /&gt;
|28&lt;br /&gt;
|410&lt;br /&gt;
|310&lt;br /&gt;
|150&lt;br /&gt;
|6.7&lt;br /&gt;
|4.6&lt;br /&gt;
|45.6&lt;br /&gt;
|&lt;br /&gt;
|409&lt;br /&gt;
|12s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|61 27 8 647 912 &lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|i3 120Ah&lt;br /&gt;
|5.3&lt;br /&gt;
|28&lt;br /&gt;
|410&lt;br /&gt;
|310&lt;br /&gt;
|150&lt;br /&gt;
|5.3&lt;br /&gt;
|3.6&lt;br /&gt;
|45.6&lt;br /&gt;
|&lt;br /&gt;
|360&lt;br /&gt;
|12s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|61 21 8 851 706&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|[[BMW Hybrid Battery Pack|PHEV 34Ah]]&lt;br /&gt;
|2.0&lt;br /&gt;
|13.05&lt;br /&gt;
|368&lt;br /&gt;
|178&lt;br /&gt;
|102&lt;br /&gt;
|6.525&lt;br /&gt;
|3.34&lt;br /&gt;
|59.0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|16s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|NCM 811&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|[[BMW Hybrid Battery Pack|PHEV 68Ah]]&lt;br /&gt;
|2.0&lt;br /&gt;
|13.05&lt;br /&gt;
|368&lt;br /&gt;
|178&lt;br /&gt;
|102&lt;br /&gt;
|6.525&lt;br /&gt;
|3.34&lt;br /&gt;
|29.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|8s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|NCM 811&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jaguar&lt;br /&gt;
|iPace&lt;br /&gt;
|2.5&lt;br /&gt;
|12&lt;br /&gt;
|340&lt;br /&gt;
|155&lt;br /&gt;
|112&lt;br /&gt;
|4.8&lt;br /&gt;
|2.4&lt;br /&gt;
|10.8&lt;br /&gt;
|720&lt;br /&gt;
|1200&lt;br /&gt;
|3s4p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LG&lt;br /&gt;
|3s4p&lt;br /&gt;
|2.6&lt;br /&gt;
|12.8&lt;br /&gt;
|357&lt;br /&gt;
|151&lt;br /&gt;
|110&lt;br /&gt;
|4.9&lt;br /&gt;
|2.3&lt;br /&gt;
|11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|3s4p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mitsubishi&lt;br /&gt;
|Outlander&lt;br /&gt;
|2.4&lt;br /&gt;
|26&lt;br /&gt;
|646&lt;br /&gt;
|184&lt;br /&gt;
|130&lt;br /&gt;
|10.8&lt;br /&gt;
|6.4&lt;br /&gt;
|60&lt;br /&gt;
|&lt;br /&gt;
|240&lt;br /&gt;
|16s&lt;br /&gt;
|&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MG ZS EV&lt;br /&gt;
|(2021) 64.6Ah&lt;br /&gt;
|2.74&lt;br /&gt;
|13.6&lt;br /&gt;
|390&lt;br /&gt;
|150&lt;br /&gt;
|115&lt;br /&gt;
|4.969&lt;br /&gt;
|2.338&lt;br /&gt;
|21.9&lt;br /&gt;
|125&lt;br /&gt;
|375&lt;br /&gt;
|6s2p&lt;br /&gt;
|Prismatic&lt;br /&gt;
|NMC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nissan&lt;br /&gt;
|[https://www.youtube.com/watch?v=hpgv-dY-q6M Leaf 24kWh]&lt;br /&gt;
|0.5&lt;br /&gt;
|3.65&lt;br /&gt;
|300&lt;br /&gt;
|222&lt;br /&gt;
|34&lt;br /&gt;
|7.3&lt;br /&gt;
|4.5&lt;br /&gt;
|7.2&lt;br /&gt;
|130&lt;br /&gt;
|228&lt;br /&gt;
|2s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion LMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nissan&lt;br /&gt;
|Leaf 30kWh&lt;br /&gt;
|1.25&lt;br /&gt;
|&lt;br /&gt;
|300&lt;br /&gt;
|222&lt;br /&gt;
|34&lt;br /&gt;
|&lt;br /&gt;
|3.6&lt;br /&gt;
|14.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|4s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nissan&lt;br /&gt;
|Leaf 40kWh&lt;br /&gt;
|1.6&lt;br /&gt;
|8.7&lt;br /&gt;
|300&lt;br /&gt;
|222&lt;br /&gt;
|68&lt;br /&gt;
|5.4&lt;br /&gt;
|2.8&lt;br /&gt;
|14.4&lt;br /&gt;
|&lt;br /&gt;
|314&lt;br /&gt;
|4s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion NMC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nissan&lt;br /&gt;
|Leaf 62kWh&lt;br /&gt;
|2.58&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|14.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|4s3p&lt;br /&gt;
|&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Porsche&lt;br /&gt;
|Taycan&lt;br /&gt;
|2.77&lt;br /&gt;
|12.7&lt;br /&gt;
|390&lt;br /&gt;
|155&lt;br /&gt;
|115&lt;br /&gt;
|4.9&lt;br /&gt;
|2.3&lt;br /&gt;
|21.9&lt;br /&gt;
|360&lt;br /&gt;
|600&lt;br /&gt;
|6s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PSA/Opel&lt;br /&gt;
|[https://web.archive.org/web/20230615115914/https://www.fev-consulting.com/fileadmin/user_upload/Consulting/Smart_cost_reduction/Peugeot_E208_HV_battery.pdf Peugeot E-208, Corsa E] ([https://openinverter.org/forum/viewtopic.php?t=2465 Forum post])&lt;br /&gt;
|2.73&lt;br /&gt;
|12.7&lt;br /&gt;
|390&lt;br /&gt;
|150&lt;br /&gt;
|115&lt;br /&gt;
|4.6&lt;br /&gt;
|2.5&lt;br /&gt;
|21.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|6s2p / 6s1p&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Volvo&lt;br /&gt;
|[https://openinverter.org/wiki/Volvo_V60_Battery V60]&lt;br /&gt;
|1.3&lt;br /&gt;
|11&lt;br /&gt;
|120&lt;br /&gt;
|310&lt;br /&gt;
|185&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|10S&lt;br /&gt;
|Poucch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Volvo&lt;br /&gt;
|XC90 T8&lt;br /&gt;
|2.01&lt;br /&gt;
|12.1&lt;br /&gt;
|300&lt;br /&gt;
|180&lt;br /&gt;
|150&lt;br /&gt;
|6.0&lt;br /&gt;
|4.0&lt;br /&gt;
|59.2&lt;br /&gt;
|170&lt;br /&gt;
|340&lt;br /&gt;
|16s&lt;br /&gt;
|&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|[[VW Hybrid Battery Packs|Passet GTE]]&lt;br /&gt;
|2.48&lt;br /&gt;
|23.4 (with cooler plate) &lt;br /&gt;
10.8kg single&lt;br /&gt;
|410 (C/P)&lt;br /&gt;
355 (S)&lt;br /&gt;
|235 (C/P)&lt;br /&gt;
150 (S)&lt;br /&gt;
|150 (C/P)&lt;br /&gt;
108 (S)&lt;br /&gt;
|9.4&lt;br /&gt;
|5.5&lt;br /&gt;
|88.8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|24s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|[[VW Hybrid Battery Packs|Golf GTE]]&lt;br /&gt;
|1.086&lt;br /&gt;
|9.8&lt;br /&gt;
|355&lt;br /&gt;
|152&lt;br /&gt;
|110&lt;br /&gt;
|9.02&lt;br /&gt;
|5.5&lt;br /&gt;
|44&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|12s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|5QE 915 591 H&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|Touareg 14,1 kWh&lt;br /&gt;
|1.76&lt;br /&gt;
|12.3&lt;br /&gt;
|385&lt;br /&gt;
|150&lt;br /&gt;
|108&lt;br /&gt;
|7.0&lt;br /&gt;
|3.5&lt;br /&gt;
|45.25&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|13s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|[[MEB_Batteries|id3/id4 55kWh, 62kWh]]&lt;br /&gt;
|6.85&lt;br /&gt;
|32&lt;br /&gt;
|225&lt;br /&gt;
|590&lt;br /&gt;
|110&lt;br /&gt;
|4.67&lt;br /&gt;
|2.13&lt;br /&gt;
|44.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|12s2p&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|0Z1 915 592 / 0Z1 915 692&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|[[MEB_Batteries|id3/id4 82kWh]]&lt;br /&gt;
|6.85&lt;br /&gt;
|32&lt;br /&gt;
|225&lt;br /&gt;
|590&lt;br /&gt;
|110&lt;br /&gt;
|4.67&lt;br /&gt;
|2.13&lt;br /&gt;
|29.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|8s3p&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|0Z1 915 599&lt;br /&gt;
|-&lt;br /&gt;
|Toyota&lt;br /&gt;
|Prius Prime&lt;br /&gt;
|1.76&lt;br /&gt;
|16.9&lt;br /&gt;
|597&lt;br /&gt;
|152&lt;br /&gt;
|121&lt;br /&gt;
|9.6&lt;br /&gt;
|6.24&lt;br /&gt;
|70.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Renault&lt;br /&gt;
|Kangoo&lt;br /&gt;
|3&lt;br /&gt;
|16&lt;br /&gt;
|310&lt;br /&gt;
|210&lt;br /&gt;
|140&lt;br /&gt;
|5.3&lt;br /&gt;
|3.03&lt;br /&gt;
|29.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|8s&lt;br /&gt;
|&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Battery]]&lt;br /&gt;
[[Category:Parts]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Batteries&amp;diff=5877</id>
		<title>Batteries</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Batteries&amp;diff=5877"/>
		<updated>2025-09-23T11:31:52Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Fix formatting of cell voltage table image and converrt broken youtube embed to a plain link link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wiki Category ==&lt;br /&gt;
[[:Category:Battery]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
There are a wide variety of battery chemistries available for use as the main traction battery of an EV. To use each chemistry safely, and to ensure an adequate service life from the battery pack it is important to understand the requirements for the chemistry you are using. Failure to do so may lead to premature or catastrophic failure of the pack.&lt;br /&gt;
&lt;br /&gt;
Good pack design will allow for a nominal amount of abuse. People make mistakes and the pack should allow a margin for safety - and for longevity!&lt;br /&gt;
&lt;br /&gt;
== Battery pack specification ==&lt;br /&gt;
When deciding on your battery pack, here are some basic parameters to consider:&lt;br /&gt;
&lt;br /&gt;
=== Capacity (kWh) ===&lt;br /&gt;
&#039;&#039;&#039;How far do you want to go?&#039;&#039;&#039; A standard  car conversion will need a kWh for each 3, maybe 4 miles of range (very approximately). For a middleweight motorcycle, a kWh should give around 9 miles. Your mileage may vary, &#039;&#039;as they say.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Voltage (V) ===&lt;br /&gt;
&#039;&#039;&#039;How fast do you want to go?&#039;&#039;&#039; The pack voltage defines the maximum speed your motor can spin. Motors are usually specified with &amp;quot;KV&amp;quot; - or RPM-per-volt. Check the KV of your motor and how fast it needs to spin to get your desired top speed. e.g. if you need 3,000 RPM from a 25 KV motor then your pack voltage needs to be  3,000 / 25 = 120 V. The exact number of cells in series you need depends on the cell design, but 3.8 V for Li-ion and 3.2 V for LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; is a reasonable guess.&lt;br /&gt;
&lt;br /&gt;
=== Maximum current (A) ===&lt;br /&gt;
&#039;&#039;&#039;How quickly do you want to accelerate?&#039;&#039;&#039; Your motor&#039;s maximum power will be specified in kW. To estimate your maximum current draw, divide the peak power by the battery voltage. e.g. a 30 kW motor with a 120 V battery pack will pull 30,000 / 120 = 250 A. The higher the current rating of the cells, the heavier they will be for a given capacity. Ideally, you want &amp;quot;enough&amp;quot; current capacity for full throttle acceleration, but no more. You can put cells in parallel to double the current rating of your pack (which of course will half the voltage). Running &#039;&#039;cells&#039;&#039; in parallel is easy, but don&#039;t attempt to parallel battery &#039;&#039;packs&#039;&#039; unless you really know what you are doing. It&#039;s complicated&amp;lt;ref&amp;gt;https://www.orionbms.com/manuals/pdf/parallel_strings.pdf (Backup: [https://web.archive.org/web/20210322000103/https://www.orionbms.com/manuals/pdf/parallel_strings.pdf Web Archive])&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== Mass (kg) ===&lt;br /&gt;
&#039;&#039;&#039;Can your vehicle carry the weight?&#039;&#039;&#039; You&#039;ll need to keep the kerb weight within the original design limits. For a car, your pack could be a few hundred kg. For a motorcycle, likely less than 100 kg. This is a huge variable - and each new generation of battery tech seems to be a little lighter. For older EV or hybrid batteries, you can reckon on approximately 10 kg/kWh. Nissan Leaf batteries are relatively light (7.5 kg/kWh). With the latest technology (e.g. Kokam pouch cells or 18650s), you can get this down to 5-6 kg/kWh.&lt;br /&gt;
&lt;br /&gt;
=== Volume (L) ===&lt;br /&gt;
&#039;&#039;&#039;Will it fit?&#039;&#039;&#039; Batteries are bulky. They are getting smaller, but finding enough space might be your biggest challenge. You could be looking at over 5 L/kWh for older EV or hybrid batteries. Current state-of-the-art is the Tesla Model 3, which gets this down to 2.5 L/kWh by using 2170 cylindrical cells.&lt;br /&gt;
&lt;br /&gt;
There is much, much more to battery design than this (e.g. maximum charge rate, terminations, cooling, clamping), but the above should help work out which options will or won&#039;t work for your project...&lt;br /&gt;
&lt;br /&gt;
== Cell chemistry ==&lt;br /&gt;
&lt;br /&gt;
=== Lithium Iron Phosphate (LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;) ===&lt;br /&gt;
Lithium Iron Phosphate (also known as LFP, or LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;) batteries offer a good compromise between safety, energy density and ease of use for DIY conversions. They are available in a number of formats, commonly pouch cells, prismatic cells and cylindrical cells.&lt;br /&gt;
&lt;br /&gt;
==== LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; pouch cells ====&lt;br /&gt;
The majority of this content is drawn from this thread &amp;lt;ref&amp;gt;[https://web.archive.org/web/20210124061443/https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761&amp;amp;start=900 https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761&amp;amp;start=900] (Backup: [https://web.archive.org/web/20210124061443/https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761&amp;amp;start=900 Web Archive])&amp;lt;/ref&amp;gt; discussing the use of the A123 20Ah pouch cell. However, many of the general points apply equally to other similar pouch cells.&lt;br /&gt;
&lt;br /&gt;
===== General build requirements =====&lt;br /&gt;
Pouch cells are vulnerable to damage from debris, and must be held in compression (see the datasheet for your battery, but 10-12 psi is recommended for the A123 pouch cells as a guide). A rigid container capable of preventing damage and providing compression is therefore required. Be aware the cells expand and contract in use, so allowance for this must be included in the structure of the case.&lt;br /&gt;
&lt;br /&gt;
The pouch cells should be separated to prevent abrasion between cells, and also to avoid the development of hot spots. Prebuilt modules from A123 systems had thin foam sheets or heatsinks between each cell. Be sure to avoid any debris that could rub on the pouch surface, particularly if using recycled cells.&lt;br /&gt;
&lt;br /&gt;
Mylar, &#039;Fish paper&#039;&amp;lt;ref&amp;gt;https://www.americanmicroinc.com/fish-paper/ (Backup: [https://web.archive.org/web/20221016210644/https://www.americanmicroinc.com/electrical-insulator-materials/fish-paper/ Web Archive])&amp;lt;/ref&amp;gt; or a compliant foam&amp;lt;ref&amp;gt;https://www.rogerscorp.com/elastomeric-material-solutions/poron-industrial-polyurethanes (Backup: [https://web.archive.org/web/20220604010733/https://rogerscorp.com/elastomeric-material-solutions/poron-industrial-polyurethanes Web Archive])&amp;lt;/ref&amp;gt; may be appropriate materials to serve this purpose. This material should not be flammable. If the material is heat insulating, it is important to address thermal management.&lt;br /&gt;
&lt;br /&gt;
===== Compression =====&lt;br /&gt;
Compression is required to prevent premature failure of the cell. Without compression electrolyte will become unevenly distributed, causing current gradients in the cell and uneven heating. Local temperatures can become high enough to form gas formation leading to cells &#039;puffing up&#039; even when the pack is otherwise held within temperature and voltage constraints. This will be exacerbated in packs with otherwise poor thermal management. Compression forces gas generated to the margins of the cell, outside of the cell stack, minimising its effect cell performance. Gas in the middle cells will create a dead space which does not store or release energy.&lt;br /&gt;
&lt;br /&gt;
There is ~1% expansion through a discharge cycle. As the cell ages, the nominal cell thickness can grow by 3-5%. For A123 cells the ideal pressure is between 4 and 18psi with the ideal pressure being ~12psi. Maintaining 12psi can increase the life by 500 cycles over that of 4 or 18psi&lt;br /&gt;
&lt;br /&gt;
There is some suggestion that in uses where 1C is never exceeded compression &#039;&#039;may&#039;&#039; not be required.&lt;br /&gt;
&lt;br /&gt;
Highly rigid endplates with a mechanism to allow for a limited degree of expansion (e.g. steel bands) are considered an effective solution to this challenge.&lt;br /&gt;
&lt;br /&gt;
It should be noted that compression is a challenge specific to pouch cells. Cylindrical cells are designed to maintain their own compression within the cell&#039;s electrode stack by their design.&lt;br /&gt;
&lt;br /&gt;
This thread provides more information and experimentation relating to pack compression: &amp;lt;nowiki&amp;gt;https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=52244&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Pouch Cell Pack Design Examples =====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;placeholder*&lt;br /&gt;
&lt;br /&gt;
===== Notes regarding recycled pouch cells =====&lt;br /&gt;
Pouch cells are somewhat fragile, and breaching the insulation is not difficult, especially in a cells removed from existing packs and repurposed. If the pouch has had their poly-layers compromised you may see a number of faults:&lt;br /&gt;
* Black spots around the perimeter of the cell indicate electrolyte leakage&lt;br /&gt;
* Voltage on the outside of the bag. Note that microvoltage between the pouch and the electrode is normal (and due to a capacitive effect).&lt;br /&gt;
While the majority of these cells should no longer be in the market, a significant number of faulty cells made it back into the &#039;greymarket&#039; in around 2013. These cells had misaligned tabs which can also lead to isolation failures between the tab and the pack. These cells should be avoided, particularly in high demand applications.&lt;br /&gt;
&lt;br /&gt;
===== Situations likely to cause pouch cell failure =====&lt;br /&gt;
&#039;&#039;Taken directly from wb9k&#039;s&#039;&#039;&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;https://endless-sphere.com/forums/memberlist.php?mode=viewprofile&amp;amp;u=33107 &amp;lt;/ref&amp;gt; &#039;&#039;post on endless sphere in the A123 thread&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761 (Backup: [https://web.archive.org/web/20210116021026/https://endless-sphere.com/forums/viewtopic.php?f=14&amp;amp;t=38761 Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Overcharge&#039;&#039;&#039;. Any extended time above 3.8 Volts will generate enough heat and electrochemical activity to puff a cell, especially one that is improperly compressed.&lt;br /&gt;
# &#039;&#039;&#039;Overdischarge followed by charge&#039;&#039;&#039;. Any A123 cell that has been pulled low enough to come to rest at &amp;lt;300 mV should be immediately scrapped. The published number for that is 500 mV, but the real figure is closer to 300, so that&#039;s a &amp;quot;safety buffer&amp;quot; if you will. Below this Voltage, the Cu electrodes start to dissolve into the electrolyte. When charge is applied, the Cu forms dendrites that puncture the separator layer, forming an internal short in the cell. This can puff a cell in a hurry---the more charge current on tap, the worse it&#039;s prone to be.&lt;br /&gt;
# &#039;&#039;&#039;Driving a cell negative&#039;&#039;&#039;. I&#039;ve neglected to mention this before, but it is a possibility. I don&#039;t know much about the specific mechanism at this time.&lt;br /&gt;
# &#039;&#039;&#039;Malfunctioning or misinformed electronics&#039;&#039;&#039;. This is the most common cause of all of the above in my experience. At this stage of the game, it is critical for YOU to understand how your BMS functions on at least a cursory level. Choose your BMS very carefully and periodically verify that it is operating properly. They&#039;re not all created equal. Make sure V sense lines are securely connected and free of corrosion. Just because your BMS says there was never a problem doesn&#039;t necessarily make it so. Avoid harnesses or ribbon cables between multiple modules if possible--they are problematic wherever they are used in any mobile electronics.&lt;br /&gt;
# &#039;&#039;&#039;Exposure to or generation of sufficient heat&#039;&#039;&#039;. I don&#039;t know exactly at what temperature gas formation begins in the electrolyte, but we spec a max storage temp of 80 (or 85?) degrees C and I suspect this is the reason. The hotter, the puffier--to a point. This is why soldering tabs poses a real hazard to cell health. If you feel you must solder, sink or blow the heat away from the body of the cell. Use a big iron that can make sufficient local heat quickly, before the whole mass of the cell gets hot. You might even get the cell warm enough to melt separator if not careful.&lt;br /&gt;
# &#039;&#039;&#039;No compression, not enough compression, improperly distributed compression&#039;&#039;&#039;. This is a pack/module design issue. Apply 10, maybe 15 psi to your cell stack end to end and then band snugly and evenly. Use hard endplates of some sort--never wrap cells directly or allow their shape to become distorted. Protect all areas of the pouch from impact damage. This obviously does not apply to cylindrical cells.&lt;br /&gt;
&lt;br /&gt;
==== LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; prismatic cells ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;placeholder*&lt;br /&gt;
&lt;br /&gt;
==== LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; cylindrical cells ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;placeholder*&lt;br /&gt;
&lt;br /&gt;
==== LiFePO&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; cell ageing ====&lt;br /&gt;
&#039;&#039;Derived (barely paraphrased) from wb9k&#039;s&#039;&#039;&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt; &#039;&#039;post on endless sphere in the A123 thread&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Capacity loss is caused by the lithium that was available for storage becoming permanently plated on the cathode. Being unable to move within the cell it is no longer available to store energy. The impact of this plating is greater than the amount of lithium &#039;lost&#039; to plating because not only is the lithium no longer available, it is also preventing access to that part of the cathode meaning Li that can still move has to take a longer path to reach the cathode. Lithium plating is one cause of increased cell resistance (there are others), a sign of worsening cell health.&lt;br /&gt;
&lt;br /&gt;
There is no linear relationship between actual capacity loss and impedance rise. However some cell defects will also increase impedance.&lt;br /&gt;
&lt;br /&gt;
Increasing cell resistance may cause a number of symptoms which may be confused with High Self Discharge.&amp;lt;ref&amp;gt;https://earthshipbiotecture.com/a-lithium-ion-battery-primer/ (Backup: [https://web.archive.org/web/20220524233332/https://earthshipbiotecture.com/a-lithium-ion-battery-primer/ Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Elevated Peukert Losses. As more energy per amount of current through the cell is lost as heat, the cells useable capacity decreases. So the apparent capacity loss is higher than the actual capacity loss of cycleable lithium. When used in low current applications (e.g. solar energy storage) the actual and apparent decrease in capacity will be small. In high current draw applications (like EV traction packs), the Peukert loss increases proportionally, so the apparent capacity loss increases much faster than the actual capacity loss.&lt;br /&gt;
# Greater voltage excursion under the same load. Due to increased cell resistancethe voltage will sag further under the same load than a cell in optimal condition. The inverse is also true, the voltage will be higher for the same amount of charging current applied. The cell will then rebound to a voltage further from the loaded and charging voltages. This, obviously, can look like high self discharge but is a different phenomenon.&lt;br /&gt;
# Absolute maximum current decrease.&lt;br /&gt;
Elevated impedance causes a more complex constellation of symptoms, some of which may be easy to confuse with High Self Discharge (HSD). Ohm&#039;s law (E=I/R) holds the key to understanding here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1) Elevated Peukert losses.&#039;&#039;&#039; Because more energy per unit of current through the cell is lost as heat, less of the cell&#039;s capacity is actually USABLE. Thus, apparent capacity loss can be significantly greater than actual capacity loss caused by the loss of cycleable Li alone. In low current applications, the two numbers will be close together. In high current applications, Peukert losses increase in proportion, so apparent loss of capacity breaks further and further away from actual capacity loss as current increases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2) Greater voltage excursion under the same load.&#039;&#039;&#039; Elevated resistance across the cell means that voltage will sag more under the same load than it did when the cell was healthier. Conversely, voltage will rise higher with the same amount of applied charge current than it did when it was healthier. At the same time, rebound/settling voltages will be further away from loaded/charging voltages. In other words, the cell will rebound to a voltage further away from loaded voltage, all else being equal. Similarly, voltage will settle farther from the charge voltage with the same charge applied. This can give the illusion of elevated self-discharge, but the phenomenon is actually not the same thing. Again, the greater the charge and load currents, the greater the effect becomes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3) Absolute max current decreases.&#039;&#039;&#039; Because the cell&#039;s series resistance is elevated, the maximum possible current through the cell is decreased.&lt;br /&gt;
&lt;br /&gt;
Just to confuse things further, there can be many factors that lead to impedance rise. Some are related to Li plating, others are not.&lt;br /&gt;
&lt;br /&gt;
=== Lithium-ion ===&lt;br /&gt;
Lithium-ion (Li-ion) batteries have a greater energy density than Lithium Iron Phosphate batteries, but have more challenging needs to use safely. The ideal operating range of Li-ion batteries is between +15 and +45°C. The upper limit of temperature is particularly important as Li-ion batteries experience thermal runaway - an unstoppable chain reaction that can occur in milliseconds releasing the stored energy in the cell. This can produce temperatures of 400°C and a fire that is extremely difficult to put out. Thermal runaway can start as low as 60°C and becomes much more likely at 100°C&lt;br /&gt;
&lt;br /&gt;
Risk factors for thermal runaway:&lt;br /&gt;
* Short Circuits - either internally or externally&lt;br /&gt;
* Overcharging&lt;br /&gt;
* Excessive current draw or when charging&lt;br /&gt;
&lt;br /&gt;
==== Li-ion pouch cells ====&lt;br /&gt;
Kokam produce high-performance Li-ion pouch cells&amp;lt;ref&amp;gt;https://kokam.com/en/product/cell/lithium-ion-battery (Backup: [https://web.archive.org/web/20220423100132/https://kokam.com/en/product/cell/lithium-ion-battery Web Archive])&amp;lt;/ref&amp;gt;. These combine relative ease of use and pack construction with performance close to cylindrical cells. &lt;br /&gt;
&lt;br /&gt;
==== Li-ion 18650 and other cylindrical cells ====&lt;br /&gt;
Cylindrical cells are favoured by Tesla, and are probably the main reason why their cars achieve such excellent performance. They are light, compact, powerful and expensive. Unfortunately, cylindrical cells are  difficult (and potentially dangerous) to use in DIY conversions. There are two good reasons for this: thermal management and cell configuration.&lt;br /&gt;
&lt;br /&gt;
As stated above, Li-ion cells are prone to thermal runaway. So you need perfect battery and thermal management to ensure that no cell ever exceeds the critical voltage or temperature. If this happens, a cell can short-circuit internally, releasing a lot of energy - potentially explosively. Furthermore, the individual cells are small, so need to be arranged in parallel. In the case of the Tesla Model S 85kW pack, there are 74 cells in parallel. Imagine if one of those cells fails and becomes short circuited internally. You now have 73 very high power cells all feeding in to that short circuit...&lt;br /&gt;
&lt;br /&gt;
In fact, you don&#039;t have to imagine: you can watch this [https://www.youtube.com/watch?v=WdDi1haA71Q famous video] instead (courtesy of Rich Rebuilds).&lt;br /&gt;
&lt;br /&gt;
[[File:Chemvolt.png|Cell voltages / Type]]&lt;br /&gt;
&lt;br /&gt;
== OEM modules ==&lt;br /&gt;
Using an OEM module means a lot of the difficulties and safety issues associated with battery design are taken care of e.g. cooling, clamping, etc.&lt;br /&gt;
&lt;br /&gt;
Here is a handy list of OEM modules:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Manufacturer&lt;br /&gt;
!Model&lt;br /&gt;
!Capacity (kWh)&lt;br /&gt;
!Weight (kg)&lt;br /&gt;
!w (mm)&lt;br /&gt;
!d (mm)&lt;br /&gt;
!h (mm)&lt;br /&gt;
!Gravity (kg/kWh)&lt;br /&gt;
!Volume (L/kWh)&lt;br /&gt;
!Voltage (V)&lt;br /&gt;
!Current (cont A)&lt;br /&gt;
!Current (peak A)&lt;br /&gt;
!Cell arrangement&lt;br /&gt;
!Cell type&lt;br /&gt;
!Chemistry&lt;br /&gt;
!OEM numbers&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model S 85kWh&lt;br /&gt;
|5.3&lt;br /&gt;
|26&lt;br /&gt;
|690&lt;br /&gt;
|315&lt;br /&gt;
|80&lt;br /&gt;
|4.9&lt;br /&gt;
|3.3&lt;br /&gt;
|22.8&lt;br /&gt;
|500&lt;br /&gt;
|750&lt;br /&gt;
|6s74p&lt;br /&gt;
|18650&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model S 100kWh&lt;br /&gt;
|6.4&lt;br /&gt;
|28&lt;br /&gt;
|680&lt;br /&gt;
|315&lt;br /&gt;
|80&lt;br /&gt;
|4.4&lt;br /&gt;
|2.7&lt;br /&gt;
|22.8&lt;br /&gt;
|&lt;br /&gt;
|870&lt;br /&gt;
|6s86p&lt;br /&gt;
|18650&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model 3 LR (inner)&lt;br /&gt;
|19.2&lt;br /&gt;
|98.9&lt;br /&gt;
|1854&lt;br /&gt;
|292&lt;br /&gt;
|90&lt;br /&gt;
|5.2&lt;br /&gt;
|2.5&lt;br /&gt;
|91.1&lt;br /&gt;
|&lt;br /&gt;
|971&lt;br /&gt;
|25s46p&lt;br /&gt;
|2170&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model 3 LR (outer)&lt;br /&gt;
|17.7&lt;br /&gt;
|86.6&lt;br /&gt;
|1715&lt;br /&gt;
|292&lt;br /&gt;
|90&lt;br /&gt;
|4.9&lt;br /&gt;
|2.5&lt;br /&gt;
|83.9&lt;br /&gt;
|&lt;br /&gt;
|971&lt;br /&gt;
|23s46p&lt;br /&gt;
|2170&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model 3 SR (inner)&lt;br /&gt;
|13.0&lt;br /&gt;
|58.9&lt;br /&gt;
|1385&lt;br /&gt;
|326&lt;br /&gt;
|90&lt;br /&gt;
|&lt;br /&gt;
|3.7&lt;br /&gt;
|91.1&lt;br /&gt;
|&lt;br /&gt;
|603&lt;br /&gt;
|24s31p&lt;br /&gt;
|2170&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model 3 SR (outer)&lt;br /&gt;
|12.0&lt;br /&gt;
|58.9&lt;br /&gt;
|1380&lt;br /&gt;
|344&lt;br /&gt;
|90&lt;br /&gt;
|&lt;br /&gt;
|3.8&lt;br /&gt;
|83.9&lt;br /&gt;
|&lt;br /&gt;
|603&lt;br /&gt;
|24s31p&lt;br /&gt;
|2170&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model 3 [https://moneyballr.medium.com/tesla-lfp-model-3-battery-design-bcf559ea1cc1 LFP] (inner)&lt;br /&gt;
|13.38&lt;br /&gt;
|86&lt;br /&gt;
|1860&lt;br /&gt;
|323&lt;br /&gt;
|81&lt;br /&gt;
|6.4&lt;br /&gt;
|&lt;br /&gt;
|83&lt;br /&gt;
|[https://lifepo4.com.au/shop/cells-lifepo4/catl/catl161ah-tesla-3-2v-lfp-lithium-iron-phosphate-battery/ 161]&lt;br /&gt;
|&lt;br /&gt;
|23s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|LiFePo4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tesla&lt;br /&gt;
|Model 3 [https://moneyballr.medium.com/tesla-lfp-model-3-battery-design-bcf559ea1cc1 LFP] (outer)&lt;br /&gt;
|15.07&lt;br /&gt;
|93.48&lt;br /&gt;
|1948&lt;br /&gt;
|323&lt;br /&gt;
|81&lt;br /&gt;
|6.2&lt;br /&gt;
|&lt;br /&gt;
|93.5&lt;br /&gt;
|[https://lifepo4.com.au/shop/cells-lifepo4/catl/catl161ah-tesla-3-2v-lfp-lithium-iron-phosphate-battery/ 161]&lt;br /&gt;
|&lt;br /&gt;
|25s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|LiFePo4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Calb&lt;br /&gt;
|4s3p&lt;br /&gt;
|2.19&lt;br /&gt;
|12&lt;br /&gt;
|355&lt;br /&gt;
|151&lt;br /&gt;
|108&lt;br /&gt;
|5.5&lt;br /&gt;
|2.6&lt;br /&gt;
|14.6&lt;br /&gt;
|&lt;br /&gt;
|900&lt;br /&gt;
|4s3p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Calb&lt;br /&gt;
|6s2p&lt;br /&gt;
|2.19&lt;br /&gt;
|12&lt;br /&gt;
|355&lt;br /&gt;
|151&lt;br /&gt;
|108&lt;br /&gt;
|5.5&lt;br /&gt;
|2.6&lt;br /&gt;
|22.2&lt;br /&gt;
|&lt;br /&gt;
|600&lt;br /&gt;
|6s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chevrolet&lt;br /&gt;
|Volt 2012&lt;br /&gt;
|4&lt;br /&gt;
|38&lt;br /&gt;
|470&lt;br /&gt;
|180&lt;br /&gt;
|280&lt;br /&gt;
|9.5&lt;br /&gt;
|5.9&lt;br /&gt;
|88.8&lt;br /&gt;
|&lt;br /&gt;
|676&lt;br /&gt;
|24s3p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|i3 60Ah&lt;br /&gt;
|2&lt;br /&gt;
|13&lt;br /&gt;
|410&lt;br /&gt;
|310&lt;br /&gt;
|150&lt;br /&gt;
|6.5&lt;br /&gt;
|9.5&lt;br /&gt;
|28.8&lt;br /&gt;
|210&lt;br /&gt;
|350&lt;br /&gt;
|8s2p&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|i3 60Ah (12S)&lt;br /&gt;
|2.7&lt;br /&gt;
|25&lt;br /&gt;
|410&lt;br /&gt;
|310&lt;br /&gt;
|150&lt;br /&gt;
|9.26&lt;br /&gt;
|7.1&lt;br /&gt;
|45.6&lt;br /&gt;
|&lt;br /&gt;
|[https://www.goingelectric.de/forum/download/file.php?id=129932 310]&lt;br /&gt;
|12s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|61 27 7 625 066&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|i3 94Ah&lt;br /&gt;
|4.15&lt;br /&gt;
|28&lt;br /&gt;
|410&lt;br /&gt;
|310&lt;br /&gt;
|150&lt;br /&gt;
|6.7&lt;br /&gt;
|4.6&lt;br /&gt;
|45.6&lt;br /&gt;
|&lt;br /&gt;
|409&lt;br /&gt;
|12s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|61 27 8 647 912 &lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|i3 120Ah&lt;br /&gt;
|5.3&lt;br /&gt;
|28&lt;br /&gt;
|410&lt;br /&gt;
|310&lt;br /&gt;
|150&lt;br /&gt;
|5.3&lt;br /&gt;
|3.6&lt;br /&gt;
|45.6&lt;br /&gt;
|&lt;br /&gt;
|360&lt;br /&gt;
|12s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|61 21 8 851 706&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|[[BMW Hybrid Battery Pack|PHEV 34Ah]]&lt;br /&gt;
|2.0&lt;br /&gt;
|13.05&lt;br /&gt;
|368&lt;br /&gt;
|178&lt;br /&gt;
|102&lt;br /&gt;
|6.525&lt;br /&gt;
|3.34&lt;br /&gt;
|59.0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|16s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|NCM 811&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|BMW&lt;br /&gt;
|[[BMW Hybrid Battery Pack|PHEV 68Ah]]&lt;br /&gt;
|2.0&lt;br /&gt;
|13.05&lt;br /&gt;
|368&lt;br /&gt;
|178&lt;br /&gt;
|102&lt;br /&gt;
|6.525&lt;br /&gt;
|3.34&lt;br /&gt;
|29.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|8s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|NCM 811&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jaguar&lt;br /&gt;
|iPace&lt;br /&gt;
|2.5&lt;br /&gt;
|12&lt;br /&gt;
|340&lt;br /&gt;
|155&lt;br /&gt;
|112&lt;br /&gt;
|4.8&lt;br /&gt;
|2.4&lt;br /&gt;
|10.8&lt;br /&gt;
|720&lt;br /&gt;
|1200&lt;br /&gt;
|3s4p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LG&lt;br /&gt;
|3s4p&lt;br /&gt;
|2.6&lt;br /&gt;
|12.8&lt;br /&gt;
|357&lt;br /&gt;
|151&lt;br /&gt;
|110&lt;br /&gt;
|4.9&lt;br /&gt;
|2.3&lt;br /&gt;
|11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|3s4p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mitsubishi&lt;br /&gt;
|Outlander&lt;br /&gt;
|2.4&lt;br /&gt;
|26&lt;br /&gt;
|646&lt;br /&gt;
|184&lt;br /&gt;
|130&lt;br /&gt;
|10.8&lt;br /&gt;
|6.4&lt;br /&gt;
|60&lt;br /&gt;
|&lt;br /&gt;
|240&lt;br /&gt;
|16s&lt;br /&gt;
|&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MG ZS EV&lt;br /&gt;
|(2021) 64.6Ah&lt;br /&gt;
|2.74&lt;br /&gt;
|13.6&lt;br /&gt;
|390&lt;br /&gt;
|150&lt;br /&gt;
|115&lt;br /&gt;
|4.969&lt;br /&gt;
|2.338&lt;br /&gt;
|21.9&lt;br /&gt;
|125&lt;br /&gt;
|375&lt;br /&gt;
|6s2p&lt;br /&gt;
|Prismatic&lt;br /&gt;
|NMC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nissan&lt;br /&gt;
|[https://www.youtube.com/watch?v=hpgv-dY-q6M Leaf 24kWh]&lt;br /&gt;
|0.5&lt;br /&gt;
|3.65&lt;br /&gt;
|300&lt;br /&gt;
|222&lt;br /&gt;
|34&lt;br /&gt;
|7.3&lt;br /&gt;
|4.5&lt;br /&gt;
|7.2&lt;br /&gt;
|130&lt;br /&gt;
|228&lt;br /&gt;
|2s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion LMO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nissan&lt;br /&gt;
|Leaf 30kWh&lt;br /&gt;
|1.25&lt;br /&gt;
|&lt;br /&gt;
|300&lt;br /&gt;
|222&lt;br /&gt;
|34&lt;br /&gt;
|&lt;br /&gt;
|3.6&lt;br /&gt;
|14.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|4s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nissan&lt;br /&gt;
|Leaf 40kWh&lt;br /&gt;
|1.6&lt;br /&gt;
|8.7&lt;br /&gt;
|300&lt;br /&gt;
|222&lt;br /&gt;
|68&lt;br /&gt;
|5.4&lt;br /&gt;
|2.8&lt;br /&gt;
|14.4&lt;br /&gt;
|&lt;br /&gt;
|314&lt;br /&gt;
|4s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion NMC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nissan&lt;br /&gt;
|Leaf 62kWh&lt;br /&gt;
|2.58&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|14.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|4s3p&lt;br /&gt;
|&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Porsche&lt;br /&gt;
|Taycan&lt;br /&gt;
|2.77&lt;br /&gt;
|12.7&lt;br /&gt;
|390&lt;br /&gt;
|155&lt;br /&gt;
|115&lt;br /&gt;
|4.9&lt;br /&gt;
|2.3&lt;br /&gt;
|21.9&lt;br /&gt;
|360&lt;br /&gt;
|600&lt;br /&gt;
|6s2p&lt;br /&gt;
|Pouch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PSA/Opel&lt;br /&gt;
|[https://web.archive.org/web/20230615115914/https://www.fev-consulting.com/fileadmin/user_upload/Consulting/Smart_cost_reduction/Peugeot_E208_HV_battery.pdf Peugeot E-208, Corsa E] ([https://openinverter.org/forum/viewtopic.php?t=2465 Forum post])&lt;br /&gt;
|2.73&lt;br /&gt;
|12.7&lt;br /&gt;
|390&lt;br /&gt;
|150&lt;br /&gt;
|115&lt;br /&gt;
|4.6&lt;br /&gt;
|2.5&lt;br /&gt;
|21.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|6s2p / 6s1p&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Volvo&lt;br /&gt;
|[https://openinverter.org/wiki/Volvo_V60_Battery V60]&lt;br /&gt;
|1.3&lt;br /&gt;
|11&lt;br /&gt;
|120&lt;br /&gt;
|310&lt;br /&gt;
|185&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|10S&lt;br /&gt;
|Poucch&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Volvo&lt;br /&gt;
|XC90 T8&lt;br /&gt;
|2.01&lt;br /&gt;
|12.1&lt;br /&gt;
|300&lt;br /&gt;
|180&lt;br /&gt;
|150&lt;br /&gt;
|6.0&lt;br /&gt;
|4.0&lt;br /&gt;
|59.2&lt;br /&gt;
|170&lt;br /&gt;
|340&lt;br /&gt;
|16s&lt;br /&gt;
|&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|[[VW Hybrid Battery Packs|Passet GTE]]&lt;br /&gt;
|2.48&lt;br /&gt;
|23.4 (with cooler plate) &lt;br /&gt;
10.8kg single&lt;br /&gt;
|410 (C/P)&lt;br /&gt;
355 (S)&lt;br /&gt;
|235 (C/P)&lt;br /&gt;
150 (S)&lt;br /&gt;
|150 (C/P)&lt;br /&gt;
108 (S)&lt;br /&gt;
|9.4&lt;br /&gt;
|5.5&lt;br /&gt;
|88.8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|24s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|[[VW Hybrid Battery Packs|Golf GTE]]&lt;br /&gt;
|1.086&lt;br /&gt;
|9.8&lt;br /&gt;
|355&lt;br /&gt;
|152&lt;br /&gt;
|110&lt;br /&gt;
|9.02&lt;br /&gt;
|5.5&lt;br /&gt;
|44&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|12s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|5QE 915 591 H&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|Touareg 14,1 kWh&lt;br /&gt;
|1.76&lt;br /&gt;
|12.3&lt;br /&gt;
|385&lt;br /&gt;
|150&lt;br /&gt;
|108&lt;br /&gt;
|7.0&lt;br /&gt;
|3.5&lt;br /&gt;
|45.25&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|13s&lt;br /&gt;
|Prismatic&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|id3/id4 55kWh, 62kWh&lt;br /&gt;
|6.85&lt;br /&gt;
|32&lt;br /&gt;
|225&lt;br /&gt;
|590&lt;br /&gt;
|110&lt;br /&gt;
|4.67&lt;br /&gt;
|2.13&lt;br /&gt;
|44.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|12s2p&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|0Z1 915 592 / 0Z1 915 692&lt;br /&gt;
|-&lt;br /&gt;
|VW&lt;br /&gt;
|id3/id4 82kWh&lt;br /&gt;
|6.85&lt;br /&gt;
|32&lt;br /&gt;
|225&lt;br /&gt;
|590&lt;br /&gt;
|110&lt;br /&gt;
|4.67&lt;br /&gt;
|2.13&lt;br /&gt;
|29.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|8s3p&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|0Z1 915 599&lt;br /&gt;
|-&lt;br /&gt;
|Toyota&lt;br /&gt;
|Prius Prime&lt;br /&gt;
|1.76&lt;br /&gt;
|16.9&lt;br /&gt;
|597&lt;br /&gt;
|152&lt;br /&gt;
|121&lt;br /&gt;
|9.6&lt;br /&gt;
|6.24&lt;br /&gt;
|70.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Renault&lt;br /&gt;
|Kangoo&lt;br /&gt;
|3&lt;br /&gt;
|16&lt;br /&gt;
|310&lt;br /&gt;
|210&lt;br /&gt;
|140&lt;br /&gt;
|5.3&lt;br /&gt;
|3.03&lt;br /&gt;
|29.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|8s&lt;br /&gt;
|&lt;br /&gt;
|Li-ion&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Battery]]&lt;br /&gt;
[[Category:Parts]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=5817</id>
		<title>Tesla Model 3 Rear Drive Unit</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=5817"/>
		<updated>2025-08-03T13:25:09Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add some details on the cooling connectors from Damien&amp;#039;s and my investigation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== External Documentation ==&lt;br /&gt;
[https://openinverter.org/forum/viewtopic.php?f=10&amp;amp;t=575 Tesla Model 3 Rear Drive Unit Hacking] (forum thread)&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit (Hardware and reverse engineering details)&lt;br /&gt;
&lt;br /&gt;
https://github.com/jsphuebner/stm32-sine/tree/tesla-m3-gate-driver (STM32 &amp;quot;modboard&amp;quot; firmware dev. branch)&lt;br /&gt;
&lt;br /&gt;
==Part Numbers==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part Number&lt;br /&gt;
!Description&lt;br /&gt;
!Max Current&lt;br /&gt;
!Cars&lt;br /&gt;
|-&lt;br /&gt;
|1120970-00-F&lt;br /&gt;
|(ASY,M3,3DU,REAR,IGBT) - original RWD and/or &amp;quot;binned&amp;quot; Perf&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3&lt;br /&gt;
|-&lt;br /&gt;
|1120980-00-G&lt;br /&gt;
|(ASY,M3,REAR 3DU,MOSFET,GLOBAL) - early AWD motor&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-G&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-H&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor 2021 with few hints on it&#039;s actual existence ([2])&lt;br /&gt;
|???A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-J&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - current (Jan 2022) AWD (EPC [3]) &lt;br /&gt;
|???A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521365-00-B&lt;br /&gt;
|(ASY, REMAN, 3DU-Rear 800 MOSFET) - Remanufactured 1120980-00-G&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521487-00-A&lt;br /&gt;
|(ASY, REMAN, 3DU-REAR 630 MOSFET) - Remanufactured 1120990-00-G&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Details from https://www.reddit.com/r/teslamotors/comments/ioat3d/rear_motor_efficiency_improvements_980_vs_990/.  &amp;lt;br&amp;gt;&lt;br /&gt;
[2] https://www.ebay.de/itm/185026392386 &amp;lt;br&amp;gt;&lt;br /&gt;
[3] https://epc.tesla.com/en/catalogs/138/categories/10030/subcategories/42427&lt;br /&gt;
&lt;br /&gt;
== Connectors and Pinouts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
!Description&lt;br /&gt;
!Pins&lt;br /&gt;
!Compatible Plugs&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|X090&lt;br /&gt;
|Inverter connector&lt;br /&gt;
|30&lt;br /&gt;
|Toyota 90980-12712 (Sumitomo 6189-6987)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Rotor Shaft Resolver&lt;br /&gt;
|10 (8 connected)&lt;br /&gt;
|TE Connectivity 1-2282337-1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Oil Pump&lt;br /&gt;
|3&lt;br /&gt;
|TE Connectivity 1-1718644-1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|HV connector&lt;br /&gt;
|2&lt;br /&gt;
|TE Connectivity HC-STAK 90° 2840900-1&lt;br /&gt;
|[https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&amp;amp;DocId=Specification+Or+Standard%7F114-162001%7FJ%7Fpdf%7FEnglish%7FENG_SS_114-162001_J.pdf%7F2840900-1 TE  Product Application]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Power Figures ==&lt;br /&gt;
Taken from tesla:&lt;br /&gt;
&lt;br /&gt;
==== RWD Variant ====&lt;br /&gt;
Voltage: 350v&lt;br /&gt;
&lt;br /&gt;
Max Power: 239 KW @ 5525 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 420 nm @ 325-5200 rpm&lt;br /&gt;
&lt;br /&gt;
==== AWD Variant ====&lt;br /&gt;
Voltage: 335v&lt;br /&gt;
&lt;br /&gt;
Max Power: 203 KW @ 6700 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 330 nm @ 325-5200 rpm&lt;br /&gt;
&lt;br /&gt;
==== Performance Variant ====&lt;br /&gt;
Voltage: 320v&lt;br /&gt;
&lt;br /&gt;
Max Power: 219 KW @ 5075 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 420 nm @ 325-4800 rpm&lt;br /&gt;
&lt;br /&gt;
== Mechanical Specification ==&lt;br /&gt;
Max rotor speed: 18,447 rpm&lt;br /&gt;
&lt;br /&gt;
Input shaft gear: 31 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft input: 81 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft output: 24 teeth&lt;br /&gt;
&lt;br /&gt;
Ring gear: 83 teeth&lt;br /&gt;
&lt;br /&gt;
Gearbox Ratio: (81/31) * (83/24) = 9.036&lt;br /&gt;
&lt;br /&gt;
Weight: 80 kg&lt;br /&gt;
&lt;br /&gt;
Dimensions approx: 676 x 554 x 353 mm&lt;br /&gt;
&lt;br /&gt;
Details from https://www.youtube.com/watch?v=SRUrB7ruh-8 &amp;amp; https://eveurope.eu/en/product/tesla-model-3-rwd-drive-kit.&lt;br /&gt;
&lt;br /&gt;
== Inverter Components ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Manufacturer&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
!Quantity&lt;br /&gt;
!Datasheet&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|ST GK026&lt;br /&gt;
|SiC FET drive transistors&lt;br /&gt;
|24&lt;br /&gt;
|https://www.st.com/en/power-transistors/sctw100n65g2ag.html (?)&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STGAP1AS&lt;br /&gt;
|Gate Drivers&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-management/stgap1as.html&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STD46P4LLF6&lt;br /&gt;
|P-channel Power MOSFET 40V&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-transistors/std46p4llf6.html&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|3N0408&lt;br /&gt;
|N-channel Power Transistor&lt;br /&gt;
|6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|TMS320F28377DPTPQ&lt;br /&gt;
|C2000 Delfino MCU&lt;br /&gt;
|1&lt;br /&gt;
|[https://www.ti.com/lit/gpn/tms320f28377d TMS320F2837xD Dual-Core Microcontrollers Datasheet]&lt;br /&gt;
[https://www.ti.com/lit/ug/spruhm8i/spruhm8i.pdf TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual]&lt;br /&gt;
|-&lt;br /&gt;
|On Semi&lt;br /&gt;
|TCA0372BDW&lt;br /&gt;
|Resolver amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.onsemi.com/pdf/datasheet/tca0372-d.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|LMV844&lt;br /&gt;
|Temperature sensor amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.ti.com/lit/gpn/lmv844&lt;br /&gt;
|-&lt;br /&gt;
|Microchip&lt;br /&gt;
|25LC256E&lt;br /&gt;
|EEPROM&lt;br /&gt;
|1&lt;br /&gt;
|http://ww1.microchip.com/downloads/en/DeviceDoc/20005715A.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|SN65HVD1040A&lt;br /&gt;
|CAN Transceiver&lt;br /&gt;
|2&lt;br /&gt;
|https://www.ti.com/lit/ds/symlink/sn65hvd1040a-q1.pdf&lt;br /&gt;
|-&lt;br /&gt;
|NXP&lt;br /&gt;
|TJA1021&lt;br /&gt;
|LIN Transceiver&lt;br /&gt;
|1&lt;br /&gt;
|https://www.nxp.com/docs/en/data-sheet/TJA1021.pdf&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom&lt;br /&gt;
|ACPL-C87BT-000E&lt;br /&gt;
|DC HV sense&lt;br /&gt;
|1&lt;br /&gt;
|https://docs.broadcom.com/docs/AV02-3564EN&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|TLF35584QVVS2&lt;br /&gt;
|DC-DC Power and system watchdog&lt;br /&gt;
|1&lt;br /&gt;
|https://uk.farnell.com/infineon/tlf35584qvvs1xuma2/multi-volt-pwr-supply-ic-40-to/dp/3155085&lt;br /&gt;
|-&lt;br /&gt;
|TDK&lt;br /&gt;
|VGT22EPC-222S6A12&lt;br /&gt;
|DC-DC Transformer (gate drive?)&lt;br /&gt;
|1&lt;br /&gt;
|https://product.tdk.com/en/search/transformer/transformer/gate-drive/info?part_no=VGT22EPC-200S6A12&lt;br /&gt;
|}&lt;br /&gt;
Details from https://www.youtube.com/watch?v=l6dV2re3rtM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Oil specification ==&lt;br /&gt;
There are two variants of rear drive unit in terms of oil. One where the oil is also inside the motor and one where it isn&#039;t. Where the gear oil is also inside the motor the oil will be black in colour. In this case FUCHS BluEV EDF 7005 oil is required, not using this oil will degrade the motor and cause failure in the long term.&lt;br /&gt;
&lt;br /&gt;
== Cooling ==&lt;br /&gt;
The drive unit has a water cooling loop which runs into the inverter then out and into a water/oil plate heat-exchanger before returning to the car. The system uses NW18 connectors. The cooling hoses supplied use the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|FIP-NW18-90°-3&lt;br /&gt;
|90 degree fitting made from 66% Nylon/30% Glass Fibre&lt;br /&gt;
|-&lt;br /&gt;
|FIP-NW18-180°-1&lt;br /&gt;
|Straight fitting made from 66% Nylon/30% Glass Fibre&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A variety of confirmed compatible fittings can be purchase from https://www.aliexpress.com/item/1005007457411094.html in straight, 45 degree or 90 degree format as required.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tesla]]&lt;br /&gt;
[[Category:Motor]]&lt;br /&gt;
[[Category:Inverter]]&lt;br /&gt;
[[Category:Gearbox]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=5369</id>
		<title>Tesla Model 3 Rear Drive Unit</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=5369"/>
		<updated>2024-12-20T17:04:26Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Fix Gearbox categorisation which seems to have been partially clobbered accidentally&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== External Documentation ==&lt;br /&gt;
[https://openinverter.org/forum/viewtopic.php?f=10&amp;amp;t=575 Tesla Model 3 Rear Drive Unit Hacking] (forum thread)&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit (Hardware and reverse engineering details)&lt;br /&gt;
&lt;br /&gt;
https://github.com/jsphuebner/stm32-sine/tree/tesla-m3-gate-driver (STM32 &amp;quot;modboard&amp;quot; firmware dev. branch)&lt;br /&gt;
&lt;br /&gt;
==Part Numbers==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part Number&lt;br /&gt;
!Description&lt;br /&gt;
!Max Current&lt;br /&gt;
!Cars&lt;br /&gt;
|-&lt;br /&gt;
|1120970-00-F&lt;br /&gt;
|(ASY,M3,3DU,REAR,IGBT) - original RWD and/or &amp;quot;binned&amp;quot; Perf&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3&lt;br /&gt;
|-&lt;br /&gt;
|1120980-00-G&lt;br /&gt;
|(ASY,M3,REAR 3DU,MOSFET,GLOBAL) - early AWD motor&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-G&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-H&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor 2021 with few hints on it&#039;s actual existence ([2])&lt;br /&gt;
|???A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-J&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - current (Jan 2022) AWD (EPC [3]) &lt;br /&gt;
|???A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521365-00-B&lt;br /&gt;
|(ASY, REMAN, 3DU-Rear 800 MOSFET) - Remanufactured 1120980-00-G&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521487-00-A&lt;br /&gt;
|(ASY, REMAN, 3DU-REAR 630 MOSFET) - Remanufactured 1120990-00-G&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Details from https://www.reddit.com/r/teslamotors/comments/ioat3d/rear_motor_efficiency_improvements_980_vs_990/.  &amp;lt;br&amp;gt;&lt;br /&gt;
[2] https://www.ebay.de/itm/185026392386 &amp;lt;br&amp;gt;&lt;br /&gt;
[3] https://epc.tesla.com/en/catalogs/138/categories/10030/subcategories/42427&lt;br /&gt;
&lt;br /&gt;
== Connectors and Pinouts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
!Description&lt;br /&gt;
!Pins&lt;br /&gt;
!Compatible Plugs&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|X090&lt;br /&gt;
|Inverter connector&lt;br /&gt;
|30&lt;br /&gt;
|Toyota 90980-12712 (Sumitomo 6189-6987)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Rotor Shaft Resolver&lt;br /&gt;
|10 (8 connected)&lt;br /&gt;
|TE Connectivity 1-2282337-1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Oil Pump&lt;br /&gt;
|3&lt;br /&gt;
|TE Connectivity 1-1718644-1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|HV connector&lt;br /&gt;
|2&lt;br /&gt;
|TE Connectivity HC-STAK 90° 2840900-1&lt;br /&gt;
|[https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&amp;amp;DocId=Specification+Or+Standard%7F114-162001%7FJ%7Fpdf%7FEnglish%7FENG_SS_114-162001_J.pdf%7F2840900-1 TE  Product Application]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Power Figures ==&lt;br /&gt;
Taken from tesla:&lt;br /&gt;
&lt;br /&gt;
==== RWD Variant ====&lt;br /&gt;
Voltage: 350v&lt;br /&gt;
&lt;br /&gt;
Max Power: 239 KW @ 5525 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 420 nm @ 325-5200 rpm&lt;br /&gt;
&lt;br /&gt;
==== AWD Variant ====&lt;br /&gt;
Voltage: 335v&lt;br /&gt;
&lt;br /&gt;
Max Power: 203 KW @ 6700 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 330 nm @ 325-5200 rpm&lt;br /&gt;
&lt;br /&gt;
==== Performance Variant ====&lt;br /&gt;
Voltage: 320v&lt;br /&gt;
&lt;br /&gt;
Max Power: 219 KW @ 5075 rpm&lt;br /&gt;
&lt;br /&gt;
Max Torque: 420 nm @ 325-4800 rpm&lt;br /&gt;
&lt;br /&gt;
== Mechanical Specification ==&lt;br /&gt;
Max rotor speed: 18,447 rpm&lt;br /&gt;
&lt;br /&gt;
Input shaft gear: 31 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft input: 81 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft output: 24 teeth&lt;br /&gt;
&lt;br /&gt;
Ring gear: 83 teeth&lt;br /&gt;
&lt;br /&gt;
Gearbox Ratio: (81/31) * (83/24) = 9.036&lt;br /&gt;
&lt;br /&gt;
Details from https://www.youtube.com/watch?v=SRUrB7ruh-8.&lt;br /&gt;
&lt;br /&gt;
== Inverter Components ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Manufacturer&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
!Quantity&lt;br /&gt;
!Datasheet&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|ST GK026&lt;br /&gt;
|SiC FET drive transistors&lt;br /&gt;
|24&lt;br /&gt;
|https://www.st.com/en/power-transistors/sctw100n65g2ag.html (?)&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STGAP1AS&lt;br /&gt;
|Gate Drivers&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-management/stgap1as.html&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STD46P4LLF6&lt;br /&gt;
|P-channel Power MOSFET 40V&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-transistors/std46p4llf6.html&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|3N0408&lt;br /&gt;
|N-channel Power Transistor&lt;br /&gt;
|6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|TMS320F28377DPTPQ&lt;br /&gt;
|C2000 Delfino MCU&lt;br /&gt;
|1&lt;br /&gt;
|[https://www.ti.com/lit/gpn/tms320f28377d TMS320F2837xD Dual-Core Microcontrollers Datasheet]&lt;br /&gt;
[https://www.ti.com/lit/ug/spruhm8i/spruhm8i.pdf TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual]&lt;br /&gt;
|-&lt;br /&gt;
|On Semi&lt;br /&gt;
|TCA0372BDW&lt;br /&gt;
|Resolver amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.onsemi.com/pdf/datasheet/tca0372-d.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|LMV844&lt;br /&gt;
|Temperature sensor amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.ti.com/lit/gpn/lmv844&lt;br /&gt;
|-&lt;br /&gt;
|Microchip&lt;br /&gt;
|25LC256E&lt;br /&gt;
|EEPROM&lt;br /&gt;
|1&lt;br /&gt;
|http://ww1.microchip.com/downloads/en/DeviceDoc/20005715A.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|SN65HVD1040A&lt;br /&gt;
|CAN Transceiver&lt;br /&gt;
|2&lt;br /&gt;
|https://www.ti.com/lit/ds/symlink/sn65hvd1040a-q1.pdf&lt;br /&gt;
|-&lt;br /&gt;
|NXP&lt;br /&gt;
|TJA1021&lt;br /&gt;
|LIN Transceiver&lt;br /&gt;
|1&lt;br /&gt;
|https://www.nxp.com/docs/en/data-sheet/TJA1021.pdf&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom&lt;br /&gt;
|ACPL-C87BT-000E&lt;br /&gt;
|DC HV sense&lt;br /&gt;
|1&lt;br /&gt;
|https://docs.broadcom.com/docs/AV02-3564EN&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|TLF35584QVVS2&lt;br /&gt;
|DC-DC Power and system watchdog&lt;br /&gt;
|1&lt;br /&gt;
|https://uk.farnell.com/infineon/tlf35584qvvs1xuma2/multi-volt-pwr-supply-ic-40-to/dp/3155085&lt;br /&gt;
|-&lt;br /&gt;
|TDK&lt;br /&gt;
|VGT22EPC-222S6A12&lt;br /&gt;
|DC-DC Transformer (gate drive?)&lt;br /&gt;
|1&lt;br /&gt;
|https://product.tdk.com/en/search/transformer/transformer/gate-drive/info?part_no=VGT22EPC-200S6A12&lt;br /&gt;
|}&lt;br /&gt;
Details from https://www.youtube.com/watch?v=l6dV2re3rtM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Oil specification ==&lt;br /&gt;
There are two variants of rear drive unit in terms of oil. One where the oil is also inside the motor and one where it isn&#039;t. Where the gear oil is also inside the motor the oil will be black in colour. In this case FUCHS BluEV EDF 7005 oil is required, not using this oil will degrade the motor and cause failure in the long term.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tesla]]&lt;br /&gt;
[[Category:Motor]]&lt;br /&gt;
[[Category:Inverter]]&lt;br /&gt;
[[Category:Gearbox]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=BMW_Electronic_Throttle_Pedal&amp;diff=5106</id>
		<title>BMW Electronic Throttle Pedal</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=BMW_Electronic_Throttle_Pedal&amp;diff=5106"/>
		<updated>2024-11-21T18:43:49Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* General Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==General Information==&lt;br /&gt;
The pedal module has two independently working sensors (potentiometer or hall effect) for redundancy and plausibility checks. Sensor 2 outputs exactly half the voltage of Sensor 1.&lt;br /&gt;
&lt;br /&gt;
In the original design the DME (Digital Motor Electronics) provides an independent, precision +5V sources for each of the two sensors. It should be noted here that the +5V supply voltage should be precise and stable to assure no erroneous readings from the Inverter Controller.&lt;br /&gt;
&lt;br /&gt;
=== Pinout and Nominal Voltages ===&lt;br /&gt;
The Accelerator Pedal Module for manual and automatic gearbox do not differ in their pinout or electrical connector used. The nominal voltage values are the same for all pedal versions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Nominal Voltage Range&lt;br /&gt;
!Position&lt;br /&gt;
!Voltage Sensor 1&lt;br /&gt;
!Voltage Sensor 2&lt;br /&gt;
|-&lt;br /&gt;
|Idle&lt;br /&gt;
|0.70-0.80V&lt;br /&gt;
|0.31-0.43V&lt;br /&gt;
|-&lt;br /&gt;
|Full Load&lt;br /&gt;
|3.65-4.10V&lt;br /&gt;
|1.83-2.04V&lt;br /&gt;
|-&lt;br /&gt;
|Resistance Point Kickdown&lt;br /&gt;
|4.27-4.33V&lt;br /&gt;
|2.14-2.16V&lt;br /&gt;
|-&lt;br /&gt;
|Mechanical Stop&lt;br /&gt;
|&amp;lt;4.76V&lt;br /&gt;
|&amp;lt;2.38V&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connector ===&lt;br /&gt;
&lt;br /&gt;
The matching cable connector is made by TE Connectivity.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Part No !! Link&lt;br /&gt;
|-&lt;br /&gt;
|Housing&lt;br /&gt;
|1-967616-1&lt;br /&gt;
|https://www.te.com/en/product-1-967616-1.html&lt;br /&gt;
|-&lt;br /&gt;
|Receptacle&lt;br /&gt;
|5-962885-1&lt;br /&gt;
|https://www.te.com/en/product-5-962885-1.html&lt;br /&gt;
|-&lt;br /&gt;
|Cable Seal&lt;br /&gt;
|1-967067-1&lt;br /&gt;
|https://www.te.com/en/product-1-967067-1.html&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These parts are readily available from RS Components, Farnell, Digikey and Mouser. Ebay and Aliexpress have affordable clones with or without wire pigtails attached.&lt;br /&gt;
&lt;br /&gt;
==Accelerator Pedal Version 1==&lt;br /&gt;
[[File:BMW E46 Throttle Pedal.png|thumb|BMW E46 Throttle Pedal Schematic]]&lt;br /&gt;
[[File:BMW E46 Throttle Pedal ETK.png|thumb|BMW E46 Throttle Pedal ETK [https://www.bmw-etk.info/parts-catalog/prd/BMW/VT/P/E46/Cou/318Ci%20N42/ECE/L/N/2003/01/47611/35/35_0282]]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Pinout and Cable Colors &lt;br /&gt;
(from E46, may vary for other vehicles)&lt;br /&gt;
!Pin Number&lt;br /&gt;
!Cable Color&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Brown-Green&lt;br /&gt;
|Ground&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Brown&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Yellow-Green&lt;br /&gt;
|  +5V Supply&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|White&lt;br /&gt;
|Signal Sensor 1&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Yellow&lt;br /&gt;
| +5V Supply&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|White-Green&lt;br /&gt;
|Signal Sensor 2&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Part Numbers (derived from E46, might vary for other vehicles)&lt;br /&gt;
!No&lt;br /&gt;
!Description&lt;br /&gt;
!Part Number&lt;br /&gt;
!Vehicles Used&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 40 1165703&lt;br /&gt;
|&lt;br /&gt;
|Until 10/1999&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 40 6753053&lt;br /&gt;
|&lt;br /&gt;
|Until 08/2000&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 40 6753518&lt;br /&gt;
|&lt;br /&gt;
|Until 11/2001&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 40 6756492&lt;br /&gt;
|&lt;br /&gt;
|Until 05/2002&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 40 6762480&lt;br /&gt;
|&lt;br /&gt;
|Until 02/2006&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6772705&lt;br /&gt;
|&lt;br /&gt;
|Until 05/2008&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6786281&lt;br /&gt;
|E38, E39, E46, E53&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 40 1165704&lt;br /&gt;
|&lt;br /&gt;
|Until 10/1999&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 40 6753094&lt;br /&gt;
|&lt;br /&gt;
|Until 07/2001&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 40 6753519&lt;br /&gt;
|&lt;br /&gt;
|Until 03/2002&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 40 6756493&lt;br /&gt;
|&lt;br /&gt;
|Until 06/2002&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 40 6762481&lt;br /&gt;
|&lt;br /&gt;
|Until 02/2006&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6772706&lt;br /&gt;
|&lt;br /&gt;
|Until 07/2008&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6786282&lt;br /&gt;
|E38, E39, E46, E52, E53&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|02&lt;br /&gt;
|Adapter Plate, Accelerator Pedal Module&lt;br /&gt;
|35 42 6772703&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|02&lt;br /&gt;
|Adapter Plate, Accelerator Pedal Module&lt;br /&gt;
|35 42 6772704&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|03&lt;br /&gt;
|Torx-bolt with washer, M8x20&lt;br /&gt;
|07 12 9905423&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 04&lt;br /&gt;
|Accelerator Pedal Bracket&lt;br /&gt;
|35 41 1163875&lt;br /&gt;
|&lt;br /&gt;
|Until 09/2003&lt;br /&gt;
|-&lt;br /&gt;
|04&lt;br /&gt;
|Frame&lt;br /&gt;
|32 30 3411677&lt;br /&gt;
|&lt;br /&gt;
|From 2003/09&lt;br /&gt;
|-&lt;br /&gt;
|05&lt;br /&gt;
|Self-locking hex nut, M6&lt;br /&gt;
|07 14 7153450&lt;br /&gt;
|&lt;br /&gt;
|From 07/2007&lt;br /&gt;
|-&lt;br /&gt;
|06&lt;br /&gt;
|Blind plug, D=25mm&lt;br /&gt;
| 35 41 1163890&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|07&lt;br /&gt;
|Socket Housing 6 Pin&lt;br /&gt;
|61 13 8383300&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| --&lt;br /&gt;
|Bushing contact 0.2-0.5mm²&lt;br /&gt;
|61 13 0005197&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accelerator Pedal Version 2==&lt;br /&gt;
[[File:BMW E60 Throttle Pedal.png|thumb|BMW E60/E61 Throttle Pedal Schematic]]&lt;br /&gt;
&lt;br /&gt;
[[File:BMW E60 Throttle Pedal ETK.png|thumb|BMW E60/E61 Throttle Pedal ETK [https://www.bmw-etk.info/parts-catalog/prd/BMW/VT/P/E60/Lim/520d/ECE/L/N/2005/02/48801/35/35_0274]]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Pinout and Cable Colors&lt;br /&gt;
(from E60/E61, may vary for other vehicles)&lt;br /&gt;
!Pin Number&lt;br /&gt;
!Cable Color&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Brown-Green&lt;br /&gt;
|Ground&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Brown-Blue&lt;br /&gt;
|Ground&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
| Yellow-Blue&lt;br /&gt;
| +5V Supply&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|White-Green&lt;br /&gt;
|Signal Sensor 1&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Yellow-Green&lt;br /&gt;
| +5V Supply&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|White-Blue&lt;br /&gt;
| Signal Sensor 2&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Part Numbers (derived from E60/E61, may vary for other vehicles)&lt;br /&gt;
! No&lt;br /&gt;
!Description&lt;br /&gt;
!Part Number&lt;br /&gt;
!Vehicles Used&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 41 6754783&lt;br /&gt;
|&lt;br /&gt;
|Until 11/2001&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 41 6759724&lt;br /&gt;
|&lt;br /&gt;
|Until 12/2005&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 40 6766931&lt;br /&gt;
|&lt;br /&gt;
|Until 02/2006&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 41 6762327&lt;br /&gt;
|&lt;br /&gt;
|Until 04/2008&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6772646&lt;br /&gt;
|&lt;br /&gt;
|Until 07/2008&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6788633&lt;br /&gt;
|&lt;br /&gt;
|Until 12/2009&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6786286&lt;br /&gt;
|&lt;br /&gt;
|Until 08/2011&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6789999&lt;br /&gt;
|&lt;br /&gt;
|Until 10/2012&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6852643&lt;br /&gt;
|&lt;br /&gt;
|Until 06/2013&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6858575&lt;br /&gt;
|E60, E61, E63, E64, E83, E85, E89, E90, E91, E92, E93, &lt;br /&gt;
F10, F11, F18, F25&lt;br /&gt;
|Until 08/2014&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
| Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6860785&lt;br /&gt;
|E60, E61, E63, E64, E83, E84, E85, E89, E90, E91, E92, E93, &lt;br /&gt;
F10, F11, F18, F25&lt;br /&gt;
|Until 09/2015&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6860000&lt;br /&gt;
|E60, E61, E63, E64, E83, E84, E85, E89, E90, E91, E92, E93, &lt;br /&gt;
F10, F11, F18, F25, F45, F46, F48&lt;br /&gt;
|Until 07/2020&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 40 6889823&lt;br /&gt;
|E60, E61, E63, E64, E83, E84, E85, E89, E90, E91, E92, E93,&lt;br /&gt;
F10, F11, F25, F26, F39, F45, F46, F48,&lt;br /&gt;
&lt;br /&gt;
G29&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 41 6752614&lt;br /&gt;
|&lt;br /&gt;
|Until 11/2001&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 41 6759723&lt;br /&gt;
|&lt;br /&gt;
|Until 09/2004&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6766930&lt;br /&gt;
|&lt;br /&gt;
|Until 01/2006&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6772645&lt;br /&gt;
|&lt;br /&gt;
|Until 08/2008&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6786285&lt;br /&gt;
|&lt;br /&gt;
|Until 07/2011&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 40 6762326&lt;br /&gt;
|&lt;br /&gt;
|Until 08/2011&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6852644&lt;br /&gt;
|&lt;br /&gt;
| Until 03/2012&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6858574&lt;br /&gt;
|E60, E61, E63, E64, E65, E66, E67, E68, E70, E71, E72, E83, E85, E86, E89, E90, E91, E92, E93, &lt;br /&gt;
F01, F02, F03, F04, F06, F07, F10, F11, F12, F13, F18, F25&lt;br /&gt;
|Until 06/2013&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
| 35 42 6859999&lt;br /&gt;
|E60, E61, E63, E64, E70, E71, E83, E84, E85, E89, E90, E91, E92, E93, &lt;br /&gt;
&lt;br /&gt;
F06, F25, F45, F46, F48, &lt;br /&gt;
&lt;br /&gt;
G11, G12&lt;br /&gt;
| Until 07/2020&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 40 6889822&lt;br /&gt;
|E60, E61, E63, E64, E65, E70, E71, E72, E83, E84, E85, E89, E90, E91, E92, E93,&lt;br /&gt;
F01, F02, F04, F05, F06, F07, F10, F11, F12, F13, F25, F26, F39, F45, F46, F48,&lt;br /&gt;
&lt;br /&gt;
G11, G12, G14, G15, G16, G28, G29, G30, G31, G32&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|02&lt;br /&gt;
|Filister Head Screw M6x16&lt;br /&gt;
|07 12 9905536&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|02&lt;br /&gt;
|ISA Screw M6x16&lt;br /&gt;
| 07 12 9904588&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|03&lt;br /&gt;
|Cover D=10mm&lt;br /&gt;
| 35 42 6796540&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|04&lt;br /&gt;
|Cable Clamp A=3.5-6.0mm&lt;br /&gt;
|07 14 7547239&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|05&lt;br /&gt;
|Socket Housing 6 Pin&lt;br /&gt;
|61 13 8383300&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| --&lt;br /&gt;
|Pins for Socket Housing MQS ELA 0.75mm²&lt;br /&gt;
|61 13 8366260&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accelerator Pedal Version 3==&lt;br /&gt;
[[File:BMW E87 Throttle Pedal.png|thumb|BMW E81/E82/E87/E88 Throttle Pedal Schematic]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Part Numbers (derived from E87, might vary for other vehicles)&lt;br /&gt;
!No&lt;br /&gt;
!Description&lt;br /&gt;
!Part Number&lt;br /&gt;
!Vehicles Used&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6770935&lt;br /&gt;
|&lt;br /&gt;
|Until 02/2008&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6786589&lt;br /&gt;
|&lt;br /&gt;
|Until 07/2009&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6789529&lt;br /&gt;
|&lt;br /&gt;
|Until 06/2013&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6793742&lt;br /&gt;
|&lt;br /&gt;
|Until 06/2013&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 42 6853176&lt;br /&gt;
|&lt;br /&gt;
|Until 03/2020&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox&lt;br /&gt;
|35 40 6889819&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Manual Gearbox (Stainless Steel Pad)&lt;br /&gt;
|35 42 6791474&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6786588&lt;br /&gt;
|&lt;br /&gt;
|Until 11/2009&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6770936&lt;br /&gt;
|&lt;br /&gt;
|Until 10/2011&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6789528&lt;br /&gt;
|&lt;br /&gt;
|Until 06/2013&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6793743&lt;br /&gt;
|&lt;br /&gt;
|Until 06/2013&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 42 6853175&lt;br /&gt;
|&lt;br /&gt;
|Until 03/2020&lt;br /&gt;
|-&lt;br /&gt;
|01&lt;br /&gt;
|Accelerator Pedal Module, Automatic Gearbox&lt;br /&gt;
|35 40 6889818&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|02&lt;br /&gt;
|Fillister head screw, M6x16&lt;br /&gt;
|07 12 9905536&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|02&lt;br /&gt;
|ISA screw, M6x16&lt;br /&gt;
|07 12 9904588&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|03&lt;br /&gt;
|Cover bolt D=10mm&lt;br /&gt;
|35 42 6796540&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|04&lt;br /&gt;
|Cable Clamp A=3.5-6.0mm&lt;br /&gt;
|07 14 7547239&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|05&lt;br /&gt;
|Socket Housing 6 Pin&lt;br /&gt;
|61 13 8383300&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| --&lt;br /&gt;
|Pins for Socket Housing MQS ELA 0.75mm²&lt;br /&gt;
|61 13 8366260&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
ETK Link: https://www.bmw-etk.info/parts-catalog/prd/BMW/VT/P/E87/SH/116i/ECE/L/N/2003/04/48922/35/35_0274/07129904588&lt;br /&gt;
[[Category:OEM]] &lt;br /&gt;
[[Category:BMW]] &lt;br /&gt;
[[Category:Accessories]]&lt;br /&gt;
[[Category:Accelerator pedals and position sensors]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=CAN_communication&amp;diff=4043</id>
		<title>CAN communication</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=CAN_communication&amp;diff=4043"/>
		<updated>2023-08-01T10:05:12Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Inverter control via CAN - new! */ Fix a typo in the cruise bit field name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Revision 2 main board supports CAN communication. The CAN bus can be used for configuration and for obtaining values like voltages, input states etc. The CAN messages are configurable and can be adjusted to be compatible with existing equipment.&lt;br /&gt;
&lt;br /&gt;
Since firmware 3.75 throttle and digital inputs can be controlled via CAN.&lt;br /&gt;
&lt;br /&gt;
After firmware 5.27.R throttle, digital inputs, cruise speed and regen preset &#039;&#039;&#039;are no longer freely mappable due to safety concerns,&#039;&#039;&#039; see below.&lt;br /&gt;
&lt;br /&gt;
Be aware that all CAN mapping uses decimal numbers. So COB ID 0x123 must be entered as &#039;&#039;&#039;291&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Inverter control via CAN - new! ==&lt;br /&gt;
As discussed here&amp;lt;ref&amp;gt;https://openinverter.org/forum/viewtopic.php?t=3743&amp;amp;start=50&amp;lt;/ref&amp;gt; the CAN communication was redesigned to improve operational safety. This will become effective with the first official release after 5.27.R&lt;br /&gt;
&lt;br /&gt;
Now there is a fixed mapping for pot, pot2, canio, cruisespeed and regenpreset along with some alive counters and a CRC.&lt;br /&gt;
&lt;br /&gt;
The COB Id is still freely configurable and defaults to 0x3F. It is advised to use a low ID value as low IDs have priority on the bus over high Ids.&lt;br /&gt;
&lt;br /&gt;
The mapping is as follows [startbit, endbit]:&lt;br /&gt;
&lt;br /&gt;
* pot[0:11]&lt;br /&gt;
* pot2[12:23]&lt;br /&gt;
* canio[24:29]&lt;br /&gt;
** cruise[24]&lt;br /&gt;
** start[25]&lt;br /&gt;
** brake[26]&lt;br /&gt;
** forward[27]&lt;br /&gt;
** reverse[28]&lt;br /&gt;
** bms[29]&lt;br /&gt;
* canrun1[30:31]&lt;br /&gt;
* cruisespeed[32:45]&lt;br /&gt;
* canrun2[46:47]&lt;br /&gt;
* regenpreset[48:55]&lt;br /&gt;
* cancrc[56:63]&lt;br /&gt;
&lt;br /&gt;
pot is the value of the first throttle channel and its range is configured with potmin/potmax as before. pot2 is the value of the second throttle channel, its range configured via pot2min/pot2max &#039;&#039;&#039;and we strongly recommend to use dual channel throttle pedals&#039;&#039;&#039; and setting potmode to CanDual (or DualChannel if you choose to connect the throttle directly to the inverter). We also recommand to set up your throttle in a way that doesn&#039;t use the full range from 0-4095 but leaves at least 500 digit at either end (so 500-3600) to be able to detect cable issues between throttle and VCU (short to Vcc, loss of GND and other wire breaks)&lt;br /&gt;
&lt;br /&gt;
cruisespeed is the setpoint for the speed control loop in rpm with a maximum value of 16383 rpm. Only applied if the cruise and forward bit is also set and the brake bit is reset.&lt;br /&gt;
&lt;br /&gt;
regenpreset is a value from 0-100% that controls how much of your configured regen (offthrotregen or brakeregen) is actually applied&lt;br /&gt;
&lt;br /&gt;
canrun1/2 are simple message counters that count from 0-3 and indicate that the message producer doesn&#039;t just send the same, stale, content over and over again.&lt;br /&gt;
&lt;br /&gt;
cancrc is an 8-bit CRC, the lowest byte of the STM32 integrated CRC32 generator. It spans over all 8 bytes where the crc byte is set to 0. If you&#039;re on a non-STM32 platform you can use this C-implementation&amp;lt;ref&amp;gt;https://github.com/jsphuebner/esp32-web-interface/blob/can-backend/src/oi_can.cpp#L191&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Controlling throttle via CAN - deprecated! ==&lt;br /&gt;
If you want to send the throttle and regen magnitude commands via CAN rather then via analog inputs you have to set &amp;quot;potmode&amp;quot; to &amp;quot;CAN&amp;quot; (=2). Next you have to map a CAN message to pot and optionally pot2. So say you have a digital throttle that sends values from 0 to 1000 for 0 to 100% travel on CAN-Id 100 in the first two bytes.&lt;br /&gt;
* Configure potmin=0 and potmax=1000&lt;br /&gt;
* Map CAN message to pot: can rx pot 100 0 16 1&lt;br /&gt;
CAN messages must be received every 500ms, otherwise throttle times out and is set to 0.&lt;br /&gt;
&lt;br /&gt;
== Controlling Digital IO via CAN - deprecated ==&lt;br /&gt;
6 signals, namely cruise, start, brake, forward, backward and bms can be controlled via CAN. The CAN message is ORed to the physical inputs so you can have mixed signals also. Digital CAN IO doesn&#039;t need to be explicitely configured, it works as soon as you map a CAN message to &amp;quot;canio&amp;quot;. &amp;quot;canio&amp;quot; is bit-encoded:&lt;br /&gt;
* Bit 0: cruise&lt;br /&gt;
* Bit 1: start&lt;br /&gt;
* Bit 2: brake&lt;br /&gt;
* Bit 3: forward&lt;br /&gt;
* Bit 4: reverse&lt;br /&gt;
* Bit 5: bms&lt;br /&gt;
So say you have a BMS that transmits an over/under voltage bit on CAN Id 200, 2nd data bit&lt;br /&gt;
 can rx canio 200 2 1 1024&lt;br /&gt;
Note the 1024x gain that shifts the bit into the correct position (5 fraction bits plus 5th data bit). In this case all other IOs remain traditional, only BMS is controlled via CAN. Note that you cannot map multiple CAN messages onto &amp;quot;canio&amp;quot; as they would overwrite each other.&lt;br /&gt;
&lt;br /&gt;
If you have a managed to mangle all 6 bits into one message, say CAN Id 300, first 6 bits the mapping is done like so&lt;br /&gt;
 can rx canio 300 0 6 32&lt;br /&gt;
The same timeout mechanism is used as for throttle control, so after 500ms with no message the CAN-mapped inputs are assumed off. Traditional inputs remain unaffected.&lt;br /&gt;
&lt;br /&gt;
== Setting and reading parameters via SDO ==&lt;br /&gt;
The abbreviation SDO is taken from the CANOpen protocol. It assigns a certain meaning to the 8 data bits of a CAN frame.&lt;br /&gt;
&lt;br /&gt;
Note that SDO semantics (cmd) were changed since version 5.20.R of the inverter firmware. Old cmd value is in ()&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Purpose&lt;br /&gt;
!CAN-Id&lt;br /&gt;
!Byte 1 (Cmd)&lt;br /&gt;
!Bytes 2-3 (Index)&lt;br /&gt;
!Byte 4 (Subindex)&lt;br /&gt;
!Bytes 5-8 (Data)&lt;br /&gt;
|-&lt;br /&gt;
|Set Value&lt;br /&gt;
|0x601&lt;br /&gt;
|0x23 (0x40)&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Set Value Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x60 (0x23)&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Get Value&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40 (0x22)&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|don&#039;t care&lt;br /&gt;
|-&lt;br /&gt;
|Get Value Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x43&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Map Value TX to COB ID yyy&lt;br /&gt;
|0x601&lt;br /&gt;
|0x23 (0x40)&lt;br /&gt;
|0x3yyy&lt;br /&gt;
|Value Index&lt;br /&gt;
|Byte 5: bit offset, Byte 6: bit length, Bytes 7,8: scaling&lt;br /&gt;
|-&lt;br /&gt;
|Map Value RX to COB ID yyy&lt;br /&gt;
|0x601&lt;br /&gt;
|0x23 (0x40)&lt;br /&gt;
|0x4yyy&lt;br /&gt;
|Value Index&lt;br /&gt;
|Byte 5: bit offset, Byte 6: bit length, Bytes 7,8: scaling&lt;br /&gt;
|-&lt;br /&gt;
|Abort - invalid index&lt;br /&gt;
|0x581&lt;br /&gt;
|0x80&lt;br /&gt;
|Index of request&lt;br /&gt;
|Value Index&lt;br /&gt;
|Abort Code = 0x06020000&lt;br /&gt;
|-&lt;br /&gt;
|Abort - value out of range&lt;br /&gt;
|0x581&lt;br /&gt;
|0x80&lt;br /&gt;
|Index of request&lt;br /&gt;
|Value Index&lt;br /&gt;
|Abort Code = 0x06090030&lt;br /&gt;
|-&lt;br /&gt;
|Set Param&lt;br /&gt;
|0x601&lt;br /&gt;
|0x23 (0x40)&lt;br /&gt;
|0x21xx xx=MSB UID&lt;br /&gt;
|Param UID LSB&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Set Param Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x60 (0x23)&lt;br /&gt;
|0x21xx xx=MSB UID&lt;br /&gt;
|Param UID LSB&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Get Param&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40 (0x22)&lt;br /&gt;
|0x21xx xx=MSB UID&lt;br /&gt;
|Param UID LSB&lt;br /&gt;
|don&#039;t care&lt;br /&gt;
|-&lt;br /&gt;
|Get Param Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x43&lt;br /&gt;
|0x21xx xx=MSB UID&lt;br /&gt;
|Param UID LSB&lt;br /&gt;
|Value x 32&lt;br /&gt;
|}&lt;br /&gt;
The value index must be determined by counting the output of the list command. E.g. &amp;quot;boost&amp;quot; at the very top has index 0, potnom has index 77. The indexes can change over firmware versions as new parameters are added somewhere in between.&lt;br /&gt;
&lt;br /&gt;
The Get/Set Param commands use the unique parameter identifier assigned to each savable parameter. These do not vary between firmware versions. Only savable parameters not spot values can be read and written by these commands.&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x40 0x00 0x20 0x00 0 0 0 0&amp;lt;/code&amp;gt;   Get value of &amp;quot;boost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x23 0x00 0x20 0x01 0x80 0x0C 0 0&amp;lt;/code&amp;gt; Set &amp;quot;fweak&amp;quot; to 100Hz (0xC80=3200 because scaled by 32)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x23 0xAA 0x31 0x01 0x08 0x10 1 0&amp;lt;/code&amp;gt; Map value of fweak to COB ID 0x1AA, starting at bit 8, stretching 16 bits, scaled by 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x40 0x10 0x20 0x0D 0 0 0 0&amp;lt;/code&amp;gt;   Get value of &amp;quot;pwmfrq&amp;quot; on any firmware version or build (0x0D = 13 from the PARAM_ENTRY() for &amp;quot;pwmfrq&amp;quot; in param_prj.h)&lt;br /&gt;
&lt;br /&gt;
== Mapping values to arbitrary CAN messages ==&lt;br /&gt;
Values can be mapped into a certain bit range of the 64 payload bits of a CAN message. They can either be read from the message or sent via a message. To do so enter&lt;br /&gt;
 can tx udc 123 0 16 10&lt;br /&gt;
This maps the value of udc to a CAN message with id 123 bits 0..15 (start at bit 0, span over 16 bits) with a gain of 10.&lt;br /&gt;
 can tx din_forward 123 24 1 1&lt;br /&gt;
would map the pin state of the forward input to bit 24 of CAN message with id 123.&lt;br /&gt;
&lt;br /&gt;
If you want to clear all messages, type&lt;br /&gt;
 can clear&lt;br /&gt;
If you want to remove only a specific signal (starting version 4.18.R) type&lt;br /&gt;
 can del &amp;lt;name&amp;gt;&lt;br /&gt;
To save your can map simply type &amp;quot;save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[https://openinverter.org/forum/viewtopic.php?t=1468 idcmin, idcmax example]&lt;br /&gt;
&lt;br /&gt;
=== Mapping Values through the web interface ===&lt;br /&gt;
Value can also be mapped through the web interface.&lt;br /&gt;
&lt;br /&gt;
[[File:Spot values.png|alt=Spot values|thumb|Spot values]]&lt;br /&gt;
&lt;br /&gt;
* CAN Id&lt;br /&gt;
** This is the Can Id assigned to the message.  Remember, all CAN mapping uses decimal numbers. So ID 0x123 must be entered as &#039;&#039;&#039;291.&#039;&#039;&#039;  Here is a converter to help: https://www.rapidtables.com/convert/number/hex-to-decimal.html&lt;br /&gt;
* Position&lt;br /&gt;
** This is where in the 64 bit length of the CAN message the data should start.&lt;br /&gt;
* Bits&lt;br /&gt;
** How many bits are assigned to send the data.&lt;br /&gt;
* Gain&lt;br /&gt;
** This applies the internal scaling.  Pre FW v5.27 this is fixed point (integers only).  FW v5.27 and later is floating point (decimals allowed).&lt;br /&gt;
** Your gain needs to be opposite of the receiving end&#039;s scaling.  For example, the Speedhut EV gauges list a scaling of 0.1, meaning they apply that to incoming messages, so you need to transmit with a gain of 10.&lt;br /&gt;
* Map to CAN&lt;br /&gt;
** TX to tell the control board to transmit the data onto the CANBUS&lt;br /&gt;
** RX to tell the control board to expect to receive this data from the CANBUS&lt;br /&gt;
&lt;br /&gt;
=== Limits ===&lt;br /&gt;
* A maximum of 10 messages can be defined&lt;br /&gt;
* Per message a maximum of 8 values can be mapped (50 total over all messages in FW v5.27 and later)&lt;br /&gt;
* a value can not span across the 32-bit boundary, i.e. it must be fully contained in the first or second 32 bits of the message. E.g. &amp;quot;can tx udc 123 16 32 10&amp;quot; is not allowed&lt;br /&gt;
* A value can span maximum 32 bits&lt;br /&gt;
&lt;br /&gt;
== [[wikipedia:Endianness|Endianness]] ==&lt;br /&gt;
CAN messages sent to, or received from the inverter are Little-endian.&lt;br /&gt;
&lt;br /&gt;
If you are sending or receiving messages containing multi-byte values then the byte order must be taken into account.&lt;br /&gt;
&lt;br /&gt;
== PC Tool ==&lt;br /&gt;
A PC based tool called [https://pypi.org/project/openinverter-can-tool/ openinverter_can_tool] exists to query and control openinverter systems over CAN bus with a supported CAN interface adapter.&lt;br /&gt;
&lt;br /&gt;
[[Category:CAN]] [[Category:OpenInverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=CAN_communication&amp;diff=3460</id>
		<title>CAN communication</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=CAN_communication&amp;diff=3460"/>
		<updated>2023-03-07T12:19:49Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add a link to my openinverter_can_tool&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Revision 2 main board supports CAN communication. The CAN bus can be used for configuration and for obtaining values like voltages, input states etc. The CAN messages are configurable and can be adjusted to be compatible with existing equipment.&lt;br /&gt;
&lt;br /&gt;
Since firmware 3.75 throttle and digital inputs can be controlled via CAN.&lt;br /&gt;
&lt;br /&gt;
Be aware that all CAN mapping uses decimal numbers. So COB ID 0x123 must be entered as &#039;&#039;&#039;291&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Controlling throttle via CAN ==&lt;br /&gt;
If you want to send the throttle and regen magnitude commands via CAN rather then via analog inputs you have to set &amp;quot;potmode&amp;quot; to &amp;quot;CAN&amp;quot; (=2). Next you have to map a CAN message to pot and optionally pot2. So say you have a digital throttle that sends values from 0 to 1000 for 0 to 100% travel on CAN-Id 100 in the first two bytes.&lt;br /&gt;
* Configure potmin=0 and potmax=1000&lt;br /&gt;
* Map CAN message to pot: can rx pot 100 0 16 32&lt;br /&gt;
The last parameter, 32, tells the CAN module to apply the internal fixed point scaling.&lt;br /&gt;
&lt;br /&gt;
CAN messages must be received every 500ms, otherwise throttle times out and is set to 0.&lt;br /&gt;
&lt;br /&gt;
== Controlling Digital IO via CAN ==&lt;br /&gt;
6 signals, namely cruise, start, brake, forward, backward and bms can be controlled via CAN. The CAN message is ORed to the physical inputs so you can have mixed signals also. Digital CAN IO doesn&#039;t need to be explicitely configured, it works as soon as you map a CAN message to &amp;quot;canio&amp;quot;. &amp;quot;canio&amp;quot; is bit-encoded:&lt;br /&gt;
* Bit 0: cruise&lt;br /&gt;
* Bit 1: start&lt;br /&gt;
* Bit 2: brake&lt;br /&gt;
* Bit 3: forward&lt;br /&gt;
* Bit 4: reverse&lt;br /&gt;
* Bit 5: bms&lt;br /&gt;
So say you have a BMS that transmits an over/under voltage bit on CAN Id 200, 2nd data bit&lt;br /&gt;
 can rx canio 200 2 1 1024&lt;br /&gt;
Note the 1024x gain that shifts the bit into the correct position (5 fraction bits plus 5th data bit). In this case all other IOs remain traditional, only BMS is controlled via CAN. Note that you cannot map multiple CAN messages onto &amp;quot;canio&amp;quot; as they would overwrite each other.&lt;br /&gt;
&lt;br /&gt;
If you have a managed to mangle all 6 bits into one message, say CAN Id 300, first 6 bits the mapping is done like so&lt;br /&gt;
 can rx canio 300 0 6 32&lt;br /&gt;
The same timeout mechanism is used as for throttle control, so after 500ms with no message the CAN-mapped inputs are assumed off. Traditional inputs remain unaffected.&lt;br /&gt;
&lt;br /&gt;
== Setting and reading parameters via SDO ==&lt;br /&gt;
The abbreviation SDO is taken from the CANOpen protocol. It assigns a certain meaning to the 8 data bits of a CAN frame.&lt;br /&gt;
&lt;br /&gt;
Note that SDO semantics (cmd) were changed since version 5.20.R of the inverter firmware. Old cmd value is in ()&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Purpose&lt;br /&gt;
!CAN-Id&lt;br /&gt;
!Byte 1 (Cmd)&lt;br /&gt;
!Bytes 2-3 (Index)&lt;br /&gt;
!Byte 4 (Subindex)&lt;br /&gt;
!Bytes 5-8 (Data)&lt;br /&gt;
|-&lt;br /&gt;
|Set Value&lt;br /&gt;
|0x601&lt;br /&gt;
|0x23 (0x40)&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Set Value Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x60 (0x23)&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Get Value&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40 (0x22)&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|don&#039;t care&lt;br /&gt;
|-&lt;br /&gt;
|Get Value Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x43&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Map Value TX to COB ID yyy&lt;br /&gt;
|0x601&lt;br /&gt;
|0x23 (0x40)&lt;br /&gt;
|0x3yyy&lt;br /&gt;
|Value Index&lt;br /&gt;
|Byte 5: bit offset, Byte 6: bit length, Bytes 7,8: scaling&lt;br /&gt;
|-&lt;br /&gt;
|Map Value RX to COB ID yyy&lt;br /&gt;
|0x601&lt;br /&gt;
|0x23 (0x40)&lt;br /&gt;
|0x4yyy&lt;br /&gt;
|Value Index&lt;br /&gt;
|Byte 5: bit offset, Byte 6: bit length, Bytes 7,8: scaling&lt;br /&gt;
|-&lt;br /&gt;
|Abort - invalid index&lt;br /&gt;
|0x581&lt;br /&gt;
|0x80&lt;br /&gt;
|Index of request&lt;br /&gt;
|Value Index&lt;br /&gt;
|Abort Code = 0x06020000&lt;br /&gt;
|-&lt;br /&gt;
|Abort - value out of range&lt;br /&gt;
|0x581&lt;br /&gt;
|0x80&lt;br /&gt;
|Index of request&lt;br /&gt;
|Value Index&lt;br /&gt;
|Abort Code = 0x06090030&lt;br /&gt;
|-&lt;br /&gt;
|Set Param&lt;br /&gt;
|0x601&lt;br /&gt;
|0x23 (0x40)&lt;br /&gt;
|0x21xx xx=MSB UID&lt;br /&gt;
|Param UID LSB&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Set Param Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x60 (0x23)&lt;br /&gt;
|0x21xx xx=MSB UID&lt;br /&gt;
|Param UID LSB&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Get Param&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40 (0x22)&lt;br /&gt;
|0x21xx xx=MSB UID&lt;br /&gt;
|Param UID LSB&lt;br /&gt;
|don&#039;t care&lt;br /&gt;
|-&lt;br /&gt;
|Get Param Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x43&lt;br /&gt;
|0x21xx xx=MSB UID&lt;br /&gt;
|Param UID LSB&lt;br /&gt;
|Value x 32&lt;br /&gt;
|}&lt;br /&gt;
The value index must be determined by counting the output of the list command. E.g. &amp;quot;boost&amp;quot; at the very top has index 0, potnom has index 77. The indexes can change over firmware versions as new parameters are added somewhere in between.&lt;br /&gt;
&lt;br /&gt;
The Get/Set Param commands use the unique parameter identifier assigned to each savable parameter. These do not vary between firmware versions. Only savable parameters not spot values can be read and written by these commands.&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x40 0x00 0x20 0x00 0 0 0 0&amp;lt;/code&amp;gt;   Get value of &amp;quot;boost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x23 0x00 0x20 0x01 0x80 0x0C 0 0&amp;lt;/code&amp;gt; Set &amp;quot;fweak&amp;quot; to 100Hz (0xC80=3200 because scaled by 32)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x23 0xAA 0x31 0x01 0x08 0x10 1 0&amp;lt;/code&amp;gt; Map value of fweak to COB ID 0x1AA, starting at bit 8, stretching 16 bits, scaled by 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x40 0x10 0x20 0x0D 0 0 0 0&amp;lt;/code&amp;gt;   Get value of &amp;quot;pwmfrq&amp;quot; on any firmware version or build (0x0D = 13 from the PARAM_ENTRY() for &amp;quot;pwmfrq&amp;quot; in param_prj.h)&lt;br /&gt;
&lt;br /&gt;
== Mapping values to arbitrary CAN messages ==&lt;br /&gt;
Values can be mapped into a certain bit range of the 64 payload bits of a CAN message. They can either be read from the message or sent via a message. To do so enter&lt;br /&gt;
 can tx udc 123 0 16 10&lt;br /&gt;
This maps the value of udc to a CAN message with id 123 bits 0..15 (start at bit 0, span over 16 bits) with a gain of 10.&lt;br /&gt;
 can tx din_forward 123 24 1 1&lt;br /&gt;
would map the pin state of the forward input to bit 24 of CAN message with id 123.&lt;br /&gt;
&lt;br /&gt;
If you want to clear all messages, type&lt;br /&gt;
 can clear&lt;br /&gt;
If you want to remove only a specific signal (starting version 4.18.R) type&lt;br /&gt;
 can del &amp;lt;name&amp;gt;&lt;br /&gt;
To save your can map simply type &amp;quot;save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://openinverter.org/forum/viewtopic.php?t=1468 idcmin, idcmax example]&lt;br /&gt;
&lt;br /&gt;
=== Mapping Values through the web interface ===&lt;br /&gt;
Value can also be mapped through the web interface.&lt;br /&gt;
&lt;br /&gt;
[[File:Spot values.png|alt=Spot values|thumb|Spot values]]&lt;br /&gt;
&lt;br /&gt;
* CAN Id&lt;br /&gt;
** This is the Can Id assigned to the message.&lt;br /&gt;
* Position&lt;br /&gt;
** This is where in the 64 bit length of the CAN message the data should start.&lt;br /&gt;
* Bits&lt;br /&gt;
** How many bits are assigned to send the data.&lt;br /&gt;
* Gain&lt;br /&gt;
** This applies the internal fixed point scaling.&lt;br /&gt;
* Map to CAN&lt;br /&gt;
** TX to tell the control board to transmit the data onto the CANBUS&lt;br /&gt;
** RX to tell the control board to expect to receive this data from the CANBUS&lt;br /&gt;
&lt;br /&gt;
=== Limits ===&lt;br /&gt;
* A maximum of 10 messages can be defined&lt;br /&gt;
* Per message a maximum of 8 values can be mapped&lt;br /&gt;
* a value can not span across the 32-bit boundary, i.e. it must be fully contained in the first or second 32 bits of the message. E.g. &amp;quot;can tx udc 123 16 32 10&amp;quot; is not allowed&lt;br /&gt;
* A value can span maximum 32 bits&lt;br /&gt;
&lt;br /&gt;
== [[wikipedia:Endianness|Endianness]] ==&lt;br /&gt;
CAN messages sent to, or received from the inverter are Little-endian.&lt;br /&gt;
&lt;br /&gt;
If you are sending or receiving messages containing multi-byte values then the byte order must be taken into account.&lt;br /&gt;
&lt;br /&gt;
== PC Tool ==&lt;br /&gt;
A PC based tool called [https://pypi.org/project/openinverter-can-tool/ openinverter_can_tool] exists to query and control openinverter systems over CAN bus with a supported CAN interface adapter.&lt;br /&gt;
&lt;br /&gt;
[[Category:CAN]] [[Category:OpenInverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=CAN_communication&amp;diff=2597</id>
		<title>CAN communication</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=CAN_communication&amp;diff=2597"/>
		<updated>2022-07-05T18:04:07Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Make the spot values web interface screenshot visible&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Revision 2 main board supports CAN communication. The CAN bus can be used for configuration and for obtaining values like voltages, input states etc. The CAN messages are configurable and can be adjusted to be compatible with existing equipment.&lt;br /&gt;
&lt;br /&gt;
Since firmware 3.75 throttle and digital inputs can be controlled via CAN.&lt;br /&gt;
&lt;br /&gt;
Be aware that all CAN mapping uses decimal numbers. So COB ID 0x123 must be entered as &#039;&#039;&#039;291&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Controlling throttle via CAN ==&lt;br /&gt;
If you want to send the throttle and regen magnitude commands via CAN rather then via analog inputs you have to set &amp;quot;potmode&amp;quot; to &amp;quot;CAN&amp;quot; (=2). Next you have to map a CAN message to pot and optionally pot2. So say you have a digital throttle that sends values from 0 to 1000 for 0 to 100% travel on CAN-Id 100 in the first two bytes.&lt;br /&gt;
* Configure potmin=0 and potmax=1000&lt;br /&gt;
* Map CAN message to pot: can rx pot 100 0 16 32&lt;br /&gt;
The last parameter, 32, tells the CAN module to apply the internal fixed point scaling.&lt;br /&gt;
&lt;br /&gt;
CAN messages must be received every 500ms, otherwise throttle times out and is set to 0.&lt;br /&gt;
&lt;br /&gt;
== Controlling Digital IO via CAN ==&lt;br /&gt;
6 signals, namely cruise, start, brake, forward, backward and bms can be controlled via CAN. The CAN message is ORed to the physical inputs so you can have mixed signals also. Digital CAN IO doesn&#039;t need to be explicitely configured, it works as soon as you map a CAN message to &amp;quot;canio&amp;quot;. &amp;quot;canio&amp;quot; is bit-encoded:&lt;br /&gt;
* Bit 0: cruise&lt;br /&gt;
* Bit 1: start&lt;br /&gt;
* Bit 2: brake&lt;br /&gt;
* Bit 3: forward&lt;br /&gt;
* Bit 4: reverse&lt;br /&gt;
* Bit 5: bms&lt;br /&gt;
So say you have a BMS that transmits an over/under voltage bit on CAN Id 200, 2nd data bit&lt;br /&gt;
 can rx canio 200 2 1 1024&lt;br /&gt;
Note the 1024x gain that shifts the bit into the correct position (5 fraction bits plus 5th data bit). In this case all other IOs remain traditional, only BMS is controlled via CAN. Note that you cannot map multiple CAN messages onto &amp;quot;canio&amp;quot; as they would overwrite each other.&lt;br /&gt;
&lt;br /&gt;
If you have a managed to mangle all 6 bits into one message, say CAN Id 300, first 6 bits the mapping is done like so&lt;br /&gt;
 can rx canio 300 0 6 32&lt;br /&gt;
The same timeout mechanism is used as for throttle control, so after 500ms with no message the CAN-mapped inputs are assumed off. Traditional inputs remain unaffected.&lt;br /&gt;
&lt;br /&gt;
== Setting and reading parameters via SDO ==&lt;br /&gt;
The abbreviation SDO is taken from the CANOpen protocol. It assigns a certain meaning to the 8 data bits of a CAN frame.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Purpose&lt;br /&gt;
!CAN-Id&lt;br /&gt;
!Byte 1 (Cmd)&lt;br /&gt;
!Bytes 2-3 (Index)&lt;br /&gt;
!Byte 4 (Subindex)&lt;br /&gt;
!Bytes 5-8 (Data)&lt;br /&gt;
|-&lt;br /&gt;
|Set Value&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Set Value Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x23&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Get Value&lt;br /&gt;
|0x601&lt;br /&gt;
|0x22&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|don&#039;t care&lt;br /&gt;
|-&lt;br /&gt;
|Get Value Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x43&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Map Value TX to COB ID yyy&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40&lt;br /&gt;
|0x3yyy&lt;br /&gt;
|Value Index&lt;br /&gt;
|Byte 5: bit offset, Byte 6: bit length, Bytes 7,8: scaling&lt;br /&gt;
|-&lt;br /&gt;
|Map Value RX to COB ID yyy&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40&lt;br /&gt;
|0x4yyy&lt;br /&gt;
|Value Index&lt;br /&gt;
|Byte 5: bit offset, Byte 6: bit length, Bytes 7,8: scaling&lt;br /&gt;
|-&lt;br /&gt;
|Abort - invalid index&lt;br /&gt;
|0x581&lt;br /&gt;
|0x80&lt;br /&gt;
|Index of request&lt;br /&gt;
|Value Index&lt;br /&gt;
|Abort Code = 0x06020000&lt;br /&gt;
|-&lt;br /&gt;
|Abort - value out of range&lt;br /&gt;
|0x581&lt;br /&gt;
|0x80&lt;br /&gt;
|Index of request&lt;br /&gt;
|Value Index&lt;br /&gt;
|Abort Code = 0x06090030&lt;br /&gt;
|-&lt;br /&gt;
|Set Param&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40&lt;br /&gt;
|0x2001&lt;br /&gt;
|Param Id&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Set Param Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x23&lt;br /&gt;
|0x2001&lt;br /&gt;
|Param Id&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Get Param&lt;br /&gt;
|0x601&lt;br /&gt;
|0x22&lt;br /&gt;
|0x2001&lt;br /&gt;
|Param Id&lt;br /&gt;
|don&#039;t care&lt;br /&gt;
|-&lt;br /&gt;
|Get Param Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x43&lt;br /&gt;
|0x2001&lt;br /&gt;
|Param Id&lt;br /&gt;
|Value x 32&lt;br /&gt;
|}&lt;br /&gt;
The value index must be determined by counting the output of the list command. E.g. &amp;quot;boost&amp;quot; at the very top has index 0, potnom has index 77. The indexes can change over firmware versions as new parameters are added somewhere in between.&lt;br /&gt;
&lt;br /&gt;
The Get/Set Param commands use the unique parameter identifier assigned to each savable parameter. These do not vary between firmware versions. Only savable parameters not spot values can be read and written by these commands.&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x22 0x00 0x20 0x00 0 0 0 0&amp;lt;/code&amp;gt;   Get value of &amp;quot;boost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x40 0x00 0x20 0x01 0x80 0x0C 0 0&amp;lt;/code&amp;gt; Set &amp;quot;fweak&amp;quot; to 100Hz (0xC80=3200 because scaled by 32)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x40 0xAA 0x31 0x01 0x08 0x10 1 0&amp;lt;/code&amp;gt; Map value of fweak to COB ID 0x1AA, starting at bit 8, stretching 16 bits, scaled by 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x22 0x10 0x20 0x0D 0 0 0 0&amp;lt;/code&amp;gt;   Get value of &amp;quot;pwmfrq&amp;quot; on any firmware version or build (0x0D = 13 from the PARAM_ENTRY() for &amp;quot;pwmfrq&amp;quot; in param_prj.h)&lt;br /&gt;
&lt;br /&gt;
== Mapping values to arbitrary CAN messages ==&lt;br /&gt;
Values can be mapped into a certain bit range of the 64 payload bits of a CAN message. They can either be read from the message or sent via a message. To do so enter&lt;br /&gt;
 can tx udc 123 0 16 10&lt;br /&gt;
This maps the value of udc to a CAN message with id 123 bits 0..15 (start at bit 0, span over 16 bits) with a gain of 10.&lt;br /&gt;
 can tx din_forward 123 24 1 1&lt;br /&gt;
would map the pin state of the forward input to bit 24 of CAN message with id 123.&lt;br /&gt;
&lt;br /&gt;
If you want to clear all messages, type&lt;br /&gt;
 can clear&lt;br /&gt;
If you want to remove only a specific signal (starting version 4.18.R) type&lt;br /&gt;
 can del &amp;lt;name&amp;gt;&lt;br /&gt;
To save your can map simply type &amp;quot;save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Mapping Values through the web interface ===&lt;br /&gt;
Value can also be mapped through the web interface.&lt;br /&gt;
&lt;br /&gt;
[[File:Spot values.png|alt=Spot values|thumb|Spot values]]&lt;br /&gt;
&lt;br /&gt;
* CAN Id&lt;br /&gt;
** This is the Can Id assigned to the message.&lt;br /&gt;
* Position&lt;br /&gt;
** This is where in the 64 bit length of the CAN message the data should start.&lt;br /&gt;
* Bits&lt;br /&gt;
** How many bits are assigned to send the data.&lt;br /&gt;
* Gain&lt;br /&gt;
** This applies the internal fixed point scaling.&lt;br /&gt;
* Map to CAN&lt;br /&gt;
** TX to tell the control board to transmit the data onto the CANBUS&lt;br /&gt;
** RX to tell the control board to expect to receive this data from the CANBUS&lt;br /&gt;
&lt;br /&gt;
=== Limits ===&lt;br /&gt;
* A maximum of 10 messages can be defined&lt;br /&gt;
* Per message a maximum of 8 values can be mapped&lt;br /&gt;
* a value can not span across the 32-bit boundary, i.e. it must be fully contained in the first or second 32 bits of the message. E.g. &amp;quot;can tx udc 123 16 32 10&amp;quot; is not allowed&lt;br /&gt;
* A value can span maximum 32 bits&lt;br /&gt;
&lt;br /&gt;
== Endianness ==&lt;br /&gt;
CAN messages sent to, or received from the inverter are Little-endian.&lt;br /&gt;
&lt;br /&gt;
If you are sending or receiving messages containing multi-byte values then the byte order must be taken into account.&lt;br /&gt;
&lt;br /&gt;
[[Category:CAN]] [[Category:OpenInverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=CAN_communication&amp;diff=2596</id>
		<title>CAN communication</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=CAN_communication&amp;diff=2596"/>
		<updated>2022-07-05T17:59:17Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add the details of the unique param ID commands implemented in v5.00.R firmware and newer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Revision 2 main board supports CAN communication. The CAN bus can be used for configuration and for obtaining values like voltages, input states etc. The CAN messages are configurable and can be adjusted to be compatible with existing equipment.&lt;br /&gt;
&lt;br /&gt;
Since firmware 3.75 throttle and digital inputs can be controlled via CAN.&lt;br /&gt;
&lt;br /&gt;
Be aware that all CAN mapping uses decimal numbers. So COB ID 0x123 must be entered as &#039;&#039;&#039;291&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Controlling throttle via CAN ==&lt;br /&gt;
If you want to send the throttle and regen magnitude commands via CAN rather then via analog inputs you have to set &amp;quot;potmode&amp;quot; to &amp;quot;CAN&amp;quot; (=2). Next you have to map a CAN message to pot and optionally pot2. So say you have a digital throttle that sends values from 0 to 1000 for 0 to 100% travel on CAN-Id 100 in the first two bytes.&lt;br /&gt;
* Configure potmin=0 and potmax=1000&lt;br /&gt;
* Map CAN message to pot: can rx pot 100 0 16 32&lt;br /&gt;
The last parameter, 32, tells the CAN module to apply the internal fixed point scaling.&lt;br /&gt;
&lt;br /&gt;
CAN messages must be received every 500ms, otherwise throttle times out and is set to 0.&lt;br /&gt;
&lt;br /&gt;
== Controlling Digital IO via CAN ==&lt;br /&gt;
6 signals, namely cruise, start, brake, forward, backward and bms can be controlled via CAN. The CAN message is ORed to the physical inputs so you can have mixed signals also. Digital CAN IO doesn&#039;t need to be explicitely configured, it works as soon as you map a CAN message to &amp;quot;canio&amp;quot;. &amp;quot;canio&amp;quot; is bit-encoded:&lt;br /&gt;
* Bit 0: cruise&lt;br /&gt;
* Bit 1: start&lt;br /&gt;
* Bit 2: brake&lt;br /&gt;
* Bit 3: forward&lt;br /&gt;
* Bit 4: reverse&lt;br /&gt;
* Bit 5: bms&lt;br /&gt;
So say you have a BMS that transmits an over/under voltage bit on CAN Id 200, 2nd data bit&lt;br /&gt;
 can rx canio 200 2 1 1024&lt;br /&gt;
Note the 1024x gain that shifts the bit into the correct position (5 fraction bits plus 5th data bit). In this case all other IOs remain traditional, only BMS is controlled via CAN. Note that you cannot map multiple CAN messages onto &amp;quot;canio&amp;quot; as they would overwrite each other.&lt;br /&gt;
&lt;br /&gt;
If you have a managed to mangle all 6 bits into one message, say CAN Id 300, first 6 bits the mapping is done like so&lt;br /&gt;
 can rx canio 300 0 6 32&lt;br /&gt;
The same timeout mechanism is used as for throttle control, so after 500ms with no message the CAN-mapped inputs are assumed off. Traditional inputs remain unaffected.&lt;br /&gt;
&lt;br /&gt;
== Setting and reading parameters via SDO ==&lt;br /&gt;
The abbreviation SDO is taken from the CANOpen protocol. It assigns a certain meaning to the 8 data bits of a CAN frame.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Purpose&lt;br /&gt;
!CAN-Id&lt;br /&gt;
!Byte 1 (Cmd)&lt;br /&gt;
!Bytes 2-3 (Index)&lt;br /&gt;
!Byte 4 (Subindex)&lt;br /&gt;
!Bytes 5-8 (Data)&lt;br /&gt;
|-&lt;br /&gt;
|Set Value&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Set Value Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x23&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Get Value&lt;br /&gt;
|0x601&lt;br /&gt;
|0x22&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|don&#039;t care&lt;br /&gt;
|-&lt;br /&gt;
|Get Value Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x43&lt;br /&gt;
|0x2000&lt;br /&gt;
|Value Index&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Map Value TX to COB ID yyy&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40&lt;br /&gt;
|0x3yyy&lt;br /&gt;
|Value Index&lt;br /&gt;
|Byte 5: bit offset, Byte 6: bit length, Bytes 7,8: scaling&lt;br /&gt;
|-&lt;br /&gt;
|Map Value RX to COB ID yyy&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40&lt;br /&gt;
|0x4yyy&lt;br /&gt;
|Value Index&lt;br /&gt;
|Byte 5: bit offset, Byte 6: bit length, Bytes 7,8: scaling&lt;br /&gt;
|-&lt;br /&gt;
|Abort - invalid index&lt;br /&gt;
|0x581&lt;br /&gt;
|0x80&lt;br /&gt;
|Index of request&lt;br /&gt;
|Value Index&lt;br /&gt;
|Abort Code = 0x06020000&lt;br /&gt;
|-&lt;br /&gt;
|Abort - value out of range&lt;br /&gt;
|0x581&lt;br /&gt;
|0x80&lt;br /&gt;
|Index of request&lt;br /&gt;
|Value Index&lt;br /&gt;
|Abort Code = 0x06090030&lt;br /&gt;
|-&lt;br /&gt;
|Set Param&lt;br /&gt;
|0x601&lt;br /&gt;
|0x40&lt;br /&gt;
|0x2001&lt;br /&gt;
|Param Id&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Set Param Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x23&lt;br /&gt;
|0x2001&lt;br /&gt;
|Param Id&lt;br /&gt;
|Value x 32&lt;br /&gt;
|-&lt;br /&gt;
|Get Param&lt;br /&gt;
|0x601&lt;br /&gt;
|0x22&lt;br /&gt;
|0x2001&lt;br /&gt;
|Param Id&lt;br /&gt;
|don&#039;t care&lt;br /&gt;
|-&lt;br /&gt;
|Get Param Reply&lt;br /&gt;
|0x581&lt;br /&gt;
|0x43&lt;br /&gt;
|0x2001&lt;br /&gt;
|Param Id&lt;br /&gt;
|Value x 32&lt;br /&gt;
|}&lt;br /&gt;
The value index must be determined by counting the output of the list command. E.g. &amp;quot;boost&amp;quot; at the very top has index 0, potnom has index 77. The indexes can change over firmware versions as new parameters are added somewhere in between.&lt;br /&gt;
&lt;br /&gt;
The Get/Set Param commands use the unique parameter identifier assigned to each savable parameter. These do not vary between firmware versions. Only savable parameters not spot values can be read and written by these commands.&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x22 0x00 0x20 0x00 0 0 0 0&amp;lt;/code&amp;gt;   Get value of &amp;quot;boost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x40 0x00 0x20 0x01 0x80 0x0C 0 0&amp;lt;/code&amp;gt; Set &amp;quot;fweak&amp;quot; to 100Hz (0xC80=3200 because scaled by 32)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x40 0xAA 0x31 0x01 0x08 0x10 1 0&amp;lt;/code&amp;gt; Map value of fweak to COB ID 0x1AA, starting at bit 8, stretching 16 bits, scaled by 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x601 # 0x22 0x10 0x20 0x0D 0 0 0 0&amp;lt;/code&amp;gt;   Get value of &amp;quot;pwmfrq&amp;quot; on any firmware version or build (0x0D = 13 from the PARAM_ENTRY() for &amp;quot;pwmfrq&amp;quot; in param_prj.h)&lt;br /&gt;
&lt;br /&gt;
== Mapping values to arbitrary CAN messages ==&lt;br /&gt;
Values can be mapped into a certain bit range of the 64 payload bits of a CAN message. They can either be read from the message or sent via a message. To do so enter&lt;br /&gt;
 can tx udc 123 0 16 10&lt;br /&gt;
This maps the value of udc to a CAN message with id 123 bits 0..15 (start at bit 0, span over 16 bits) with a gain of 10.&lt;br /&gt;
 can tx din_forward 123 24 1 1&lt;br /&gt;
would map the pin state of the forward input to bit 24 of CAN message with id 123.&lt;br /&gt;
&lt;br /&gt;
If you want to clear all messages, type&lt;br /&gt;
 can clear&lt;br /&gt;
If you want to remove only a specific signal (starting version 4.18.R) type&lt;br /&gt;
 can del &amp;lt;name&amp;gt;&lt;br /&gt;
To save your can map simply type &amp;quot;save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Mapping Values through the web interface ===&lt;br /&gt;
Value can also be mapped through the web interface. [[:File:Spot values.png|File:Spot values.png]]&lt;br /&gt;
&lt;br /&gt;
* CAN Id&lt;br /&gt;
** This is the Can Id assigned to the message.&lt;br /&gt;
* Position&lt;br /&gt;
** This is where in the 64 bit length of the CAN message the data should start.&lt;br /&gt;
* Bits&lt;br /&gt;
** How many bits are assigned to send the data.&lt;br /&gt;
* Gain&lt;br /&gt;
** This applies the internal fixed point scaling.&lt;br /&gt;
* Map to CAN&lt;br /&gt;
** TX to tell the control board to transmit the data onto the CANBUS&lt;br /&gt;
** RX to tell the control board to expect to receive this data from the CANBUS&lt;br /&gt;
&lt;br /&gt;
=== Limits ===&lt;br /&gt;
* A maximum of 10 messages can be defined&lt;br /&gt;
* Per message a maximum of 8 values can be mapped&lt;br /&gt;
* a value can not span across the 32-bit boundary, i.e. it must be fully contained in the first or second 32 bits of the message. E.g. &amp;quot;can tx udc 123 16 32 10&amp;quot; is not allowed&lt;br /&gt;
* A value can span maximum 32 bits&lt;br /&gt;
&lt;br /&gt;
== Endianness ==&lt;br /&gt;
CAN messages sent to, or received from the inverter are Little-endian.&lt;br /&gt;
&lt;br /&gt;
If you are sending or receiving messages containing multi-byte values then the byte order must be taken into account.&lt;br /&gt;
&lt;br /&gt;
[[Category:CAN]] [[Category:OpenInverter]]&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=1717</id>
		<title>Tesla Model 3 Rear Drive Unit</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=1717"/>
		<updated>2021-09-17T17:45:13Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: /* Connectors and Pinouts */ Add some details from my wiring harness&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== External Documentation ==&lt;br /&gt;
[https://openinverter.org/forum/viewtopic.php?f=10&amp;amp;t=575 Tesla Model 3 Rear Drive Unit Hacking] (forum thread)&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit (Hardware and reverse engineering details)&lt;br /&gt;
&lt;br /&gt;
https://github.com/jsphuebner/stm32-sine/tree/tesla-m3-gate-driver (STM32 &amp;quot;modboard&amp;quot; firmware dev. branch)&lt;br /&gt;
&lt;br /&gt;
==Part Numbers==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part Number&lt;br /&gt;
!Description&lt;br /&gt;
!Max Current&lt;br /&gt;
!Cars&lt;br /&gt;
|-&lt;br /&gt;
|1120970-00-F&lt;br /&gt;
|(ASY,M3,3DU,REAR,IGBT) - original RWD and/or &amp;quot;binned&amp;quot; Perf&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3&lt;br /&gt;
|-&lt;br /&gt;
|1120980-00-G&lt;br /&gt;
|(ASY,M3,REAR 3DU,MOSFET,GLOBAL) - early AWD motor&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-G&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521365-00-B&lt;br /&gt;
|(ASY, REMAN, 3DU-Rear 800 MOSFET) - Remanufactured 1120980-00-G&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521487-00-A&lt;br /&gt;
|(ASY, REMAN, 3DU-REAR 630 MOSFET) - Remanufactured 1120990-00-G&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Details from https://www.reddit.com/r/teslamotors/comments/ioat3d/rear_motor_efficiency_improvements_980_vs_990/.&lt;br /&gt;
&lt;br /&gt;
== Connectors and Pinouts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
!Description&lt;br /&gt;
!Pins&lt;br /&gt;
!Compatible Plugs&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Inverter connector&lt;br /&gt;
|30&lt;br /&gt;
|Tesla 1108960-00-8 (proprietary?)&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Rotor Shaft Resolver&lt;br /&gt;
|10 (8 connected)&lt;br /&gt;
|TE Connectivity 1-2282337-1&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Oil Pump&lt;br /&gt;
|3&lt;br /&gt;
|TE Connectivity 1-1718644-1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mechanical Specification ==&lt;br /&gt;
Max rotor speed: 18,447 rpm&lt;br /&gt;
&lt;br /&gt;
Input shaft gear: 31 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft input: 81 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft output: 24 teeth&lt;br /&gt;
&lt;br /&gt;
Ring gear: 83 teeth&lt;br /&gt;
&lt;br /&gt;
Gearbox Ratio: (81/31) * (83/24) = 9.036&lt;br /&gt;
&lt;br /&gt;
Details from https://www.youtube.com/watch?v=SRUrB7ruh-8.&lt;br /&gt;
&lt;br /&gt;
== Inverter Components ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Manufacturer&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
!Quantity&lt;br /&gt;
!Datasheet&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|ST GK026&lt;br /&gt;
|SiC FET drive transistors&lt;br /&gt;
|24&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STGAP1AS&lt;br /&gt;
|Gate Drivers&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-management/stgap1as.html&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|TMS320F28377DPTPQ&lt;br /&gt;
|C2000 Delfino MCU&lt;br /&gt;
|1&lt;br /&gt;
|[https://www.ti.com/lit/gpn/tms320f28377d TMS320F2837xD Dual-Core Microcontrollers Datasheet]&lt;br /&gt;
[https://www.ti.com/lit/ug/spruhm8i/spruhm8i.pdf TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual]&lt;br /&gt;
|-&lt;br /&gt;
|On Semi&lt;br /&gt;
|TCA0372BDW&lt;br /&gt;
|Resolver amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.onsemi.com/pdf/datasheet/tca0372-d.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|LMV844&lt;br /&gt;
|Temperature sensor amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.ti.com/lit/gpn/lmv844&lt;br /&gt;
|-&lt;br /&gt;
|Microchip&lt;br /&gt;
|25LC256E&lt;br /&gt;
|EEPROM&lt;br /&gt;
|1&lt;br /&gt;
|http://ww1.microchip.com/downloads/en/DeviceDoc/20005715A.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|SN65HVD1040A&lt;br /&gt;
|CAN Transceiver&lt;br /&gt;
|2&lt;br /&gt;
|https://www.ti.com/lit/ds/symlink/sn65hvd1040a-q1.pdf&lt;br /&gt;
|-&lt;br /&gt;
|NXP&lt;br /&gt;
|TJA1021&lt;br /&gt;
|LIN Transceiver&lt;br /&gt;
|1&lt;br /&gt;
|https://www.nxp.com/docs/en/data-sheet/TJA1021.pdf&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom&lt;br /&gt;
|ACPL-C87BT-000E&lt;br /&gt;
|DC HV sense&lt;br /&gt;
|1&lt;br /&gt;
|https://docs.broadcom.com/docs/AV02-3564EN&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|TLF35584QVVS2&lt;br /&gt;
|DC-DC Power and system watchdog&lt;br /&gt;
|1&lt;br /&gt;
|https://uk.farnell.com/infineon/tlf35584qvvs1xuma2/multi-volt-pwr-supply-ic-40-to/dp/3155085&lt;br /&gt;
|-&lt;br /&gt;
|TDK&lt;br /&gt;
|VGT22EPC-222S6A12&lt;br /&gt;
|DC-DC Transformer (gate drive?)&lt;br /&gt;
|1&lt;br /&gt;
|https://product.tdk.com/en/search/transformer/transformer/gate-drive/info?part_no=VGT22EPC-200S6A12&lt;br /&gt;
|}&lt;br /&gt;
Details from https://www.youtube.com/watch?v=l6dV2re3rtM.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=1705</id>
		<title>Tesla Model 3 Rear Drive Unit</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=Tesla_Model_3_Rear_Drive_Unit&amp;diff=1705"/>
		<updated>2021-08-25T13:53:05Z</updated>

		<summary type="html">&lt;p&gt;Davefiddes: Add in as may general details of the Tesla M3 drive unit as I can find from the hacking thread and linked videos.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== External Documentation ==&lt;br /&gt;
[https://openinverter.org/forum/viewtopic.php?f=10&amp;amp;t=575 Tesla Model 3 Rear Drive Unit Hacking] (forum thread)&lt;br /&gt;
&lt;br /&gt;
https://github.com/damienmaguire/Tesla-Model-3-Drive-Unit (Hardware and reverse engineering details)&lt;br /&gt;
&lt;br /&gt;
https://github.com/jsphuebner/stm32-sine/tree/tesla-m3-gate-driver (STM32 &amp;quot;modboard&amp;quot; firmware dev. branch)&lt;br /&gt;
&lt;br /&gt;
==Part Numbers==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part Number&lt;br /&gt;
!Description&lt;br /&gt;
!Max Current&lt;br /&gt;
!Cars&lt;br /&gt;
|-&lt;br /&gt;
|1120970-00-F&lt;br /&gt;
|(ASY,M3,3DU,REAR,IGBT) - original RWD and/or &amp;quot;binned&amp;quot; Perf&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3&lt;br /&gt;
|-&lt;br /&gt;
|1120980-00-G&lt;br /&gt;
|(ASY,M3,REAR 3DU,MOSFET,GLOBAL) - early AWD motor&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1120990-00-G&lt;br /&gt;
|(ASY,M3,REAR,MOSFET-LC,GLOBAL) - newer AWD motor&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521365-00-B&lt;br /&gt;
|(ASY, REMAN, 3DU-Rear 800 MOSFET) - Remanufactured 1120980-00-G&lt;br /&gt;
|800A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|-&lt;br /&gt;
|1521487-00-A&lt;br /&gt;
|(ASY, REMAN, 3DU-REAR 630 MOSFET) - Remanufactured 1120990-00-G&lt;br /&gt;
|600A&lt;br /&gt;
|Model 3 / Model Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Details from https://www.reddit.com/r/teslamotors/comments/ioat3d/rear_motor_efficiency_improvements_980_vs_990/.&lt;br /&gt;
&lt;br /&gt;
== Connectors and Pinouts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
!Description&lt;br /&gt;
!Pins&lt;br /&gt;
!Compatible Plugs&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Inverter connector&lt;br /&gt;
|30&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Rotor Shaft Resolver&lt;br /&gt;
|8&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Oil Pump&lt;br /&gt;
|3&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mechanical Specification ==&lt;br /&gt;
Max rotor speed: 18,447 rpm&lt;br /&gt;
&lt;br /&gt;
Input shaft gear: 31 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft input: 81 teeth&lt;br /&gt;
&lt;br /&gt;
Counter shaft output: 24 teeth&lt;br /&gt;
&lt;br /&gt;
Ring gear: 83 teeth&lt;br /&gt;
&lt;br /&gt;
Gearbox Ratio: (81/31) * (83/24) = 9.036&lt;br /&gt;
&lt;br /&gt;
Details from https://www.youtube.com/watch?v=SRUrB7ruh-8.&lt;br /&gt;
&lt;br /&gt;
== Inverter Components ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Manufacturer&lt;br /&gt;
!Part No&lt;br /&gt;
!Description&lt;br /&gt;
!Quantity&lt;br /&gt;
!Datasheet&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|ST GK026&lt;br /&gt;
|SiC FET drive transistors&lt;br /&gt;
|24&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|ST&lt;br /&gt;
|STGAP1AS&lt;br /&gt;
|Gate Drivers&lt;br /&gt;
|6&lt;br /&gt;
|https://www.st.com/en/power-management/stgap1as.html&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|TMS320F28377DPTPQ&lt;br /&gt;
|C2000 Delfino MCU&lt;br /&gt;
|1&lt;br /&gt;
|[https://www.ti.com/lit/gpn/tms320f28377d TMS320F2837xD Dual-Core Microcontrollers Datasheet]&lt;br /&gt;
[https://www.ti.com/lit/ug/spruhm8i/spruhm8i.pdf TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual]&lt;br /&gt;
|-&lt;br /&gt;
|On Semi&lt;br /&gt;
|TCA0372BDW&lt;br /&gt;
|Resolver amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.onsemi.com/pdf/datasheet/tca0372-d.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|LMV844&lt;br /&gt;
|Temperature sensor amplifier&lt;br /&gt;
|1&lt;br /&gt;
|https://www.ti.com/lit/gpn/lmv844&lt;br /&gt;
|-&lt;br /&gt;
|Microchip&lt;br /&gt;
|25LC256E&lt;br /&gt;
|EEPROM&lt;br /&gt;
|1&lt;br /&gt;
|http://ww1.microchip.com/downloads/en/DeviceDoc/20005715A.pdf&lt;br /&gt;
|-&lt;br /&gt;
|TI&lt;br /&gt;
|SN65HVD1040A&lt;br /&gt;
|CAN Transceiver&lt;br /&gt;
|2&lt;br /&gt;
|https://www.ti.com/lit/ds/symlink/sn65hvd1040a-q1.pdf&lt;br /&gt;
|-&lt;br /&gt;
|NXP&lt;br /&gt;
|TJA1021&lt;br /&gt;
|LIN Transceiver&lt;br /&gt;
|1&lt;br /&gt;
|https://www.nxp.com/docs/en/data-sheet/TJA1021.pdf&lt;br /&gt;
|-&lt;br /&gt;
|Broadcom&lt;br /&gt;
|ACPL-C87BT-000E&lt;br /&gt;
|DC HV sense&lt;br /&gt;
|1&lt;br /&gt;
|https://docs.broadcom.com/docs/AV02-3564EN&lt;br /&gt;
|-&lt;br /&gt;
|Infineon&lt;br /&gt;
|TLF35584QVVS2&lt;br /&gt;
|DC-DC Power and system watchdog&lt;br /&gt;
|1&lt;br /&gt;
|https://uk.farnell.com/infineon/tlf35584qvvs1xuma2/multi-volt-pwr-supply-ic-40-to/dp/3155085&lt;br /&gt;
|-&lt;br /&gt;
|TDK&lt;br /&gt;
|VGT22EPC-222S6A12&lt;br /&gt;
|DC-DC Transformer (gate drive?)&lt;br /&gt;
|1&lt;br /&gt;
|https://product.tdk.com/en/search/transformer/transformer/gate-drive/info?part_no=VGT22EPC-200S6A12&lt;br /&gt;
|}&lt;br /&gt;
Details from https://www.youtube.com/watch?v=l6dV2re3rtM.&lt;/div&gt;</summary>
		<author><name>Davefiddes</name></author>
	</entry>
</feed>