Touch screen head units are pretty much the norm these days. Many compromise with annoying on-screen volume controls or tiny buttons. If you find yourself with such a unit, you might like to hack in a real volume knob. [Daniel Ross] shows us how to do just that.
The build uses an ATMega328 as the heart of the operation, though [Daniel] notes an Arduino Uno or Mini would have done just fine. It’s set up with a 74HC14 hex Schmitt trigger, and a CD4066 quad bilateral switch on a custom PCB. As for the volume knob itself, it’s not a real analog pot, instead it’s using a rotary encoder with a center push button. The way it works is that the Arduino reads the encoder, and figures out whether you’re trying to turn the volume up or down based on the direction you’re turning it. It then sends commands to the CD4066 to switch resistors in and out of circuit with lines going to the stereo to emulate the action of volume buttons on the steering wheel.
[Daniel’s] guide explains how everything works in greater detail, and how you can calibrate your head unit to accept these signals while preserving the function of your actual steering wheel volume buttons. Then you just have to find a neat way to integrate the knob into your existing dashboard.
We don’t see as many car stereo hacks in this era when infotainment systems rule all, but we’ve seen some great stuff from older vehicles over the years. Video after the break.
Oh man, the things we have to do today to get basic functionality in modern cars. This is a nice hack indeed.
For a lot of people it seems that me still driving a 1992 Citroen BX estate is a hack…
Oh God! It looks like a special needs cousin of FSO Polonez.
Yeah, I absolutely loath touch screens in cars, what should be muscle memory to find and adjust something as simple as a volume or ventilation control is now a dangerous distraction because of the lack of tactile feedback from a smooth glass screen.
I really don’t see how a touch screen infotainment system is any more safe than using a mobile phone (and with screen mirroring it’s pretty much exactly the same as using a mobile phone) which is illegal in an awful lot of countries.
Touchscreens in cars — unsafe at any speed.
Right now the cars are being marketed based on the number of features they can quickly show to a prospective buyer. The features don’t have to be practical or safe. Just easy to demonstrate.
Touchscreens are easy to understand and familiar. And they enable one of the hottest feature in a car — maps with turn-by-turn directions. Once you have a big display, you might as well use it for the audio and video system too.
For me, I don’t want none of that. Put the screens and crap anywhere except the front row. I need a dedicated instrument cluster and the ability to change the volume or climate control without looking at a screen to menu dive.
I thought a “head unit” was the guitar amplifier that sat on top of the speaker box.
Or a helmet?
that made me laugh out loud
I have always known them as both, I think the term got adopted by the car radio industry sometime in the 80’s when big giant car audio installs started to become popular where you would have a head unit driving a wall of speakers
That looks like an android head unit. Couldn’t you feed it volume up down via USB, it even Bluetooth?
A lot of vehicles use simple resistor ladders for the steering wheel controls. Many Chinese head units can read these without an adapter.
The adapter in the article is literally for adapting to the steering wheel control input.
TV’s too! Gotta be the cheapest dirty way of getting a few buttons into the CPU, 2 wires! You saved on wire! Problem is when those buttons get worn or dirty or the connector is weak (ribbon wire in steering hub) the wrong the functions are evoked, leading to a worthless device. Multiplexed or single state buttons will give the right press even if you have to press hard.
I once got a Becker auto unit for cheap at a hamfest, wow the standard for buttons in a car radio. Safe for driving on the autobahn, no tiles each separate button dimpled and responding with a silent click!
Or you could use a rotary pulse switch:
https://tech.alpsalpine.com/e/products/detail/SRBM1L0800/
Turn it one way and two contacts open and close every few degrees. Turn it the other way and two other contacts open and close. All mechanical. No electronics needed.
Unrelated to the article but thank you for that link, I’ve been looking for those switches (and I think there was a Hackaday article where someone else was too)
It’s entirely related to the article. This switch obviates the need to decode a rotary encoder and generate pulses. But, I’m glad it is something you might find useful. AliExpress link below.
Woohoo! I didn’t know those existed. Now, to find just one or two, not 360…
From your favourite online emporium:
https://www.aliexpress.com/item/1005006557479234.html
With all that logic available it wouldn’t be difficult to add an automatic ambient sound volume adjustment. Maybe AA units always have that but for those of us with remote-capable HUs that predate AA and don’t have a compensation circuit…
The cheap android head units basically all have not one but two dedicated quadrature encoder inputs, so this is doing things the hard way! That said, it’s not exactly documented well, and you have to open the unit to get to the pcb pads, but you don’t need any extra electronics, just the encoder.
I’ve got the encoder from my old head unit on my desk, just waiting for me to get around to wiring it in, but I need a proper 3d printed mount first, so I need to scan the existing fascia to design against (bloody compound curves), so I need to hack together a 3d scanning toolchain for the cheap v1 realsense camera I have… yak shaving at it’s finest.
I dug out my notes (it’s been a while), and I need to clarify things a little bit. There’s both a dedicated encoder input internally, but also there is full software support for encoders on the steering wheel input as well (key1/key2). You still don’t need to manually convert encoder pulses to discrete volume control button presses, the head unit knows how to interpret it (but you do have to go into the “Factory Settings” to configure it.)
The only extra parts are a few resistors and a couple capacitors, although the exact configuration depends on whether you’re using the encoder or the steering wheel input.
As mentioned above a simple USB volume control knob (such is the one I have controlling the volume on the Android head unit in my Jeep) would be much simpler…
Cool hack though!