Nissan Leaf (and Tesla) coolant pumps
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Nissan Leaf (and Tesla) coolant pumps
Hi guys
Can anyone please advise me on how to control Nissan Leaf coolant pumps.
I'm in the process of installing the cooling system and just realised they need to be controlled, maybe by PWM
I found the photo below on the Nissan Leaf forum from Dala but there was no further explanation. https://www.mynissanleaf.com/viewtopic.php?t=31574
I have two of these pumps so it would be nice to use them if possible.
Also any advice on how to plumb the system gratefully received
Can anyone please advise me on how to control Nissan Leaf coolant pumps.
I'm in the process of installing the cooling system and just realised they need to be controlled, maybe by PWM
I found the photo below on the Nissan Leaf forum from Dala but there was no further explanation. https://www.mynissanleaf.com/viewtopic.php?t=31574
I have two of these pumps so it would be nice to use them if possible.
Also any advice on how to plumb the system gratefully received
- larsrengersen
- Posts: 143
- Joined: Tue May 28, 2019 9:42 am
- Has thanked: 10 times
- Been thanked: 28 times
Re: Nissan Leaf coolant pumps
Looks like the same pump as the Tesla pump so you can try that control scheme https://www.evcreate.nl/using-tesla-the ... tesla-pump
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
Great call, I'll try that as soon as I figure out how to create the PWM signal.larsrengersen wrote: ↑Sat Dec 24, 2022 10:33 am Looks like the same pump as the Tesla pump so you can try that control scheme https://www.evcreate.nl/using-tesla-the ... tesla-pump

-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
Turns out they start pumping after a few seconds with only 12V connected.
I may check out controlling with pwm later but for now it will allow me to charge the battery.
I may check out controlling with pwm later but for now it will allow me to charge the battery.
- Tremelune
- Posts: 74
- Joined: Mon Jun 10, 2019 6:07 pm
- Location: Los Angeles
- Has thanked: 2 times
- Been thanked: 13 times
Re: Nissan Leaf coolant pumps
Wait, really? I remember connecting mine to 12V and it never spun. I can't remember how long I attached the leads for, though...Maybe I disconnected them too soon.
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
Yip, with only 12V connected the pump starts after 5 or 6 seconds. I tried using a cheap ebay motor controller that the Aliexpress listing claimed was PWM https://s.click.aliexpress.com/e/_Dl1dEsf but couldn't adjust the speed of the pump. I even tried using 5V, 6V, 7V etc through the motor controller but still no joy. Maybe it requires a specific frequency to control it or maybe I didn't connect it correctly but for now I'm happy it is working well enough for testing purposes.
-
- Posts: 3566
- Joined: Mon Dec 24, 2018 1:37 pm
- Location: Slovenia
- Has thanked: 134 times
- Been thanked: 336 times
- Contact:
Re: Nissan Leaf coolant pumps
I noticed on Ampera pumps they would be run by 1kHz PWM and can by varied by changing duty. You could try some off the shelf PWM regulator...Alibro wrote: ↑Thu Dec 29, 2022 8:04 pm Yip, with only 12V connected the pump starts after 5 or 6 seconds. I tried using a cheap ebay motor controller that the Aliexpress listing claimed was PWM https://s.click.aliexpress.com/e/_Dl1dEsf but couldn't adjust the speed of the pump. I even tried using 5V, 6V, 7V etc through the motor controller but still no joy. Maybe it requires a specific frequency to control it or maybe I didn't connect it correctly but for now I'm happy it is working well enough for testing purposes.
https://leafdriveblog.wordpress.com/201 ... -and-fans/
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
Thanks, I should have guessed you would have something up in your blog about it.arber333 wrote: ↑Thu Dec 29, 2022 10:04 pm I noticed on Ampera pumps they would be run by 1kHz PWM and can by varied by changing duty. You could try some off the shelf PWM regulator...
https://leafdriveblog.wordpress.com/201 ... -and-fans/

I've ordered a couple of cheap PWM generators of ebay to see if they will work but in the meantime I'm going to see if I can plagiarise someones Arduino code if I can find something. The pump works fine with only 12V but is pumping full power which is not necessary for my setup.
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
So after a lot of messing about I've figured out how to control the pump. It needs a 2hz 5V PWM signal to the speed control input.
Using the tables below I managed to use an Arduino Uno to send the PWM at around 20% duty cycle and the pump spooled right down until it was barely audible.
Full speed is 4700rpm and slowest is 750rpm so I'll try to get it spinning around 1000rpm which I think using the calculator below is 24% duty cycle
Input Output
(pwm %) (RPM)
0 – 8 Invalid input
8 – 12 0
13 – 17 Invalid input
18 – 20 750
21 – 79 (65,8 x PWM – 550)
80 – 82 4700
83 – 100 Invalid input
Pump PWM to RPM
This is the code I used
// Set-up fast PWM on the Arduino UNO at 2Hz on Digital pin D9 with inverted output
void setup() {
pinMode(9, OUTPUT); // Set digital pin 9 (D9) to an output
TCCR1A = _BV(COM1A1) | _BV(COM1A0) | _BV(WGM11); // Enable the PWM output OC1A on digital pins 9 and invert output
TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS12); // Set fast PWM and prescaler of 256 on timer 1
ICR1 = 31250; // Set the PWM frequency to 2Hz: 16MHz/(256 * 2Hz) - =
OCR1A = 25000; // Set the duty-cycle to 20%:
}
void loop() {}
It was code I copied off the internet and tweaked so I am not sure I have it right but I'll confirm it later as I don't have time to look at it properly today.
Having said that with this code on the Uno and the GND of the arduino connected to car ground the pump slowed down by a LOT.
I had an oscilloscope on the output but it struggled to confirm the frequency jumping from 1 to 2Hz then even 4Hz but it still worked as required.
Funny thing is I found when I set the OCR1A to 20% of ICR1 I saw on the scope the PWM looked more like 80% so I set it to 80% and it looked like 20% on the scope. I just noticed in the description the output is inverted. Am I right about that and if so what is the point of inverting the output?
Using the tables below I managed to use an Arduino Uno to send the PWM at around 20% duty cycle and the pump spooled right down until it was barely audible.

Input Output
(pwm %) (RPM)
0 – 8 Invalid input
8 – 12 0
13 – 17 Invalid input
18 – 20 750
21 – 79 (65,8 x PWM – 550)
80 – 82 4700
83 – 100 Invalid input
Pump PWM to RPM
This is the code I used
// Set-up fast PWM on the Arduino UNO at 2Hz on Digital pin D9 with inverted output
void setup() {
pinMode(9, OUTPUT); // Set digital pin 9 (D9) to an output
TCCR1A = _BV(COM1A1) | _BV(COM1A0) | _BV(WGM11); // Enable the PWM output OC1A on digital pins 9 and invert output
TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS12); // Set fast PWM and prescaler of 256 on timer 1
ICR1 = 31250; // Set the PWM frequency to 2Hz: 16MHz/(256 * 2Hz) - =
OCR1A = 25000; // Set the duty-cycle to 20%:
}
void loop() {}
It was code I copied off the internet and tweaked so I am not sure I have it right but I'll confirm it later as I don't have time to look at it properly today.
Having said that with this code on the Uno and the GND of the arduino connected to car ground the pump slowed down by a LOT.
I had an oscilloscope on the output but it struggled to confirm the frequency jumping from 1 to 2Hz then even 4Hz but it still worked as required.
Funny thing is I found when I set the OCR1A to 20% of ICR1 I saw on the scope the PWM looked more like 80% so I set it to 80% and it looked like 20% on the scope. I just noticed in the description the output is inverted. Am I right about that and if so what is the point of inverting the output?
-
- Posts: 3566
- Joined: Mon Dec 24, 2018 1:37 pm
- Location: Slovenia
- Has thanked: 134 times
- Been thanked: 336 times
- Contact:
Re: Nissan Leaf coolant pumps
Duty means how long output is ON between pulses. If you use N-mos switch this means you interrupt (pull down) positive signal on pullup resistor. Then you need to invert your command. So PWM will be on when you command your switch off.
So for your case use 1kOhm resistor from 5V to your pin.
Now you need to invert your logic to get correct function.
Mind you i found sometimes pumps already use inverted logic within their control. 80% then means almost off...
So for your case use 1kOhm resistor from 5V to your pin.
Now you need to invert your logic to get correct function.
Mind you i found sometimes pumps already use inverted logic within their control. 80% then means almost off...
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
I don't quite understandarber333 wrote: ↑Sun Jan 01, 2023 3:43 pm Duty means how long output is ON between pulses. If you use N-mos switch this means you interrupt (pull down) positive signal on pullup resistor. Then you need to invert your command. So PWM will be on when you command your switch off.
So for your case use 1kOhm resistor from 5V to your pin.
Now you need to invert your logic to get correct function.
Mind you i found sometimes pumps already use inverted logic within their control. 80% then means almost off...
I noticed the sense wire from the pump sits at 5V so it makes sense that when the PWM signal is low it's pulling the sense wire down.
I guess with 20% duty cycle it is pulled down 80% of the time but I don't understand why I need a pullup resistor as it seems to be working fine the way it is, I just connected pin 9 to the pump and worked, will this cause other issues?
Thanks for the help.

-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
I had another play with this tonight and the following sketch works a treat and this time the PWM is not inverted so increasing the PWM percent increases the speed of the pump. I'm not sure what the RPM is but if my maths are correct it's around 2400rpm. I can see coolant flowing well but the pump is whisper quiet, even better the current draw fell from over 3A to under 500mA and the coolant is no longer cavitating which it was before.
To change the pump speed by a small but noticeable amount increment/decrement OCR1A by 1000 at a time.
Gnd on the Arduino is connected to 12V ground
Pin 9 on the Arduino is connected directly to pin3 on the pump.
Where I found the original sketch that I adapted
https://forum.arduino.cc/t/how-to-set-p ... 2?u=alibro
The link to a similar Tesla pump giving more info posted by larsrengersen above https://www.evcreate.nl/using-tesla-the ... tesla-pump
Code: Select all
// Set-up fast PWM on the Arduino UNO at 1Hz on Digital pin D9
void setup() {
pinMode(9, OUTPUT); // Set digital pin 9 (D9) to an output
TCCR1A = _BV(COM1A1) | _BV(WGM11); // Enable the PWM output OC1A on digital pins 9
TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS12); // Set fast PWM and prescaler of 256 on timer 1
ICR1 = 31249; // Set the PWM frequency to 2Hz: 16MHz/(256 * 2Hz) - 1 = 31249
OCR1A = 14062; // Set the duty-cycle to approx 45%: 31249 / 100 * 45 = 14062
}
void loop() {}
Gnd on the Arduino is connected to 12V ground
Pin 9 on the Arduino is connected directly to pin3 on the pump.
Where I found the original sketch that I adapted
https://forum.arduino.cc/t/how-to-set-p ... 2?u=alibro
The link to a similar Tesla pump giving more info posted by larsrengersen above https://www.evcreate.nl/using-tesla-the ... tesla-pump
- Gregski
- Posts: 2739
- Joined: Tue Sep 14, 2021 10:28 am
- Location: Sacramento, California
- Has thanked: 500 times
- Been thanked: 946 times
- Contact:
Re: Nissan Leaf coolant pumps
just wanted to say thanks, and prove with pics that your work, was put to good use, this is great, thank you for sharing the code / solution
"I don't need to understand how it works, I just need to understand how to make it work!" ~ EV Greg
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
Glad it worked for you. Did you make any changes to the code?
I was using an Uno to switch relays and control ignition timing so it was fairly simple to incorporate the pump code into the ignition code.
I suspect a Nano would work equally well and be a bit smaller.
- Gregski
- Posts: 2739
- Joined: Tue Sep 14, 2021 10:28 am
- Location: Sacramento, California
- Has thanked: 500 times
- Been thanked: 946 times
- Contact:
Re: Nissan Leaf coolant pumps
How about a Teensy?Alibro wrote: ↑Fri Jul 21, 2023 2:34 pm Glad it worked for you. Did you make any changes to the code?
I was using an Uno to switch relays and control ignition timing so it was fairly simple to incorporate the pump code into the ignition code.
I suspect a Nano would work equally well and be a bit smaller.
"I don't need to understand how it works, I just need to understand how to make it work!" ~ EV Greg
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
- Gregski
- Posts: 2739
- Joined: Tue Sep 14, 2021 10:28 am
- Location: Sacramento, California
- Has thanked: 500 times
- Been thanked: 946 times
- Contact:
Re: Nissan Leaf coolant pumps
small, more powerful, and run Arduino code using Teensyduino no you can't make this stuff up !
"I don't need to understand how it works, I just need to understand how to make it work!" ~ EV Greg
- Gregski
- Posts: 2739
- Joined: Tue Sep 14, 2021 10:28 am
- Location: Sacramento, California
- Has thanked: 500 times
- Been thanked: 946 times
- Contact:
Re: Nissan Leaf coolant pumps
FYI if you try 'n save a few bucks and buy a knock off arduino UNO like the WeMos D1 you'll end up having to jump through hoops in order to get Arduino IDE to recognize your board and then in order to compile and upload the code, I decided to try the WeMos D1 card just cause it has the solder through pin holes in the board so that I could hard wire that PWM wire, but I gave up
Wemos D1 Mini Setup
Wemos D1 Mini Setup
"I don't need to understand how it works, I just need to understand how to make it work!" ~ EV Greg
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf coolant pumps
Apologies if this is teaching your granny to suck eggs but it took me a while to figure out the first time I bought an Arduino clone.
Many of the Arduino clones have a different USB adaptor to the real ones so if using Windoze you need to download the driver for them as Windoze is too stupid to have the driver included. A quick Google will find it but the chip is CH340/Ch341.
Also you may need to select Nano then select ATmega328P(Old Bootloader) to get the sketch to upload.
Many of the Arduino clones have a different USB adaptor to the real ones so if using Windoze you need to download the driver for them as Windoze is too stupid to have the driver included. A quick Google will find it but the chip is CH340/Ch341.
Also you may need to select Nano then select ATmega328P(Old Bootloader) to get the sketch to upload.
- Bratitude
- Posts: 997
- Joined: Thu Jan 02, 2020 7:35 pm
- Location: Canada
- Has thanked: 174 times
- Been thanked: 359 times
- Contact:
Re: Nissan Leaf (and Tesla) coolant pumps
connector for the Nissan/tesla coolant pump is Sumitomo 6189-1105
https://bratindustries.net/ leaf motor couplers, adapter plates, custom drive train components
Re: Nissan Leaf (and Tesla) coolant pumps
Found this post and the very useful informations about the PWM Signal.
I like to use a ESP32 based HW. This one delivers 3.3V output. Has anyone tried this for PWM control of the Nissan / Tesla pumps?
Thanks in advance
Frank
I like to use a ESP32 based HW. This one delivers 3.3V output. Has anyone tried this for PWM control of the Nissan / Tesla pumps?
Thanks in advance
Frank
Re: Nissan Leaf (and Tesla) coolant pumps
Just gave it a short try and it failed. Logik Level Converter from 3.3 to 5V is the way to go. Because my HW does not provide 5V, an 7805 with 12V input is used.
Maybe someone is interested in the code since 2Hz is not possible with standard PWM. I've used ledc.
Code: Select all
#define PWM_CHANNEL 0
#define PWM_FREQ 2 // 2 Hz
#define PWM_RESOLUTION 8 // 8 Bit = 0..255
void setup() {
...
// Tesla Battery Pump PWM Control
ledcSetup(PWM_CHANNEL, PWM_FREQ, PWM_RESOLUTION);
ledcAttachPin(BAT_PUMP, PWM_CHANNEL);
}
int getPumpPWM(float temp) {
if (temp < 35) return 18; // standard circulation
if (temp < 45) return 24; // advanced cooling
return 82; // MAX mode
}
void loop() {
...
// Pump control
int pwmValue = getPumpPWM(bat_temp);
ledcWrite(PWM_CHANNEL, map(pwmValue, 0, 100, 0, 255)); // % -> 0..255
...
}
Still have to play around with the temp and pwm settings, but this can wait.
Best regards
Frank
-
- Posts: 982
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 369 times
- Been thanked: 221 times
- Contact:
Re: Nissan Leaf (and Tesla) coolant pumps
If you have a Zombieverter VCU I believe it can output the PWM required. I've not tried it yet but will report back when I do.