DC-DC Solar EV Charger

The key component to transform the solar car from a backyard science experiment to cost effective practical transportation.

Public Chat
Similar projects worth following
I've added solar charging to my Chevy Volt with near-OEM performance. This means charging the high voltage drive battery directly by means of a step-up DC-DC charge controller. Details like Maximum Power Point Tracking and a trickle charger for the 12v battery are needed too. A Programmable Logic Controller is needed to operate the contactors for safe high voltage battery charging. This project incorporates all of the needed components on a single circuit board, minimizing cost and weight, and maximizing reliability and efficiency.

Submitted for Hack-a-Day Prize round 5 (Save the World Wildcard)

Installing a moderately sized solar array on a vehicle’s roof can collect enough energy to drive 5 to 10 miles a day. When compared to the 37 miles a day that the average American drives, it may seem insignificant. Everyone wants to say the glass is three quarters empty. But we should think of it being one quarter full. A 25% reduction in vehicle “energy consumption” is huge.

Many areas still do not have good EV charging infrastructure.  Workplace chargers would be ideal for managing the Duck Curve. The EVs could charge during the day from the plentiful solar energy.  But many companies are still not willing to install chargers.  A vehicle mounted solar charger will work anywhere there is sun.  This is a practical and tangible way for drivers to reduce their environmental impact. And it has the potential for an economic return on investment by supplying clean, low cost electricity directly to the vehicle. The cost of a solar charger might be offset by choosing not to install a home EVSE for vehicle charging. Or it could allow an urban dweller who does not drive much to get an electric or plug-in hybrid electric vehicle even if they can't install an EVSE. 

This project aims to add solar charging to a Chevy Volt in a manner that does not require any special work by the driver. Well, it will need to be parked in a sunny location. But the driver will not need to plug a cable into the J1772 port for charging like the majority of solar car projects. This project also avoids an additional battery for temporary energy storage and the losses from multiple AC to DC conversions.

Project Progress

☑Solar array mounted on vehicle.

☑IOT data logger.

☑High voltage DC-DC charge controller.

☑Charging while parked.

☑Maximum power point tracking

☑Also charge the 12v battery during the day.

☒ Relay coil economizer. Currently disabled due to malfunctioning in the morning.

☑Automatic switching between charging during the day and low power standby mode at night.

Future Directions

☐Avoid check engine light without manually switching off charger before driving.

☐Charging while driving. 

☐Charging while charging. (Combined grid and solar charging)

☐Larger and/or more aerodynamic solar array.


The DC-DC converter firmware source code is licensed GPL v3. Some of the underlying libraries whether written by myself or others are released under MIT license. 

The roof mounted solar array is nearly the maximum size possible before it starts to interfere with normal vehicle usage. The car currently has Hightec Solar 210w panels. (200w bifacial shown)  Radio reception, especially satellite, is compromised.  The rear hatch can be opened without interference. The solar panels are barely visible through the windshield when seated in the driver's seat. This solar panel setup should not be considered ideal. It was just an easy way to get a good array mounted without permanent vehicle modifications. That was important at the beginning of this project when it was uncertain whether the DC charging would be possible.

A Raspberry Pi receives data from the high voltage management CAN bus and uploads it to 

The solar energy collected should correlate with Global Horizontal Irradiance. The GHI is measured at a test station about 10 km away. Sometimes the charger may be down for maintenance or rejecting energy because the battery is full. 

Under the hood is not the ideal location for the DC-DC converter, but it is easy to access and makes for good photos. Two manual shutdown switches are accessible with the hood closed. 


Input: 30-43vdc, MPPT intended for 72 cell solar array, should work with 60 cell panels but may not reach maximum power point at high output voltages. 

Main Output: 300vdc-400vdc 1A, maximum continuous power about 300w, CV/CC modes, isolated
Aux Output: 13.8vdc 3A, CV/CC...

Read more »


Schematic in easy to read PDF format

Adobe Portable Document Format - 617.96 kB - 10/23/2022 at 06:59


PCB CAD files, includes DC-DC and BCI2103, Interactive HTML BOM

Zip Archive - 2.70 MB - 10/22/2022 at 21:08



Raspberry Pi program for logging solar energy and battery state.

x-tar - 40.00 kB - 10/22/2022 at 19:12


  • 1 × BCI2103F bare board Battery Control Interface board
  • 1 × 40 pin female header SFH11-PBPC-D20-ST-BK
  • 7 × Schottky Diode 1N5819
  • 6 × 25 conductor flexible control cable CF5-05-25
  • 1 × Rectangular automotive recepticle 33472-1201

View all 139 components

  • Additional Considerations

    Real Solar Cars10/21/2022 at 04:42 0 comments

    The PCDB1910 met most of the minimum requirements with copious jumper wires installed. Most importantly, it proved that it was possible to DC charge the vehicle without damage or constantly setting the “check engine” light. My experience with this board led to a list of improvements for the next revision.

    1. Maximum power point tracking is desirable for all solar electric systems. Well, Electrodacus might disagree. But with a small vehicle mounted solar array, the vehicle will consume all the power it can generate. I eventually added MPPT to the software for the first board revision after running without it for a while. It is particularly frustrating to see reduced charge power at low state of charge.
    2. 12v auxiliary output. 12v charge controllers are a common off the shelf item. But the marginal cost of adding a 12v output to the main board would surely be less than a separate 12v charger. There is also the issue of running two MPPT controllers off one solar array. They may conflict. Many charge controllers expect the solar negative connection to be floating with respect to the battery negative. I was lucky to find a charge controller that worked in this situation. The first board revision using the Propeller 1 was intended to have this feature but it did not have enough current sensors or processor cores.
    3. 12v adjustable output. The Chevy Volt operates its factory DC-DC converter (replaces the alternator) at a reduced voltage sometimes to save power. The off-the-shelf charge controller I used with the first board revision output a constant 14.4v due to the load of the contactors and battery management system. Reducing this to 13.8v or below may save some energy.
    4. Energy logging. It’s important to monitor the amount of energy collected to detect problems This data will also be useful for promoting this unusual solar car system. The first board revision used the battery backed RAM of a DS1307 to maintain a kilowatt-hour count. Now, I use a Raspberry Pi that logs data from the solar charger board as well as the vehicle’s battery management system. It even uploads to the website.
    5. Automatic day/night switching sounds trivial at first. But when it comes to programming the microcontroller, it becomes complicated. Most charge controllers can cycle on and off at dawn without issue. That is a big issue when charging a high voltage drive battery. The high voltage charger should be turned on only when there is enough available power to overcome the overhead of the contactors and battery management system. And the number of on/off cycles should be minimized because that involves closing the contactors and a high voltage precharge.
    6. Contactor coil economizer. Contactors require a certain amount of voltage to close. But once closed, they will stay closed with much less voltage. If the voltage can be reduced during contactor operation some power can be saved. The Chevy Volt does not economize the contactors. This may be a bad idea while driving; the vibration could cause the contactor to open unexpectedly. And there is not much motivation to economize the contactors when charging from grid power.
    7. Electromagnetic interference. Since the solar panels are mounted extremely close to the radio antenna, any electromagnetic interference from a solar charger could have a significant impact on radio reception.
    8. Function as a logic analyzer for development work. The best way to figure out the how to operate the vehicle’s contactors is to put the vehicle in different states and observe what it does.
    9. Designed for an enclosure. Since dust and moisture is common in the automotive environment an enclosure with an IP68 rating would be ideal. However, the space available in the vehicle is fairly restricted. Also, the board needs to dissipate heat well. So a plastic enclosure would not be as desirable. Most power inverters use an extruded aluminum enclosure for this reason. As a compromise I designed the board to fit into an IP66 rated Bud EXN-23366...
    Read more »

  • Charge Controller Minimum Requirements

    Real Solar Cars10/07/2022 at 03:27 0 comments

    One it was clear that I needed a custom step-up charge controller for my solar car project, I needed to plan out the design. Let’s address the MUST HAVE requirements first:

    1. Output voltage regulation is one important safeguard against overcharging the lithium-ion battery. Voltage regulation is also necessary to prevent damage to other vehicle electronic should the contactors open unexpectedly for any reason.
    2. Isolated high voltage output. While solar panels are commonly connected in arrays capable of generating 400v DC, it would be best practice to have the solar panels isolated from the high voltage drive battery. This proved to be a minor burden. The standard non-isolated step-up converter is not well suited for a 10:1 voltage ratio anyway. I used a full bridge converter which provided the necessary voltage gain and isolated output.
    3. Contactor control output. It seemed much easier to access the battery pack using the existing contactors instead of opening the pack and making a new connection inside. More on this in another update, or check the Real Solar Cars youtube channel. It would not work to simply turn the car on to charge. The Chevy Volt uses about 250w at idle. The 420w array on the car usually collects about 200w in realistic conditions. In any case, 250w is a lot of overhead. To minimize the overhead, it’s necessary to charge the car with all systems off except the contactors and battery management system. The battery management system on the Chevy Volt is enabled by a 12v signal on the same connector as the contactor signals.
    4. A CAN bus interface is needed to receive data from the vehicle’s factory battery management system.

    The automotive environment adds unique challenges that are not often encountered in DIY projects:

    1. High and low temperatures were addressed by choosing automotive grade parts when possible. I also spent a lot of effort making the board operate efficiently to minimize the temperature rise. Multiple temperature sensors help ensure that the board can shut down before reaching damaging temperatures.
    2. Moisture may eventually lead to corrosion. This is likely to affect connectors first. So no unnecessary connectors. It may be desireable to apply conformal coat to the circuit board.
    3. Vibration is another reason to avoid unnecessary connectors.
    4. Serviceability. The circuit board needs to be removable for repairs or modifications. I ended up using a 40 pin IDE connector for this.
    5. Safety critical. It’s not likely that rouge data on the Chevy Volt high voltage management CAN bus would cause a collision. This bus is separate from the main CAN bus. What is more likely is getting stranded at the side of the road. The solar charging board should not impede any important vehicle operations. It must be possible to switch off the solar charger board and have the vehicle operate as before. This was accomplished by adding diodes which allow the vehicle’s contactor control signals to pass through. In the event that these diodes interfere with vehicle operation, the solar charger can be quickly disconnected and replaced with a bypass board. The bypass board connects the input signals directly to the output signals.


    Charger board minimum required features:

    1. 400v DC regulated and programmable output voltage.
    2. 400v DC output to be isolated from solar panels and vehicle chassis.
    3. CAN bus and contactor control outputs for the vehicle interface.

    Charger board design guidance:

    1. All important functionality incorporated on a single circuit board.
    2. Preference for vibration resistant SMT parts when possible.
    3. A single board with mostly SMT parts is preferable for mass manufacturing as well.

    System design guidance:

    1. A connector to allow the solar charger to be quickly replaced with a bypass board.
    2. Pass-through diodes mounted on the vehicle side of the interface connector.
    3. A high quality highly flexible interface cable rated for water and oil.

    The PCDB1910 board was designed to meet these minimum feature requirements. 

  • There's more than one way to ... build a solar car.

    Real Solar Cars10/04/2022 at 06:38 0 comments

    1. The easiest way is to add an off-grid solar system to the trunk.  Many people have done this.  It requires no electrical modifications to the vehicle. There are many downsides.  
      1. A vehicle is a hostile environment for lithium batteries and inverters.  Adding a cooling system adds more cost and parasitic energy losses. 
      2. The added batteries add weight to the vehicle. Although 12 kg for a single LiFePO4 shouldn't matter much.  The additional energy on board should more than counteract the range loss.
      3. Battery degradation ruins the economics of solar charging. Even a cheap LiFePO4 that might last 4000 cycles adds $0.06 per kwh.
      4. The charging cable must be plugged into the vehicle's J1772 port.  Charging while driving is not permitted. 
      5. The overall efficiency of this setup is hurt by converting low voltage DC into 120v AC and then converting the 120v AC into 400v DC. Also, the MPPT charge controller is an additional conversion from 17v to 13v for the battery charging. 
    2. Try to use existing vehicle hardware and hack it to work for solar charging.  The on-board charger is simply a large switch-mode power supply.  So in addition to AC power it should be able to charge from 100-300v DC. In a test, the Chevy Volt did charge from 120v DC. The charger reports RMS voltage over CAN bus. The rest of the car has no way of knowing that I fed it DC. 
      1. The vehicle's on-board charger typically has a maximum power of 3000-6000w. The efficiency of these chargers at 50-300w is likely to be low. 
      2. This method might also require plugging into the vehicle's J1772 port, preventing charging while driving. But maybe that interlock could be hacked around?
      3. The J1772 standard only allows current down to 6 amps. Maybe the voltage could be reduced to 100v and still charge.  An array capable of producing 600w won't easily fit on the roof of a car.  Efforts to reduce that charge current on the Chevy Volt were not successful. The charger output power is controlled by varying the output current.  The Volt's computer adjusts the output current in order to control the AC input current. It is possible to override the output current via CAN bus. But then charging will soon stop when the computer notices a large difference between the commanded current and the measured current.  This effort was abandoned due to concerns over point 2.1.
    3. The best way is to use purpose-built hardware. This is the only method that would be considered by OEM manufacturers like Sono Motors or Lightyear. A dedicated solar charger should be slightly more efficient than an AC charger since the power factor correction circuitry can be eliminated. Additionally it will be sized for efficient operation at the array's actual output. 
      1. Connecting the new charger into an existing vehicle battery is its own can of worms. More on that in another update. 
      2. There is not a lot of suitable electronics on the market to do this.  Perhaps a microinverter could be hacked to function as the required DC to DC converter. Remember that microinverters have a complex anti-islanding algorithm that is necessary for safe grid connection. I felt that it was better to put effort into designing a custom converter.  The GZF inverter modules seem ideal at first glance, but those have no output voltage regulation. With the high open circuit voltage of a solar panel the converter can output 900v. No way is that thing going on my daily driver! Also, they are wound for a 12v input, not the 17v maximum power point of a "12v" solar panel. And they operate at a fixed voltage ratio, preventing maximum power point tracking.
    4. A missed opportunity.  If I was writing the J1772 specification I would add a mode for "solar charge."  This would allow for cheap off-grid solar carports.   Instead of specifying a current limit, this PWM frequency would instruct the vehicle to use a maximum power point tracking algorithm.  The array...
    Read more »

View all 3 project logs

  • 1
    Building the Battery Interface Cable for G1 Volt
    1. Solder the 40 pin female connector to the BCI2103 pcb.
    2. Cut a 6 foot piece of 25 conductor 20 awg cable.  The CF5-05-25 cable has numbered wires. 
    3. Remove 4 inches of sheath from one end and 6 inches from the other. 
    4. At the end with 6 inches of sheath removed, strip wires 1-24 leaving 1/4 inch of bare copper. 
    5. Attach the 33001-3004 terminals to wires 1-12.
    6. Attach the 33011-0004 terminals to wires 13-24.
    7. Insert the wires into their numbered positions.  Since the connectors are numbered 1-12 and we are connecting two connectors to one cable, the numbers for the second connector are offset by 12. Note the ordering differs between the connectors. 
    8. Slip a cable gland over the cable from the other end which has 4 inches of sheath removed. The exterior end goes towards the connectors. The interior end goes towards the wires. 
    9. Solder the wires to a BCI2103F pcb according to the wire numbers shown. It might be best to cut, strip, and solder one wire at a time. 
      Some wires remain unconnected. They are needed only to seal the connectors from water. 
    10. Solder the 1N5819 diodes. 
    11. Connect the two connectors together and check for continuity across the diodes.
    12. Add a small jumper wire or solder bridge to connect the two CANL lines together.  And connect the CANH lines together as well.  This will ensure the most reliable operation since there is no software to make use of the CAN bridge feature yet.  The jumpers allow CAN data to pass through the cable even if the 40 pin connector is disconnected. The diodes allow the contactor control signals to pass through from the vehicle to the battery pack. 
    13. Wrap the connector end with electrical tape for protection. 

    Overall view of the completed cable assembly. 

  • 2
    Installing the Battery Interface Cable
    1. Raise the vehicle on a lift or ramps and jack stands. 
    2. Remove the blue circled nuts on the heat shield. It's common for these bolts to break, so we will try to not remove all of the heat shield bolts. 

      Fish the Battery Interface Cable down from the top. Connector end goes down. Use the main high voltage supply cables to the inverter as a guide. 

    3. Unplug the black connector from the battery.  Connect the Battery Interface Cable to the matching connectors on the battery and vehicle wiring harness. This connection is shown on a spare contactor module for clarity. 

    4. Reinstall any nuts removed from the heat shield. 

    5. Wrap the PCB end of the Battery Interface Cable with an insulating material to prevent the diode leads from shorting to other underhood components. 

  • 3
    Mounting the solar panels
    1. Install the Yakima Jetstream roof racks according the instructions. 
    2. Get 8x    8"x7/8" bracket,  4 for each solar panel.
    3. File out the end hole to fit the square part of a 1/4"x1" carriage bolt.
    4. Drill out the next hole to fit the round part of a 3/8"x1" carriage bolt. 
    5. Slide a 1/4"x1" carriage bolt through the bracket and through the frame of the solar panel.  Secure with a washer and nut inside the panel frame. It should be tight enough that bracket can be easily rotated by hand but tight enough that it does not rotate under its own weight.  
    6. Orient the brackets like shown. 
    7. Slide 4x  3/8"x1" carriage bolts through the channel of each roof rack bar. One bolt towards each end of the bar and two bolts near the middle. 

    8. Place a 1-1/8"x0.54"x1/8" nylon washer over each carriage bolt. The washers should sit flush on the roof rack bar. 

    9. Carefully lower each solar panel onto the carriage bolts. The bolts can be slid along the channel and the brackets rotated to find the right positioning. 

    10. Carefully open the hatch to check for clearance between the hatch and the solar panels. 

    11. Secure the solar panel brackets with a washer and nut. 

    12. Tighten all nuts firmly. Remember to tighten the nuts inside the solar panel frame as well. 

    13. Cut a piece of 14/4 SJOOW  cable to reach from the solar panels to the mounting location of the DC-DC charger board. 

    14. Attach MC4 connectors to one end of the cable.

    15. Route the cable under the solar panels but above the roof racks, then down the side of the windshield. Keep it towards the outside of the wiper pivot and run underneath the foam block where an existing wiring harness runs. 

    16. Optional: Slide a 2" piece of 14/4 SJOOW cable sheathing over the radio antenna to prevent antenna wear against the solar panels. 

    17. The PCDB2105 was designed for a 72 cell solar array. Since these are 36 cell "12v" panels, connect them in series. 

View all 11 instructions

Enjoy this project?



crudnick wrote 12/30/2022 at 22:38 point

I am proposing to purchase an EV in 2023 and want to charge it DC-DC from a 6 KW solar array dedicated to car charging.  Can you help me out with such a converter that I can hang on the wall in the garage and plug into an existing port on the car?

  Are you sure? yes | no

Charles Stevenson wrote 10/26/2022 at 20:36 point

I'd love to slap something like this on my RAV4 Prime. Maybe once it's paid off 😂

  Are you sure? yes | no

Shirley Márquez Dúlcey wrote 10/19/2022 at 14:42 point

The aerodynamics of that installation look terrible. I wonder if it's a net gain, especially if you drive the car at high speed.

  Are you sure? yes | no

Real Solar Cars wrote 10/22/2022 at 03:49 point

It's a big net gain for my driving habits, low miles at low speed city driving.  The idea here was to test the DC-DC charging concept without expending effort on unrelated issues like aerodynamics. And I wanted it to be fully removable without damage in case the experiment did not work. I will work on the aerodynamics once I get all the desired features added to the converter software. Unfortunately the Volt's design is not great for attaching large solar arrays. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates