C5 Tech Corvette Tech/Performance: LS1 Corvette Technical Info, Internal Engine, External Engine, Tech Topics, Basic Tech, Maintenance, How to Remove & Replace
Sponsored by:
Sponsored by:

Interfacing C6 Steering Wheel Controls to a C5 with Stock Clock Spring

Thread Tools
 
Search this Thread
 
Old 07-28-2022, 02:12 PM
  #1  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default Interfacing C6 Steering Wheel Controls to a C5 with Stock Clock Spring

Hey everyone, this is a project of mine which I've decided to make open source, mostly for the sake of my own motivation.

Recently I fitted a C6 steering wheel (with media control buttons) to my C5, but there's no way to interface these buttons to an aftermarket head unit while using a stock C5 clock spring. Yes, you could potentially use a C6 clock spring but that's not the point of this thread.

The solution I am sharing here is a device which utilizes wireless communication to bridge SW media controls over to an aftermarket head unit.
It's comprised of 2 separate units:
  • Master: car-side device which interfaces to head unit, and also hijacks the horn signal/power wire. As well it reads interior illumination information.
  • Slave: SW-side device which reads steering wheel buttons and horn switch.

Why?
I'm a Mechanical Engineer and perpetual tinkerer. I don't really do any programming/coding professionally so it's just a fun hobby that happens to be great for my personal/professional growth. This project gives me additional purpose for learning more about Arduino.
Currently there are 2 other Arduinos in my C5Z:
  1. media control device which adds a physical **** to the button-less Joying head unit (sharing a good chunk of work from that project)
    • the C6 SW with media controls would replace this one
  2. SWPS manipulator device that allows me to run an angle kit on my C5 while the Active Handling system operates & behaves normally

The next post will go into more details, but this link shows all my code and whatnot for the project:
https://create.arduino.cc/editor/tco...02d9f0/preview
The following 5 users liked this post by MetalMan2:
ArmchairArchitect (07-28-2022), Kubs (08-17-2022), LastTrueZ (07-02-2023), mindvexed (07-30-2022), Tusc (08-18-2022)
Old 07-28-2022, 02:13 PM
  #2  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

So how does it work?
  • Stock C5 connects the horn switch signal through the SW via a mechanism called a "slip ring". It's 2 pieces of brass (one is spring-loaded) that rub each other while the SW turns. In addition, the SW itself acts as a ground and is effectively grounded to the chassis. I posted more details on this here
    • In stock form, the BCM sends ~12V power/signal through the slip ring to the horn switch. Pressing the horn shorts this out, passing about 140mA (0.14Amps) through the circuit. I'm thinking the SW-side unit will draw low enough current when idle that it can use this 12ish volts from the BCM temporarily (until the 2 units are wirelessly connected).
    • By hijacking the horn signal wire, I can send my own power through the slip ring to the SW-side unit so that it can be powered by a proper switched +12V source. With the other end of the hijacked wire I can simply short it to ground (with a relay that can handle 140mA) as needed to activate the horn.
  • Utilizing 2x Arduino "RF-Nano" boards, which are a combination Arduino Nano & nRF24L01+ board, the following happens:
    • Steering wheel side:
      • Constantly polls the steering wheel buttons for a resistance change (via a voltage divider)
      • Constantly polls the horn switch to check if it's being pressed
        • Does this by using a pullup input, where a horn switch press pulls the input to ground. Later I may look into using an interrupt instead but ultimately that level of speed is likely not required.
      • Any time a status change for SW buttons or horn occurs, it sends this to the Car-side unit
    • Car side:
      • Periodically polls the car's interior illumination, sends any updates to SW-side
  • There are 2 overarching conditions for this device:
    1. When the car is off and/or the 2 units haven't established communication (or lose comm.), the units will revert to a default/disabled state where the horn system will operate like stock.
    2. When both units are appropriately powered and communicating wirelessly, then SW controls will be granted, as well as buttons can be illuminated, and the horn will be able to operate seemingly normally.
    • To make these conditions possible, there are 4 separate relays across both units that control power, horn signal, and SW button backlights:
      • Master power relay: in default/disabled condition, this connects the car-side slip ring wire to the BCM's horn wire. When the relay is triggered (which happens after the 2 units establish communication), it sends +12V switched power through the slip ring to the SW-side unit.
      • Master horn relay: when triggered, this shorts out the BCM's horn wire, turning on the horn.
      • Slave slip ring / horn relay: under default condition, this relay connects the horn switch to the slip ring. When triggered, it sends the horn switch signal instead to the Arduino.
      • Slave illumination relay: simply sends +12V power (from switched source via slip ring) to C6 SW button backlights when told to.
  • Handling C6 SW media buttons and resistances:
    • SW-side: a voltage divider arrangement allows the Arduino to effectively read which button is pressed. I mapped out all this and listed it under the Figuring_out tab in my source code link.
    • Car-side: I came up with a resistor ladder arrangement that gets triggered by the Arduino, which will output different resistance values through a single wire. It's kind of a unique implementation that I developed for the Joying media control device.
      • These resistance values are intended to mimic the C6 SW media buttons. The idea being that you can use an off-the-shelf device that would normally translate C6 SW button signal to an aftermarket head unit. The Joying head unit I use has a learning function where I can teach it what each of the SW buttons does so no need for the intermediate device.

What are the current limitations?
  • My C6 SW doesn't have bluetooth control buttons so I haven't detailed those out (although there are placeholders for them)
  • The "RF-Nano" Arduino board I chose is becoming less available... no longer available on Amazon, and another US-based source I contacted suggested they might never be available again.
    • However, these boards appear very available on Aliexpress, and I just received several of them from a Chinese seller.
      • Compared to my Amazon-purchased units, the Aliexpress-purchased units seem to have 2 major differences:
        1. 2 of the wireless module pins are flipped, so they have to be flipped in the code when switching between the 2 different boards. It's not an issue, just an annoyance for when I forget.
        2. Aliexpress ones use the "old" Arduino Nano bootloader while Amazon ones the "new" bootloader, so there's an extra configuration change needed when uploading code between the 2 different boards.

Last edited by MetalMan2; 07-28-2022 at 05:35 PM.
The following 3 users liked this post by MetalMan2:
ArmchairArchitect (07-28-2022), mindvexed (07-30-2022), Tusc (08-18-2022)
Old 07-28-2022, 02:13 PM
  #3  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

What's next?
  • I've built up a breadboard of the 2 units and began preliminary bench testing. So far wireless communication is working well and I'm ready to hook it up to the car and proceed with further testing.
  • After the breadboard test concludes, I will build up the 2 units in a prototype form and package them to fit into the car, though currently I'm not entirely sure what that will look like.
    • If anyone has PCB design experience, I'd be thrilled to connect with you. As much as I want to learn basic PCB design (and may some day), I don't currently have time for it. But I can definitely do the 3D CAD packaging side.
  • The goal is to be able to provide boards at any stage of assembly, from bare PCBs all the way to completed units that are loaded with code and ready to wire up into your car. Not sure how to navigate this, though, since I'm not a Supporting Vendor and therefore can't actively list these for sale.

Here is the current schematic / wiring diagram:


Last edited by MetalMan2; 07-29-2022 at 10:46 AM.
The following 4 users liked this post by MetalMan2:
ArmchairArchitect (07-28-2022), Kubs (08-17-2022), mindvexed (07-30-2022), Tusc (08-18-2022)
Old 07-30-2022, 11:07 AM
  #4  
mindvexed
Advanced
 
mindvexed's Avatar
 
Member Since: Sep 2010
Location: Fargo ND
Posts: 63
Received 4 Likes on 2 Posts

Default

This is great, it's cool to see you taking a much deeper dive into the controls system than most of us have the knowledge or skills to do. I've been wanting to do a c6 steering wheel swap to get audio controls (for a joying head unit), but didn't even start down the path because of the class 2 serial data to CAN bus change from c5 to c6. If everything shakes out as you expect and you get to a point of making a batch of these, I'd definitely be interested.
The following 3 users liked this post by mindvexed:
ArmchairArchitect (08-01-2022), MetalMan2 (08-01-2022), Tusc (08-18-2022)
Old 08-02-2022, 11:43 AM
  #5  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

Originally Posted by mindvexed
This is great, it's cool to see you taking a much deeper dive into the controls system than most of us have the knowledge or skills to do. I've been wanting to do a c6 steering wheel swap to get audio controls (for a joying head unit), but didn't even start down the path because of the class 2 serial data to CAN bus change from c5 to c6. If everything shakes out as you expect and you get to a point of making a batch of these, I'd definitely be interested.
Fortunately, in general SWC (steering wheel controls) like this at their core are super simple: just changes in resistance values. What the C6 does with those resistance values is a different story and of course not applicable to the C5. Other guys who have used a C6 SW with working SWC just used a C6 clock spring, and then the SWC breaks out on a single wire (referenced to ground). Some head units may require a converter of sorts do go between the SWC wire and head unit, though that is just a remapping of resistance values and isn't related to digital communications like CAN. Some head units (like the Joying I have) offer learning features which can directly program the resistance values from a C6 SW.


Over the weekend I managed some progress: completed bench testing which included code changes to fix several errors, and I now have all the car's wiring ran to accommodate the 'master' side unit. That unit will go under the traction control button for ease of access, plus my existing Joying volume control device wires are already ran to that spot (I'm using 3 wires from that, plus 3 additional wires).

Originally Posted by MetalMan2
  • After the breadboard test concludes, I will build up the 2 units in a prototype form and package them to fit into the car, though currently I'm not entirely sure what that will look like.
    • If anyone has PCB design experience, I'd be thrilled to connect with you. As much as I want to learn basic PCB design (and may some day), I don't currently have time for it. But I can definitely do the 3D CAD packaging side.
Realistically I would spend A LOT of time coming up with a hand-wired perforated board circuit board (prototype units). Been there, done that with the other Arduino-based projects I listed previously.
It's cheap to have custom PCBs made if you can generate the PCB design. Soooo I decided to try out PCB design... one of the recommendations I keep coming across for a free design tool is EasyEDA.com . I had zero PCB design experience prior to this, other than working closely with electrical engineers who were doing it. And already I think I have a viable PCB for the 'slave' unit! The 'master' should be quick since I have a good grasp on using the EasyEDA online editor.

My biggest regret is not trying out PCB design sooner. I could have saved a lot of time in the long run.
The following users liked this post:
Tusc (08-18-2022)
Old 08-08-2022, 01:25 PM
  #6  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

Progress!
Over the weekend I tested various functions of the Master & Slave units and made a variety of code changes accordingly. Presently I'm happy with how things are operating. Wound up chasing my tail for a bit on a dumb breadboard ground issue but afterwards it was smooth sailing.

Then I finished up v1.0 of the Master & Slave PCB design/layouts. Last night I ordered qty 5 of each from a Chinese PCB vendor (they are the parent company which operates EasyEDA.com). Total was $16 shipped for 5 of each board which to me is SUPER cheap... I'll remain optimistic about the quality. Should have them in about a week.

Currently I have the PCBs shared on Osh Park's website which is a convenient place for you guys to purchase them (but I'll have ~4 spares of my current boards if all goes to plan, so please buy mine haha).
https://oshpark.com/shared_projects/BAkvo1f2
https://oshpark.com/shared_projects/ZCMsHL5N

These are the PCB renderings from Osh Park's website:

Master


Slave
The following 3 users liked this post by MetalMan2:
ArmchairArchitect (08-09-2022), link9a (08-18-2022), Tusc (08-18-2022)
Old 08-17-2022, 11:32 AM
  #7  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

China made PCBs came in the other day. I'm actually pretty pleased with their appearance, makes me think that they ought to have good quality.




Last night I started soldering everything. It went pretty quick since I put in so much effort up-front on the PCB design/layout. Unfortunately, as usual, I was in a rush and so didn't take any progress pictures. But I have enough parts to build up one more set so I can take more time and photograph the process.

My goal last night was to get the Slave unit installed into the steering wheel so I could drive the car again... airbag had been removed for the last 2-3 weeks as I played with the breadboard setup to make sure things were working (plus debugging Arduino code). That means I didn't drive the car for 2-3 weeks

Managed to meet my goal at the expense of a little sleep. Below is it installed in the C6 SW, turned out to be a great fit. Here the car-side BCM/horn wires hadn't been connected yet, so the Slave unit was unpowered. Also you'll note that the wires between Slave unit and C6 SW connector are a bit of a mess... it will all come out again in the foreseeable future and I'll sleeve the wires at that time.


Below is showing the Slave unit powered up after I connected the car-side BCM/horn wires together. This is a temporary measure until I get a chance to finish up the Master unit and get that installed (BCM/horn wires will go to the Master).


The Slave unit's default/unconnected state makes it so that the horn behaves like stock. So in the above picture the BCM is powering the unit, but pushing the horn still shorts out the horn wire like stock. Fortunately the horn works because I needed it when another driver almost merged into me!
The following users liked this post:
Tusc (08-18-2022)
Old 08-18-2022, 02:55 AM
  #8  
Tusc
Running Guns & Moonshine
Support Corvetteforum!
 
Tusc's Avatar
 
Member Since: Aug 2001
Location: CT
Posts: 8,155
Received 3,501 Likes on 2,036 Posts

Default

No illegal merges!

I enjoy your projects. Reminds me of my much simpler foray into confirming that the HUD can be retrofitted to a non-hud equipped pre-99 C5. Or rewiring my LED tails a decade ago to turn them into halos. Always tip the tinker.
The following users liked this post:
MetalMan2 (08-18-2022)
Old 08-18-2022, 02:54 PM
  #9  
link9a
Racer
 
link9a's Avatar
 
Member Since: May 2021
Posts: 332
Received 38 Likes on 35 Posts
Default

great ...So do I need to prepare myself to start to buy those board now so l can be ready for the next ?

Last edited by link9a; 08-18-2022 at 03:38 PM.
The following users liked this post:
Tusc (08-18-2022)
Old 08-18-2022, 05:45 PM
  #10  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

Originally Posted by link9a
great ...So do I need to prepare myself to start to buy those board now so l can be ready for the next ?
Well, I have 4 extra board sets and currently 1 extra set of parts (more parts sets are easy & quick to come by). Let me know if you'd be interested in me building up boards for you.
Old 08-18-2022, 09:47 PM
  #11  
link9a
Racer
 
link9a's Avatar
 
Member Since: May 2021
Posts: 332
Received 38 Likes on 35 Posts
Default

Originally Posted by MetalMan2
Well, I have 4 extra board sets and currently 1 extra set of parts (more parts sets are easy & quick to come by). Let me know if you'd be interested in me building up boards for you.
All l need my steering wheel controls working with my Kenwood .. and yes I want you to build that for me ..you know we start together to change out OEM steering wheel C5 to C6. So we are in the same boat 😄
The following users liked this post:
MetalMan2 (08-19-2022)
Old 08-19-2022, 11:14 AM
  #12  
WytNyt
Intermediate
 
WytNyt's Avatar
 
Member Since: May 2022
Posts: 26
Received 3 Likes on 3 Posts
Default

This is impressive. You all are absolutely mind blowing. I'm dizzy but I'm learning! Following!!
The following users liked this post:
Tusc (08-19-2022)
Old 08-19-2022, 06:12 PM
  #13  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

Originally Posted by link9a
All l need my steering wheel controls working with my Kenwood .. and yes I want you to build that for me ..you know we start together to change out OEM steering wheel C5 to C6. So we are in the same boat 😄
What is the Kenwood stereo model number?

Normally most aftermarket stereos will need a converter box to change the SW controls signal so they can be read properly. For example, people who have a C6 with an aftermarket stereo will use something like one of these:
https://www.c6performance.net/catalo...-p-497196.html
https://axxessinterfaces.com/product/ASWC-1
https://catalog.pac-audio.com/catalo...faces/gm1a-rst
https://catalog.pac-audio.com/catalo...ement/rp5-gm11

But with the Arduino I can (theoretically) make the output whatever it needs to be for any different aftermarket stereo, so a converter box wouldn't be used. Making the change may just be a matter of using different resistors which is easy.

Some aftermarket stereos have a learning/programming feature for SW controls. My Joying stereo does, for example, so I can use the C6 SW button resistances as they are.

Originally Posted by WytNyt
This is impressive. You all are absolutely mind blowing. I'm dizzy but I'm learning! Following!!
Thanks We're all learning!
The following users liked this post:
Tusc (08-19-2022)
Old 08-19-2022, 06:32 PM
  #14  
link9a
Racer
 
link9a's Avatar
 
Member Since: May 2021
Posts: 332
Received 38 Likes on 35 Posts
Default

Originally Posted by MetalMan2
What is the Kenwood stereo model number?

Normally most aftermarket stereos will need a converter box to change the SW controls signal so they can be read properly. For example, people who have a C6 with an aftermarket stereo will use something like one of these:
https://www.c6performance.net/catalo...-p-497196.html
https://axxessinterfaces.com/product/ASWC-1
https://catalog.pac-audio.com/catalo...faces/gm1a-rst
https://catalog.pac-audio.com/catalo...ement/rp5-gm11

But with the Arduino I can (theoretically) make the output whatever it needs to be for any different aftermarket stereo, so a converter box wouldn't be used. Making the change may just be a matter of using different resistors which is easy.

Some aftermarket stereos have a learning/programming feature for SW controls. My Joying stereo does, for example, so I can use the C6 SW button resistances as they are.


Thanks We're all learning!
l have Kenwood DNR876S. This one have one wire for steering wheel controls actually all the Kenwood have that and l use this one to control the volume wireless

https://axxessinterfaces.com/product/RFASWC
The following users liked this post:
Tusc (08-19-2022)
Old 08-19-2022, 08:05 PM
  #15  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

Originally Posted by link9a
l have Kenwood DNR876S. This one have one wire for steering wheel controls actually all the Kenwood have that and l use this one to control the volume wireless

https://axxessinterfaces.com/product/RFASWC
I'm not having much luck finding the resistance values to use for Kenwood stereo SW control wire. But maybe you can help with that... just need you to measure the resistance between SW control wire and ground when you press each button on your Axxess RFASWC remote. Do you have a multimeter?
The following users liked this post:
Tusc (08-19-2022)
Old 08-19-2022, 08:36 PM
  #16  
link9a
Racer
 
link9a's Avatar
 
Member Since: May 2021
Posts: 332
Received 38 Likes on 35 Posts
Default

Originally Posted by MetalMan2
I'm not having much luck finding the resistance values to use for Kenwood stereo SW control wire. But maybe you can help with that... just need you to measure the resistance between SW control wire and ground when you press each button on your Axxess RFASWC remote. Do you have a multimeter?
lwill get the multimeter tomorrow and test it .so one go to Kenwood wire steering wheel controls and the other go to the ground wire and lwill start to press each button to see the number ..
The following users liked this post:
Tusc (08-19-2022)
Old 08-20-2022, 12:12 PM
  #17  
link9a
Racer
 
link9a's Avatar
 
Member Since: May 2021
Posts: 332
Received 38 Likes on 35 Posts
Default

I'm not smart with multimeter but I try....the red side multimeter go to steering wheel controls wire Kenwood ( the same one connected with the black box Axxc )..the black side multimeter go to the skinny red wire the one coming from Axxc box and gave those reading without pressing any buttons ....if l put the black side to Axxc box ground nothing gave me no reading ... So those what l get with different options .. you decided




Kenwood wire steering wheel controls connected same time with the black box Axxc

Red wire the skinny one

Last edited by link9a; 08-20-2022 at 03:45 PM.

Get notified of new replies

To Interfacing C6 Steering Wheel Controls to a C5 with Stock Clock Spring

Old 08-20-2022, 07:28 PM
  #18  
MetalMan2
Melting Slicks
Thread Starter
 
MetalMan2's Avatar
 
Member Since: Dec 2018
Location: Orange County, CA
Posts: 2,089
Received 1,045 Likes on 666 Posts
Default

Got the Master & Slave working together nicely in my C5! Took a video (kinda long for what it is, sorry) and you can see it below. Also below are progress pictures of the 2nd set of boards I'm currently building up. (sorry for the poor quality pics, best I could get for whatever reason)







Originally Posted by link9a
I'm not smart with multimeter but I try....the red side multimeter go to steering wheel controls wire Kenwood ( the same one connected with the black box Axxc )..the black side multimeter go to the skinny red wire the one coming from Axxc box and gave those reading without pressing any buttons ....if l put the black side to Axxc box ground nothing gave me no reading ... So those what l get with different options .. you decided

Kenwood wire steering wheel controls connected same time with the black box Axxc

Red wire the skinny one
If you set your multimeter to the 20k or 200k Ohm setting, is there a way you can get readings that are about 2k up to about 50k Ohms when you press different buttons?
For example, on a Pioneer stereo, these are the resistance values:
  • Volume up: 16k Ohm
  • Volume down: 24k Ohm
  • Next track / seek forward: 8k Ohm
  • Previous track / seek backward: 11.2k Ohm

20k setting on the multimeter means that it can read up to 20k Ohms, and you can read up to 200k Ohms on the 200k setting. With 200k setting it has less accuracy for the smaller resistance values.
The following 2 users liked this post by MetalMan2:
ArmchairArchitect (08-23-2022), Tusc (08-20-2022)
Old 08-20-2022, 08:14 PM
  #19  
Tusc
Running Guns & Moonshine
Support Corvetteforum!
 
Tusc's Avatar
 
Member Since: Aug 2001
Location: CT
Posts: 8,155
Received 3,501 Likes on 2,036 Posts

Default

Cool video. Common sense stay alive function. Handy joying tuning setup program. Making me want to look up my pioneer avic nex controls!

​​​​​​
Not for nothing, but as you continue to enjoy these side projects and developing niche or one-off products I hope you're also keeping an eye towards secondary income producing batches of product on the side.
The following users liked this post:
MetalMan2 (08-22-2022)
Old 08-20-2022, 09:14 PM
  #20  
link9a
Racer
 
link9a's Avatar
 
Member Since: May 2021
Posts: 332
Received 38 Likes on 35 Posts
Default

I hope this video will be help to find the reading resistor..


Quick Reply: Interfacing C6 Steering Wheel Controls to a C5 with Stock Clock Spring



All times are GMT -4. The time now is 10:51 AM.