Subaru makes nice cars, but the stock Clarion CV629UM1 head unit that came with the 2015 WRX is complete garbage. Its Bluetooth support is erratic at best, and whenever it decides to crap out, the only way to maybe get it working again is by restarting the car. There's an open secret that Bluetooth is somewhat more reliable if you pair your phone using the steering wheel voice controls rather than the buttons on the head unit, which suggests some design decisions that reflect poorly on Clarion's engineering team. But even with that, audio regularly cuts out mid-drive despite the phone remaining paired. The only positive thing I can say about the Clarion unit is that its CD slot works well for attaching a phone holder.
I periodically tried to find a way to update the stereo's firmware in the optimistic hope that it would improve Bluetooth support. I found the occasional report of a successful update, but also warnings not to bother trying. I never managed to find a copy of the appropriate firmware file online, so the point was moot.
After seven years of this nonsense, I finally decided to replace the stock Clarion head unit with an aftermarket unit that would be capable of playing music and navigation directions from a phone. I had no idea what I was doing and found parts of the process to be poorly-documented and confusing. Hopefully this page will help if you're in a similar situation.
I briefly considered getting a bare-bones head unit that just supports Bluetooth, but I figured that I'd still be taking a gamble on whether it works reliably. So, I set my sights a bit higher and looked at touchscreen units with Android Auto support.
Crutchfield supports listing just the products that will fit in a given vehicle, so I spent a fair amount of time playing with the filters on their website and reading about different head units on r/AndroidAuto and r/CarAV.
I knew that I wanted a stereo that would fit entirely within the car's double-DIN slot without an ugly oversized touchscreen, so I set the "Touchscreen size" filter to 6.51" to 7". I eliminated brands that are junk per online consensus (most notably Boss). And I knew that I didn't want to buy an expensive $700+ Pioneer or Kenwood unit, since I predicted that no matter what, there would be plenty of Android Auto bugs that are present across all head units irrespective of price. That ruled out wireless (via wifi) Android Auto, which is only available in pricier units2. On the plus side, it meant that the phone would be connected with a USB cable, which would both charge it and hopefully be more likely to actually work.
After watching some video reviews, I settled on the Sony XAV-AX150. It's cheap (for a touchscreen unit), recently-released (May 2021), and manufactured by a company that seems reasonably competent when it comes to manufacturing electronics. The now-discontinued XAV-AX100, which I'm guessing was the AX150's predecessor based on the name, was the Wirecutter's "budget pick" in their old December 2019 The Best Car Stereos With Apple CarPlay and Android Auto roundup. The AX150 has a larger display (at the cost of the volume knob) and an input for steering wheel controls (making the volume knob superfluous).
Unfortunately, the XAV-AX150 (and most other head units) were out of stock by the time that I'd finally made up my mind. Crutchfield has an "email me when in stock" link. Two months after I clicked it, I received a message saying that the XAV-AX150 was available, so I quickly placed an order for the head unit and all of the accessories that Crutchfield recommended for installing it into a 2015 WRX:
The total was $331. Everything arrived a few days later in a box with cool biodegradable foam packing peanuts.
The Maestro SW is a small black box that receives input from the steering wheel buttons and converts them into commands for the head unit.
It has a micro-USB port and comes with a short micro-to-Type-A cable for connecting it to a computer. You'll need a Windows or macOS computer3 to run the confusingly-named Weblink desktop application to flash the Maestro with the latest firmware and with appropriate mappings for your car and head unit. Annoyingly, you need to create an account on a website to run the app, and you still can't do anything with it unless the Maestro is connected.
After you launch the Weblink app, you'll need to provide details about your car and head unit, and then you'll get a chance to choose which action each button should perform. The Sony head unit that I bought has a top-level settings menu that lets me remap these actions a second time (e.g. you choose "Volume up" on the head unit and are prompted to press the corresponding steering wheel button), so the important thing is that the Maestro sends a unique signal for each button. This was messed up at first (using the default mappings suggested by the Weblink app, I think), with the off-hook and voice buttons sending the same signal, so I had to take the Maestro out of the car and flash it a second time.
This video is helpful if you want to see an overview of the process.
After flashing the Maestro device, I tried to put together all the parts that Crutchfield had sent as best
as I could. Connecting the harness to the head unit was straightforward, but see the "wiring issues" section. The harness also plugs into the Maestro, and a 3.5mm
cable runs from the Maestro to a
REMOTE jack on the back of the head unit. I plugged the head
unit's microphone (more on that below) into the
MIC jack as well. I was using the car's stock
speakers, and the backup camera was going to continue to be displayed by the car's multi-function display
rather than the head unit, so I didn't need to connect anything to the RCA jacks.
Once I'd sorted out what went where, I ziptied the excess cables together to get them out of the way. I also used a large ziptie to secure the Maestro to the underside of the head unit in the empty space behind the screen so it wouldn't be flopping around. If you do this, I'd recommend keeping the micro-USB port accessible in case you need to reflash the Maestro later.
Crutchfield sent me a PDF with instructions for removing the front trim panel and factory head unit, and I also found a few YouTube videos demonstrating the process in a 2015 WRX:
I disconnected the battery's negative terminal first "just in case". Then, I pried off the center dashboard panel at the top and then the bottom using the plastic tools from Crutchfield. To completely remove the panel, I needed to unplug three cables: small white and gray plugs near the top for the hazard lights and multi-function display controls, and a wider plug near the bottom for the climate controls. The trick here (which I didn't see in either the instructions or the videos that I watched) is that each plug has a tiny tab that needs to be pushed in to remove it. Using a headlamp and a small flathead screwdriver, I was able to get all three out with a fair amount of effort.
To remove the factory head unit, I unscrewed six Philips screws from the front. Apparently some of the screws are extremely difficult to access in 2016 and later models, so I was lucky here. Two of the six screws held a small metal shelf in place, which I ended up putting it back in (it's still needed to support the new head unit).
After that, there were more annoying cables to unplug from the back of the head unit. The most frustrating of these was the small square cable in the center running to the center console's USB and aux ports, which I struggled with for a while. When I rewatched videos of people removing the factory head unit, I saw that they were able to pull it out much farther than me before unplugging the cables. I looked more closely and saw that my USB/audio cable had been taped together deep in the cavity. After removing the tape, I was able to pull the head unit far enough out to be able to unplug everything.
I stuck the plastic film that had come with the XAV-AX150 over its screen whenever I was moving it or doing something with a screwdriver to reduce the odds of me scratching it.
It was straightforward to connect the harness to the corresponding cable that I'd removed from the back of the stock head unit. I tried to get the now-unused cables (e.g. USB/aux) out of the way as best as I could, pushing them down to the bottom of the cavity. After that, I put the head unit into the slot and reconnected the battery to test that everything worked.
I was pleasantly surprised with how well the replacement head unit fit into the car. The dash kit holds it in place securely despite being made of plastic, and it blends in well enough that you can't tell that it wasn't an original part of the car.
The harness has a long, light-green wire that's supposed to be connected to the parking brake. I can't find any official documentation from Google about this, but Android Auto seems to require the parking brake to be engaged whenever you connect a new phone to the head unit for the first time.
A common approach here is to just connect the wire to ground (i.e. the chassis) instead, tricking the head unit into believing that the parking brake is always engaged. Some newer and/or more-expensive stereos allegedly require the brake to be engaged and disengaged several times to prevent this hack4, but that doesn't seem to be the case with the XAV-AX150: I grounded the wire (using the top-left screw that holds the head unit in place) and haven't had any trouble.
The harness also had an extra wire with a
that was labeled
CHASSIS GROUND. The instructions implied that it's unneeded, but I grounded it
anyway since it made it a bit easier for me to also connect the parking brake wire to ground.
The car has a USB port and a 3.5mm auxiliary audio jack in the center console. The XAV-AX150 doesn't have an audio input, so aux obviously wasn't going to work, but I spent a lot of time researching whether there would be a way to preserve the car's built-in USB port.
However, I came across a few comments (e.g. in Crutchfield reviews) saying that although the AX-TOYUSB works for charging, Android Auto is finicky or non-functional when using it, possibly due to power-delivery issues. I decided it would be safer to abandon the built-in USB port and just connect the phone via a regular type-C-to-A cable plugged directly into the head unit's female type-A cable.
That choice created an additional challenge, though: the USB cable comes out of the back of the head unit, so how would I connect a phone to it? Luckily, the WRX has a hole between the head unit cavity and the right side of the driver's footwell. It was easy to run the head unit's USB cable down through that hole and then tuck it under the center console's plastic housing as I ran it back toward the driver's seat belt buckle.
In the center console, there are two little rectangular plastic plugs. I popped one of them out and pushed the cable up through the hole. Then, I connected a type-C-to-A cable to the head unit's cable, and tucked both cables down into the cavity so that I was left with just a foot or so of the adapter cable coming out.5 I used an electric drill to make a tiny half-circle divot matching the cable's diameter in the side of one of the plugs, and then I clicked it back in.
The head unit came with a small microphone for making phone calls and barking commands at the Google Assistant. I saw some comments online from people who had tried to retain the car's built-in microphone up by the front dome light, but it sounds like head units usually work best with their own mics, so I decided that that would be safest.
The Sony mic can be attached to either a visor clip or a little stand that can be stuck to a flat surface with (included) two-sided tape, and it's connected to a long, thin cable that plugs into a 3.5mm jack in the back of the head unit.
I decided that it'd be easiest to stick the stand just behind the steering wheel. It was straightforward to run the microphone cable through the same hole that I used for the USB cable and then up through the steering wheel base. The microphone is unobtrusive in this location and the audio quality seems fine.
After putting everything back together, I was disappointed to notice that the front left speaker didn't seem to be producing any sound.6 I took everything apart and removed the head unit (which I'd been planning to do anyway to reprogram the Maestro). I used a multimeter to test the continuity of the white and white-and-black wires on the harness, which the wiring diagram said were used for the front left speaker, but I didn't find any problems.
I was about to try to test the speaker itself, but first I reconnected the harness and noticed that the rear right speaker also wasn't working now. After more experimentation (i.e. wiggling the wires), I concluded that the harness's plug doesn't make a very secure connection into the back of the head unit.
I eventually managed to get the stereo mounted with all four speakers working, but it feels like it's just a matter of time until the harness shakes loose again. I contacted Crutchfield technical support, and their advice was just to try replugging everything again and then contact them if there are still problems (which may indicate a faulty pin in the harness).
I'd tried using the phone-only version of Android Auto before and found it to be a buggy (and now-discontinued) mess, but I'm actually pleasantly surprised with how well the head unit has worked so far. It's a bit laggy at times and the touchscreen missing some presses, but in general it works fine for navigation and for running music and podcast apps.
One oddity that I've noticed is that Bluetooth is basically always enabled on my phone now regardless of how hard I try to disable it when I don't need it. It seem like Android Auto still uses Bluetooth (maybe just for phone calls?) despite being connected to the head unit via USB, and the phone app very aggressively enables it and leaves it enabled.
Android Auto also seems determined to shove Google Maps in my face. It always launches on the head unit as soon as my phone is connected, and even if I don't use navigation, my phone ends up in navigation mode after I've disconnected it from the car. A gazillion other people have reported this for ages and the Android Auto team seems either incapable of or unwilling to fix it, so it seems like there's no choice but to live with it. I guess I'm lucky that I'm at least able to dismiss the notification, unlike some other users.
I initially had problems with music being silenced at times, often just after a navigation instruction had been spoken. Oddly, the music app would indicate that it was still playing the song, but the volume indicator that was displayed when I used the volume buttons would indicate that the navigation (rather than media) volume was being adjusted. I saw some reports that might be related. The following is very programmer-centric, but at least in my case, I had a suspicion that the problem was that the app was losing the audio focus and not reacquiring it (possibly starting with a change in Android 11 or 12). I haven't seen the problem again since modifying the app to reacquire the audio focus whenever it starts playing. Who knows; if you're seeing the same problem, maybe try asking the app's developer to look into this.