IBUS Services (Android Smartphone als Alternative zu Dension&Co.)

  • Hallo Leute,
    wollte euch mal mein momentanes Bastel-Projekt vorstellen:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Ich hoffe ihr erkennt etwas auf dem Video.


    Im Prinzip habe ich ein Interface entwickelt, dass den IBUS über Bluetooth mit meinem Android Smartphone verbindet.
    Der Hardware-Part war recht fix gemacht, ein paar Datenblätter wälzen, Platine ätzen und löten (wobei letzteres trotz der geringen Anzahl an Bauteilen wohl am längsten gedauert hat - SMD ;) ).


    Dann lag das Ganze ein paar Monate seit Herbst rum, weil mir die Start-Motivation gefehlt hat, die nötige Software zu schreiben.
    Vor 2 Wochen hab ich dann doch mal damit angefangen und dank Semesterferien sind da jetzt wohl auch so ca. 3000 Code-Zeilen dabei rum gekommen.
    Ich musste mich in die komplette Thematik erst einmal einarbeiten, hatte keinerlei Erfahrung mit dem Entwickeln von Mobil-Anwendungen und auch meine Java-Werke haben sich bisher meist auf in 5 Minuten runtergeschriebene "Tools" beschränkt.
    Die Programmierung war gar nicht so trivial, da die Ressourcen beim Handy ja doch begrenzt sind und ich bei meiner Anwendung Multi-Threading benötige.


    Jetzt bin ich an einem Punkt angelangt wo ich denke, dass man das Ganze schon mal der Öffentlichkeit zeigen kann.
    Noch ist die App zwar ganz klar als Alpha-Version zu bewerten, aber der Funktionsumfang ist schon mal nicht ganz übel:

    • Wechsler emulieren, Steuerung der Wiedergabe über die Radiotasten
    • Wiedergabelautstärke wird automatisch verringert, wenn App mit höherer Priorität etwas ausgibt (z.B. Ansage vom Navi)
    • Anzeige von ID3 Tags im Display des BMW Business
    • IBUS Logging
    • Synchronisieren der Uhrzeit (bei jeder Verbindung wird die Fahrzeug-Uhr neu abgeglichen)
    • bei einkommenden Gesprächen wird die Nummer des Anrufers angezeigt und die Wiedergabe gestoppt

    Finde ich schon mal recht sinnvoll, denn damit wird mein Dension Gateway 300 wohl erst einmal überflüssig.
    Muss ja schließlich auch Erfahrungen sammeln, wie sich die Sache so in der Praxis schlägt.
    Falls jetzt jemand fragt, wo's das ganze gibt:
    Noch gar nicht. Wie gesagt, dass ganze ist in einem sehr frühen Stadium. Bevor ich's auf die Öffentlichkeit los lassen will, muss das ganze noch etwas optimiert werden. Gibt viele potentielle Fehler, die zwar bei mir bisher nicht aufgetreten sind (soweit läuft es eigentlich ohne Probleme), aber bei anderen Konfigurationen Probleme machen könnten - die müssen unbedingt noch abgefangen werden.


    Ich würde mich über Feedback freuen, falls ihr noch Fragen oder Anregungen habt lasst es mich wissen.
    Gruß
    ZwoCa

  • Hi Zwoca, sieht ja schonmal bisher super aus :) Vor allem in Eigenregie, mein lieber Schwan
    Also hast du das Bluetooth Dingens an den Wechsleranschluss angeschlossen ?


    Wenns einen Beta Test geben sollte, würd ich mich bereit erklären dass ganze mit einem Galaxy S2 auszuprobieren :D



    Andere Frage, ließe sich es irgendwie umsetzen zwischen 2 Quellen umzuschalten ? Sprich zwischen Interface und Bluetooth Empfänger ?


    Gruß Jan

  • Wow das ist richtig klasse. Aber wie willst du das mit der Hardware machen?
    Selbst wenn du die App verkaufst, braucht man ja noch die Hardware irgendwie, oder muss man sich das selbst "basteln" nach Anleitung?


    An einem Betatest würde ich natürlich auch gerne mitmachen mit meinem Galaxy Nexus und ICS. ;)


    Was mir aber in dem Zug noch als Erweiterung einfällt, wenn du schon so eine Kopplung erstellt hast, wäre es evtl. möglich auch noch eine Freisprecheinrichtung darüber zu realisieren? Falls möglich.


    edit: Glaube so einen Codierer könnte auch unser Bastler benötigen für sein Projekt mit den LEDs im Kombiinstrument abhängig von der Öltemperatur um ohne zusätzlichen Abnehmer direkt vom BUS die Temperatur auszulesen und die LEDs zu steuern.

  • Mit Quellen umschalten sieht's eher schlecht aus. Dazu müsste das Interface ja erstmal schalten können und eine gewisse "Intelligenz" haben.
    Im Moment ist es eine ganz simple Funk-Brücke, die nichts anderes macht, als die IBUS-Kommunikation statt über RS232 oder USB über Bluetooth laufen zu lassen.
    Die Audio-Funktionalität ist nicht Bestandteil des Interface, d.h. man muss sich selbst darum kümmern, wie der Ton zum Radio kommt (sprich Audio-Kabel an den Wechsler-Eingang).
    Ist eine Kosten-Nutzen-Frage: Ich wollte das ganze möglichst einfach & low-cost gestalten. Wenn man auch den Ton über Bluetooth übertragen will, braucht man schon wieder einen anderen Bluetooth-Chipsatz, Digital-Analog-Wandler und solchen Kram - so wie's zwar den Nachteil des Audio-Kabels, dafür kosten die Bauteile aber auch nur ~20€ - bei einer Nur-Bluetooth-Lösung würde ich dagegen eher am dreistelligen Bereich zu kratzen.
    Falls jetzt jemand fragt, warum ich dann den IBUS nicht auch über Kabel anspreche: Kompatibilität. Nicht jedes Android-Smartphone kann als USB-Host arbeiten - mein Motorola Defy zum Beispiel nicht. Und (auch wichtig): Für serielle Kommunikation über Bluetooth bringt Android schon die passenden Routinen mit.


    Also zusammengefasst:
    Das Interface bekommt Plus (Zündungsplus, denn momentan wird das Bluetooth-Modul nicht abgeschaltet, wenn auf dem IBUS nichts los ist - gerade im Discovery-Mode zieht das ganze dann an die 500mW - dafür hab ich aber denk ich schon eine Lösung), Masse und IBUS und ist über Bluetooth drahtlos mit dem Handy verbunden. Der Ton vom Handy geht über den Kopfhörer-Anschluss an den Wechsler-Eingang vom Radio.


    Zum Thema Beta-Testing muss ich mal schauen. Ist nicht so einfach, da ja auch Hardware nötig ist. Die gibt es nicht fertig zu kaufen und das ganze professionell fertigen zu lassen ist finanziell ein Unding. Insofern bleibt eigentlich nur der Weg die Platinen selbst herzustellen und zu bestücken. Da fehlt mir aber zumindest momentan die Zeit - Prüfungen und Praktika wollen auch gemacht werden ;) - ihr werdet euch also mal zumindest ein paar Wochen gedulden müssen.


    Akku-Verbrauch konnte ich noch nicht genau beobachten, da ich zur Zeit immer nur kurze Strecken fahre. Ab nächste Woche wird wieder "gependelt", da werd ich mal ein Auge drauf werfen. Mir scheint er aber nicht übermässig hoch zu sein, vielleicht doppelt so hoch wie beim "normalen" Musik hören.


    Danke an euch für die motivierenden Beiträge :thumbup:


    Gruß
    ZwoCa


    EDIT:
    Während ich grad am Schreiben war, kam Trymons Beitrag.
    Also dazu: Mit der Hardware sehe ich auch noch das Problem. Verkaufen ist in Deutschland nicht (gibt zu viele Vorschriften & Lizenzen die man benötigen würde) - ich muss mich mal nach den Möglichkeiten erkundigen, eventuell ist es möglich, dass ich einen Löt-Service anbiete, der dann in Anspruch genommen werden kann. Oder das Platinenlayout wird veröffentlicht und jeder darf selber ran :P


    Zur Freisprecheinrichtung: Zumindest mein Motorola Defy nutzt ja die CarDock-Funktion von Android. Es erkennt, wenn es in der Halteschale steckt und aktiviert dann automatisch das Freisprechen. Der Ton wird dann mit über die Auto-Lautsprecher ausgegeben, da der Kopfhörer-Ausgang ja am Wechsler-Eingang angeschlossen ist. Sozusagen "Freisprechen-Light". Anrufe über's MFL entgegen nehmen könnte man sicher realisieren. Dann hätte man schon "Freisprechen-Medium" ;)

  • Moin,
    hatte gestern noch den Einfall eine der Nummern-Tasten am Radio zu nutzen, um die VoiceSearch-Funktion von Android (davon hat Apple mit Siri abgeschaut :P ) zu aktivieren. Könnte man dann natürlich auch mit dem MFL ansteuern, dazu muss ich nur mal schaun, wie die Bedienlogik beim BMW SES-System gelöst ist. Kann man sich ja dran orientieren.


    Ein nettes Features ist mir noch eingefallen:
    Eine Anbindung an spritmonitor oder ein eigenes Benzin-Logbuch. Einfach einen Button "Ich war tanken", die Liter eintragen, App holt sich Kilometerstand aus dem IKE. Auch die Daten wie Durchschnittsgeschwindigkeit & -verbrauch kann man sich dann aus dem IKE ziehen und gleich zurück setzen lassen. Nervt mich beim Tanken immer, die ganzen Werte zu reseten. Für den Durchschnittsverbrauch könnte man sogar den Durchschnittsverbrauch 2 nutzen, der bei Fahrzeugen ohne Navi nirgends angezeigt wird, aber trotzdem im Hintergrund erfasst wird.
    Spritmonitor.de bringt aber leider keine API mit, bei der man so etwas einfach eintragen kann - somit müsste man die App direkt deren Formular ausfüllen lassen, was dann bei jeder Änderung der Internetseite, die die machen, eine Änderung meiner App nach sich ziehen würde. Also vielleicht doch lieber ein simple Log in eine CSV Datei, die sich dann mit Spritmonitor importiere lassen würde. So müsste man auch getankte Liter & Preis erst zuhause eintragen, was wieder Zeit an der Zapfsäule spart ;)


    Trotzdem muss ich mich wohl jetzt erstmal zwingen, dass Projekt für die nächsten 3 Wochen ruhen zu lassen - sonst wird das mit dem Studium nix :whistling:

  • Klasse was du so alles vor hast. Doch bedenke, wenn du so weiter machst kannst du am Ende den Dicken mit dem Android komplett steuern. :D Da wird dann selbst James Bond neidisch. :D

  • Na toll, dann bleibe ich mit meinem Windows Mobile Phone (6.5) mal wieder außen vor ;( Aber ansonsten große Klasse :applaus:

  • Klasse Projekt! Scheinst ja richtig was auf die Beine zu stellen :)


    Was sind das für komische Hintergrund Geräusche im Video? Die irritieren ein wenig.


    Werde es zwar nicht nutzen können, dennoch Klasse!