Building the Active Spoiler

Build your own active spoiler using a Porsche 986 active spoiler assembly

Re-purposing a used Porsche 986 active spoiler assembly is probably the cheapest and most reliable method of attaining a working active spoiler for any vehicle. Its reliable, somewhat flexible in fitment, and if purchased correctly, will have almost every part necessary to connect it to your trunk easily.

The Porsche 986 active spoiler assembly actually contains limit switches and pinouts to allow a microcontroller to sense if the pistons are partially up or down, and/or only whether they have reached their fullest limit up or down. I opted to program the ESP32 to recognize only if the pistons have reached their full travel limit up or down. As such I did not wire up any ESP32 pins to the other unsoldered limit switch contact pins mounted underneath the motor (only used the factory wiring plug).

You will need to purchase the items on the Code and Hardware page, but dont worry, its less than $200

Wiring the electronic components:

Use the Arduino jumper wires to connect the GPS pins to the ESP32 pins as specified below:

  • GPS TX to ESP32 PIN 33
  • GPS RX to ESP32 PIN 25
  • GPS VCC to ESP32 3.3 or 5v
  • GPS GND to ESP32 GND

Use the Arduino jumper wires to connect the BTS7960 motor controller pins to the ESP32 pins as specified below:

  • R-PWM Forward SPEED to ESP32 Pin 27
  • L-PWM Reverse SPEED to ESP32 Pin 26
  • R-EN Forward enable to ESP32 Pin 14
  • L-EN Reverse enable to ESP32 Pin 12
  • VCC to ESP32 5V
  • GND to ESP32 GND

Using the Arduino female to male jumper wires, connect the ESP32 pins to the active spoiler motor wiring plug. Crimp the butt connectors onto the male end of the jumper wire and insert the butt connector onto the appropriate motor plug pin specified below (you may need to widen the butt connector hole or use pliers to squeeze and tighten the metal tube if loose):

  • GREY/BROWN thin wire to ESP32 PIN 5 (up limit switch)
  • GREY/GREEN thin wire to ESP32 PIN 17 (down limit switch)
  • BROWN thick wire to ESP32 GND
  • B+ to CAR 12V
  • B- to CAR GND

Assuming you’ve already uploaded the sketch provided on the code and hardware page, you’ll just need to power up the ESP32 using a USB power supply (or use the 12v socket and USB car charger wired up to a car battery), and connect the B+ and B- to the car battery as well.

Connecting to the active spoiler web GUI

If you are powering up the ESP32 with your laptop using a USB cable, you can connect to the ESP32 and see what it is doing behind the scenes using the Arduino serial monitor. By doing so, you’ll be able to see the IP address that it grabs from your home network and be able to immediately access the web gui with that IP address.

Alternatively, you can search for new WIFI networks once the ESP32 is powered on and connect to the SSID “ESP32-ASC-AP” or the SSID and password you customized when uploading the sketch. You can then access the web GUI using the IP address

Once you’ve successfully connected to the active spoiler web GUI, you will be shown numerous options which are explained below.

GPS SPEED (SATS) – shows the number of satellites the GPS has acquired. If 0 you will not be able to get a speed reading. The speed reading shows speed in MPH which is only updated on a refresh of the web page.

SPOILER (BLUE/UP) – Manual control of the spoiler. Blue is spoiler is up, grey is spoiler is down.

AUTO SPOILER CONTROL – The Spoiler will go up or down if the speed is above the specified trigger speed when it runs its GPS check function.

ACCESS POINT CONTROL – Enable or disable the active spoiler access point. If disabled, you wont be able to connect to the web GUI when away from your home WIFI network. Only disable it if you’re happy with the settings after testing. You can always enable it again by connecting to the spoiler web GUI when it connects to your home network, which it will do so when powered on and in rage (using the home network IP address).

GPS CHECK DELAY – Set the GPS checking routine interval. The value inside the () is the current setting, you will need to refresh the page for the new value to show after an update.

SET SPEED TRIGGER – Set the speed where you have to drive faster than for the spoiler to go up. Spoiler will go up above the trigger speed, and go down below the trigger speed. The value inside the () is the current setting, you will need to refresh the page for the new value to show after an update.