Architecture materielle pour BMW E90 325D M57 : modules, cablage, alimentation et connectique du systeme embarque.
Ce que nous possedons et ce qu'il reste a commander.
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 possessionKit 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.
InstalleVehicule 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.
VehiculeNoeud central. ESP32 + modem 4G A7670 + GPS integre. Passerelle entre le vehicule et le cloud. Gere deux connexions BLE simultanees (OBDLink CX + SUNKENET).
A commanderConvertisseur DC-DC 12V vers 5V, 3A minimum. Alimente la LilyGO depuis la batterie 12V de la BMW. Necessaire avec condensateurs de filtrage.
A commanderEcran tactile embarque. Client local de la LilyGO via ESP-NOW. Aucune connexion internet requise. Nice-to-have, pas prioritaire.
Nice-to-haveElectrolytique 1000uF/25V (basse frequence) + ceramique 100nF (haute frequence). Absorbent les parasites de l'alternateur du M57.
A commanderSIM FREE 100GB/mois pour la transmission des donnees.
| Element | Detail |
|---|---|
| Operateur | FREE Mobile |
| Data | 100 GB / mois |
| Format SIM | Micro SIM (pour LilyGO T-A7670G) |
| Usage | Envoi telemetrie HTTPS, reception commandes, SMS bidirectionnel, GPS |
| Consommation estimee | ~500 MB / mois (telemetrie JSON toutes les 5s + SMS occasionnels) |
Le composant le plus sollicite du systeme. A commander.
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
Eclairage ambiant deja installe dans la BMW E90.
| Caracteristique | Detail |
|---|---|
| Modele | SUNKENET 20W RGBW Meteor |
| Puissance | 20W |
| Type LED | RGBW (rouge, vert, bleu, blanc) |
| Nombre de fibres | 1000 fibres |
| Diametre fibre | 0.75mm |
| Connectivite | Bluetooth Low Energy (controleur BLE integre) |
| Controle | Commandes BLE depuis la LilyGO — changement couleur, mode, luminosite |
| Alimentation | 12V 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.
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.
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.
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.
Lecture des donnees moteur BMW M57 via le bus CAN 500kbps.
| Frequence | PIDs | Donnees | Usage |
|---|---|---|---|
| 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.
Installation du module dans le coffre.
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.
CoffreBranche 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.
HabitacleSource lumineuse installee sous le tableau de bord ou dans la console centrale. Fibres reparties dans l'habitacle (plafond, portieres, tableau de bord). Deja installe.
HabitacleAffichage local — aucune dependance internet. Pas prioritaire.
ESP-NOW : protocole Espressif ultra-rapide (latence < 10ms). Pas besoin de routeur WiFi. La LilyGO envoie les donnees directement a l'ecran.
ESP-NOWLibrairie graphique embarquee. Jauges, graphiques et indicateurs animes directement sur l'ESP32-S3. Resolution 800x480.
LVGLRPM (jauge circulaire), vitesse, temperature huile M57, pression turbo, tension batterie, couleur fibre SUNKENET actuelle, etat connexion 4G.
DashboardPriorite : L'ecran Sunton est un "nice-to-have" pour plus tard. Le focus initial est sur le module LilyGO + OBDLink CX + dashboard React.
Capteurs additionnels prevus sur le bus I2C.
| Module | Reference | Usage |
|---|---|---|
| Accelerometre / Gyroscope | MPU6050 | Detection de choc, comportement de conduite |
| Capteur temperature exterieure | DS18B20 | Alerte gel, confort |
| Camera de recul | ESP32-CAM | Flux video local vers ecran Sunton |
Table complete des UUIDs de services et characteristiques BLE utilises par les peripheriques du systeme.
| Element | UUID | Type | Description |
|---|---|---|---|
| Service principal | FFF0 | Service | Service de communication OBDLink CX (advertise lors du scan BLE) |
| TX Characteristic | FFF1 | Write | Envoi de commandes AT/OBD vers l'OBDLink (write without response) |
| RX Characteristic | FFF2 | Notify | Reception des reponses OBD (notification BLE, subscribe required) |
| Element | UUID | Type | Description |
|---|---|---|---|
| Service principal | FFE0 | Service | Service generique controleur LED BLE (a confirmer par scan reel) |
| Control Characteristic | FFE1 | Write | Envoi 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.
Table complete de l'assignation GPIO pour le projet CarTrack.
| GPIO | Direction | Fonction | Detail |
|---|---|---|---|
GPIO 26 | TX (Output) | UART → Modem A7670 | Transmission serie vers le modem 4G (commandes AT, HTTPS, SMS) |
GPIO 27 | RX (Input) | UART ← Modem A7670 | Reception serie depuis le modem 4G (reponses AT) |
GPIO 33 | Input (interrupt) | RI — Ring Indicator | Signal de reveil du modem sur reception SMS. Utilise pour sortir du deep sleep. |
GPIO 34 | Input (ADC) | Lecture tension batterie | Pont diviseur R1=100k/R2=33k. ADC 12 bits. Formule : Vbatt = V_adc * 4.03 |
GPIO 21 | I/O (I2C) | SDA — I2C Data | Bus I2C pour extensions futures (MPU6050 accelerometre, DS18B20 temperature) |
GPIO 22 | I/O (I2C) | SCL — I2C Clock | Horloge I2C (100 kHz standard, 400 kHz fast mode) |
GPIO 4 | Output | Power Key Modem | Signal de mise sous tension du modem A7670 (pulse 1.5s pour ON/OFF) |
GPIO 5 | Input | Modem Status | Indicateur etat du modem (HIGH = actif, LOW = eteint) |
GPIO 2 | Output | LED Status | LED embarquee sur la carte LilyGO (indicateur visuel d'etat) |
BLE | Wireless | OBDLink CX | Connexion BLE vers OBDLink CX (service FFF0, TX FFF1, RX FFF2) |
BLE | Wireless | SUNKENET Controller | Connexion BLE vers controleur fibre (service FFE0, control FFE1) |
Description detaillee de toutes les connexions electriques du systeme CarTrack dans la BMW E90.
Borne positive (+) de la batterie dans le coffre. Cable rouge AWG18 vers le fusible de protection.
Fusible de protection en ligne. Evite les court-circuits endommageant le circuit 12V de la BMW. Porte-fusible etanche recommande.
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.
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).
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.
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.
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.
Outils et techniques pour diagnostiquer les problemes materiels.
| Commande | Description |
|---|---|
pio device monitor -b 115200 | Ouvre le moniteur serie PlatformIO a 115200 baud (vitesse par defaut de l'ESP32) |
screen /dev/ttyUSB0 115200 | Alternative avec screen (Linux/Mac). Quitter avec Ctrl+A puis K |
FFF0 et le SUNKENET le service FFE0Attention : 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.