Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: 07 Scion tC Steering Wheel Control Guide

  1. #1
    Constant Bitrate stealinfool's Avatar
    Join Date
    Dec 2005
    Location
    Orlando
    Posts
    142

    07 Scion tC Steering Wheel Control Guide

    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.

  2. #2
    Fusion Brain Creator
    Join Date
    Mar 2005
    Posts
    2,221
    awesome. thank you.

  3. #3
    Constant Bitrate megagoo's Avatar
    Join Date
    Oct 2004
    Posts
    133
    i have been trying to find a way to use my steering wheel controls in roadrunner for a while now and tonight i came across this. if this works i will be really happy.

    but i am trying to wrap my head around how exactly you are doing this. i have no experience with fusion brain and very little electronics experience here, so bare with me please.

    find the connection inside the car's dash with the green/pink/orange wires. i can do that. i checked and my 06 tc's colors should be the same as yours.


    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.
    ok so go back an inch or so from the connector and tap in other wires that will branch off and away from the connector? so you have the wires terminating at this connector AND the ends of the 3 new wires that were tapped in to?

    as far as the soldering of the resistor, shown in the two pictures, i can do that. but i am having trouble seeing one end of the connector. its a red and black wire soldered together at 1 end (with a resistor in the middle) and at the other end looks like some small female connector(s) which i assume plug into the fusion brain? is it just 1 connector per wire (red+black)? is the copper wire on the soldered ends just twisted together from the copper insulation of both home made wires? also where did you get these wires/where do i get them?

    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.
    this i am totally lost on. from what i am picturing, there is nothing connected to the radio's wires that we tapped in to. it looks like your saying simple to bridge the fusion brain's input and output connectors together with the home made resistor wires.

    secondary questions:

    1) where can i find details info on how to remove my center console or whatever i need to get to this. i have a manual transmission

    2) where do you mount and how do you power the fusion brain? will it run off of the usb's power?

    3) what do you mean that you need to tweak things on the "next" track? it doesnt work?

    4) if my voltages are different, would it be hard to tweak your code to match what i need?

    thanks!!

    Eddie

  4. #4
    Constant Bitrate stealinfool's Avatar
    Join Date
    Dec 2005
    Location
    Orlando
    Posts
    142
    Quote Originally Posted by megagoo View Post
    ok so go back an inch or so from the connector and tap in other wires that will branch off and away from the connector? so you have the wires terminating at this connector AND the ends of the 3 new wires that were tapped in to?
    Yes. I did this so that if I need to disconnect the computer & brain I wont have to do any more cutting/splicing.

    as far as the soldering of the resistor, shown in the two pictures, i can do that. but i am having trouble seeing one end of the connector. its a red and black wire soldered together at 1 end (with a resistor in the middle) and at the other end looks like some small female connector(s) which i assume plug into the fusion brain?
    Yes

    is it just 1 connector per wire (red+black)? is the copper wire on the soldered ends just twisted together from the copper insulation of both home made wires?
    Yes

    also where did you get these wires/where do i get them?
    I got them with my brain. You can really use any 3 pin connector.


    this i am totally lost on. from what i am picturing, there is nothing connected to the radio's wires that we tapped in to. it looks like your saying simple to bridge the fusion brain's input and output connectors together with the home made resistor wires.
    Pretty much. The common ground gets grounded AND connected to the orange wire. (orange for my year, may change)

    The goal is to feed the +5V from the brain back into the car's system and through the resistor we put in, which then feeds an input to the brain.


    secondary questions:

    1) where can i find details info on how to remove my center console or whatever i need to get to this. i have a manual transmission
    • Take shift knob off
    • Pry (with your fingers) the silver/black trim piece off startgng from drink holder and going up
    • Notice screws at bottom of "waterfall". Take those out and you will be able to pop the rest of.
    • Search scionlife.com if you have further questions. I know there's good pics somewhere of the steps



    2) where do you mount and how do you power the fusion brain? will it run off of the usb's power?
    I have mine underneath the drink holder. It's powered through a DC-DC converter I had lying around. No, I don't think it can be powered off the USB.

    3) what do you mean that you need to tweak things on the "next" track? it doesnt work?
    When I press the Next button, the values go to zero. That's fine, but for some reason the brain freezes when values hit zero and it stays frozen for a few seconds. This causes the Next button to be triggered several times. I cannot adjust code to compensate b/c I want the ability to hit Next several times. It may be an issue with the brain itself.


    4) if my voltages are different, would it be hard to tweak your code to match what i need?
    Not at all. All you will have to do is substitute your numbers for mine. You may find you want to adjust some of the delays/sensitivity anyway once you start using it.

    Holy quotes batman! I hope this helps.

  5. #5
    Constant Bitrate megagoo's Avatar
    Join Date
    Oct 2004
    Posts
    133
    hey. i appreciate the help. what i am still not completely understanding is the wiring itself. i can draw a diagram for verification, but can you detail the connections in one line per connection type outline?

    it might be easy to give a letter to each part like: fusion brain +5 output = A. fusion brain blah blah input = B. car wiring (pink) = C ....etc etc etc etc

    then say

    A -> C
    b -> E .....etc etc

    or unless you wanna draw a diagram, take a picture of it and attach it


    The goal is to feed the +5V from the brain back into the car's system and through the resistor we put in, which then feeds an input to the brain.
    so: fb +5v output -> PINK OR GREEN WIRE -> fb input (via the wire with the resistor) so that the fusion brain is in a loop with the wires?


    as far as the seek+ thing, is there a possibility you would have to wire a different resistor in or something because i dont want to be stuck with a seek+ button that skips too much

    thanks again

    Eddie

  6. #6
    Constant Bitrate stealinfool's Avatar
    Join Date
    Dec 2005
    Location
    Orlando
    Posts
    142
    Let me show you the worst drawing ever...


    I drew it wrong as far as what order the resistor goes in.. THIS is how it goes. Red is 5V from FB, black goes to FB input. Resistor end goes to pink or green.


    I'm not at a point where I can take my dash apart, so unfortunately this is what you get

  7. #7
    Constant Bitrate megagoo's Avatar
    Join Date
    Oct 2004
    Posts
    133
    oh ok i think i get it. so in the pictures witht he red and black wires, the red wire goes to the 5v output and black goes to the input

    but since there are two pairs, does that mean they go to the same 5v and same output? or does the fusion brain have 2 or more 5v outs and inputs? well looking back at one of the original pictures, the 5v out/input must be next to eachother because it looks like the black/red wires share a common connector that makes a side-by-side connection

    the two orange lines that turn into grey lines, does that signify the ground running through the shielded cable?

    the ground wires from both pairs of red/black get soldered to not only the car's orange wire but a ground somewhere else as well?

    thanks i think im getting it here..

    also i had asked another question.. you said the seek+ button was set so that it would hit next a couple of times when you just press it once. is this something that can be fixed and if so, would it require putting in a different resistor? or just tweaking the config file?

    the manual says "Power Select. Use this to select USB/DC Jack power. Jumpers must be arranged as shown." so it looks like you could use usb power. i might rather tap into a power source somewhere else to be safe incause my usb is finnicky

    thanks again
    eddie

  8. #8
    Constant Bitrate stealinfool's Avatar
    Join Date
    Dec 2005
    Location
    Orlando
    Posts
    142
    It does look like you've got it. This requires two inputs, because our cars use 3 wires. So you'll have one input and set of logic for VOL+, VOL-, TRACK+, TRACK- and the other input and set of logic will be for MODE (I made it as a PLAY in RR so it can pause/play songs)

    They are in fact next to eachother so the grounds (yes, the shields) are wound together and spliced in with the orange wire to the car. I did ground this again to the same ground that the FB and the PC use.

    The problem with the track next may lie within the values of resistors I've picked. Both the MODE and TRACK+ button put values to zero. I'm wondering why this causes FB to hang for a few seconds (sometimes up to 4). If you can find some values that keep it from hitting zero, you're probably better off. The code is good.

    As far as the power goes, you may have a different version than mine... It looks like you could use just USB power, but I don't know how that all will play out. If you have the means, I personally would go ahead and give it a dedicated line. That being said, the power line should definitely be set up to coordinate with ignition

    For example.. Mine is running of a 15W DC-DC converter, powered directly of the ACC line. I regret doing this (and will change) because if I turn the car off to ACC (while parked, maybe running inside or something) and start the car again, it kills the FB. This means it sends all zeros to my control centre, and I have to restart the app. In the meantime, as the voltages are dropping to zero it's simulating button presses, leaving me with muted or skipped tracks.


    In summary.. USB power might be fine; Try it. If using dedicated power, either run off PC power supply or make sure it always turns off/on along with the PC and doesn't die when you crank. Sorry if I'm redundant or unclear, it's been a long day

  9. #9
    Constant Bitrate megagoo's Avatar
    Join Date
    Oct 2004
    Posts
    133
    thanks for the reply

    so right now your track next button is always messed up (freezes for 4 seconds and skips too many times)? do you have any plans on fiddling more with resistors to find out what the best way to do it is? i dont want to go through all of this for an install if my track next button wont work right, and honestly i dont think i know enough to determine which resistor would work better

    have you asked the creator of fusion brain if the 0v probably is a bug and if he has plans on fixing it? it sounds like you dont have the newest version of the hardware so maybe it already is.

    thanks

  10. #10
    Fusion Brain Creator
    Join Date
    Mar 2005
    Posts
    2,221
    Its sending zeros because he's not powering it with a continuous source.

    as for the mode and track buttons, i have a feeling they're not zero, but slightly negative. the FB doesn't like that, and he should improve his circuit to change that.

Page 1 of 2 12 LastLast

Similar Threads

  1. Tutorial - Steering Wheel Controls
    By greenman100 in forum FB Documentation and Tutorials
    Replies: 195
    Last Post: 10-19-2010, 02:03 AM
  2. Steering Wheel Remote Control
    By drdave in forum Car Audio
    Replies: 0
    Last Post: 02-21-2008, 11:48 PM
  3. Steering Wheel Volume control interface
    By wizbangstokes in forum Input Devices
    Replies: 0
    Last Post: 10-24-2007, 12:36 AM
  4. Audy A8 Steering Wheel Control to PC
    By k11SiC6 in forum Input Devices
    Replies: 2
    Last Post: 03-02-2007, 05:54 PM
  5. Wireless control for steering wheel
    By DodgeCummins in forum General MP3Car Discussion
    Replies: 1
    Last Post: 02-15-2002, 02:14 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •