When I first got my car, this wasn't an issue. The Bluetooth volume on my iPhone stayed at 100% and the volume knob on the steering wheel adjusted the stereo volume accordingly, but there was a Tesla software update a while back that synchronized the car stereo volume with that of the phone. In other words, if the car stereo was set to 50% volume, the phone's Bluetooth volume would also be set to 50%, so I'm really getting 50% of 50%, or 25%. The result is low audio output until you get to nearly 100% when all of a sudden the volume steps become huge. There's also an annoying lag between volume knob movement and loudness.
Is there any way to force iOS to output Bluetooth audio at 100% all the time?
That's not quite the way it should work, and not the way it works for me (I just sat in my car and tested it carefully with my iPhone).
Basically volume control with Apple devices using BT (and other audio outputs) can work in one of four ways:
(A) The phone adjusts the outgoing digital audio data to reduce the sound level (crudely speaking, for 50% volume it divides each data sample by 2 etc). The external device has no means of volume control at all.
(B) Same as A, except the external device
does have an independent means of volume control (the car, in this case). This is the "battling volume controls" mode that confuses consumers (one down low, one up high etc).
(C) The phone sends the digital audio data as-is, and relies on the external device (speaker, car etc) to control the volume. In this case the volume control on the Apple device is disabled (grayed out etc) and always shows 100% (this happens with some computer displays on Macs for example).
(D) The phone sends the digital audio data as-is, but uses a BT control protocol to communicate the desired volume to the device (remote volume control). In this case the volume
control is available on the Apple device, but is in fact remotely controlling the volume in the device (there is no alteration of the digital audio data unlike in A or B).
Mode A is not good since it compromises sound quality as a result of rounding errors when adjusting the digital stream (there are ways to mitigate this, but they are all compromises). Mode B is worse, since you introduce confusion for the consumer as well as degrading the sound even more. Mode C is good from a sound perspective, but annoys consumers since the phone volume control is non-functional. Mode D provides the fidelity of Mode C but also the convenience of "control anywhere", and is the preferred mode.
The intent of the change by Tesla was to go from mode B (two independent volume controls) to mode D. Note that, for D, when you see the Phone and Tesla volume both at 50%, you are
not (or at least should not be) at 25% because actually you are seeing the
same volume control (on the Tesla) set to 50% in two places; they dont cascade (unlike in B).
In my testing, it was clear that in my case the car is using mode D correctly. The volume controls tracked as expected, and the sound level was where it should be (pretty loud at 50%), and comparable to the same tracks played via USB flash drive. I looked hard for any setting on the iPhone or Tesla that might change this, and didn't find anything obvious, so I'm at a loss to understand why its not working for you as it is for me.
As others have noted, Tesla have said this is a bug, so it's possible it's a different software version (I'm on 2020.16.2.1), or iPhone (iOS 13.5), or perhaps isolated to certain phone models.