LIN? Wouldn’t it be great to have a CAN controlled PTC heater? Yes, it would!. In this blogpost I will explain how the LIN controlled PTC heater has turned into a CAN controlled PTC heater.
In EV conversions and in EV’s in general the motor and inverter are so efficient that there is not enough waste heat to warm up the interior. In terms of overall energy consumption this is a good thing. The downside is we need other ways to create a comfortable climate inside.
Most production electric vehicles nowadays use a heat pump and an air PTC heater for this. The advantage (and to some extent also disadvantage) of a PTC heater is that it is a PTC heater. PTC stands for Positive Temperature Coefficient. So the resistance of the heater increases as the temperature goes up.
The advantage of this characteristic is that it will overheat less fast as the consumed power goes down as its temperature goes up. The disadvantage is that if you want to maximize the power delivery you need to cool it down (ie make it dissipate a lot of the heat it generated) but it requires a higher airflow (= noise). Partially this can be solved by just using a big (capacity) heating element.
Cabin heating in EV conversions
For heating the interior in EV conversions we mainly have three options:
- Using a water heater to create hot water and keep the original heating system
- Replace the water heater core with an air PTC heater
- Use a heat pump (stay tuned, more on this topic soon)
Option one is a pragmatic approach but in terms of efficiency and responsiveness not the best option in my view. I’ll elaborate on the options for that in another blogpost later. The same applies to the heat pump option. I’m working on some R&D to make it available for EV conversions and will share more info later. So for now the question is:
What is the best air PTC heater to use?
It of course depends on what your criteria are. In my view it should be safe, controllable, high quality and ideally affordable. The title of the post more or less answers this question already.
While you can buy various PTC elements for a relatively small amount of money I always had two concerns with those generic PTC heaters:
- They have no ‘onboard’ overheating protection circuit
- They have no EMC documentation
One could say a PTC is safe ‘by design’ due to the fact that the current decreases as the temperature increases. However, in the end it does not stop and thus can overheat. So this requires a proper controller that not only ensures the fan or blower is on but also monitors the PTC element temperature. Regarding EMC one could argue that as long as you do not PWM it, there should not be an issue. While that is true that means the PTC becomes kind of a dumb on/off device using a contactor.
So I think repurposing an OEM PTC heater is very interesting. I looked into various OEM PTC heaters:
- Tesla Model S : capable of delivery quite some power, CAN controlled, but quite large
- Tesla Model 3: same as the above so also CAN controlled
- Hyundai Ionic (355V nominal version): CAN controlled, reasonably sized and should be able to deliver decent power
In the end I have not been able to find the relevant data, .dbc’s or CAN logs to reverse engineer those. So if you are interested, these are for sale. Can let them go cheap if you reverse engineer it and I can share the details on my blog. Contact me if you are interested.
In the end I decided to invest effort in the Volkswagen PTC heater. It is used in the ID series (ID.3, ID,4, ID.Buzz etcetera) as well as in the Cupra and also found in the Skoda’s, Audi’s, etcetera.
Base part number is 1EA963581
But also found as various variants like 1EA963581B, 1EA963581C, 1EA963581D and 1EA963581F. I’m not yet sure if the control scheme for all these is the same.
In the Volkswagen info I found the PTC heater is referenced to as the ZX17 and consists of a control module and the actual PTC. It is made by Valeo and has a operational range between 0 and 6 kW. The full power is only available on cold days when the BMS indicates the battery can supply that power. It is controlled via LIN in steps of 1% by the airconditioning controller which acts as the master. In an online self study program I found that the nominal voltage is 150 to 475V but based on my findings I’d say it’s usable from 180 VDC.
So the main question is, how do we control this thing?
LIN bus reverse engineering
So I sourced a Volkswagen PTC heater and a complete high voltage and low voltage loom. This allowed me to hook up the PTC heater on the bench to my 300V lab power supply.
Then not much happened. It would draw some power from 12V, but then went back to sleep. Myself I did not have much LIN experience at that time. Thanks to my friend Joost! He managed to get it to respond, stay alive and figure out some key variables.
So then I knew what I was looking for. The next step was to log a Volkswagen controlling the PTC heater via LIN. So I made a ‘man in the middle’ cable out of the Volkswagen harness and a header from a PTC heater.
This harness could be plugged into the car without the car noticing or making any damages and at the same time I could connect my Peak LIN to USB dongle. And then there was LIN traffic! This actually is a Cupra. Thanks to Lucien for allowing me to sniff it. But this actually technically is an ID.3 in another appearance. So the log should be usable.
What I knew from the pre-work by Joost is that the control message is 26h so that was the one to monitor. I made some logs using the PLIN-View Pro software from Peak which I saved and published here on Github:
Volkswagen LIN bus logs
But for me the most convenient was by tracking how the car was controlling the PTC heater by just shooting a video of the LIN data flow and match that with the interaction with the car.
Deciphering the bits and bytes
So 26h is the control message. I saw a couple of values for Byte 0 and Byte 1 seemed to be constantly 0xC5. The key bytes were 2 and 3 for control from 0 to 100% of the left and right hand side of the heater.
PTC heater test setup
To be able to do some further testing I switched from my 300V lab power supply to the testpack which I also use for CCS fast charging R&D. Quickly hooked it up and provided it with some data I grabbed from the logs I took.
It’s alive!
This was just a quick test without even a blower attached. However for fine tuning the controls that is not sufficient. Then I could not tell if a lower current draw would be the result of a control intervention or just the fact that it is a PTC heater.
So I made a heater housing out of cardboard and attached a solid Spal blower.
Eventually I managed to switch the individual elements on and off. In the gateway I’ll wrap around it, it will be much simpler. Then it will just be an enable via CAN and a percentage. So it will be very easy to use it in a CAN network. My CAN to LIN controller will then take care of enabling the PTC.
As I expected the controller in the heater also takes care of some safety aspects. I tested by disabling the blower while requesting full power. Then the element heats up to about 160 degrees (hotspots) and then turns itself off. If less power is requested then it takes longer but ultimately it shuts off.
Volkswagen PTC heater CAN gateway
The CAN gateway is ready. So you can now use an OEM PTC heater and control it via CAN. Furthermore I’m in the process of sourcing the control and high voltage connectors so these will also be included in the offering. You can either just get the gateway and the connectors or the full package including a tested (and compatible) PTC.
- Volkswagen PTC heater CAN interface€295,00 – €495,00
You will find a CAN control demo video of the PTC heater on the Volkswagen PTC heater CAN interface product page.
What’s next?
Probably there will be also an ‘analog’ input so you can more or less use it stand alone using a ‘yes, enable (blower = on)’ trigger and set an intensity via a potentiometer.
Interior thermal controller
In parallel I’m also working on an interior thermal controller which of course will also support this PTC heather via the CAN gateway.