Saturn Sky Forum banner

Stereo Head Unit Replacement - RasPi OpenAuto

14K views 45 replies 7 participants last post by  JohnWR 
#1 · (Edited)
I have been wanting to add an after market head unit for a while to add Android Auto functionality and a backup camera to the Sky.

In wanting to make a project out of it and not wanting to spend $500 on just a head unit I decided to build my own using a Raspberry Pi and 7" touchscreen. As of this posting I have the entire setup bench tested and working as I wanted.

Key Features I wanted:
- Backup Camera
- Handsfree calling
- Android Auto USB and Wireless (No compatibility with Apple CarPlay sorry)
- Extended delayed shutdown (device goes to "sleep" for 1 hour after car is off, explained later)
- Direct phone mirroring
- Customizable and upgradeable UI/OS

Current features missing:
- Steering wheel controls (to be added later using Arduino)
- No CD player (no plans to add one)
- FM radio (may or may not add, this one is a little trickier to add, currently being researched by software developers)

I plan on outlining my setup if people are interested. Will also post some pictures. Plans are currently to start the actual car install hopefully next weekend or the following. Spent about a month on trial and error experimenting and the code to run some of the features.
 

Attachments

See less See more
2
#2 · (Edited)
Hardware Component List: (I think everything is Amazon accessible :D )
- Double Din adapter for the Sky
- GM wire harness for a typical stereo and chime retention
- Raspberry Pi 3B+ (*usb keyboard during setup for ease)
- Micro SD card (16GB or greater) (*USB MicroSD card reader needed)
- Official 7" Raspberry Pi Touchscreen
- Raspberry Pi GPIO breakout hat (optional - breaks out pins to screw terminals) (https://www.amazon.com/Alchemy-Powe...pio+breakout&qid=1560806150&s=gateway&sr=8-13)
- HiFiBerry AMP2 (acts as stereo amp) (*I don't have the Monsoon setup, may be able to incorporate Monsoon amp in place)
- 4 Channel relay with individual triggers (https://www.amazon.com/DZS-Elec-Cha...channel+relay&qid=1560806025&s=gateway&sr=8-6)
- Single channel timed relay (https://www.amazon.com/UCTRONICS-Ta...=timer+relay&qid=1560806083&s=gateway&sr=8-15) (**Looking back a timer with digital readout would have been nice)
- Powered USB hub (ideally if you can find one with bare wires to barrel plug that saves time cutting off the PS) (*Also, powered is only necessary for faster device charging)
- 12V to 5V DC to DC converter (to step down power from battery to USB hub because you couldn't find a hub with bare cables so you started cutting things up :willy: ) (https://www.amazon.com/KNACRO-Suppl...04&s=gateway&sprefix=12v+to+5v,aps,185&sr=8-9)
- Raspberry Pi camera module (any compatible model will do) (went with RasPi camera for ease of use vs trying to implement a USB option)
- HDMI cable long enough to go from stereo to back up cam location
- Raspberry Pi HDMI cable extension modules (pair of 2) to switch from ribbon, to HDMI and back to ribbon
- USB microphone (doesn't really matter the type, aim for something small that can be hidden in the car somewhere)
- Small wires (mostly 22 or 24 AWG), some resistors (will explain where and why later), soldering iron / solder, wire stripper, (I have a variable bench PSU that is great for 12V car battery simulation but not necessary)

Software List:
- OpenAuto Pro software from Bluewavestudio.io (cost $28 for OpenAuto Pro which includes additional features and support)
- Various Python scripts for startup/shutdown control, backup camera activation, keyboard inputs (will outline more below)
- Access to a separate computer for initial install of software, USB MicroSD card reader for flashing OS to card
 
#6 ·
Damn, @JohnWR, looks like we may have some competition on the fora! :D

But seriously @Bpm009... keep the project updates coming!

On a slightly off-topic note (albeit similar) I've just finished my PiCorePlayer Hi-Fi Streamer project... Pi3B+, HifiBerry Digi+ Pro DAC, dual linear PSUs and 5" touch screen (plus physical buttons/dial and IR remote). All mounted in an old gutted and modified Pioneer Receiver chassis with custom faceplate.
 

Attachments

#8 ·
Damn, @JohnWR, looks like we may have some competition on the fora! :D

But seriously @Bpm009... keep the project updates coming!

On a slightly off-topic note (albeit similar) I've just finished my PiCorePlayer Hi-Fi Streamer project... Pi3B+, HifiBerry Digi+ Pro DAC, dual linear PSUs and 5" touch screen (plus physical buttons/dial and IR remote). All mounted in an old gutted and modified Pioneer Receiver chassis with custom faceplate.
I love competition! Especially this kind.
@JohnWR I did and actually still have that as the backup plan if I run into something I can't get past. I had the Raspberry Pi and touchscreen already so that helped. Specifically I have a Atoto android head unit in mind after originally wanting a Pioneer overly expensive unit.

I really like the idea of repurposing an old unit, the idea of a new technology in an older technology frame is a good way to go. I got pretty lucky that theb7" display is almost exactly Double Din size and I just have to take a little plastic off the top and bottom of the Double Din aftermarket frame to fit it in.

@Bpm009 I asked because I am completing the installation of an Atoto A6 Pro, using a custom center panel. Raspberry Pi is a little sportier than I was interested in trying, but I do love the idea.
 

Attachments

#7 ·
@JohnWR I did and actually still have that as the backup plan if I run into something I can't get past. I had the Raspberry Pi and touchscreen already so that helped. Specifically I have a Atoto android head unit in mind after originally wanting a Pioneer overly expensive unit.

I really like the idea of repurposing an old unit, the idea of a new technology in an older technology frame is a good way to go. I got pretty lucky that theb7" display is almost exactly Double Din size and I just have to take a little plastic off the top and bottom of the Double Din aftermarket frame to fit it in.
 
#10 ·
The panel is 3D printed. I am still working on the design and dimensions, but no OEM parts were harmed in the construction. The current one is PETG but I am having trouble bonding things to it so I am about to do another in ABS.

The SWC work directly with the Atoto. They are varying resistance ladder circuits and that is exactly what the Atoto wants. That part was scary simple, and all I had to do was add a pin to the adapter plug that I bought to eliminate splicing.

Overall I like the Atoto. The music player is a little flaky, but it is Android so obviously I can change it. One nice thing is the instant-on feature. The unit sleeps at minimal power, so it starts in 2-3 seconds when I power the car, and it has a battery-saving feature that shuts itself down cold after 7 days of inactivity. I loved the description: "This feature has been tested thousands of times and is reliable enough". I haven't had any battery issues, and it does power itself down after 7 days so I guess it is reliable enough.

I have not yet done the chimes, since I want to hack the CAN bus to generate my own, so for now I am enjoying the quiet. I also do not have any OnStar function, but I never use it so don't plan to do anything with it.
 
  • Like
Reactions: SlyCoopers
#11 ·
Very nice, that sounds like the best approach. I may have to look into the custom panel route, I recently backed a Kickstarter 3D printer but it doesn't show up until October haha. Would you be willing to share your STL file? Oh nice, I'm going to have to run it through an Arduino micro to have the same capabilities, which will likely be a bit of a pain and add a few extra cables behind the dash. I don't use the SWC much currently but I would like to map a Google Assistant function and maybe an answer/hang up button along with the standard volume controls.

The instant on feature is exactly one of the things I was going for with my build. I hadn't considered going for 7 days though, just figured 1 hour for most in and out trips. I had considered just leaving the system on and just have a screen off feature as the pi only draws about 250mA when idling but figured it better to have a shutdown and then power disconnect to cover any excess battery loss. I have the chimes as part of the wire harness although creating your own chimes sounds like a good idea if you find some of them annoying. I also have no use for Onstar so I was fine losing that function.
 
#12 ·
I'll share the STL, or print you a part, depending on your printer status. Just let me know. It isn't really ready for prime time yet, and I am still editing it, but I'm happy to share what I have.
 
#13 ·
I fully commend and respect your effort into going down this route. I was going to try to do the same thing but the power/shutoff settings were a nightmare to try to configure, not to mention android-x86 is a buggy mess still to run as a full OS. Even attempted to try the batteryless-hardwired tablet route and still ran into a ton of issues. In the end I settled for a joyingauto headunit since its basically what we wanted to build with an adjustable mount screen connected with ribbon cable. The price was just too favorable compared to individual parts and crazy hours needed to figure everything out. :p Really interested in how this will work out though. Best of luck.
 
#14 ·
Thanks, it has definitely been repeated headaches and speedbumps at each step. The power shutdown stuff was tricky and took multiple attempts and configurations before I found one that worked. I spent over a week with an issue that one of my relays was too "slow" and would reset the Pi over the <0.25 seconds it takes to flip. I decided on the setup because it runs the full Raspbian OS with an OpenAuto program on top that seems pretty smooth. I also already had a few of the parts so if it falls through it won't be too bad to fall back on a full head unit.

I've never heard of Joyingauto, the idea of an adjustable mounted screen sounds really nice though.
 
#15 ·
So I do have a challenge if anyone is interested. My current speed bump is that I want to mount the display to the face of the Double Din mount. I would like to have it removable without having to take apart then entire dash. I've attached pictures of the front and back of the display as well as the Double Din mount you're all probably familiar with. Any ideas? Magnets were my best idea but I'm worried to use anything stronger than magnetic rolls with electronics so close. I didn't get a very good hold because they are weak magnets.

There are (4) M3 screws to be used for mounting on the rear of the display but I can't figure out how to incorporate them in such a way as to be able to remove the screen from the mount. Backup plan is to use the screws to put two flat bars across the back to hold it against the mount frame. Won't be able to remove the screen without dash teardown but much easier solution.
 

Attachments

#17 ·
So I do have a challenge if anyone is interested. ........
The installation I posted the picture of is removable without tearing down the dash.

The panel above the radio is removable from the front with no other disassembly. My radio surround is tabbed behind the fascia at the bottom and can be attached to the dashboard support behind that upper panel. To access the radio I pull that upper panel out, and pull it free of the lower tab.
 

Attachments

#19 ·
I spent the better part of two months experimenting with ways to do this, and unless you cannibalize one of the DIN radios with the front-accessible release, I think you are going to have to scrap the idea of using the DIN mount as it is. It just doesn't give you any way to access what is behind it.

What you can do is cut the mounting flanges off of your mount, then add tabs to retain it behind the panel with the passenger seat indicator and behind the HVAC surround. You might want, or have, to use the flanges to hold it forward, basically captivating it between them and the panels. At that point it will work the way mine does, giving you easy removal of the radio after the HVAC surround is removed.

Here are some additional pictures of what I am doing. I think they are fairly self-explanatory.
 

Attachments

#20 ·
I had no idea the upper panel was removable without tearing into the dash, that opens up options! so it kind of "hooks" in behind the bottom part and then you reach through the disassembled top panel to connect something to hold the upper part of the lower panel? I think I could make something similar using the two lower screw holes on the display for tabs and the two uppers to create some sort of cross bar to hold it behind the display. I'm not actually using the Double Din mount in a traditional sense, just the frame really. The Pi doesn't really have any easy means of attaching to the side mount tabs.

The speaker grill clips I would never have thought of and it's such a simple solution. If the tab and cross bar solution doesn't work I think I'll give this a go. My only concern is finding ones that are still fairly easy to pop out because I can't pull on the display too much. I've never appreciated the ingenuity of a speaker grill until now :lol:
 
#21 · (Edited)
If you look at the second picture you can see the tab that is bonded to the back of the face plate. Then look carefully at that area from the front in the third picture and you can see the tab. The HVAC surround holds it in once it snaps into place.

Actually, if you put something on the back to create some surface area, Velcro is also an option. I am using it to secure my replacement center console.
 
#22 ·
Ok I see what you did. I hadn't thought about having the Pi and faceplate all as one piece but that would work just as well for my situation. I do like how the tab just sits behind the air control panel. How tough was getting the fitment to be snug on top and bottom without and wiggle/rattle?
 
#23 ·
The fit of the face plate is tight top to bottom, and actually wedges slightly into place. I don't have any rattles yet, but I am thinking about putting a layer of cloth tape on the front of the tab just in case.
 
#24 ·
Been a little busy with other things over the last week but have had a little progress on the project. I have hit a strange snag tonight in that my output sound is not coming through the car speakers but seems to work fine on my bench speakers. I'm not much of an audio expert but the Raspberry Pi Amp2 should have no problem outputting sound through the car speakers.

For those that may be able to see the issue I'm having here are some specs:

HiFiBerry AMP2: https://www.hifiberry.com/shop/boards/hifiberry-amp2/
60 total Watts on 2 channels to be used with 4 ohm - 8 ohm speakers

Sky Speakers:
Per Crutchfield we have 2 ohm speakers in the doors and 4 ohm speakers in the rear (Non-Monsoon)

I'm not sure if the 2 ohm vs 4-8 ohm range is the issue but I would only think it would effect volume

I have the (4) input wires R Front/Rear and L Front/Rear connected to the 2 channels separating L and R (Stereo)

I do have a couple update pictures to show below
 

Attachments

#25 ·
Are you sure that you are properly connected to the (+) and (-) wires that go to each speaker? I don't know what else would be different.
Even if there was some crazy impedance mismatch you would at least get sound.
 
#27 · (Edited)
Good point. The audio connections are the same for the two (except for level) but there is a control connection for the Monsoon amp that has to be connected to power for the amp to power up. No connection, no sound.

Although there is a previous comment that it is not a Monsoon system.
 
#30 ·
No monsoon system in my car. I pulled it all out and retested on the bench, which worked. I plan on rewiring it tonight because mismatched +/- was all I could think of too but it looked like I had everything correct. Thanks for the clarification on the impedance mismatch I was pretty sure but not positive. I am using the GM LAN wire harness and followed the wire labeling on the instructions. Will update tonight.
 
#31 · (Edited)
+/- Doesn't matter for producing sound (just need correct phase for correct stereo separation).

I would get a 9V battery and push short wires into each of the speaker wire pairs at the radio connector, then touch the other ends to the battery. If you get clicking/thumping/fritzing, then you know the speaker wires are connected through and that you have the correct ones identified.

The HifiBerry *is* a class-D amp, so it's possible that it has an issue with really low impedance (although I would think it unlikely). Have you checked the amp specs?

UPDATE: Hmm. Just looked on their web site and it states:
The Amp2 is designed to work with all speakers or 4-8 Ohm impedance. It supports sample rates from 44.1-192kHz (16-32bit).
 
#32 · (Edited)
I like th 9V battery test idea, I'll give that a go also. Yeah the specs mention 4-8ohm impedance I would still think I should get something out of the 4ohm rears even if it has an issue with the 2ohm sides? After the 9V battery test I'll connect just the L/R rear speaker cables and see what happens before trying the full setup.

UPDATE:
Tried the 9V battery test and got no static or sounds from the speakers... now I'm stuck again. The only thing I can think of is the wire harness is either wired wrong or bad.
I have the LC-GMRC-LAN-03 harness
 
#33 ·
Does anyone have a wiring schematic for the harness plugs that go into the stock radio? I've been looking around online but keep getting shady website links. I want to do a pin to pin check and compare the corresponding aftermarket harness to the radio plugs.

So far I've tested with a 9V battery, the intended setup and I tried my 3.5mm phone output through a mini amp. All nothing. The speakers should work even with the car off right, independent of car power? This is baffling me...
 
#35 ·
You're awesome John, much appreciated. Fortunately/unfortunately everything lines up correctly. As a test I disregarded the harness and put Dupont jumpers from the +/- pins on the car plugs directly to my mini amp. Still no sound. Plugged the old radio back in for sanity purposes and it works... I have no idea how to troubleshoot further...
 
#37 ·
You're welcome, sorry it hasn't helped yet.

I can only think of two possibilities here:
1) You are mixing up the speaker wires and using the (+) from one with the (-) of another.
2) You do actually have a Monsoon system, and aren't getting anything because the amp is not powered.

Two things to do:
1) Double-check the RPO codes in the glove box for a UW5 or a UQ3
2) Connect an ohm meter across the (+) and (-) terminals you are using to measure the impedance.
 
  • Like
Reactions: TomatoSoup
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top