It always drives me crazy how if I floor it up a steep forest road in 2nd gear, the engine can get up to 255F+ before the fan actually has time to spin up. I know it's how they engineered the 3.6L but it seems to me it just can't be good.
Unfortunately it's by no means easy to make a switch that turns the fan on, but I did manage to reverse engineer the protocol and made it work.
Now going up a hill I just flip the switch, the fan spins up to full speed, and even near full throttle for minutes on end at 4000RPM+ and I've never gotten the coolant over 208F.
If you don't have electrical engineering and MCU firmware experience, this is probably going to be too in depth, but regardless I wanted to document this on the off chance someone else some day does this.
The fan operates by having a pull-up to 12V through what I believe to be around 1-2kOhm (although measurement is suspect probing in-circuit), whatever value doesn't much matter. Then the TIPM has an open-collector driver which pulls this down to create a PWM signal.
I scoped this signal out at 9hz, and the frequency has to be pretty precise for the fan to register the signal. The higher the duty cycle (the less it is pulled down), the faster the fan spins, until you hit something like 90% duty cycle then any higher and it stops spinning. Or if it's either 0% or 100%, it doesn't spin at all.
The Jeep's check engine light comes on by monitoring for the 12V pull-up on the fan, so if you unplug the fan the TIPM no longer ever sees 12V and trips the check engine light.
With all this info, it became relatively simple to design a system that'd keep the fan on full.
I decided to use an MCU rather than a discrete timing device because the frequency is actually really quite sensitive on the 9hz, has to be within about 0.25hz of that and making a 9hz signal with that precision without a microcontroller is actually quite non-trivial.
I cut the green signal wire to the fan and spliced this board in between the cut. The "JEEP" signal connects to the TIPM's fan-PWM output (the green wire to the fan), and the "FAN" signal connects to the other end of the cut green wire from the fan. 12V0 goes to a switch on the dash that just gives fused 12V to the board.
Cut this wire at the fan connector
Jeep pad goes to the jeep side of green wire, Fan to the fan side, and 12V power to override the fan on.
When there's no 12V applied to this board, the relay just connects the Jeep-TIPM fan line to the fan input itself, and the Jeep controls it as it always does. Use this during normal driving.
When 12V is applied to 12V0 input, the MCU fires up and starts outputting a control to the open-collector Q2 to the fan (the MCU is nothing more than a fixed frequency/duty-cycle function generator here), and the relay K1 flips so that the fan PWM input is now connected to Q2. The Jeep-TIPM line connects to R4 which pulls the TIPM up to 12V fooling it into thinking there's a fan so the check engine light doesn't come on.
The C2/D3/C3 circuit creates a negative DC bias from the PWM signal generated by the fan's pull-up and Q2's pull-down, which keeps Q1 off. If the fan ever becomes disconnected when running in fan-on mode, Q1's gate will turn on disabling the R4 pull-up such that the check engine light even works when the full-speed-fan system is activated!
Now, someone else do it so we can be fan-override friends! And so this post wasn't a complete waste of time.