I have ventolated seats in my 2023 Rav4. I noticed that the seat fan was throttled. This is my journey of finding a solution to read in what the OEM settings were and turn up the amount the fans are turned to.
I noticed that the high setting on my climate controlled seats was not actually running on high unless I turned up the AC and selected that the air be dispursed in the vents facing my head. I personally did not like this and wanted to have my seat cooled at max blower speed, even if I did not have the AC running at full blast. This would enable conversation easier and minimize my back sweating and ultimately make it more comfortable for me during long car rides, like my current commute to the work office of over just over 2 hours.
After looking through the wiring diagram, it was time to look for the real connectors in the seat itself. I flipped up the front passenger seat up.
The passenger side has fewer connections to look at compared to the drivers seat (8 compared to 12) due to the drivers seats extra features like lumbar support and seat position memory.
I found there was a ground (position #1), +12v (position #5), and a +12v when the ignition was on (position #4).
I also found that there was only one line that changed when the ventolated seats were turned on (position #12).
Connections 1-9 work with the general automotive crimp teriminal 621-2.2A for the female side and 611-2.2 for the male side.
Connections 10-17 are a crimp teriminal 82998-24290 for the female side and 82998-24300 for the male side.
This is a read from the slowest seat blower setting.
This is a read from the highest seat blower setting, with the cars HVAC blowing at high and the vents facing the head. It looks like the seat is driven from a PWM signal through pin #12 on the connector. This PWM signal is a low driving signal.
Testing to see how fast the Adafruit board can execute GPIO actions. 70us is much less than the 2ms PWM signal from the OEM seat controller. Polling should work okay to read in the signal.
After finding that I could run this with a simple Adafruit board. I decided make my own. I had an old circuit board that took in a 12v signal to power the board and modified it. This board has an LPC5536 processor. I popped off a couple of unused parts to make room for my project specific ones, the mosfet. The mosfet is hooked up to a PWM line which when running, PWMs a ground signal for the blower motor in the car seat. Another line is a signal line for the OEM blower motor. This input is held high by a pullup in the LPC5536 in order to mimic the OEM blower motor. Then the code can cycle over this input to see if the OEM PWM signal is driving this line low or keeping it high. This is how I determine the PWM speed. Thankfully the LPC5536 is incredibly fast, meaning it is easy to read in the PWM signal with polling rather than using a voltage divider.
Looking at the OEM PWM signal, I found that of the 3 settings of the seat, when at the lowest speed setting, the seat ran at 10% PWM.
2nd highest setting, 19% PWM.
Highest setting, 28% PWM.
And the real kicker, when the car's cabin AC was on, with the blower pointing at your head, the highest setting on the ventolated seat's PWM signal would increase.
I found that the highest seat blower setting coupled with the car's cabin AC blower on max, set on the vents pointing at the head, the PWM signal would go up to a whopping 53%!
I decided to take this as my new max setting.
I decided to read in the OEM signal and modify out so that the new lowest setting blows at 17% PWM, 2nd highest blows a 36% PWM, and the highest setting is a 50% PWM.
For the case where the car wants to drive the PWM any higher than 50% PWM, I pass the PWM signal onto the seat so that it can be driven even higher.
Of course every good circuit board needs a case to protect it.
Case top, notice the cutout in the side for the mosfet to fit.
Case bottom, notice the cutout in the bottom for the wires to follow.
Here is the full cable assembly with the 3D printed case on the circuit board.
Installation.
Here it is installed on the drivers side seat. It was easy to tuck away. The seat is still completely functional and movable without this getting in the way.
I will be using this every time I drive. I'm very excited to see how much better my sweaty back feels on car rides now :)