Nissan Leaf (and Tesla) coolant pumps
-
- Posts: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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
I need a bigger hammer!
- larsrengersen
- Posts: 103
- Joined: Tue May 28, 2019 9:42 am
- Has thanked: 9 times
- Been thanked: 23 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: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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
I need a bigger hammer!
-
- Posts: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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.
I need a bigger hammer!
- Tremelune
- Posts: 64
- Joined: Mon Jun 10, 2019 6:07 pm
- Location: Los Angeles
- Has thanked: 1 time
- Been thanked: 7 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: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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.
I need a bigger hammer!
-
- Posts: 3276
- Joined: Mon Dec 24, 2018 1:37 pm
- Location: Slovenia
- Has thanked: 80 times
- Been thanked: 239 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: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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.
I need a bigger hammer!
-
- Posts: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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. 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?
I need a bigger hammer!
-
- Posts: 3276
- Joined: Mon Dec 24, 2018 1:37 pm
- Location: Slovenia
- Has thanked: 80 times
- Been thanked: 239 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: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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.
I need a bigger hammer!
-
- Posts: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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
I need a bigger hammer!
- Gregski
- Posts: 2339
- Joined: Tue Sep 14, 2021 10:28 am
- Location: Sacramento, California
- Has thanked: 356 times
- Been thanked: 474 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: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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.
I need a bigger hammer!
- Gregski
- Posts: 2339
- Joined: Tue Sep 14, 2021 10:28 am
- Location: Sacramento, California
- Has thanked: 356 times
- Been thanked: 474 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: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 times
- Contact:
- Gregski
- Posts: 2339
- Joined: Tue Sep 14, 2021 10:28 am
- Location: Sacramento, California
- Has thanked: 356 times
- Been thanked: 474 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: 2339
- Joined: Tue Sep 14, 2021 10:28 am
- Location: Sacramento, California
- Has thanked: 356 times
- Been thanked: 474 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: 861
- Joined: Sun Feb 23, 2020 9:24 am
- Location: Northern Ireland
- Has thanked: 273 times
- Been thanked: 153 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.
I need a bigger hammer!
- Bratitude
- Posts: 787
- Joined: Thu Jan 02, 2020 7:35 pm
- Location: Canada
- Has thanked: 60 times
- Been thanked: 177 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