BimmerGestalt / AAIdrive

Implementations of some Android Auto features as unofficial IDrive apps
MIT License
541 stars 90 forks source link

Connection via USB - an exercise in frustration #332

Closed JoeDoe2021 closed 3 years ago

JoeDoe2021 commented 3 years ago

OK first and foremost, AndroidAutoIdrive is an extraordinary project. Something like this should have been proposed by BMW from the get-go. Their ending of ConnectedDrive and car Apps (old ConnectedDrive App Store) providing no workable alternative was a callous, disrespectful move and the total opposite of a premium brand Client service. AndroidAutoIdrive is the only thing that currently extends the life of older BMW iDrive systems, and all praises to the Master Developer who took the task of developing this. It is a wonderful app indeed - but only when it works !

Case in hands: I have an end-2015 BMW which still has the 2014 NBT (normal, NOT the Evo) iDrive (Europe). It is the last one, I believe, before Apps were allowed in Bluetooth. I still have the ConnectedDrive menu, and car expects the old ConnectedDrive App (being phased out). The MyBMW App connects, but serves little to nothing in the car. In any case, I do have a ConnectedDrive subscription.

For a while, AndroidAutoIdrive was working on and off, using a Galaxy S7 in Android 8.0 and using USB. Then, I have no idea why, it just stopped working at all, regardless of updates and combinations between AndroidAutoIdrive and ConnectedDrive. The new AndroidAutoIdrive using MyBMW is also not working at all.

Still, I passed onto a Galaxy Note 4 on Android 6, using MyBMW and the new AndroidAutoIdrive Release Candidates. This worked (spottily) for a while, then again stopped.

In the meanwhile, I've also tried a Huawei P30 Pro on Android 9 and Android 10 and an LG V30 on Android 7. None works.

The most I get now (with the Galaxy S7) is brief periods of connectivity (the AndroidAutoIdrive connects), then disconnects and loops this to no end. App asks me to "enable Apps in the car for (insert phone name here)". I have nowhere in the car, on this iDrive version, to enable Apps in any phone. And the car always starts "loading the apps" to finish requesting "start the ConnectedDrive" (on the phone).

I believe that I've tried all I could - USB connection changes, developer options, cache cleanings, regular and nightly builds, phone resets... no good. All phones are just assigned to serve AndroidAutoIdrive in the car, and still, nothing.

On the other hand, with an iPhone, car immediately connects to app in phone, and stays "app connected" with no issues - but also to no use, since there's no "iOSAutoIdrive".

This is beyond frustrating ! This AndroidAutoIdrive app is basically functional heaven - only when it works. Audio quality (using JetAudio Player and USB) is better than any other option - but again, only when app works.

What else could I try? Is there any version of MyBMW more reliable than others? Is there any Android phone that works better than others for this use case?

Many thanks for any suggestions...

berseker commented 3 years ago

I did not understand if you must for some reason stick to USB connection or if you can try Bluetooth connection. the latter shall be way more stable than USB. moreover, USB audio passthrough has been disabled in Android since Android ~7.1. and if not already in use, try the latest sentry build

JoeDoe2021 commented 3 years ago

Thanks, but the car does not have bluetooth apps yet; only bluetooth audio. The car has option "6NS - Enhanced USB & Bluetooth" from 2014/15 models. This does not allow AndroidAutoIdrive to establish a connection just via bluetooth. It needs to have a USB cable connected. Then act as "controller" for the audio. This much is what I understood...

JoeDoe2021 commented 3 years ago

https://user-images.githubusercontent.com/86539508/123546315-65cf9c80-d75c-11eb-92fe-327d99f80de0.mp4

Attached a small video of the connection loop.

This is with the LG V30 (H930) on Android 7.1.2, via USB of course.

On an iPhone, via USB, connection is flawless as long as MyBMW is open. Of course, serving no purpose.

With an Android, via USB, connection status in AndroidAutoIdrive jumps every few seconds between "Apps Connection is running over USB / Connected to BMW" and "Apps Connection is not enabled / Enable the Apps option in the car for this (put phone name here)".

This is driving me insane ! Moreover so when it has worked already ! Both with ConnectedDrive and MyBMW ! With AndroidAutoIdrive in earlier editions, and in both release candidates now ! Can't make head or tails out of this.

berseker commented 3 years ago

the video is clear. it would be useful if you can upload here a logcat including the minutes where you are trying to connect, in order to let hufman check it when possible

JoeDoe2021 commented 3 years ago

Thanks, it's a reasonable plan. But to get out the logcat, it will be complicated. None of the Android phones are rooted. As such, I'll have to set up USB Debug, ADB and all the yayayada. I understand there's a "sentry" version for the App, I've actually installed that one. Wish there was just an option to "export log", but no luck...

hufman commented 3 years ago

Thank you for the kind words! Can you enable the Advanced Settings option and record another video showing the BCL Tunnel Performance panel in the Connection tab?

The "Apps Connection is Starting, please enable Apps connection" means that the BMW app has detected the USB connection and is starting to talk on it, but the car's Apps functionality is rejecting the connection, which is unusual for USB mode. When it flips to say it's connected to BMW, this means the BMW app thinks it has fully connected to the car and has started up the tunnel. However, because it doesn't show a specific BMW model, this means AAI isn't able to talk to the car and fetch the model information.

Does BMW Connected 6.4 (even without logging in) still work?

JoeDoe2021 commented 3 years ago

Hello Master Hufman ! I have the utmost admiration for your work and for your skills in the context of this App. All I can understand is that your good works are being subject to ill treatment by both BWW (and its hopeless apps) and Android (with its never ending niggles and issues). But consider my car your lab. I'll proceed to test what you request as soon as I can. I'll report back the observations, as detailed as I can. Thanks for your kind clarifications above. Cheers from France !

JoeDoe2021 commented 3 years ago

OK ! Bizarre twist ! I can still send you another video showing the BCL Tunnel Performance - but it is goddamn working !!!

Yes, for some reason, your most brilliant App got to work again. Again, not blaming the App itself - I am 99.99% sure that issue is with the BMW component, or with the Android OS, or both.

Your excellent work is again shinning in my otherwise sadly obsoleted BMW infotainment unit.

I have been trying and trying to give this some thinking (as much as I can, without entering into programming bits).

So far I have understood that your AndroidAutoIdrive needs BMW Apps to be in working order in the car. Well, on my case, BMW Apps are linked to the BMW ConnectedDrive subscription (which I paid for until end 2021). On other cases, BMW Apps are just part of the car. This, also, is what I understood. Indeed, my car is equipped with BMW options 6NS (enhanced bluetooth) and 6AK (ConnectedDrive Services). BMW Apps "integrated in the car" are BMW option 6NR. With that option 6NR, as it seems, not only you are not dependent on a ConnectedDrive subscription, but also you can get the BMW Apps "function" on the Bluetooth connections menu.

It happens, then, that my car sleeps for days on a deep underground garage with no cellular signal. Could it be that the car does not "allow" the BMW Apps because it cannot check with the network that I have the subscription active? But shouldn't the car itself remember that I have that subscription? I can recall that many other cars I've driven (namely Audi) are able to show a "subscription status" with end dates. I'll have to check if the same is possible with BMW in my iDrive version (again, normal NBT).

Anyway, if the car has no memory of the subscription status, it will have to request that from the network each time. If it cannot check, then it won't activate the BMW Apps function. If it won't activate the function, your AndroidAutoIdrive won't have an essential component to work with.

As a counterpoint though, the iPhone has no issues connecting in the garage - even with no network. The car and the MyBMW App just seem to talk right away, and on the "Connection assistant" menu, I immediately get "Apps loaded" > again to zero use, since all actual BMW Apps are unfortunately gone.

Regardless - I'll keep on checking how things move on. I really need your App to work.

In the meanwhile, I know that there are commands for "coding" option 6NR into a car that has 6NS and 6AK. I'm evaluating that path as well. This would mean enabling the Apps menu in bluetooth, which could allow for an easier connection with your App. I don't know.

Then again, 3G services will rather soon be ended in Europe, and all "connected" functions of NBT will be done with - only NBT Evo has an in-car 4G SIM. In this situation, if my reasoning is correct, I'll definitely lose BMW Apps, and with it, your own App. But I am also severely disgruntled if I lose Emergency Services, which are activated via the on-car SIM. Again, I'd never expect such a thing from BMW, but apparently they are going ahead with it ! I'm beyond appalled. Can only hope that enough people complaint, and/or government/regulations make them retrofit a 4G receiver in the affected cars. Mine is barely 6 years old !!!

OK thanks & cheers Hufman, greetings all. I'll report back any further issues. Looking how things go now. (^.^)

LACNR commented 3 years ago

First of, the deactivation of 3G will NOT disable most of the Connected Drive Services when using the BMW that has only an up to 3G module. It will fall back to the 2G connection, services such as Emergency Call, TeleServices, Weather, News, RTTI, Concierge and so on will continue to work under 2G, however data heavy services will require a longer response time according to BMW.

When connecting an iPhone, you don't even need a BMW app installed it should automatically read Spotify, Deezer, Audible and other Apps being fully supported unless your car doesn't have BMW Apps option, it was however standard after a certain model year. Apps only appear in the external media listing, eventually you need to open the App you wanna use if it doesn appear on connection.

Your vehicle is not compatible with MyBMW as of now MyBMW doesn't support using Apps via USB Connection, you require BMW Connected App 6.4, you don't need to login just install an older Version of the Connected App (not from the PlayStore which is 6.5 with removed app support).

The government will definitely not force the manufractures to equip the vehicles with a 4G module and its not BMW shutting down the 3G service but the providers. Its up to BMW if they are willing to upgrade the hundred thousands of the 3G models, eventually they are offering this option in the United States, I heard.

Technically BMW could have equip all models since 2011 with 4G module from factory as it was known to be shut down sometime down the road. It seems, though they did upgrade their production during 2014 and some time later all models had a 4G module from stock.

JoeDoe2021 commented 3 years ago

Hi - no further developments, since I've not used the car, but interesting comment by LACNR.

Let's see for the 2G data (Edge) fallback, I really really wish so. I've read other opinions that were not so hopeful. Anyway I'll forego any "connected" services (rather disservices) at that speed. At 3G it is already barely tolerable (for the very little that remains of any services at all). Just until recently, for example, I could get fuel prices (even if at snail pace), but as of today, I can't get any of that anymore. The only thing I really want is for the car to "data validate" the valid Connected subscription, so that I do not lose access to Apps. I'm still convinced that you need that for AndroidAutoIdrive to work, as far as I have understood (Hufman might correct ?).

I'd also really wish to have 2G kept for voice (the emergency calling), along with some Edge for positioning data transmission. I do long-distance travel from time to time, and I appreciate knowing that there's the "emergency services" function, for whatever it could be worth.

I will try to see if Apps do show up if I use BMW Connected 6.4. However, there was a very limited number of apps available back then - I think the only one that could be relevant for me today would be TuneIn, and even that one of limited interest. And even further, I'd be surprised that any (in their current form) works.

Anyway I recognize that iDrive NBT 2014/2015 (my case) with BMW Apps linked to a subscription to Connected Services is a shit ass proposal. The only reasonable thing is BMW Apps "integrated and for life", which was the logical successor (missed that in my BMW for a hair). This should give me a slightly better experience with AndroidAutoIdrive, I would assume.

To make things worse, I could get some upgrades done at little cost (via non-OEM resellers and simple USB coding), but I've been instructed that once I go that route, there's no easy going back. And if I was "caught" by BMW Service (which I have to use), I could be set for a heavy bill for getting things back to OEM.

As of today, I'd still pay BMW for a 4G module and for some functional upgrades, even if at a bitter price (within limits of course). But even willing to pay, I still have had no luck.

As it stands, AndroidAutoIdrive is all I have left if I still want a semi-modern connected system in my car.

LACNR commented 3 years ago

BMW states on their website that every car that use 3G will fallback to 2G and that most of the services will remain functional. Emergency Call must keep service by law, they were using 2G regardless because they only require 2G and 2G is the backup signal.

However, they did remove Online-Search and Other Applications slightly over a week ago that were all powered by Google and other brands (e.g. flickr), but maybe the license just ran out.

Did you ever do a Software Update for your BMW? (www.bmw.com/software)

Additionally, go in car into the ConnectedDrive menu, press Options and then select Update BMW Services, this will eventually update your ConnectedDrive/BMW Services to the latest state if not done before.

Edit:

Using BMW Connected 6.4 alone on Android will not give you any apps anymore (unless you use AAiD of course) except Calendar and BMW Connected Travel/Trip Assistent, third-party apps were rarely supported except Spotify but even they removed their protocol last year. When using an iPhone my girlfriend doesn't need the BMW app, my car detects Spotify and bunch off other apps on her phone right away - though mine is from 2016.

I know that 2013- models needed the specifically developed old "Connected Classic" app to use Spotify, Facebook, Twitter, TuneIn and what not in the car, but the need was removed in later models especially when using an Apple product.

JoeDoe2021 commented 3 years ago

Thanks, let's indeed count on the 2G situation.

I've done both (SW update and BMW Services Update). Little changed (actually I lost functionality > fuel prices...).

I'm in a limbo between the very early / old "Connected Classic" and your 2016 situation, where I assume you have Option 6NR (BMW Apps, for life) active. This allows you Apps over Bluetooth for example, which again I should have - my unit is fully capable, but artificially "caped" to only allow the old version of Apps via subscription only.

Anyway, I'll do a re-check of what's available in the next few days.

There are apparently changes ongoing on the whole "Connected Drive" thing, probably associated with the end of the ConnectedDrive App ? In France there's an announcement of store unavailable by end of day 29th of June. Let's see if there's anything relevant being implemented. I have little to no hopes of benefiting though !

LACNR commented 3 years ago

Well yeah, fuel prices, restaurants, mall, parking lots and many more were shortcut Applications by Google from the additional Online Search service - the weeks before it said they were mantaining the services for the best customer expierence, eventually it was removed foe 3G cars because of the shutdown or the license just ran out. I still can use News, Weather, Emails and so on without issues and fairly fast.

There's no ConnectedDrive App ;) its just named BMW Connected app which will run out of service this month and replaced by MyBMW as mentioned in the 6.5 release - thats why you need to go back to a previous release favorable 6.4 :)

ConnectedDrive is independend from the app's shutdown.

I actually have to connected via USB as well for it to use the integrated apps because Apps via Bluetooth was only available with MY2017 as standard, but yes BMW Apps option itself is native and as standard in my car. I know for older models until a certain year BMW Apps was a special option that had to be ticked and ordered by the customer when the car was configured for building - I'm not sure if you need to have a running subscription in your case, but can be different from country to country.

I hope we can figure out whats going on in your case, you do use one of the latest nigthly builds or did you download the release from August 2020?

JoeDoe2021 commented 3 years ago

I do have that option activated - as long as I have a valid "Connected Services" subscription.

As I rambled above, BMW Option 6AK (ConnectedDrive Services) which I have is the basic reason I can have BMW Apps at all - but again, only if I have a valid subscription to those services - which I also have, for the moment at least.

For the moment I've settled on the 1.3 RC2, but I've tried some Nightly builds. I was trying to limit the number of things that might interfere (a regularly changing App version would not enable me to take conclusions...). But this is what I'll do - I'll keep a device for testing out Nightly builds, and another (the go-to device) to try to have in good working order, for long trips.

I'll also reduce the mess of devices, sticking to a Galaxy Note 4 (Android 6) and Galaxy S7 (Android 8), both proven to be able to work - the App and USB audio have worked already on these two devices.

One suggestion I could make would be to have the Nightly builds minimally documented if possible - just a couple of lines of what was adjusted, generically. As things are now, I could not even find the link to those builds, only mentioned via threads here and there. Or maybe it's in the opening page and I have not been able to catch that yet.

Cheers !

PS: on a French spec, and 3G, those services (News, Google search, Weather) are still available for the moment, but slow as molasses. This, anywhere I've tried, in France and abroad. The NBT unit does not seem the culprit (I find it responsive enough), but yours - 2016 - should be at least the NBT Evo, which is much faster, and uses 4G. If you are only 3G though, then you should be on the same NBT as myself. Then you must have a "better 3G card" I guess ! :)

hufman commented 3 years ago

Thank you @LACNR for the helpful explanation! I personally actually drive a Mini, which does not have a subscription model, and I haven't been able to find good sources about what features are available on what BMW subscriptions, especially in different regions. To further confuse me, the Mini ID4 system doesn't have any cellular connectivity at all!

As far as I know, I don't believe ID4 can be upgraded to support Bluetooth Apps, one of the differentiating features of ID5. I had previously understood 6NR to be the code necessary for apps, but perhaps that's for the iphone-only generation (CIC instead of NBT? ID3? ID4 without the ++ symbols?) and perhaps the BMW Online subscription has always been necessary? I sincerely appreciate your help in explaining this, since I don't know it at all :)

As for the USB connectivity, I'd expect BMW Connected 6.4 to work the most reliably (making sure to disable automatic updates, and I suspect it may lose the Calendar feature when the app shuts down), but MyBMW might start working soon: A user seemed to discover a reliable connection process to get MyBMW to connect over USB over in this thread.

The nightly builds are mentioned in the main README, in the Getting Started section, in a paragraph starting out "Also consider trying out the nightly build". There is a brief summary there with changes, though that list still compares against the previous 1.2 release as opposed to the upcoming 1.3 release. Additionally, by going through the commit history, each commit has a green checkmark that links to the CI Build Page, with the resulting APK builds from each commit being available for at least a week. Within the app, the Support tab shows the build code, which can be looked up in the commit history to see any recent or later changes. I'm particularly proud of the descriptive commit messages, which should help you know what has changed recently.

Thank you for the kind words, and for joining us on this wild ride!

patalmqx commented 3 years ago

I just can support this topic. Your app is all i need but i just can't connect using my Huawei P10 lite. So no chance so far. :(

The connected services, bmw apps license situation is quite confusing. No impression of high end tech from BMW. No stable apps support and silent deactivation of Features

LACNR commented 3 years ago

@hufman

Yes, the ID4 system cannot be upgraded to support (unless Retrofit) Bluetooth Apps, that was a later feature. Though, the first generation of ID4 at some point did have the ability for enhanced telephone and bluetooth connectivity already if it was ordered with the car - this overall resulted in an enhanced control when using a bluetooth connection dor Audio playback with android phones but of course was far improved with the ID4++.

I know the models from 2012-2014 had the Connected Classic App for iPhones so Apps such as Spotify could be used, the need of the BMW app when using Apple Products became irrelevant later because the vehicle nativley recongized supported apps upon USB connection, at a time CDS and BMW Apps was a special option that had to be ordered but became standard in later ID4 systems - I think 2015-.

Downside for Android users was that Android changed their protocol at some point that the cars couldn't recognize Apps depending on your phone and cars equipment.

I don't know if the BMW Online sub was always required, but indeed when ordering Connected Drive Services which was the foundation for the optional services and came for free for lifetime with any Connected Drive order it unlocked the offline and online apps functionality as well.

Technically, once you have ordered a package for example it included BMWs "Connected Drive Services" and speculation is at that point it unlocked the connectivity assistent in the Connected Drive menu when scrolling all the way down to the bottom. That assistent is the auto-connector for the BMW Apps-Ready function. The question is if his car is BMW Apps-ready, if he has the assistent I can guess he needs to run it manually once with the phone after it will always connect automatic. Connected Drive Services is for lifetime and for free.

GitLoep commented 3 years ago

Thank you for your great work. I have an BMW 2016 Model which still has the NBT. So I have to use USB to connect to the car. I have tried Connected 6.4, 6.5 and myBMW with the method mentioned here. All dont seem to work. BCL Tunnel attaches and disconnects after a while. Only Connected Classic works. I'll attach 2 Videos for comparison.

https://user-images.githubusercontent.com/85569524/124465281-85d31180-dd95-11eb-8935-105d0d367620.mp4

https://user-images.githubusercontent.com/85569524/124465308-8d92b600-dd95-11eb-8d19-1285d25f0756.mp4

LACNR commented 3 years ago

MyBMW will not work at this time because it only supports the tunnel via Bluetooth with cars that have Bluetooth apps as an option.

Your best chance is Connected Classic or Connected 6.4 but be aware to only install the app, don't open and don't login to the app - shouldn't be possible anymore thought because it was shutdown. 6.5 will not work because they deactivated the connectivity a few months ago.

You can install and use MyBMW parallel to Connected 6.4, the Connected is only required to be installed nothing else :)

Maybe you need to check if your car has the latest updates from www.bmw.com/update

GitLoep commented 3 years ago

Thank You! Sadly only Connected Classic works. Even Connected 6.4 results in the "Attached" Loop. My Car had the latest Update. Even a Roll-Back and Re-Update didn't change anything.

fookyuanloh commented 3 years ago

@hufman

Yes, the ID4 system cannot be upgraded to support (unless Retrofit) Bluetooth Apps, that was a later feature. Though, the first generation of ID4 at some point did have the ability for enhanced telephone and bluetooth connectivity already if it was ordered with the car - this overall resulted in an enhanced control when using a bluetooth connection dor Audio playback with android phones but of course was far improved with the ID4++.

I know the models from 2012-2014 had the Connected Classic App for iPhones so Apps such as Spotify could be used, the need of the BMW app when using Apple Products became irrelevant later because the vehicle nativley recongized supported apps upon USB connection, at a time CDS and BMW Apps was a special option that had to be ordered but became standard in later ID4 systems - I think 2015-.

Downside for Android users was that Android changed their protocol at some point that the cars couldn't recognize Apps depending on your phone and cars equipment.

I don't know if the BMW Online sub was always required, but indeed when ordering Connected Drive Services which was the foundation for the optional services and came for free for lifetime with any Connected Drive order it unlocked the offline and online apps functionality as well.

Technically, once you have ordered a package for example it included BMWs "Connected Drive Services" and speculation is at that point it unlocked the connectivity assistent in the Connected Drive menu when scrolling all the way down to the bottom. That assistent is the auto-connector for the BMW Apps-Ready function. The question is if his car is BMW Apps-ready, if he has the assistent I can guess he needs to run it manually once with the phone after it will always connect automatic. Connected Drive Services is for lifetime and for free.

@LANCR, what if the ID4 gets flashed to ID6? Will that support apps over Bluetooth? My car is a MY2016 f30

Has anybody tried this before? There are vendors who can flash my ID4 to ID6, but if doesn't give me apps over Bluetooth then that doesn't make sense to do it

When you mentioned retrofit, does that mean changing the whole hardware unit or just flashing it?

LACNR commented 3 years ago

@lancr, what if the ID4 gets flashed to ID6? Will that support apps over Bluetooth? My car is a MY2016 f30

Has anybody tried this before? There are vendors who can flash my ID4 to ID6, but if doesn't give me apps over Bluetooth then that doesn't make sense to do it

When you mentioned retrofit, does that mean changing the whole hardware unit or just flashing it?

I don't think so that flashing it will add the functionality of ID6, in fact it uses very different, more poweful and more modern hardware than the units equipped with ID4++ (latest variant).

Even if you would flash it, ID6 has way higher system requirements which the iD4 Headunits are eventually too weak, if I'm not mistaken ID6 Headunits require 8GB of RAM, ID4 has "only" 4 if Im correct...

Retrofit means a complete hardware overhaul, new Headunit, eventually new Display if it has different connectors, perhaps separate new modules depends on what the Retrofits offer and include - afterall the prices aren't worth it.

I would just await and some time buy a new or newer car

hufman commented 3 years ago

I believe this has been resolved by recent versions of MyBMW (starting around version 1.5.0) gaining official USB support.