BMW E90 325D — Electronique Embarquee

Hardware

Architecture materielle pour BMW E90 325D M57 : modules, cablage, alimentation et connectique du systeme embarque.

01 Inventaire du Materiel

Ce que nous possedons et ce qu'il reste a commander.

Materiel deja en possession

🔌

OBDLink CX

Interface diagnostic OBD-II. Connexion Bluetooth Low Energy. Lecture des PIDs moteur via le bus CAN 500kbps de la BMW E90. Supporte les requetes UDS pour les PIDs BMW proprietaires.

En possession
🌈

SUNKENET 20W RGBW Meteor

Kit fibre optique 1000 fibres de 0.75mm, source lumineuse 20W RGBW, controleur Bluetooth BLE. Deja installe dans la BMW E90. Controle des couleurs et modes via commandes BLE.

Installe
🚗

BMW E90 325D (2007)

Vehicule cible. Moteur M57 diesel inline-6. Bus CAN 500kbps. Port OBD-II accessible sous le tableau de bord. Emplacement module prevu dans le coffre pres de la batterie.

Vehicule

Materiel a commander

📡

LilyGO T-A7670G

Noeud central. ESP32 + modem 4G A7670 + GPS integre. Passerelle entre le vehicule et le cloud. Gere deux connexions BLE simultanees (OBDLink CX + SUNKENET).

A commander

DC-DC 12V vers 5V

Convertisseur DC-DC 12V vers 5V, 3A minimum. Alimente la LilyGO depuis la batterie 12V de la BMW. Necessaire avec condensateurs de filtrage.

A commander
💻

Sunton 7" ESP32-S3

Ecran tactile embarque. Client local de la LilyGO via ESP-NOW. Aucune connexion internet requise. Nice-to-have, pas prioritaire.

Nice-to-have

Condensateurs de filtrage

Electrolytique 1000uF/25V (basse frequence) + ceramique 100nF (haute frequence). Absorbent les parasites de l'alternateur du M57.

A commander

02 Connectivite

SIM FREE 100GB/mois pour la transmission des donnees.

ElementDetail
OperateurFREE Mobile
Data100 GB / mois
Format SIMMicro SIM (pour LilyGO T-A7670G)
UsageEnvoi telemetrie HTTPS, reception commandes, SMS bidirectionnel, GPS
Consommation estimee~500 MB / mois (telemetrie JSON toutes les 5s + SMS occasionnels)

03 LilyGO T-A7670G — Detail

Le composant le plus sollicite du systeme. A commander.

ESP32
Processeur dual-core
A7670
Modem 4G LTE
GPS
Geolocalisation
2x BLE
OBD + SUNKENET

Pin Mapping

GPIO 33 Entree signal RI — Reveil sur reception SMS
GPIO 34 Lecture tension batterie via pont diviseur
GPIO 21 (SDA) I2C Data — Extension accelerometre/gyroscope
GPIO 22 (SCL) I2C Clock — Extension accelerometre/gyroscope
GPIO 26 (TX) UART vers modem A7670
GPIO 27 (RX) UART depuis modem A7670

04 Kit Fibre Optique SUNKENET

Eclairage ambiant deja installe dans la BMW E90.

CaracteristiqueDetail
ModeleSUNKENET 20W RGBW Meteor
Puissance20W
Type LEDRGBW (rouge, vert, bleu, blanc)
Nombre de fibres1000 fibres
Diametre fibre0.75mm
ConnectiviteBluetooth Low Energy (controleur BLE integre)
ControleCommandes BLE depuis la LilyGO — changement couleur, mode, luminosite
Alimentation12V directe depuis la batterie vehicule

Integration : La LilyGO se connecte au controleur BLE du SUNKENET en tant que second peripherique BLE (en parallele de l'OBDLink CX). Les couleurs changent dynamiquement en fonction du regime moteur : bleu (repos), orange (2500+ RPM), rouge (4000+ RPM). Jarvis peut aussi changer la couleur via function calling.

05 Alimentation

Le point le plus critique de tout le systeme.

Avertissement : Un reboot du module en plein milieu d'une transmission peut corrompre les logs et desynchroniser l'etat. L'alimentation doit etre irreprochable. Le M57 diesel genere des parasites electriques significatifs via l'alternateur.

Chaine d'alimentation

La batterie 12V de la BMW E90 (coffre) alimente le systeme a travers un fusible 3A de protection, suivi d'un convertisseur DC-DC (12V vers 5V, 3A minimum — LM2596 ou MP1584 recommande). Un condensateur electrolytique 1000uF/25V filtre les parasites basse frequence, et un condensateur ceramique 100nF filtre les parasites haute frequence generes par l'alternateur du M57. La sortie 5V alimente la LilyGO T-A7670G. L'ecran Sunton ESP32-S3 (optionnel) utilise une alimentation 5V separee recommandee.

Surveillance tension batterie

Un pont diviseur resistif (R1 = 100k ohm, R2 = 33k ohm) ramene la tension batterie (12-14.4V) a un niveau compatible avec l'ADC de l'ESP32 (max 3.3V) sur le GPIO 34. La formule de conversion est : Vbatt = V_adc * (R1 + R2) / R2, soit environ Vbatt = V_adc * 4.03.

Logique de survie : Si Vbatt < 11.8V → Envoi SMS d'alerte → Coupure modem → Deep Sleep permanent. Le module ne se reveille qu'au prochain demarrage physique du vehicule. Seuil warning a 12.2V pour alerte preventive.

06 OBDLink CX — Protocole

Lecture des donnees moteur BMW M57 via le bus CAN 500kbps.

FrequencePIDsDonneesUsage
Haute — 2 Hz 010C, 010D, 0104 RPM, Vitesse, Charge moteur Ambiance lumineuse SUNKENET temps reel
Basse — 0.1 Hz 015C, 012F, 0142 Temp. huile, Carburant, Tension Monitoring & diagnostics
BMW UDS — 0.1 Hz PIDs proprietaires via UDS Pression common rail, DPF soot, pression turbo Donnees avancees M57

Important : Ne pas inonder le bus CAN. Les calculateurs ECU BMW ont la priorite. L'OBDLink CX respecte les timings du protocole ISO 15765-4 (CAN 500kbps). Les requetes UDS proprietaires BMW necessitent un header CAN specifique et un mode de diagnostic etendu.

07 Emplacement dans la BMW E90

Installation du module dans le coffre.

Module LilyGO

Installe dans le coffre, pres de la batterie BMW E90. Acces direct au 12V. Le modem 4G et le GPS necessitent une antenne avec bonne reception — eviter les zones metalliques fermees.

Coffre

OBDLink CX

Branche sur le port OBD-II sous le tableau de bord (cote conducteur). Communication BLE avec la LilyGO dans le coffre — portee suffisante dans l'habitacle.

Habitacle

SUNKENET

Source lumineuse installee sous le tableau de bord ou dans la console centrale. Fibres reparties dans l'habitacle (plafond, portieres, tableau de bord). Deja installe.

Habitacle

08 Ecran Sunton 7" (Nice-to-have)

Affichage local — aucune dependance internet. Pas prioritaire.

Communication

ESP-NOW : protocole Espressif ultra-rapide (latence < 10ms). Pas besoin de routeur WiFi. La LilyGO envoie les donnees directement a l'ecran.

ESP-NOW

Interface LVGL

Librairie graphique embarquee. Jauges, graphiques et indicateurs animes directement sur l'ESP32-S3. Resolution 800x480.

LVGL

Affichage

RPM (jauge circulaire), vitesse, temperature huile M57, pression turbo, tension batterie, couleur fibre SUNKENET actuelle, etat connexion 4G.

Dashboard

Priorite : L'ecran Sunton est un "nice-to-have" pour plus tard. Le focus initial est sur le module LilyGO + OBDLink CX + dashboard React.

09 Extensions Futures

Capteurs additionnels prevus sur le bus I2C.

ModuleReferenceUsage
Accelerometre / GyroscopeMPU6050Detection de choc, comportement de conduite
Capteur temperature exterieureDS18B20Alerte gel, confort
Camera de reculESP32-CAMFlux video local vers ecran Sunton

Reference UUIDs BLE

Table complete des UUIDs de services et characteristiques BLE utilises par les peripheriques du systeme.

OBDLink CX

ElementUUIDTypeDescription
Service principalFFF0ServiceService de communication OBDLink CX (advertise lors du scan BLE)
TX CharacteristicFFF1WriteEnvoi de commandes AT/OBD vers l'OBDLink (write without response)
RX CharacteristicFFF2NotifyReception des reponses OBD (notification BLE, subscribe required)

SUNKENET Fiber Controller

ElementUUIDTypeDescription
Service principalFFE0ServiceService generique controleur LED BLE (a confirmer par scan reel)
Control CharacteristicFFE1WriteEnvoi commandes couleur/mode/luminosite (write without response)

A confirmer : Les UUIDs SUNKENET (FFE0/FFE1) sont des valeurs typiques des controleurs LED BLE generiques. Un scan BLE du controleur reel installe dans la BMW E90 est necessaire pour confirmer les UUIDs exacts. Utiliser nRF Connect ou LightBlue sur smartphone.

Pin Mapping Complet — LilyGO T-A7670G

Table complete de l'assignation GPIO pour le projet CarTrack.

GPIODirectionFonctionDetail
GPIO 26TX (Output)UART → Modem A7670Transmission serie vers le modem 4G (commandes AT, HTTPS, SMS)
GPIO 27RX (Input)UART ← Modem A7670Reception serie depuis le modem 4G (reponses AT)
GPIO 33Input (interrupt)RI — Ring IndicatorSignal de reveil du modem sur reception SMS. Utilise pour sortir du deep sleep.
GPIO 34Input (ADC)Lecture tension batteriePont diviseur R1=100k/R2=33k. ADC 12 bits. Formule : Vbatt = V_adc * 4.03
GPIO 21I/O (I2C)SDA — I2C DataBus I2C pour extensions futures (MPU6050 accelerometre, DS18B20 temperature)
GPIO 22I/O (I2C)SCL — I2C ClockHorloge I2C (100 kHz standard, 400 kHz fast mode)
GPIO 4OutputPower Key ModemSignal de mise sous tension du modem A7670 (pulse 1.5s pour ON/OFF)
GPIO 5InputModem StatusIndicateur etat du modem (HIGH = actif, LOW = eteint)
GPIO 2OutputLED StatusLED embarquee sur la carte LilyGO (indicateur visuel d'etat)
BLEWirelessOBDLink CXConnexion BLE vers OBDLink CX (service FFF0, TX FFF1, RX FFF2)
BLEWirelessSUNKENET ControllerConnexion BLE vers controleur fibre (service FFE0, control FFE1)

Description du Cablage

Description detaillee de toutes les connexions electriques du systeme CarTrack dans la BMW E90.

Alimentation Principale

1

Batterie BMW E90 (12V)

Borne positive (+) de la batterie dans le coffre. Cable rouge AWG18 vers le fusible de protection.

2

Fusible 3A (lame)

Fusible de protection en ligne. Evite les court-circuits endommageant le circuit 12V de la BMW. Porte-fusible etanche recommande.

3

DC-DC 12V → 5V

Convertisseur LM2596 ou MP1584. Entree : 12-14.4V depuis la batterie via fusible. Sortie : 5V/3A regulee. Fixe pres de la batterie pour limiter la longueur du cable 12V.

4

Filtrage

Condensateur electrolytique 1000uF/25V en parallele sur l'entree 12V (filtrage basse frequence). Condensateur ceramique 100nF en parallele sur la sortie 5V (filtrage haute frequence parasite alternateur M57).

5

LilyGO T-A7670G

Alimentee via le pin 5V/GND. La carte possede un regulateur 3.3V interne pour l'ESP32. Le modem A7670 est alimente directement en 5V.

Pont Diviseur Batterie

R1 (100k ohm) connecte entre la borne positive batterie (apres fusible) et GPIO 34 de l'ESP32. R2 (33k ohm) connecte entre GPIO 34 et GND. Le point milieu (GPIO 34) mesure une tension proportionnelle a Vbatt : a 12.6V nominal, la tension lue est d'environ 3.12V (dans la plage 0-3.3V de l'ADC). Precision ADC ESP32 : environ +/- 0.1V apres calibration.

SUNKENET

Le kit fibre SUNKENET est alimente directement en 12V depuis la batterie BMW (cable separe avec fusible dedie). La communication avec la LilyGO est 100% sans fil (BLE) — aucun cablage supplementaire entre les deux.

Debugging Hardware

Outils et techniques pour diagnostiquer les problemes materiels.

Serial Monitor

CommandeDescription
pio device monitor -b 115200Ouvre le moniteur serie PlatformIO a 115200 baud (vitesse par defaut de l'ESP32)
screen /dev/ttyUSB0 115200Alternative avec screen (Linux/Mac). Quitter avec Ctrl+A puis K

Test des Connexions BLE

  • nRF Connect (smartphone) : Scanner les peripheriques BLE a proximite. Verifier que l'OBDLink CX advertise le service FFF0 et le SUNKENET le service FFE0
  • Connection manuelle : Se connecter a chaque peripherique, lister les services et characteristiques. Verifier les permissions (read/write/notify)
  • Portee : Tester la portee BLE entre le coffre (LilyGO) et le tableau de bord (OBDLink CX). La portee typique est de 5-10m en interieur vehicule

Mesures de Tension

  • Multimetre sur la batterie : 12.4-12.8V moteur eteint, 13.5-14.5V moteur tournant (charge alternateur M57)
  • Sortie DC-DC : Verifier 5.0V +/- 0.1V en charge avec la LilyGO connectee
  • GPIO 34 (pont diviseur) : Doit lire environ Vbatt/4.03 (ex: 3.12V pour une batterie a 12.6V)
  • Oscilloscope (optionnel) : Verifier le ripple sur la sortie 5V — devrait etre inferieur a 50mV crete-a-crete avec les condensateurs de filtrage

Attention : Ne jamais mesurer ou connecter quoi que ce soit sur le bus CAN directement. Utiliser uniquement l'OBDLink CX comme interface. Une erreur sur le bus CAN peut perturber les calculateurs ECU de la BMW E90.