I wasn't sure where to put this, but I was thinking that once people have successfully completed an install that is vehicle specific, maybe it will be of use to have a section for it.
Anyway, on with the show.
Steering Wheel Controls for (07) Scion tC
==================================================
NOTE: Different years may have different color wires, but the locations and values should be the same. YMMV
Finding the wires
First, we need to find the white plug containing the SWC wires. You can safely eliminate the possibility of it being the power plug or the speaker plug. This should only leave one (or two if you have the iPod controls).
This is the plug. The Orange, Green, and Pink wires are what we need. Notice the three wires are basically separate from the rest.
You'll be needing to splice in those wires. At this point you have the option of either cutting them or merely tapping into them so that you may use the stock radio later on. I chose to leave the plug functional, so I stripped a bit of the wire away and soldered some wires to give me slack.
Finding the resistance
For this you may follow Solution D, but keep in mind that we have three, count em 3 wires. This means that the VOL+, VOL+, SEEK+, and SEEK- are on one wire (pink) and MODE is another (green), with orange being common (ground).
Again, the colors may be different for each years.
Here is a link to some wiring diagrams [scionlife.com]
In my case, just over 100kOhm was the highest I recorded for either. This makes purchasing simple, as one pack of resistors should work. That being said, I happen to have some other values lying around and tried them out.
My final configuration that has given me the best separation of voltages is this:
Pink (VOL+, etc) gets 5k and green (MODE) gets 100k. Why this works I honestly don't know.
5k:
100k:
3 Pin wires w/resistors all pretty:
The 5k resistor gets soldered in between your +5VDC from the FB output and the FB input. (Red and black wires to make it easy) Solder the Pink wire to the input side as well. Same for the 100k, but use the Green wire. The copper braided wires get grounded to wherever your PC or FB are grounded.
And now the software side of things
I now get these values in MDX:
On SWC1 (Steering Wheel Control Analog port 0)
- No press: ~4.89v
- VOL+ 0.91
- VOL- 2.04
- SEEK+ 0.00
- SEEK- 0.39
On SWC2 (Steering Wheel Control Analog port 1)
- No press: ~2.50
- MODE 0.00
COM objects work now for RR. Make sure you have the latest FCC and Configurator.
Code:
<?xml version="1.0" encoding="utf-8" ?>
<FusionControlCentreConfiguration version="3.0" author="Ninja Kitty Wizard of Doom" date_created="Thursday, December 04, 2008 at 10:24:13 PM" last_modified="Friday, December 05, 2008 at 2:33:57 PM">
<require>
<!-- Begin Function Instances -->
<!-- End Function Instances -->
<!-- Begin Fusion Font Instances -->
<font name="Verdana" originalSize="25" font_config="content\fonts\Verdana.xml"></font>
<!-- End Fusion Font Instances -->
</require>
<speech enabled="false" global_politeness="true">
<!-- Begin System Speech Instances -->
<!-- End System Speech Instances -->
<!-- Begin System Speech Definition Instances -->
<system_definitions>
</system_definitions>
<!-- End System Speech Definition Instances -->
<!-- Begin Custom Speech Definition Instances -->
<custom_definitions>
</custom_definitions>
<!-- End Custom Speech Definition Instances -->
<!-- Begin Custom Query Instances -->
<custom_queries>
</custom_queries>
<!-- End Custom Query Instances -->
</speech>
<general>
<!-- Begin Debug Instances -->
<debug status="off">
<window type="variables"></window>
<window type="ifthen"></window>
<virtual_brain id="my fusion brain 0"></virtual_brain>
</debug>
<!-- End Debug Instances -->
<com status="enabled">
<executable_commands>
<external_COM_id id="RoadRunner.SDK">
<command internal_id="RoadRunnerCommand_PLAY" external_command="Execute">
<parameter order="0" external_command_parameter="PLAY" />
</command>
<command internal_id="RoadRunnerCommand_NEXT" external_command="Execute">
<parameter order="0" external_command_parameter="NEXT" />
</command>
<command internal_id="RoadRunnerCommand_PREV" external_command="Execute">
<parameter order="0" external_command_parameter="PREV" />
</command>
<command internal_id="RoadRunnerCommand_VOL+" external_command="Execute">
<parameter order="0" external_command_parameter="VOL+" />
</command>
<command internal_id="RoadRunnerCommand_VOL-" external_command="Execute">
<parameter order="0" external_command_parameter="VOL-" />
</command>
</external_COM_id>
</executable_commands>
</com>
<!-- Begin Remote Control Configuration -->
<remote status="disabled" user_name="default" port="4242"></remote>
<!-- End Remote Control Configuration -->
</general>
<graphics>
<!-- Begin Global Graphic Settings -->
<main_display designed_for_size="800,600" show_at_size="800,600" menubar="sizeable" RunInSystemTray="True" MinimizeToSystemTray="True"></main_display>
<!-- End Global Graphic Settings -->
<!-- Begin Background Images -->
<background_image style="stretch" imagefilepath="content\images\background_images\background.jpg" page="0"></background_image>
<!-- End Background Images -->
<!-- Begin Static Images -->
<staticimage>
<image path="content\images\static_images\button_larger.png"></image>
<display size="355,70" location="37,119" page="0" z_order="0.9"></display>
</staticimage>
<staticimage>
<image path="content\images\static_images\button_larger.png"></image>
<display size="355,70" location="412,119" page="0" z_order="0.9"></display>
</staticimage>
<staticimage>
<image path="content\images\static_images\logo.png"></image>
<display size="556,27" location="123,44" page="0" z_order="0.9"></display>
</staticimage>
<!-- End Static Images -->
<!-- Begin Variable Location Images -->
<!-- End Variable Location Images -->
<!-- Begin Graph Instances -->
<!-- End Graph Instances -->
<!-- Begin Display Buttons -->
<!-- End Display Buttons -->
<!-- Begin Multi Images -->
<!-- End Multi Images -->
<!-- Begin Text Labels -->
<text_label id="Text_Label_SWC1" text="SWC1: " auto_monitor="variable" auto_monitorTarget="variable_swc1">
<font font_id="verdana" font_size="25" colour="255,255,255,255"></font>
<display location="37,119" page="0"></display>
<config decimals="2" max_size="355,70"></config>
</text_label>
<text_label id="Text_Label_SWC2" text="SWC2: " auto_monitor="variable" auto_monitorTarget="variable_swc2">
<font font_id="verdana" font_size="25" colour="255,255,255,255"></font>
<display location="412,119" page="0"></display>
<config decimals="2" max_size="355,70"></config>
</text_label>
<!-- End Text Labels -->
</graphics>
<io>
<!-- Begin Fusion Brain Instances -->
<brain id="My Fusion Brain 0">brain id 0</brain>
<!-- End Fusion Brain Instances -->
<!-- Begin Timer Setup -->
<timer id="input" interval="30"></timer>
<timer id="output" interval="30"></timer>
<timer id="gui" interval="30"></timer>
<timer id="logic" interval="30"></timer>
<!-- End Timer Setup -->
<!-- Begin Digital Output Instances -->
<!-- End Digital Output Instances -->
<!-- Begin Analogue Input Instances -->
<iochannel id="SWC1" port="0" brain="my fusion brain 0" type="analogue_input">
<options history="5" auto_average="true"></options>
</iochannel>
<iochannel id="SWC2" port="1" brain="my fusion brain 0" type="analogue_input">
<options history="5" auto_average="true"></options>
</iochannel>
<!-- End Analogue Input Instances -->
</io>
<logic>
<!-- Begin Logging Setup -->
<all_logging>
</all_logging>
<!-- End Logging Setup -->
<!-- Begin Variable Declarations -->
<all_variables>
<variable name="variable_swc1">0</variable>
<variable name="variable_swc2">0</variable>
</all_variables>
<!-- End Variable Declarations -->
<!-- Begin Logic Declarations -->
<all_statements>
<if fire_on="logic" minimum_delta_vote_time="100" id="Logic for SWC1">
<variable do="set" name="Variable_SWC1">
<analogue id="SWC1" time="0"></analogue>
</variable>
</if>
<if fire_on="logic" minimum_delta_vote_time="100" id="Logic for SWC2">
<variable do="set" name="Variable_SWC2">
<analogue id="SWC2" time="0"></analogue>
</variable>
</if>
<if fire_on="logic" minimum_delta_vote_time="100" id="SW Vol UP Logic">
<boolean_operation type="between ii">
<parameter1>
<number>0.83</number>
</parameter1>
<parameter2>
<analogue id="SWC1" time="0"></analogue>
</parameter2>
<parameter3>
<number>0.90</number>
</parameter3>
</boolean_operation>
<then>
<do function="external command" functionTargetID="RoadRunnerCommand_VOL+" vote_opinion="VOL+" vote_priority="Medium"></do>
</then>
</if>
<if fire_on="logic" minimum_delta_vote_time="100" id="SW Vol DOWN Logic">
<boolean_operation type="between ii">
<parameter1>
<number>2.0</number>
</parameter1>
<parameter2>
<analogue id="SWC1" time="0"></analogue>
</parameter2>
<parameter3>
<number>2.09</number>
</parameter3>
</boolean_operation>
<then>
<do function="external command" functionTargetID="RoadRunnerCommand_VOL-" vote_opinion="VOL-" vote_priority="Medium"></do>
</then>
</if>
<if fire_on="logic" minimum_delta_vote_time="500" id="SW Track Next Logic">
<boolean_operation type="between ii">
<parameter1>
<number>0.01</number>
</parameter1>
<parameter2>
<analogue id="SWC1" time="0"></analogue>
</parameter2>
<parameter3>
<number>0.37</number>
</parameter3>
</boolean_operation>
<then>
<do function="external command" functionTargetID="RoadRunnerCommand_NEXT" vote_opinion="NEXT" vote_priority="Medium"></do>
</then>
</if>
<if fire_on="logic" minimum_delta_vote_time="500" id="SW Track Prev Logic">
<boolean_operation type="between ii">
<parameter1>
<number>0.38</number>
</parameter1>
<parameter2>
<analogue id="SWC1" time="0"></analogue>
</parameter2>
<parameter3>
<number>0.40</number>
</parameter3>
</boolean_operation>
<then>
<do function="external command" functionTargetID="RoadRunnerCommand_PREV" vote_opinion="PREV" vote_priority="Medium"></do>
</then>
</if>
<if fire_on="logic" minimum_delta_vote_time="1000" id="SW MODE PLAY PAUSE #">
<boolean_operation type="between ii">
<parameter1>
<number>0.01</number>
</parameter1>
<parameter2>
<analogue id="SWC2" time="0"></analogue>
</parameter2>
<parameter3>
<number>2.25</number>
</parameter3>
</boolean_operation>
<then>
<do function="external command" functionTargetID="RoadRunnerCommand_Play" vote_opinion="PLAY" vote_priority="Medium"></do>
</then>
</if>
</all_statements>
<!-- End Logic Declarations -->
</logic>
</FusionControlCentreConfiguration>
EDIT: Code updated. Also as a reminder, your values for voltages may be different. You may also modify the auto average, delta vote times, etc to your liking. This is currently working for me, though I need to tweak a few more things on the NEXT track. Good luck, and please feel free to ask questions.