Update on my quest to design and build my own BMPPT electric bike lithium battery charger:
Searching what is out there in the first place:
So, the existing one in the market, either too expensive, or not suitable for my 36V battery. After researching into my options, I decided to go forward with Arduino Uno as the controller. Arduino Due would be definitely better (purely due to faster analog sampling time), but that's extra AUD70 that I don't want to spend. Besides, I already have the Uno in hand.
First thing, here's the simplified schematic of the boost controller. Nothing fancy:
What is not shown above is the voltage divider network and current sensing circuit to be fed to the Arduino Uno board. In the simulation above, you can see actual values. The pulse signal is mimicking the Uno Digital Output. The MOSFET symbol is incorrect, but hey, you get the idea. The inductor acts like the current source, and the switching circuit (by MOSFET) maintains the current by switching ON and OFF. Circuit above simulated using Falstad. I originally designed the system using following logic:
After doing the actual test, it's not looking good. It drew high peaking current with poor efficiency. After doing some investigation, I suspect the analog sampling is unreliable and causing my detection logic went hay-wire. So, I have no option but to go PWM mode. I am aware that SPV1020 also using PWM technique, but I'm struggling to get a good logic. Lots of trial and error at the moment. Will update...
Searching what is out there in the first place:
- Genasun: Looks really good, but with USD300 price tag (due to custom voltage). Ouch, for stingy people like me;
- SPV1020, or complete with development board STEVAL-ISV009V1: Looks very promising, until I read the details that it only goes up to 40V. Not high enough for my e-Bike battery (I need 42V at the end of the charge);
- BMPPT 60 from GSL electronics: only good for 48V battery, not for my 36V battery.
So, the existing one in the market, either too expensive, or not suitable for my 36V battery. After researching into my options, I decided to go forward with Arduino Uno as the controller. Arduino Due would be definitely better (purely due to faster analog sampling time), but that's extra AUD70 that I don't want to spend. Besides, I already have the Uno in hand.
First thing, here's the simplified schematic of the boost controller. Nothing fancy:
What is not shown above is the voltage divider network and current sensing circuit to be fed to the Arduino Uno board. In the simulation above, you can see actual values. The pulse signal is mimicking the Uno Digital Output. The MOSFET symbol is incorrect, but hey, you get the idea. The inductor acts like the current source, and the switching circuit (by MOSFET) maintains the current by switching ON and OFF. Circuit above simulated using Falstad. I originally designed the system using following logic:
After doing the actual test, it's not looking good. It drew high peaking current with poor efficiency. After doing some investigation, I suspect the analog sampling is unreliable and causing my detection logic went hay-wire. So, I have no option but to go PWM mode. I am aware that SPV1020 also using PWM technique, but I'm struggling to get a good logic. Lots of trial and error at the moment. Will update...