Hallo,
wie versprochen einen Thread zum DIY-Navi für den Hyundai i30 GD. Das Navi würde auch auf jeden anderen Hyundai passen, was sich ändern würde, wäre nur die 2-Din-Blende und der Stecker hinten.
Das Aufbauen des gesamten Navis habe ich zwischen den letzten Feiertagen, also Weihnachten und Neujahr erledigt + im Vorfeld getätigte Recherche im Netz. Je nachdem wie man handwerklich und in Elektronik begabt und bewandert ist, ginge es evtl. auch schneller.
Es wäre nett wenn mir die Admins ermöglichen diesen Anfangspost stetig upzudaten damit ich fehlende Infos hinzufügen kann. Auf einmal an alles zu denken fällt mir gerade irgendwie schwer.
Kurzer Disclaimer vorab: Das ist ein Selbstbauprojekt für die persönliche Nutzung also Nachmachen auf eigene Gefahr.
Sorry für evtl. Schreibfehler oder nicht korrekt zusammengefügt Sätze, ich habe so viele Infos wie möglich zusammengesucht und in den Text gestopft. Das Schreiben hat gefühlt länger gedauert als das zusammenbauen des Navis.
Leider bin ich noch nicht zu einem Video gekommen um den Funktionsumfang zu demonstrieren, das werde ich jedoch noch nachreichen falls Interesse besteht.
Ein paar Bilder vorab wie das Ganze am Ende aussieht oder aussehen kann(Bilder evtl. anklicken um zu vergrößern):
Hardware:
Das Navi besteht aus 2 Hauptkomponenten:
Ein Google Nexus 7 Tablet der 2.Generation(Codename DEB) mit LTE, Quadcore CPU, 32Gb internen Speicher und einem 1080p Display bei 7“Bildschirmdiagonale und sehr gutem Blickwinkel.
Dieses Tablet passt haargenau hinter der 2-Din Blende für den i30, so, dass das Design dem original Hyundai i30 Navi sehr ähnelt. Von der Höhe her ist das Display quasi bündig mit der 2-Din Blende. In der Breite ist die Blende etwas breiter so, dass die vordere Kamera noch freie Sicht hat zum Innenraum des Wagens, dies kann gut genutzt werden um ein Bild des Fahrers/Innenraum nach jedem Start des Wagens auf einen eigenen Server hochzuladen(bei Diebstahl könnte es vielleicht nützlich sein). Auf den ersten Bildern ist die Kamera am Rand leicht zu sehen. Weiterhin habe ich die 2-Din Blende mit einer matten schwarzen Folie versehen(nur der untere Teil, siehe Bilder) zum einen um die Reflexionen des Displays auf die untere Klavierlackoberfläche zu eliminieren, zum anderen weil es optisch wesentlich ansprechender aussieht. Es sieht nicht nach Folie aus sondern so, als würde die Blende aus zwei unterschiedlichen Materialien bestehen. Die Folienoptik ist identisch mit dem original matten Plastik von Hyundai wo der „Passenger Airbag“ Schriftzug steht.
Die zweite Hauptkomponente stellt eine selbstgebaute Lochraster Platine dar, die das Bindeglied zwischen Auto und Tablet darstellt und mehrere Komponenten beherbergt.
Im Bild sind alle Komponenten gelistet, hier eine kurze Beschreibung:
Unten links befindet sich die Buchse inkl. Sicherung (siehe Bild) die per Adapter an den original Hyundai-Radiostecker angeschlossen wird. An dem Original Hyundai Stecker findet keine Änderung statt, der Umbau ist zu 100% auf den Originalzustand rückführbar.
Ganz links unten befindet sich eine Drossel. In Verbindung mit einem Kondensator und Schutzdiode stellt das den elektrischen Schutz/Filter der Platinen- und Tabletelektronik vor den Schwankungen und Störungen der Boardspannung dar.
Oben links befindet sich ein 12->5V 3A DCDC-Wandlermodul. Ich habe hier etwas mehr investiert als einfach einen kleinen 5V Regler einzubauen, da ich die Tablet- und Platinenelektronik galvanisch von der Boardspannung trennen wollte. Das verhindert von vorne rein jegliche Art von Brummschleifen oder gegenseitige Störeinflüsse.
Unter dem Wandler befindet sich noch das Hauptrelais welches durch ACC geschaltet wird und durch Schutzdiode und Freilaufdiode auch nochmal abgesichert ist.
Der Wandler kann noch mal eingestellt werden (trim Port+Poti sitzt unter dem Wandler) um exakt die 5V zu erreichen. Der Ausgang des Wandlers ist mit dem Spannungseingang des aktiven USB Hub angeschlossen der die Spannungsverteilung für alle restlichen Komponenten garantiert.
Rechts neben dem USB Hub ist der Behringer USB DAC verbaut dessen Line-Out Ausgang an einen externen DSP/Verstärker angeschlossen ist. Hier hat man die Wahl zwischen analog oder optisch digital als Ausgang. Wer keinen Verstärker hat, kann einen mini Verstärker nutzen(z.B. von Alpine KTP455U), dieser passt evtl. sogar hinter dem Navi und „befeuert“ dann die Serienlautsprecher.
Der USB DAC hat auch noch einen Line-In Eingang. Hier habe ich einen kleinen Mic-Vorverstärker mit Rauschunterdrückung und Limiterfunktion angeschlossen um das original Hyundai Mikrofon welches sich am Dachhimmel befindet anzuschließen. Das Ergebnis ist eine sehr gute Spracherkennung in Android selbst bei hohen Geschwindigkeiten.
Ganz rechts im Bild habe ich den Easycap Videograbber angeschlossen um das Rückfahrkamerabild in Android anzuzeigen. Der Grabber wird über ein Relais eingeschaltet welches wiederum durch das Rückfahrsignal geschaltet wird. Einen Kondensator habe ich dort noch zwischengeschaltet, damit das Bild sich nicht ein- und ausschaltet falls der Rückwärtsgang mal hackt oder ähnliches. Hier wurden ebenfalls Schutz- und Freilaufdioden verbaut.
Zwischen dem Hub und dem Wandler, befindet sich ein Arduino uC (eigentlich Arduino Clone von Sparkfun namens Pro Micro=kostengünstiger+kleiner), dieser empfängt die Signale vom Auto, also Lenkradtasten, Licht AN/Aus Signal usw. und sendet diese per BT-USB-Serial-Modul* an das Tablet weiter.(*= Ich werde später erklären weshalb ich nicht die USB-Verbindung zwischen Tablet und Arduino genutzt habe und stattdessen eine BT-Verbindung).
Um die Signale vom Auto (12V) ebenfalls komplett von der Platinen- und Tabletelektronik zu trennen habe ich noch Optokoppler(4N35) eingebaut. Diese sorgen wieder für die oben genannte galvanische Trennung zwischen den Schaltkreisen der Platine und der der Boardelektronik.
Neben der Aufgabe Signale vom Auto zum Tablet zu senden, übernimmt der Arduino noch die Aufgabe zeitverzögert den externen DSP/Verstärker einzuschalten um lästige Einschaltgeräusche an den Lautsprecher zu verhindern(Popup Geräusche). Dafür schaltet der Arduino das weiße Relais erst ca. 3 oder 4s nach dem Start.
Bei der Lenkradfernbedienung habe ich keine Trennung der Schaltkreise vorgenommen da diese bereits vollkommen isoliert von der Boardelektronik sind. Die Lenkradtasten schalten eine Wiederstandsmatrix die keine gemeinsame Masse mit der Boardelektronik besitzt. Vorteilhaft ist hier, dass man nur 2 Ports am Arduino braucht um den Zustand aller Lenkradtasten auszulesen.
Die Platine ist vorne(im Bild oben) dann mit dem Tablet per USB OTG Y-Kabel angeschlossen welches einmal die Datenverbindung und die Stromversorgung des Tablets gewährleistet.
Die Platine findet Platz in einem ausrangiertem 2-DIN Gehäuse welches auch das Layout und die Position der einzelnen Komponenten bestimmt hat (Platzierung der ISO- und USB-Buchse für die original Hyundai USB Buchse in der Mittelkonsole).
Ich habe die Planung und den Bau der Platine Schaltkreis per Schaltkreis aufgebaut, ich hatte also nicht einen vordefinierten Schaltplan. Ich hatte zwar alles Pi mal Auge im Kopf aber der Aufbau/Test ging dann etappenweise.
Software:
OS: Android 5.1.1 Lollipop mit Timurs Kernel: Der KfZ-Kernel schlecht hin. Erst mit diesem Kernel ist das gleichzeitige Laden und Anschließen von Tablet und USB Peripherie möglich. Alternative wäre noch der kostenlose ElementalX Kernel gewesen, jedoch bietet Timur sehr guten Support im KfZ-Tablet Bereich und man kann auf sehr viele nützliche Tipps und Erfahrungswerte im geschlossenem Timur Forum zurückgreifen. Weiterhin bietet das Release einfache Treiberanbindung, viele nützliche Funktionen für eine Festinstallation des Tablets (also bei dem kein Zugang zum An/Aus Knopf des Tablets möglich ist). Das Tablet schaltet sich automatisch ein und aus per Zündung und hat ein sog. Deep Sleep Modus mit dem der Akku des Tablets praktisch nicht entladen wird wenn die Zündung aus ist (unter 1% innerhalb von 48h, zumindest ist es das
was ich bisher am längsten testen konnte im Auto). Alle Funktionen würden jetzt den Rahmen sprengen mehr Infos auf Timurs Website(link unten).
Remote Input Manager(RIM): Um die Signale vom Arduino ins Tablet zu empfangen und den jeweiligen Funktionen zuzuordnen, benutze ich den RIM.
Diesen habe ich im XDA-Forum gefunden. Alle am Arduino gemessenen Messwerte der Lenkradfernbedienung werden von dieser App gelesen und entsprechend in Media
Key Tasten in Arduino umgewandelt oder es werden Tasker Tasks ausgeführt. In der App kann man auch unterscheiden ob eine Taste am Lenkrad nur gedrückt wird
oder gehalten wird, somit ist eine Doppelbelegung der Tasten möglich. Bsp. Die Spracheingabetaste nutze ich sowohl für Autovoice(kurzes Drücken der Lenkradtaste) als auch für google search(langes Drücken der Taste).
Ich hatte am Anfang etliche Probleme den RIM zum Laufen zu bringen mit meinem Arduino Clone da dieser über USB ein DTR Signal benötigt um die serielle Verbindung aufzubauen. Das Problem an der Sache war, dass der Programmierer der App eine alte(nicht adaptierte) USB-Library (mik3y) nutzte die DTR nicht unterstützte und so eine Kommunikation zwischen Tablet und Arduino über USB nicht zustande kam. Da die Apk auch nicht opensource ist(dann hätte ich einfach eine modifizierte Library integrieren können), musste ich mich entscheiden von Grund auf eine eigene App zu programmieren oder einfach für 5Euro einen BT-serial-Modul auf der Platine unterzubringen mit dem der RIM keine Kommunikationsprobleme gehabt hätte. Ich habe mich dann, wegen der Zeitersparnis, für die 5Euro BT-Lösung entschieden.
Im Übrigen funktioniert auch das automatische Dimmen des Displays des Tablets sobald das Licht am Auto eingeschaltet wird über dieses Programm in Verbindung mit Tasker. In der Arduino Firmware habe ich einen Code für das Licht An/Aus Signal festgelegt(8000=Licht AN, 9000=Licht AUS), sobald das Licht eingeschaltet wird, sendet der Arduino den vordefinierten Messwert an den RIM, dieser wiederum führt das Dimmen des Displays über einen Task in Tasker aus. Die Funktionskette liest sich etwas lang, ist aber instantan. Durch die Möglichkeit Tasker im RIM einzubinden sind hier eh keine Grenzen gesetzt.
Tasker/Autovoice/Autoinput: Tasker ist eine Automatisierungssoftware für Android mit der man vordefinierte Makros ausführen kann. Tasker dirigiert bzw. führt fast alle Funktionen im Navi aus um die Bedienung während der Fahrt zu erleichtern und das Ablenken vom Straßenverkehr soweit wie möglich zu minimieren.
Mit Tasker nutze ich auch Plugins wie Autovoice und Autoinput. Ich bediene das Navi fast nur noch per Sprachkommandos und Trackball oder Touchpad welches sich bei mir in der Mittelkonsole befindet. Dies ist wesentlich angenehmer als auf dem Touchscreen während der Fahrt zu hantieren.
Es ist wesentlich einfacher ins Mikro zu sprechen und „verkehrslage“, „radio“, „navigiere nach xyz“ oder beispielsweise „aktueller Dieselpreis“ zu sagen um alltägliche Funktionen automatisch auszuführen ohne den Touchscreen nicht mal anzusehen. Neben diesen internen offline Befehle die ich vorprogrammiert habe, kann man zusätzlich noch google search für andere nützliche Sachen nutzen wie „suche mir den nächsten Bankautomat“ oder ähnliches. Diese Bedienungsart ist auch der Grund weshalb ich mich mit alternativen Car Launchers oder Android Auto bzw. das Community Projekt Automate nicht so sehr beschäftigt hatte, weil mir der standard Launcher mit Sprachbedienung vollkommen ausreicht. Da Android ja große Freiheiten für Gestaltung der Oberfläche und Funktionen anbietet, kann hier jeder selbst entscheiden. Bei mir habe ich nicht mehr als ein Tankwidget auf dem Homescreen welches mir den günstigsten Dieselpreis in der Umgebung anzeigt wo ich mich gerade mit dem Auto befinde und ein einfaches Wetterwidget.
Tomtom: Ich nutze gerne Tomtom als Navigation da die berechneten Routen mich noch nie enttäuscht haben, die Oberfläche der App sehr modern und flüssig ist und die Stauinfos recht aktuell sind. In Verbindung mit dem eben genannten Taskerplugin muss ich nur „navigiere nach Musterstraße 17 Musterstadt“ sagen. Tomtom wird dann automatisch gestartet und die Adresse wird direkt eingegeben. Eine kurze Sprachanfrage ob die Adresse korrekt erkannt wurd wird noch ausgegeben, die ich dann entweder mit „Ja“ oder „Nein“ quittieren kann.
Hier kann natürlich jeder selbst entscheiden was für eine Navigationsapp genutzt werden soll. Vielen reicht auch google maps.
Rückfahrkamera: Timur bietet in seinem Release zwar eine Rückfahrkamera App namens Vcam, ich nutze diese jedoch nicht weil sie bei mir nicht stabil war. Als sehr gute Alternative habe ich in einem russischen Car Forum eine Rückfahrkamera app gefunden die all meine Wünsche zu diesem Thema erfüllt hat.
Die App muss man nur einmal konfigurieren, danach arbeitet sie stabil im Hintergrund und tut genau das, was man von Ihr erwartet: Zeige mir das Videobild der Rückfahrkamera an sobald der Rückwärtsgang eingelegt ist, egal was gerade auf Android für eine App läuft.
Ein paar Bilder der Einstellmöglichkeiten und auch des Kamerabildes habe ich gepostet. Die üblichen OSD Linien habe ich in meinem Fall deaktiviert, weil die originale Hyundai Kamera, die hinter dem Logo versteckt ist, ziemlich hoch sitzt und somit meine Stoßstange für mich den besten Referenzpunkt darstellt um Distanzen einzuschätzen. Ich weiß jetzt nicht wie es bei der CW-Version des i30 ist, hier kann man dann die Linien evtl. noch einblenden falls nötig.
Smartphoneintegration: Um Telefonate am Navi anzunehmen nutze ich Tablet Talk. Dies kann man sowohl mit Wlan als auch über BT erledigen. Um alle Messages/Notifications des Smartphones auf dem Navi anzuzeigen (z.B. Mailbenachrichtigung usw.) nutze ich Desktop Notification von hcilab. Hier kann man auch filtern welche Notifications man auf dem Tablet vom Smartphone empfangen möchte. Wenn es z.B. auf dem Smartphone ein App-Update gibt, brauche ich dies nicht unbedingt auf dem Navi anzeigen.
Radio: es gibt zwei Möglichkeiten: entweder FM+DAB über einen DVBT-Dongle(10Euro) und Wavesink(App für 12euro!). Habe ich getestet, an sich nicht schlecht, aber Mediakeys(also Lenkradsteuerung) funktioniert mit der App nicht und ich nutze schon seit Jahren eine andere Lösung die besser ist als DAB: Internet Streaming Radio mit Xiialive. Alles was digitales Radio anbietet hat Xiialive auch, wie Radiotext, sauberer Sound usw. Mediatasten werden unterschtützt, ja sogar Timeshift und automatischer Coverdownload bei bekannten Titeln. Stationwechsel geht auch ruckzuck. Jeder Dorfsender ist im Stationenkatalog gelistet. Da suche ich nicht weiter, denn die Lösung ist einfach nur gut. Klar benötigt man eine Datenflat, aber bei effektiv: 4 bis 5Euro im Monat für 3 ja sogar 5GB mache ich mir keinen Kopf mit Antenneninstallation und evtl. schlechten Empfang bzw. nicht ganz ausgereifte Apps.
Noch auf meiner Todoliste:
-SDVC: Also die Anpassung der Lautstärke an die aktuelle Geschwindigkeit. Eigentlich wollt ich es per Hardware und Arduino lösen, da ich kein portablen Oszi zur Hand hatte um das Geschwindigkeitssignal zu analysieren, habe ich es erstmal nach hinten verschoben.
-Das Geschwindigkeitssignal wird ja von Hyundai am Stecker vom Radio bereits zu Verfügung gestellt. Ich habe mir jedoch auch schon Gedanken gemacht das Ganze per Software bzw. Tasker zu lösen indem die GPS-Geschwindigkeit genutzt wird anstatt das Geschwindigkeitssignal. Das müsste eigentlich auch gehen, wenn ich etwas mehr Zeit habe wird das auch in Angriff genommen, vielleicht hat hier auch Jemand eine brauchbare Lösung.
Spielerei: Garangentor per App(und somit per Spracheingabe öffnen und schließen), ansich habe ich es fast fertig, ich war jedoch zu ungeduldig das Navi eindlich einzubauen. Funktioniert eigentlich auch mit dem Arduino, dieser schaltet nur die Tasten der Funkfernbedieung kurz um das Garangentor zu öffnen bzw. zu schließen.
Hardwareliste (sorry nicht ganz präzise, da ich selbst keine Übersicht habe):
+Tablet Nexus 7 Gen2 2013 entweder die LTE oder Wifi only Version.
+I30 Blende http://www.ebay.de/itm/HYUNDAI…96e4d6:g:sNgAAOSwLa9UW5On
+DCDC Wandler Meanwell NSD15 12s5 https://www.elpro.org/de/12-bi…ype/33473-nsd15-12s5.html
+Ausrangiertes 2-Din Radiogehäuse (es geht auch was anderes, ich fand es nur am einfachsten)
+Buchse+Drossel+Kondensator+Schutzdiode habe ich von einem alten 1Din JVC-Radio entnommen welches ich über Kleinanzeigen für 5Euro gekauft
habe. Das ist der günstigste Weg um an die Teile zu kommen. Kann man auch alles separat neu kaufen.
+Für genau diese JVC Buchse (siehe Bild 3) gibt es einen Adapter auf Hyundai i30 GD. Ich habe jetzt auf die Schnelle keinen Link gefunden aber dieser hier ginge auch wenn man eine ISO-Buchse auf der Platine nehmen würde: http://www.ebay.de/itm/ISO-Ada…ec68e8:g:zmcAAOSwI~VTyT-W
+Mehrere Dioden 1N4004 und Zenerdioden 1N4148 und Widerstände.
+Optokoppler 4N35.
+2x übliche 12V Relais für’s Schalten per ACC und für den Rückwärtsgang.
+1x Arduino uC, meiner ist von Sparkfun namens Pro Micro, jeder andere Arduino ginge auch, evtl. benötigt man dann kein BT-Serialmodul und die Kommunikation ginge über USB. https://www.sparkfun.com/products/12640
+1BT Serial Modul HC-05 Modul. Achtung nicht das HC-06 nehmen da dieses nur als BT-Slave genutzt werden kann und die Verbindung nicht stabil funktioniert. Das
HC-05 kann sowohl als BT-Master und Slave fungieren. Die Master Verbindung ist hier eindeutig besser. Wer bereits ein HC-06 hat, kann mal hier schauen wie man
ein HC-06 zum HC-05 ändern kann: http://byron76.blogspot.de/
+1x 5V Signalrelais für’s Remote Signal des externen Verstärkers/DSPs. Vorteil man kann es direkt per Arduino schalten weil die Relaisspule sehr wenig Strom benötigt. https://www.conrad.de/de/print…70050000-1-st-502800.html
+1x gängiger aktiver 7Port USB HUB. Portanzahl muss jeder selber planen.
+1X Behringer UCA202 USB DAC. http://www.amazon.de/Behringer…-Soundkarte/dp/B000KW2YEI
+1X Mic Preamp SMV5 von elv: http://www.elv.de/SMD-Mikrofon…aspx/cid_726/detail_32518
+1X Easycap Video Grabber, der aktuell bei Conrad verkauft wird hat den genannten UTV007 Chip: https://www.conrad.de/de/baset…?sc.queryFromSuggest=true
+Mehrere Cinch Stecker/Buchsen USB und micro USB Stecker und Buchsen und Kabel.
+USB OTG Y Kabel für gleichzeitige Daten- und Stromversorgung am Tablet: http://www.ebay.de/itm/Micro-U…31bca1:g:mkEAAOSwEeFVQOlO
+1x Optional 64GB Speicher Nanostick von sandisk
+1x optional Wireless Touchpad oder Trackball für die Mittelkonsole oder sowas hier : http://www.amazon.de/gp/produc…585296387&pf_rd_i=desktop
+1x Optional für DAB FM Radio : DVB-T Dongle mit RTL2832U Chip. Beispiel Logilink VG0002A
Wichtige Software:
Timur’s Kernel: http://timur.mobi
Tasker: https://play.google.com/store/…sch.android.taskerm&hl=de
Autovoice+Autoinput:
http://joaoapps.com/autovoice/http://joaoapps.com/autoinput/
Camera Rear View App: http://pccar.ru/showpost.php?p=331094&postcount=1977
bzw. Auf github: https://github.com/delletenebre/RVCamera
Remote Inputs Manager: http://forum.xda-developers.com/showthread.php?t=2635159
Tomtom: https://play.google.com/store/…tomtom.gplay.navapp&hl=de
Für
Internet Radio:
Xiialive: https://play.google.com/store/…oid.DroidLivePlayer&hl=de
Für FM/DAB:
Realtek Chip RTL2832U Android Driver: https://play.google.com/store/…ls?id=marto.rtl_tcp_andro
Wavesink: https://play.google.com/store/…de.ses.wavesinkplus&hl=de
SDR Touch: https://play.google.com/store/…?id=marto.androsdr2&hl=de
Viel Spaß beim selbstbauen, es lohnt sich!