Für eine Infotainment-App: ARM Entwickler-/Ubuntu-Hilfe gesucht: Externe Sensordaten an das Infotainment übermitteln

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Für eine Infotainment-App: ARM Entwickler-/Ubuntu-Hilfe gesucht: Externe Sensordaten an das Infotainment übermitteln

      Hallo zusammen,

      Vor knapp einem Jahr hat ein Entwickler (in einem US Mazda-Forum) mit Hilfe eines Microcontrollers (ARM-Cortex M3) über einen der USB-Anschlüsse externe Sensordaten an das Mazda Infotainmentsystem übermittelt, so dass diese in einer App (Speedometer) der MZD-AIO Tweaks auf dem Infotainmentdisplay angezeigt werden konnten. Bei ihm waren es Bluetooth Reifendrucksensoren, ich möchte diesen Weg gerne für die Daten der Ölsensoren verwenden. Auch andere Anwendungen wären denkbar, z.B. RGB-LEDs über eine App im Infotainmentsystem steuern, usw.

      Ihm fehlte damals ein Entwickler für die App, vor allem für das User Interface, als ich dazukam um die Apps dafür zu bauen, war er leider nirgendwo mehr erreichbar.
      Ich habe seinen Code für den Microcontroller (in C geschrieben), seine Befehle zum Kompilieren auf Ubuntu und die Toolchain, die er zum Kompilieren benutzt hat.
      Leider kenne ich mich mit Linux nur ein bisschen und mit ARM-Development und der Toolchain gar nicht aus und komme bei der Benutzung der Toolchain nicht weiter.

      Gibt es hier einen Entwickler, der sich mit ARM-Development/Toolchains unter Ubuntu auskennt und der Lust hätte, daran mitzuwirken oder zumindest mal drauf schauen würde? Hauptsächlich suche ich jemanden, der den Befehl zum Kompilieren (Punkt 3, siehe unten) versteht.

      1.) Code: pastebin.com/SKwfQbud?fbclid=I…PTKpw021yekP7NejwR-rGQXCs
      2.) Toolchain: github.com/jmgao/m3-toolchain?…Ba4P0jha0NeTIAHOQZ46OKElE
      3.) Befehle zum Kompilieren: pastebin.com/Q5ScQLyL?fbclid=I…k9mTHk37wNA9fva8Z6HdcvPFI

      Fragen:
      - Warum sind zum Kompilieren zwei Befehle notwendig?
      - Was hat es mit den zwei Laufwerken I und L auf sich, die in den Flags stehen?

      Wie gesagt, von demjenigen, der das schon ein mal gemacht hat, bekomme ich keine Antworten mehr, als wäre er vom Erdboden verschluckt.

      Falls jemand Interesse an einem Austausch und Zusammenarbeit hat:
      Das Microcontrollerboard (das der ursprüngliche Entwickler auch verwendet hat) kann ich bereitstellen und ich wäre auch bereit, als Dank die ein oder andere Tankfüllung springen zu lassen, wenn wir das Ganze gemeinsam zum Laufen bringen können!

      PS: Ich weiß, das Thema ist speziell, ich bitte zunächst um sachdienliche Antworten zum Thema. Weitere Diskussionen über mögliche Anwendungsbereiche usw. können wir gerne führen, sobald wir eine funktionierende Basis haben.

      ""
      »Drive it like you're sponsored.«
      | KW Variante 3 | Setup by Raeder Motorsport/Manthey Racing | OZ Formula HLT 7,5x17 ET35 | Yokohama AD08R 215/40 R17 |
    • Ich bin jetzt kein ARM entwickler, dafur kenne ich die cross compile Toolchain unter Linux ganz gut.

      Der erste Befehl übersetzt den C Code in ein object file, der zweite verlinkt es mit diversen Bibliotheken zu einen ausführbaren Programm.

      Die beiden optionen
      -I spezifiziert pfade zu C include files
      -L spezifiziert Biblitheken zum linken

      Grüsse
      W

      Gravitation ist überbewertet - Autowaschen auch ! 8o

    • Oh man, wie bin ich denn da auf Laufwerksbuchstaben gekommen? :S Bestimmt, weil I und L groß geschrieben sind, aber das dient bestimmt der Unterscheidung untereinander?

      Eure Hinweise haben mir schon mal etwas auf die Sprünge geholfen. Dann wollen wir jetzt die Tage über mal sehen, ob das mit der virtuellen Ubuntu-Maschine funktioniert. Seh ich das richtig, dass da aber noch nichts geflasht wird? Dann brauch ich noch einen Programmer?

      Das Board ist ein RedBear Duo. Grund dafür ist wohl, dass libusb notwendig ist und das mit dieser Toolchain via ARM-Cortex chip realisierbar ist.
      Für alternative Vorschläge, eine Datei in den tmp-Ordner des Infotainmentsystems zu schreiben, bin ich offen.

      »Drive it like you're sponsored.«
      | KW Variante 3 | Setup by Raeder Motorsport/Manthey Racing | OZ Formula HLT 7,5x17 ET35 | Yokohama AD08R 215/40 R17 |
    • @Torben

      Hmmm.... Ich hab mir den code mal angesehen.
      Ich glaube nicht dass der dazu gedacht ist auf einem Microcontroller Board zu laufen, sondern auf dem MZD selbst.
      Als BLE adapter verwendet der den RedBear BLE Mini um mit den Reifensensoren zu sprechen.

      Ich hab mich mit den MZD und den Tweaks selber noch garnicht beschäftigt könnte mir aber vorstellen dass das einfach so ein ARM controller mit nem embedded Linux drauf ist...

      Martin @Merten142 vielleicht ??

      Gravitation ist überbewertet - Autowaschen auch ! 8o

    • =O

      Puh, das wäre ... hm.

      Er schrieb allerdings damals: "Yes the firmware code loaded on the board is ..."
      Dann habe ich diesen Teil vielleicht von Anfang an falsch verstanden? ?(

      Das würde allerdings die Notwendigkeit einer Toolchain für das CMU erklären.

      Spoiler anzeigen

      Yes the firmware code loaded on the board is from github's redbearlabs;

      https://github.com/RedBearLab/BLE_HC...130429.bin.zip

      The base code to which i used to initialize and the put the board in discovery mode was from the arduino C codes ;

      https://github.com/RedBearLab/BLE_HC...uitCentral.ino

      Then i ported that part of the arduino code to a libusb handler code;

      https://github.com/tytouf/libusb-cdc.../cdc_example.c

      then compiled it using the m3 toolchain under ubuntu


      Da erkenne ich allerdings im zweiten und dritten Link den Code wieder – und die müssten doch eigentlich für das Board sein?

      Hier ist die Quelle des Ganzen:
      mazda3revolution.com/forums/20…our-cmu-infotainment.html
      »Drive it like you're sponsored.«
      | KW Variante 3 | Setup by Raeder Motorsport/Manthey Racing | OZ Formula HLT 7,5x17 ET35 | Yokohama AD08R 215/40 R17 |
    • Alles drei ist für den Microcontroller denke ich.
      Der Tweak (Code) für das MZD fehlt.

      Ich habe den Thread mal überflogen.
      Er hat einen Testcode in C der die Daten vom board ausliest und in eine Textdatei schreibt. Dann wird ewig über Integration in AA oder Speedometer geschwaffelt. Mir fehlt leider die Zeit mich da durch zu ackern. Mag sein das alle benötigten Programme im Thread enthalten sind, erschließt sich aber nicht auf Anhieb.

      Helfen würde wahrscheinlich wenn man wüsste wie speedometer an die Fahrzeugdaten kommt, den das Board benutzt eine ähnliche Methode.

      Spider fahren:
      Man lernt nicht nur Bundesstraßen und Kreisel zu unterscheiden, sondern jeden Quadratzentimeter der Straße persönlich kennen. :thumbup:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Merten142 ()

    • Hab ich also doch richtig verstanden, oder? Der Microcontroller sagt dem MZD er ist ein libusb HCI USB CDC Gerät und darf dann die Datei in den tmp-Ordner schreiben.

      Auf diese Datei kann dann jede App des MZD zugreifen.

      Am Wochenende setz ich mich an die virtuelle Ubuntu-Maschine und versuche da mal weiter zu kommen.

      »Drive it like you're sponsored.«
      | KW Variante 3 | Setup by Raeder Motorsport/Manthey Racing | OZ Formula HLT 7,5x17 ET35 | Yokohama AD08R 215/40 R17 |
    • Hab mir grade mal den forums thread durchgeschaut...

      Neee, ich glaube immer noch dass das ganze auf dem MZD selber läuft, und man nur dieses BLE mini board braucht...

      Weil...

      Hier, das erste Bild

      mazda3revolution.com/forums/20…tainment.html#post2353034

      zeigt einen Ausschnitt aus dem Speedometer patch und da steht

      /tmp/mnt/data_persist/dev/bin/mazda_tpms

      Hier wird das C programm aufgerufen und in den Zeilen danach die Werte aus dem tmps.out extrahiert.

      Grüße
      W

      Gravitation ist überbewertet - Autowaschen auch ! 8o

    • =O

      Puh, jetzt wo du's sagst, seh ich das auch. Und ein paar Zusammenhänge werden klarer. Hinter der aufgerufenen Zeile /tmp/mnt/data_persist/dev/bin/mazda_tpms steckt dann also die Executable aus dem zweiten Befehl, richtig?

      Ich kann noch nicht ganz einschätzen, ob es das einfacher oder schwieriger macht. :D
      »Drive it like you're sponsored.«
      | KW Variante 3 | Setup by Raeder Motorsport/Manthey Racing | OZ Formula HLT 7,5x17 ET35 | Yokohama AD08R 215/40 R17 |
    • Richtig,

      Zumindest zeigt es mal den Weg...

      :D

      Also Linux und C code sind mein Broterweb... Auch mit Microcontroller und cross compile toolchains habe ich schon gearbeitet, daher kann ich dir in der Richtung helfen wenn du magst.

      Grüße
      Wolfgang

      Gravitation ist überbewertet - Autowaschen auch ! 8o

    • Mein Plan für's Wochenende:
      Per SSH auf die Kiste, in dem tmp-Ordner vielleicht mal diesen Oneliner mit Testwerten ablegen und die modifizierte Speedometer-App aufspielen. Vielleicht auch schon mal eine meiner Apps. Die Testwerte sollten dann ja angezeigt werden.

      Zusätzlich will ich mal die "originale" C-Datei versuchen zu kompilieren. Das ist bisher das größte Hinderniss, glaube ich.
      Was mich dann noch beschäftigt, ist, wie ich die Ölsensordaten (analoge Pins, bisher am Nano mit 5V, der RedBear hat 3,3 V) in einem zweiten Oneliner ablege.

      Dein Angebot freut mich riesig, fühlt sich gut an, zu wissen, dass man jemanden fragen kann. Wenn Du magst, kann ich Dir einen RedBear Duo schicken, ich hab mehrere hier.

      (Übrigens, falls jemand welche kaufen will, Particle hat RedBear aufgekauft und verkauft jetzt die Restbestände:
      store.particle.io/products/redbear-duo $7 statt $25! Aber es kommen Versand und Zoll dazu.)

      »Drive it like you're sponsored.«
      | KW Variante 3 | Setup by Raeder Motorsport/Manthey Racing | OZ Formula HLT 7,5x17 ET35 | Yokohama AD08R 215/40 R17 |