How-to: building a GPS-based PSE valve controller for passing track sound checks - Rennlist - Porsche Discussion Forums

Go Back  Rennlist - Porsche Discussion Forums > Water Cooled Technical Discussion Areas > 991 GT3 GT3RS and 911R
Reload this Page >

How-to: building a GPS-based PSE valve controller for passing track sound checks

Notices
991 GT3 GT3RS and 911R
Sponsored by:

How-to: building a GPS-based PSE valve controller for passing track sound checks

Old 05-29-2015, 04:36 AM
  #1  
Mech33
Addict
Rennlist Member
Thread Starter
 
Mech33's Avatar
 
Join Date: Oct 2014
Posts: 3,918
Talking How-to: building a GPS-based PSE valve controller for passing track sound checks

**UPDATE**: this mod as described in this post is for the *991 GT3* only. Some folks have reported it working as-is on the 981 Cayman S, but I haven't not confirmed it first-hand. This mod is confirmed to *NOT* work on the 997.2 GT3 as described in this post, as that car switches the low side (ground) of the valve instead of the high side (battery voltage). The GPS switch wiring and harness need to be modified to work for the 997.2 GT3 (which I've done by hand for one 997.2 owner). If there is significant interest in this for the 997.2 GT3, I can describe how the wiring is modified for folks in another thread.

*DISCLAIMER* You take on this project at your own risk! While this has worked well for me, there is always a risk of damage to the car or sensitive electrical hardware like the ECM when tinkering like this, especially if a mistake is made. Consider yourself warned. Only adventurous folks should read on...

Spoiler: here’s my finished GPS-based PSE valve controller running at a recent Laguna track day:

[img]https://dl.dropbox.com/s/bu4gy2cil4c8eqc/GPS_PSE_controller_test_2.JPG?

So this all started when I went looking for a solution to passing 90-92 dB sound days at Laguna Seca without major modifications. For my first Laguna day with the new GT3, I just mechanically held the PSE valves in the “closed” position for an entire 92 dB track day at Laguna Seca and consistently passed sound at ~92.5 dB.

[img]https://dl.dropbox.com/s/xd818ye66ft8r9w/exhaust%20valve%20clip%201.jpg?

[img]https://dl.dropbox.com/s/zhbqdof06xbyn9k/991%20GT3%20exhaust%20valve%20description.png?

This worked like a charm, but it subdued the sound a bit and folks brought up concerns around heat build-up in the side mufflers. Not sure that’s really an issue, but it sparked some conversation about somehow only closing the valves when necessary, and leaving them open the rest of the time. “doubleurx” ultimately made a great suggestion:

Originally Posted by doubleurx View Post
Or better yet, GPS activation....set it and forget it!
Now why didn’t I think of that?!

Researching the OEM PSE system, it’s pretty simple:

1) vacuum is stored in a vacuum reservoir tank sitting on top of the engine

[img]https://dl.dropbox.com/s/c6guz1rlos7efwq/991%20GT3%20vacuum%20system.png?

2) a SPDT solenoid (#1 in picture below) controlled by either GND or +VBAT applied by the ECM then either connects vacuum or atmospheric pressure to the pneumatic lines controlling the PSE valves. +VBAT results in vacuum which pulls the valves closed (quiet, all exhaust passes through side mufflers), and GND results in atmospheric pressure which leaves them in the open state (loud, exhaust is free to go right through to the center muffler).

[img]https://dl.dropbox.com/s/8jo97vlxuo2zld2/exhaust%20valve%20part%20numbers.png?

The issue is that regardless of the PSE setting in the center console, the ECM always OPENS the valves at full throttle. This results in blowing a 102 dB at Laguna.

To take over control of the PSE valves and force them shut at full throttle, you have two main options:

1) Override the OEM electrical control of the stock PSE solenoid to apply +VBAT at full throttle (careful to not back-drive the ECM), or

2) Override the OEM pneumatic control of the PSE valves in the exhaust by adding an additional solenoid under separate control to switch in vacuum during full throttle

#1 involves fewer parts, is more plug-and-play, but carries some electrical risk of back-driving the ECM if you’re not careful. #2 is safer, but you have to add an additional solenoid valve in the engine bay and tap into some of the vacuum lines (all reversible, but does require some temporary modification).

After some back and forth debate with orthojoe, I ultimately decided to move forward with approach #1.

Last edited by Mech33; 06-20-2018 at 04:00 AM.
Mech33 is offline  
Old 05-29-2015, 04:36 AM
  #2  
Mech33
Addict
Rennlist Member
Thread Starter
 
Mech33's Avatar
 
Join Date: Oct 2014
Posts: 3,918
Default

Now I just needed to find male / female plugs that matched the OEM PSE solenoid to electrically “splice” into the system without any cutting. Oh, and a quick-and-dirty method of flipping some relays to control those PSE solenoid signals based on GPS location!

Long story short, I sourced all the parts off-the-shelf with all but the male / female solenoid connectors coming from Amazon. Everything is virtually plug-and-play, but you do have to do a little careful wiring to ensure all the connections are correct, and solder one jumper wire on the GPS board. Then program some custom firmware into the GPS board to do the appropriate geofencing to flip the valves open and closed at your required locations, and you’re done!

I tested the system at Laguna about 2 weeks ago and went from my normal 102 dB down to mid 92 dB (low enough to pass a 92 dB day). Joe then tested the same setup on his car but with a simple turn-away exhaust pipe and that enabled him to pass 90 dB. Golden!

I had the wires routed outside the car from the OEM solenoid to the GPS controller so it didn’t look pretty (I’ve since had the wires run through the firewall):

Mech33 is offline  
Old 05-29-2015, 04:38 AM
  #3  
Mech33
Addict
Rennlist Member
Thread Starter
 
Mech33's Avatar
 
Join Date: Oct 2014
Posts: 3,918
Default

Now on to the specifics of how to make your own! First, you’ll need all of the following parts:

1) Male / female connector pair for inserting between the OEM PSE solenoid and the OEM wiring harness, $8.99
http://www.bmotorsports.com/shop/pro...oducts_id/1406


2) Main processor board (Arduino UNO R3 SMD), $27.95
Amazon.com: Development Boards & Kits - AVR ARDUINO UNO SMD REV 3: Computers & Accessories Amazon.com: Development Boards & Kits - AVR ARDUINO UNO SMD REV 3: Computers & Accessories


3) Relay board (Seeed Relay Shield v2.0), $20.99
https://www.amazon.com/gp/product/B0...?ie=UTF8&psc=1


4) GPS board (Adafruit Ultimate GPS Logger), $53.99
https://www.amazon.com/gp/product/B0...?ie=UTF8&psc=1


5) Car 12V adapter with plug compatible with processor board, $5.99
https://www.amazon.com/gp/product/B0...?ie=UTF8&psc=1


6) Case for the board (I only use it for protecting the bottom half of the board since the top doesn't fit with the multi-board stack... I've yet to find a better off-the-shelf case yet), $9.99
https://www.amazon.com/gp/product/B0...?ie=UTF8&psc=1


7) Waterproof connectors for inserting between the board stack and the other wiring (I'm using one of these in the engine bay so I can plug jumper wires in easily to go back to stock mode vs. Laguna mode when I want to just temporarily hook up or remove the GPS system, and another near the board), $6.48
Amazon.com: 10 Kit 2 Pin Way Waterproof Electrical Wire Connector Plug: Electronics Amazon.com: 10 Kit 2 Pin Way Waterproof Electrical Wire Connector Plug: Electronics


8) 2-conductor bonded wire (I run this from the engine bay to the controller board with a waterproof connector on each end), $6.99
Autumn Leave 10M 20awg Extension Cable Wire Cord for Led Strips Single Colour 3528 5050 - - Amazon.com Autumn Leave 10M 20awg Extension Cable Wire Cord for Led Strips Single Colour 3528 5050 - - Amazon.com


9) USB cable for programming the main processor board (only needed if you don't already have one), $4.67
Amazon.com: AmazonBasics USB 2.0 Cable - A-Male to B-Male - 6 Feet (1.8 Meters): Electronics Amazon.com: AmazonBasics USB 2.0 Cable - A-Male to B-Male - 6 Feet (1.8 Meters): Electronics


10) A soldering iron, wire stripper, crimper, etc. for building the custom wiring harness.

11) A computer (Windows or Mac) for installing the Arduino development software and programming the board. You’ll need the following code file that I created based on some starter code for the GPS module and then adding the geofence functionality: https://dl.dropboxusercontent.com/u/...nce_v4.ino.zip More on how to use this file later…

Last edited by Mech33; 03-08-2016 at 02:57 AM.
Mech33 is offline  
Old 05-29-2015, 04:38 AM
  #4  
Mech33
Addict
Rennlist Member
Thread Starter
 
Mech33's Avatar
 
Join Date: Oct 2014
Posts: 3,918
Default

Once you have all the parts, now on to the fun part. For reference, here’s a picture of the OEM solenoid, as well as a picture of one outside the car:





Step 1 - build the solenoid wiring harness
Using the male/female connector pair that matches the OEM solenoid, build an "in-line splice” wiring harness that matches the below picture. Pay careful attention to the orientation of the connectors. If you have a 991 GT3, follow the 991 diagram. If you have a 997 GT3, follow the 997 diagram.





Here's what my 991 GT3 harness looked like (I added another connector at the end of the harness to make it easy to connect / disconnect):



Making the pin connections to the wire is a little tricky with the waterproof seals. Here’s a picture of an appropriately crimped wire connection (both the wire and the seal are crimped to the pin):



You may want to consider investing in a crimping tool to make your life easy:

Amazon.com: GM Delphi Weatherpack Crimper Tool: Automotive Amazon.com: GM Delphi Weatherpack Crimper Tool: Automotive



The 2-pin connector that both the blue and red wires terminate into is the side that goes to the GPS board stack. Putting a connector on here is optional. I chose to do so so that I can attach the GPS board when I’m at Laguna, and just put a simple jumper connector in (shown in the picture with the yellow wire) to get stock functionality the rest of the time (though leaving the board un-powered also defaults to OEM operation, so a plug is only needed if you don't want to leave the board in the car).

If you do put a connector on that end, pay very close attention to the pin connections to make sure the wiring doesn’t get reversed by the time it gets to the GPS board connections. I chose to put a male connector on the solenoid harness, and a female version on the GPS board, so that the long jumper wiring harness in between had a male on one end and female on the other so that it couldn’t get plugged in backwards and cause any issues.

Last edited by Mech33; 03-06-2016 at 11:53 PM.
Mech33 is offline  
Old 05-29-2015, 04:39 AM
  #5  
Mech33
Addict
Rennlist Member
Thread Starter
 
Mech33's Avatar
 
Join Date: Oct 2014
Posts: 3,918
Default

Step 2 - build the processor board / relay board / GPS board stack

The processor board, relay board, and GPS board all simply plug into each other. But before you can plug them all in, you have to solder the pin headers onto the GPS board, and solder one extra jumper wire onto the board for the +V source to drive the solenoid on demand.



Carefully snap the pin headers into the appropriate number in each group to match the holes around the perimeter of the GPS module, assemble them from underneath, and solder them from above. When done it should look like the picture below (note that this picture is the final assembled stack):



Note that one additional wire needs to be added to the “Vin” pin (for 991 GT3) or "Gnd" pin (for 997 GT3) on the board. This is the source used to drive the solenoid through the relay board. Solder a wire to the appropriate pin on the GPS board that is long enough to reach the terminal blocks on the relay board.

Also, make sure the little switch on top of the GPS board is switched to "Soft. Serial"!

Now, place the Arduino Uno R3 processor board into the bottom half of the plastic enclosure, and then plug the pre-assembled Relay board into the top of the Arduino board (we’ll plug the GPS board in next). This assembly should look like this:



Now extend your blue and red wiring from the solenoid harness either directly or through some intermediate connectors and jumper harnesses and route them into these specific terminal connections on the relay board shown in the 991 and 997 GT3 wiring diagram. It’s important to get these exactly right.

It’s important to use this specific terminal block since the software that will run on the processor board is only designed to flip this specific relay. Goofing up this wiring might damage your ECM if you accidentally short the battery voltage to the ECM-side connection, so triple check everything and of course proceed at your own risk!! Here is what my 991 GT3 connections looked like when done:



I built a connector wiring harness to make it easy to attach the GPS board as needed:



With the wiring screwed in tight to the terminals, carefully assemble the GPS board onto the relay board and press the entire stack together firmly so that everything is seated.

Last edited by Mech33; 03-06-2016 at 11:56 PM.
Mech33 is offline  
Old 05-29-2015, 04:40 AM
  #6  
Mech33
Addict
Rennlist Member
Thread Starter
 
Mech33's Avatar
 
Join Date: Oct 2014
Posts: 3,918
Default

Step 3 - program the Arduino board with the “Valve Debug” test firmware

The Valve Debug firmware file will simply switch the PSE valves open and closed every 5 seconds, letting you confirm audibly and visually that all of the wiring is functioning properly before re-programming it for GPS-based operation. These steps show you how to program the board.

Download the Ardunio programming software for your system (Windows, Mac, and Linux supported) from here and install it: http://www.arduino.cc/en/Main/Software

Plug your board into your computer over USB. The board should be powered via USB and be ready for programming. To program it, do the following:

1) Launch the Arduino software.

2) Open the “ValveDebug_v3.ino” file that you downloaded from here: https://dl.dropboxusercontent.com/u/...bug_v3.ino.zip



3) In the Ardunio app, go to the menu Sketch -> Include Library -> Manage Libraries… and search for “Adafruit GPS Library”, and click on Install to install the GPS library.

4) Go to the menu bar and select Tools -> Board -> Arduino Uno.

5) Go to the menu bar and select Tools -> Port -> and select the arduino usb modem port.

6) Go to the menu bar and select Tools -> Programmer -> AVRISP mkII

7) In the ValveDebug_v3.ino.ino window, click the check mark button in the upper left. This should compile the code error-free. Now click the right arrow button also in the upper left. This should program the board with the compiled binary. If that was successfully, then you’re board stack is now good to go!

Last edited by Mech33; 01-03-2016 at 10:19 PM.
Mech33 is offline  
Old 05-29-2015, 04:40 AM
  #7  
Mech33
Addict
Rennlist Member
Thread Starter
 
Mech33's Avatar
 
Join Date: Oct 2014
Posts: 3,918
Default

Step 4 - install the solenoid wiring harness

You just need to access the solenoid, disconnect the stock connector, and insert the female / male ends of the new wiring harness in-between. Sounds simple, but this was the hardest step for me since accessing the top of the OEM PSE solenoid is a major PITA! Here's my harness plugged in:



I did it by doing the following:
- remove the fan assembly
- pop off the right plastic cover
- unscrew the coolant cap and carefully lift the left plastic cover up enough to access the screws underneath that hold down the carbon fiber engine cover
- unscrew all the screws holding down the carbon fiber engine cover. Note that there are a couple underneath the plastic caps.
- unplug the wiring harness on the upper left of the carbon fiber engine cover, and carefully remove the engine cover
- look for the OEM solenoid way in the back right corner of the engine compartment (pic below). Wedge your right hand underneath the coolant hoses and inch your way to the connector, and then wedge your left hand around the left side around the metal vacuum lines to touch the connector. Then use your fingertips from both hands to press in the clip holding the connector on, and push the connector off the solenoid.
- then bring the new harness in from the right side, and similarly use your fingertips to get the female connector plugged onto the solenoid, and the male connector plugged into the OEM wiring harness
- phew, you’re done with that! now re-assemble…

Here's my engine bay prior to re-assembly:



Step 5 - test the valve switching operation

With the “ValveDebug_v3” software loaded up, the valves will flip open and closed every 5 seconds. Confirm that you have the solenoid harness plugged in per Step 4, and you have the GPS board stack attached plugged into the blue and red solenoid harness output lines.

Now take the Cigarette Lighter Adapter you purchased and plug it into the barrel connector on the GPS board stack, and then plug the other end into a cigarette lighter port in the car. Then switch the car’s ignition to the “on” state to turn on +12V to the ports.

If the board is operating properly, you should hear a “click” of the board relay every 5 seconds. And LED2 on the relay board will also turn on and off every 5 seconds. If that checks out, then start the car and press the “PSE” button in the center console so that the OEM system tries to keep the valves open and in the “loud” state.

If the board is properly switching the OEM solenoid, then you should be able to hear the exhaust go from muffled to loud every 5 seconds. If you don’t push the PSE button on the dash, then the exhaust will just stay quiet during the test because the GPS board only toggles between “quiet” mode, and ECM control, and the default ECM control is for the idle to hold the valves in the closed “quiet” state anyway.

Step 6 - confirm that you’re getting a GPS fix

If the GPS board is functioning properly and the board is face up without any big obstructions, then within a couple minutes it should acquire a GPS fix. While the board is searching, the “fix” LED on top will blink once per second. Once it has a fix, this frequency will drop to one blink every 10 seconds.

Once you confirm that you have a fix, you know the GPS board is working properly. With the valve switching confirmed working and the GPS board working, you should be all set to use the system at the track! The last step is to program the geofence firmware into the board.
Mech33 is offline  
Old 05-29-2015, 04:41 AM
  #8  
Mech33
Addict
Rennlist Member
Thread Starter
 
Mech33's Avatar
 
Join Date: Oct 2014
Posts: 3,918
Default

Step 7 - program the geofence firmware into the board

Repeat the programming sequence from Step 3, but use the following code file instead: https://dl.dropboxusercontent.com/u/...nce_v6.ino.zip

That file has the following behavior:
- PSE valve operates like OEM by default (ECM has total control over valve state as long as you’re not within the geofence locations)
- upon every initial power-up, the unit will go through a diagnostic sequence where it switches between "quiet mode" and "OEM mode" every 2 seconds for a total of 4 sequences. This is for confirming all is working at the track. To make use of this diagnostic mode, start the car and press the PSE button to idle the motor in the loud exhaust state. Then power the GPS board, and it should toggle the exhaust between quiet and load every 2 seconds a total of 4 times. If the exhaust simply stays loud during this time while PSE is active, then check the wiring / function of the mods.
- once the car moves within the geofence perimeter, it will switch the valve to the quiet state
- *2* geofence perimeters are in the above code file:

1) a large region that covers all the way from the exit of Laguna Seca turn 4 up through the exit of Turn 6. This ensures a wide margin of error for vehicle speed or any GPS position uncertainty to help ensure that the exhaust system is in quite mode well in advance of the sound booth located between 5 and 6.

2) a small region centered on the 76 gas pump in the paddock area with a ~80 foot radius around it. This is to let you test the valve switching functionality in the paddock in case you suspect an issue with the system. Simply slowly drive up to the 76 gas pump and you should see relay #2 / LED2 switch on once you get close, and off again once you drive away. If you don’t, check that the “fix” LED is blinking once every 10 seconds. If it isn’t, check the power connections and that there are no metal obstructions over the small square antenna on the top of the GPS board.

Both geofence areas are shown here:



Step 8 - modifying the geofence locations and sizes

If you’re feeling adventurous, you can modify the geofence locations and sizes in the code file. If you open the Laguna_Seca_Geofence_v4.ino in the Arduino app, you’ll see some lines at the top called LAGUNA_BOOTH_LAT, LAGUNA_BOOTH_LONG, LAGUNA_BOOTH_RADIUS_POINT_LAT, and LAGUNA_BOOTH_RADIUS_POINT_LONG, as well as a similar set for TEST_LOCATION.



The LAGUNA_BOOTH corresponds to the latitude, longitude coordinates in fractional degrees of the Laguna Seca sound booth. The LAGUNA_BOOTH_RADIUS_POINT location is just a point on the outer perimeter of the desired geofence circle that has a center at LAGUNA_BOOTH, also in latitude, longitude coordinates in fractional degrees.

TEST_LOCATION is just the location of the gas pump, with the TEST_LOCATION_RADIUS_POINT being a point ~80 feet away or so from the pump to define that area.

If you’d like to play with other locations or areas, you just need new center point and radius point coordinates for those locations. Getting those is as easy as opening up Google Maps and clicking on a point on the map. It will then give you the latitude and longitude in fractional degrees in the upper left corner of the window.

For example, clicking on the bridge at the entry to Turn 5 gives you the following:



Simply edit the numbers in the file, re-compile it, and re-program the board per the above steps, and you’re ready to try your new geofence!

I’m sure I left some details out somewhere, so just chime in here if anyone tries to replicate this and has any issues. And no, I can’t build any more of these because they’re simply too time intensive to do so and I have to keep my day job.

Enjoy! Happy sound-hacking.

Last edited by Mech33; 02-21-2016 at 09:25 PM.
Mech33 is offline  
Old 05-29-2015, 07:27 AM
  #9  
Bartron
User
 
Bartron's Avatar
 
Join Date: Sep 2014
Location: NW Canadia
Posts: 370
Default

Incredible!!!! My nerd brain just exploded.

This may be obvious but, is the solenoid default to allow vacuum to the flaps? I'm looking to delete the valves all together and wonder if the best way would be to do it at the solenoid by capping/unplugging.
Bartron is offline  
Old 05-29-2015, 07:44 AM
  #10  
PierreTT
Addict
Rennlist Member
 
PierreTT's Avatar
 
Join Date: Jan 2006
Location: Quebec, Canada
Posts: 658
Default

Wow... !!!

Such a system should come OEM with the car...

Patent it and sell it to Porsche!
PierreTT is offline  
Old 05-29-2015, 08:05 AM
  #11  
Kobalt
Addict
Rennlist Member
 
Kobalt's Avatar
 
Join Date: Dec 2011
Location: Europe
Posts: 3,999
Default

So cool!
Kobalt is offline  
Old 05-29-2015, 09:50 AM
  #12  
Bartron
User
 
Bartron's Avatar
 
Join Date: Sep 2014
Location: NW Canadia
Posts: 370
Default

Originally Posted by PierreTT View Post
Such a system should come OEM with the car...
as part of the overpriced Track App/Sport Chrono.

PLSEM: Porsche Laguna Seca Exhaust Management
Bartron is offline  
Old 05-29-2015, 10:39 AM
  #13  
SamFromTX
Addict
Rennlist Member
 
SamFromTX's Avatar
 
Join Date: Jun 2013
Location: Dallas, TX
Posts: 3,129
Default

This is impressive work
SamFromTX is offline  
Old 05-29-2015, 10:47 AM
  #14  
orthojoe
Super User
 
orthojoe's Avatar
 
Join Date: Nov 2010
Location: Bay Area
Posts: 7,400
Default

Epic write up, Mech33. This information is invaluable for anyone tracking at a facility which has a low sound limit, and should be applicable to anyone who has a PSE system (stock caymans with PSE don't pass 92db). I have the exact same setup and can confirm that it works like a charm. I spent all day with the GT3 at Laguna Seca and wasn't black flagged ONCE for sound. Meanwhile, other cars were getting black flagged all day long because of the 90dB limit (stock 991GT3, 991GT3 with turnaway pipes, cayman GTS with turnaway pipes, viper, etc). This system alone is good for 92dB. I added turn away pipes to get me down to 90db:



This is a video with the system running. I modified Mech33's original trigger points to have the the valves shut as you enter the braking zone of T5 and open up again as I'm exiting turn 6. The noise change is very subtle. The mic is placed right behind the rear license plate:



Interestingly, from inside the cockpit you can't really even tell the system is working since the engine noise is what you hear mostly. Here the mic is inside the cockpit:

orthojoe is online now  
Old 05-29-2015, 10:57 AM
  #15  
orthojoe
Super User
 
orthojoe's Avatar
 
Join Date: Nov 2010
Location: Bay Area
Posts: 7,400
Default

BONUS: On the street, I remove the jumper plug and leave the solenoid disconnect so that the valves stay open all of the time. I love how much better the car sounds with the valves open. Much more fun to drive on the street now since the cars sounds better zipping around at low rpms. You don't have to go to 9000rpm for a smile anymore.
orthojoe is online now  

Thread Tools
Search this Thread
Quick Reply: How-to: building a GPS-based PSE valve controller for passing track sound checks


Contact Us Advertising Cookie Policy Privacy Statement Terms of Service

© 2018 MH Sub I, LLC dba Internet Brands

We are a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites.
 
  • Ask a Question
    Get answers from community experts
Question Title:
Description:
Your question will be posted in: