Announcement

Collapse
No announcement yet.

07 Scion tC Steering Wheel Control Guide

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.
    DON'T PANIC.

    Previous install pics in 2k3 S10

    Project CarPc V2

  • #2
    awesome. thank you.

    Comment


    • #3
      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

      Comment


      • #4
        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.
        DON'T PANIC.

        Previous install pics in 2k3 S10

        Project CarPc V2

        Comment


        • #5
          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

          Comment


          • #6
            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
            DON'T PANIC.

            Previous install pics in 2k3 S10

            Project CarPc V2

            Comment


            • #7
              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

              Comment


              • #8
                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
                DON'T PANIC.

                Previous install pics in 2k3 S10

                Project CarPc V2

                Comment


                • #9
                  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

                  Comment


                  • #10
                    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.

                    Comment


                    • #11
                      so we should be powering the fusion brain off of a continuous power source that doesnt go away when the car is off? i assume it uses very little power so car battery draining should not be an issue, correct?

                      i dont have a fusion brain yet but i may have to get one if this will give me steering wheel control

                      Comment


                      • #12
                        just power it from the aux on your computer's PSU

                        or the +12v on the computer's PSU

                        Comment


                        • #13
                          so i'll have problems if i use the wiring/fuses outlined here and power the fb off my computers power supply?

                          Comment

                          Working...
                          X