bigevtaylor/arduino-swc

Second Pot for Ring

Closed this issue · 3 comments

I'm building a CAN Bus Adapter for Opel and I would like to thank you for your code. It helped a lot to interface to the Pioneer head unit.

Regarding the second pot. It looks like it is just tied to GND when sending some TIP commands.
Wouldn't it be easier to just tie it to GND via GPIO instead of using a second pot?

I tried it on my prototype to make use of phone hang up, phone answer and voice command and it seems to work fine

Grea to hear, thank you :)

Full disclosure; this was my first electronics & coding project for a good 15 years. I may have overcomplicated and / or overlooked some things. I also pieced this together using notes from a few different forums where different people posted their testing. Some of their own testing may not have been complete either. Below is my recollection of the tests I did when I built this.

If you hold the RING to GND permanently I was not able to confirm access to the all the functions and some functions overlap. For example, SOURCE and POWER overlap. Even though POWER has a told of 1000ms when testing (if I recall correctly) if RING was GND then the SOURCE function never triggered.

Another one is SEEK / TRACK, next or previous. Depending on which mode the Pioneer is in and whether RING is GND, these values are also FOLDER next & previous.

I would be very interested in your own test data with this, it will help me update documentation so that this is as accurate as possible. I'm also keen to know what your build for CAN Bus read is.

Thanks for you reply. I test on a Pioneer SPH-DA230DAB. It's a Android Auto / Apple car play capable unit.

I modified your WrRing function to first GND the ring via GPIO A0, send the TIP resistance via MCP and set the GPIO to Input mode to make it high impedance after the delay.

This works fine for the voice command you already had in your code.

I found the phone answer and hang up resistance values on jvde in the comment section:

Chau posted:

1.2 kΩ + ring = Telephone menu (Hold = Bluetooth menu)
3,0 kΩ + ring = Answer // wrTip(9, 50)
5.5 kΩ + ring = Hang-up (Hold = Reject incoming call)
//wrTip(14, 50)

I had to use CAN because steering wheel buttons send the command via the steering column electronics via CAN. Also there is no ignition, illumination and reverse signal on the radio connector. All is managed via CAN and I used a MCP2515 CAN shield to interface the Arduino Nano to the car CAN bus.
I will upload all code to github once everything is tested in the car.

Ah, I see what you have done now. I had thought that GPIO GND was always ON instead of triggered.

Good pickup. Looking forward to seeing your code.