Monorailcat

Autoradio Tuner List (4) : Écran LCD

icon 17/03/2018 - No comments

J'ai toujours voulu afficher n'importe quoi sur l'afficheur au centre du tableau de bord, qui affiche normalement la station de radio et l'heure, et il se trouve que c'est tout à fait possible.
displaying funny words

Hardware
Ici, on a un autoradio Renault/VDO Tuner List (modèle 22DC259/62T, 77 00 434 422) et un afficheur Renault (82 00 028 364), avec un connecteur gris connecté au tableau de bord et à la radio, et un connecteur rouge connecté aux commandes situées sous le volant.

Je n'ai pas eu confiance dans les documentations que j'ai pu trouver, avec des couleurs de fils incorrectes, des brochages de connecteurs parfois à l'envers, différentes version de l'afficheur ou de l'autoradio.
pin identification
Mais ce n'est pas un problème, il suffit de démonter pour vérifier qu'on ne va rien faire de dangereux. On peut rapidement identifier les pins à la masse, ceux des alimentations, et certains signaux de puissance.

Connecteur Gris :
  1. NTC
  2. GND
  3. NC
  4. NC
  5. GND
  6. Éclairage feux? (in)
  7. Éclairage backlight? (in)
  8. +12V (contact?, in)
  9. +12V (permanent?, in)
  10. NC
  11. GND
  12. LCD_ENABLE (12V, in)
  13. SDA (TTL, io)
  14. SCL (TTL, io)
  15.  !MRQ (TTL, io, active-low)

Connecteur Rouge (TTL) :
  1. NC
  2. NC
  3. NC
  4. NC
  5. NC
  6. NC
  7. NC
  8. NC
  9. Commun 1
  10. Retour A
  11. Commun 2
  12. Retour B
  13. Commun 3
  14. Retour C
  15. NC

Ça permet de comprendre la majorité du câblage :
lcd + stalk + head unit connections

Et on peut aussi reverse-engineerer la matrice des boutons utilisés pour les commandes au volant:
FonctionPin communPin retour
OKA1
VOL-A2
VOL+A3
Source LB1
Source RB2
PauseB3
Molette 1C1
Molette 2C2
Molette 3C3
Curieusement, la molette n'est qu'un interrupteur rotatif à 3 positions, ça suffit à détecter le sens de rotation ça donne l'impression de bien plus de positions (6 par tour).

Câble
Dans ce cas, la solution la plus pratique est de prendre une rallonge avec des câbles mini-ISO branchés sur l'autoradio, de couper chaque fils et de les brancher sur un connecteur à 0.1", pour y mettre des cavaliers pour une connection directe, des fils en Y pour espionner le bus ou bien des fils vers un MCU ou un analyseur logique.
man in the middle cable

Connecteur jaune C1 :
  1. SDA (TTL 5V)
  2. SCL (TTL 5V)
  3.  !MRQ (TTL 5V)
  4. LCD_ENABLE (+12V)
  5. GND
On peut se contenter de n'utiliser que ce connecteur pour afficher ce que l'on veut, et reverse-engineerer une partie du protocole.
tuner list i2c bus reverse engineering in-situ
Comme je ne voulais pas décharger la batterie ni passer plusieurs heures dans le froid, j'ai préféré démonter l'afficheur et l'autoradio pour les utiliser à l'intérieur.
tuner list i2c bus reverse engineering on a bench


Protocole
Ça nous avance bien de connaître le matériel, mais il faut encore comprendre comment l'autoradio communique avec l'écran LCD.
Pour ça, on va utiliser un analyseur logique (Cypress FX2 et sigrok/pulseview) et regarder tout ce qui passe sur le bus i2c.
cheap logic analyzer

On peut voir que le bus i2c fonctionne à 7.14kHz et que le signal !MRQ est constamment tiré à 0 avant que quelque chose ne soit transféré sur le bus.

En débranchant le signal MRQ de chaque côté, on peut voir que l'afficheur le force à 0 en attendant une trame de l'autoradio, mais que l'autoradio le force aussi à 0 avant d'envoyer une tram à l'autoradio. On peut aussi voir que l'autoradio est maître sur le bus i2c, et identifier l'adresse de l'écran LCD (0x23).

On peut voir plusieurs messages de 2 octets de long [0x01, 0x10] ou [0x01, 0x11], demandés au moins toutes les 500ms par l'autoradio (initié par l'afficheur qui tire le signal MRQ à 0, puis répond lorsque l'autoradio envoie une requête).
i2c line on idle

Commandes au volant
Il y a aussi une trame répondue par l'afficheur lorsqu'on appuie sur un bouton des commandes au volant, et qui permet de déduire le code de chacune des commandes au volant. L'afficheur tire le signal MRQ à 0, l'autoradio envoie une requête, puis l'afficheur envoie la trame correspondant aux boutons pressés.
i2c line button
Boutonoctet 0octet 1octet 2octet 3octet 4action
OK0x040x820x910x000x00press
OK0x040x820x910x000x40hold
Source R0x040x820x910x000x01press
Source R0x040x820x910x000x81hold
Source L0x040x820x910x000x02press
Source L0x040x820x910x000x82hold
Volume +0x040x820x910x000x03press
Volume +0x040x820x910x000x43hold
Volume -0x040x820x910x000x04press
Volume -0x040x820x910x000x44hold
Pause0x040x820x910x000x05press
Wheel up0x040x820x910x010x41
Wheel down0x040x820x910x010x01
Les valeurs 0x41 et 0x42 pour le dernier octet sont aussi interprétées par l'autoradio comme les boutons Source R et Source L maintenus appuyés, et il n'y a pas de code lorsqu'on maintient appuyé le bouton Pause ou pour la molette.

Affichage
L'afficheur est rafraichi uniquement en cas de besoin, on peut l'observer en appuyant sur un bouton de l'autoradio, qui va forcer le signal MRQ à 0, puis va envoyer une trame entre 13 et 16 octets avec les caractères à afficher.
i2c line display
Affichage12345678910111213141516
98.50x0f0x900x7f0x290xff0x3f0x350x810x200x200x200x200x390x380x350x20
CASS [=]0x0f0x900x7f0x550xff0xff0x600x010x430x410x530x530x200x040x050x06
BAYERN 30x0f0x900x7f0x550xff0x3f0x750x010x420x410x590x450x520x410x200x33
Bingo ! Les trames à partir de l'octet 9 ressemblent à de l'ASCII (les caractères clignotent si le MSB est à 1), l'octet 7 permet d'afficher le point décimal et le digit de mémoire/piste, et l'octet 6 permet d'afficher les pictogrammes Tuner Preset, Tuner Manu, Dolby et MSS.

Programme
On va remplacer l'autoradio par un Arduino Mega (n'importe quel micro-contrôleur avec un périphérique i2c et des IO TTL suffit), pour pouvoir écrire sur l'afficheur et lire l'état des boutons.

Avec un Atmel AVR, il faut forcer le bitrate/prescaler à environ 7kHz avec les lignes suivantes:
void conf() {
TWBR = 0xff;
TWSR = 0x01;
}


Comme c'est un programme de test qui n'a qu'une seule fonction et un MCU surpuissant pour son utilisation, il est possible d'écrire un code peu optimisé (polling au lieu d'interruptions, copy/paste).

On va initialiser l'écran en envoyant quelques trames [0x01, 0x10] et [0x01, 0x11], puis on peut écrire un peu ce qu'on veut :
void writerandom(byte *data, int len) {
while(digitalRead(2)); // polling the MRQ line
Wire.beginTransmission(0x23);
conf(); // overwrites the bitrate/prescaler after the Wire lib configures the i2c
Wire.write(data, len);
Wire.endTransmission();
}

Dans ce cas, on peut commencer par copier/coller des trames récupérées en sniffant celles envoyées par l'autoradio, puis on va reverse-engineerer le protocole complet en bouclant sur tous les caractères entre 0x00 et 0xFF, et en testant les pictogrammes.

On va aussi pouvoir lire l'état des boutons, qui sont des trames de 5 octets :
void read01() {
while(digitalRead(2)); // polling the MRQ line, pulling the MRQ line low and waiting 500us also works
conf(); // overwrites the bitrate/prescaler after the Wire lib configures the i2c
Wire.requestFrom(0x23, 5);
TWBR = 0xff;
TWSR = 0x01; // 0x00 appears to work as well
for(i = 0; i < 5; i++) {
READDATA[i] = Wire.read();
}
}



Références
  • RTA 120.1 Renault Mégane/Scénic 1 1999-2003 (page 177, section essence)
  • Manuel de Réparation Renault MR312-8 (pages 165-166)
  • Manuel Renault/Philips MR-Radiosat-6000-10 (pages 34-36)
  • TLCDEmu - Hardware, section pinouts
  • HD6433834 - Datasheet Sagem/Hitachi/Renesas MCU (pages 21-27 : pinouts, pages 346-449: caractéristiques électriques)
  • Code disponible sur demande

icon Tags de l'article : , , , , ,

Garmin Nüvi 1200

icon 17/12/2017 - No comments

On m'a donné un récepteur GPS Garmin Nüvi 1240 non-fonctionnel. J'avais prévu de le démonter pour un teardown, puis la note "no serviceable components inside" m'a donné envie de le réparer.
/!\ Attention, les batteries Li-po présentent des risques d'explosion en cas de compression/déchirure, surcharge, charge après une sous-charge, haute température, sur-courant
/!\ Warning, Li-po batteries can explode in case of deformation/pucture, overcharge, charge after an deep discharge, high temperatures, overcurrent

Teardown
  1. Déclipsage de la face avant grise
  2. Dévissage du cadre noir (4 vis Torx)
  3. Déclipsage du cadre noir
  4. Glissage de l'écran + support métallique
  5. Débranchage de la batterie
  6. Débrancheage de l'écran
  7. Dévissage du PCB (2 vis Torx)
  8. Déclipsage du PCB
  9. /!\ Décollage de la batterie /!\

FonctionMarqueRéférenceFace
SoCGarmin/ST590-00045-01top
FlashSandiskfNAND SDI N202-4Gtop
RAMSECillisibletop
GPSSTSTA5620Cbottom
Audio DAC/AmpTIPCM1774bottom
PMICTI?SN84033bottom
Garmin Nüvi top side
Garmin Nüvi bottom side


Réparation
Au démontage, la batterie semble légèrement gonflée et on mesure 0V à ses bornes, sur le PCB.
En mesurant directement aux bornes de la batterie, avant le BMS, on peut mesurer 2.5V, ce qui donne une batterie en mauvais état, mais pas forcément morte.
Après une charge lente à 100mA (C/10) à l'alimentation de labo, il a fallu débrancher puis rebrancher le BMS pour qu'il permette la charge/décharge.
original swollen battery
En testant, le système fonctionne, mais l'autonomie est d'une dizaine de minutes avec une consommation <500mA, ce qui confirme l'idée d'une batterie hors service.
original battery

Il est possible de mettre n'importe quelle batterie qui supporte une tension maxi >4.2V, alors j'ai mis une batterie Li-ion au format 18650 (Panasonic/Sanyo UR18650ZTA, 3Ah neuve, 1.92Ah après mesure) récupérée d'un PC portable Dell Latitude.
li-ion battery test
Comme le test est concluant, on peut rendre la réparation définitive:
ziptied battery
En théorie, le BMS n'est pas totalement indispensable, puisque le PMIC devrait avoir une fonctionnalité de UVLO et supporte la NTC pour protéger la batterie en cas de températures extrêmes. J'ai dû le supprimer parce qu'il était endommagé, mais une sécurité supplémentaire n'aurait pas fait de mal.
Il est aussi indispensable de mettre une thermistance NTC de 10kΩ le plus près possible de la batterie, pour permettre au PMIC de protéger la batterie. Souder une résistance fixe de 10kΩ est possible, mais ça ne doit pas être utilisé plus que pour des tests.

2nde réparation
Après des tests, la nouvelle batterie ne se charge pas toujours, et la charge fonctionne par intermittance. Une inspection du connecteur mini-USB montre qu'il est déformé.
La tentative de re-plier les pins et l'extérieur du connecteur n'ont rien donné de fiable.
90° mini-USB-connector
90° mini-USB-connector

Par contre le connecteur mini-USB a un format assez rare, avec les pins pliés à 90°, et introuvable chez les fournisseurs habituels, mais on peut le remplacer en coupant et pliant un connecteur mini-USB plat et en renforçant avec de la tresse de cuivre et de la colle chaude.
hot-glued USB-connector

On va aussi rajouter des zipties et du scotch vinyle pour rendre le système plus résistant dans le temps:
ziptied battery

Tests
C'est un peu moche, mais c'est parfaitement fonctionnel.

La recherche des satellites peut prendre assez longtemps la première fois, mais il ne devrait pas y avoir de problèmes si l'antenne et le PCB ne sont pas endommagés.
real life test  (using the train)
Il est très pratique (surtout pour la sécurité) d'utiliser les transports en commun (bus, train) pour ce genre de tests.

Le GPS à parfois quelques glitches amusants (en ville):
168km/h in a city

Références

icon Tags de l'article : , ,

Phare de vélo à LEDs

icon 03/10/2017 - No comments

Description
J'ai un vélo avec une dynamoalternateur monophasé pour alimenter l'éclairage. C'est parfaitement fonctionnel, sauf qu'il faut fournir beaucoup de puissance mécanique pour peu de lumière.

Dynamo
La dynamo (par abus de language) est en fait un alternateur monophasé, qui sort une tension autour de 6V "nominal".
Mais à mon grand regret, il est assez difficile de monter un oscilloscope sur le vélo pour tester la dynamo en roulant, mais il est probable que je finisse par la caractériser avec une perceuse.

Il y a quelques astuces pour limiter la puissance et ne pas griller les lampes dans les descentes:
  • La fréquence de sortie dépend de la vitesse de rotation de l'arbre, et les lampes sont légèrement inductives, du coup le courant n'augmente pas trop.
  • La résistance des lampes augmente avec leur température (PTC), du coup c'est capable d'éclairer relativement fort avec une faible tension (faible température, du coup faible résistance et fort courant), et de ne pas brûler à haute tension (température élevée, donc résistance élevée et faible courant).

La plus grande amélioration a été de lubrifier régulièrement les palliers, de préférence avant que ça devienne bruyant (au début, j'ai dû remplacer un pallier qui était devenu bleu).

Feu arrière
Le feu arrière utilise environ (0.6W) en 6V avec une lampe à filament (blanche) et un carénage/catadioptre en plastique translucide.

Dans mon cas, j'ai des LEDs blanches qui fonctionnent en ~2V, et je peux me permettre un fonctionnement à partir de 5V.
Une option simpliste serait de brancher une résistance en série, mais le courant (et l'éclairement) sera trop faible à faible vitesse, et les LEDs risquent de dissipper trop de puissance à vitesse élevée. Il faudrait donc une alimentation à courant constant.

J'ai repris le montage de ma lampe Ikea Antifoni, mais en tentant de l'améliorer.
En remplaçant la référence de tension fixe (2Vf) par un transistor, on asservit le courant de sortie avec un Vbe de transistor, mais sans dépendre du Vbe du transistor de puissance (qui va varier avec la température).
constant current driver schematics
Après un test sur du breadboard, on peut passer à la version réelle.

À noter qu'il y a 3 LEDs en parallèle, et qu'on lit un peu partout que c'est un type de branchement à éviter. En pratique, ces LEDs viennent du même rouleau (Vf mesurés à 2.61V±5mV), et surtout, elles sont couplées thermiquement, pour éviter l'emballement thermique de l'une d'elles. Les câbler en série aurait été impossible, vu la faible tension d'alimentation.

À noter qu'on a une alimentation en AC, du coup il a fallu rajouter une diode en série, et une capacité pour lisser la tension (pour éviter un effet de stroboscope à faible vitesse). Il serait possible de rajouter une supercapacité pour avoir un système de "Standlicht" assez courant sur les vélos de ville Allemands.

Mesure
Pour avoir une idée qualitative de la différence entre les deux systèmes, j'ai utilisé un appareil photo avec la sensibilité/focus/distance fixes dans l'obscurité, et mesuré le temps de pause choisi par l'appareil photo pour avoir une photo exposée correctement. Plus la durée est courte, plus le système est lumineux.
LEDs vs light bulb brightness
ÉclairageDurée de pause faisceauDurée de pause hors faisceau
Lampe originale18ms500ms
LEDs2.9ms500ms
Pour tester aussi la largeur du cône, j'ai visé un point central du phare, et un point à la limite entre le phare et le catadioptre. Dans ce cas, ça semble en effet beaucoup plus lumineux, et le faisceau n'est pas plus étroit qu'à l'origine.

Tests
Après quelques dizaines de minutes de tests, le circuit à été "tropicalisé" au pistocolle, et fonctionne de façon satisfaisante depuis plusieurs semaines.
glued led driver

Références
Lampe Ikea Antifoni - Monorailc.at

icon Tags de l'article : , ,

Samsung SyncMaster 151N

icon 07/05/2017 - No comments

J'ai récupéré un écran Samsung SyncMaster 151N visiblement en parfait état.
Par contre, j'ai remarqué quelques couinements/grésillements lorsque l'écran était éteint.

Et comme les écrans Samsung sont connus pour leurs capas chou-fleur, j'ai préféré le démonter pour véfifier.

/!\ Danger
Des tensions dangereuses sont présentes sur la carte d'alimentation, ne rien toucher sans l'avoir débranchée et déchargé la capacité primaire.
/!\ Warning
Dangerous voltages are present on the power board, do not touch it until it is unplugged and its primary capacitor is discharged.

Démontage

Le début du démontage n'est pas forcément intuitif, et il n'y a pas besoin de forcer :
  • Déclipsage du carénage avec une spatule, en commençant par le bas
  • Démontage du capot arrière
  • Dévissage du sandwich facade, dalle, coffret électronique
  • Débranchage du backlight et des boutons de facade
  • Décollage des bandes/shields
  • Rotation du coffret électronique et dévissage/débranchement du signal video
Prying the clips to open a Syncmaster 151N
Syncmaster 15 boards

Une fois le coffret électronique séparé de la dalle, c'est nettement plus intuitif :
  • Dévissage de l'interrupteur secteur et du PCB d'alim
  • Débranchage des connecteurs du ballast de backlight
  • Démontage de l'entretoise du connecteur IEC
  • Rotation du PCB d'alim et débranchage du connecteur d'alim

Inspection
Avant de toucher à la carte d'alimentation, on va mesurer la tension sur les capacités situées au primaire (et les décharger pendant une minute avec une résistance de 1~10kOhm si la tension est supérieure à 10V).

Syncmaster 15 PSU board

Comme le couinement n'avait lieu que pendant quelques secondes au débranchement de la prise, lorsque l'écran était déjà éteint, le problème a de grandes chances de se situer autour du filtre secteur.

La mesure des capas et des selfs du filtre secteur ne donne aucune surprise, par contre le fil émaillé des selfs n'est pas très serré et peut vibrer, de plus ces composant ne sont pas tenus par de la résine/silicone.
Comme je n'ai pas de pistolet à colle sous la main et qu'il n'y a rien de dangereux, je vais laisser l'alimentation comme ça.

Tant que l'alimentation est démontée, et connaissant la réputation des écrans Samsung, il vaut mieux mesurer les autres capacités chimiques :
CapaCapacité mesuréeCapacité théoriqueESR
C14-C162625µF3000µF<100mΩ
C17-C194800µF4970µF<100mΩ
C591µF100µF-
Par surprise, les capas sont toutes dans leurs tolérances de +5,-20%, et l'ESR n'a rien de surprenant (dans les limites de mon LCR-ESR-mètre).

Comme ces capas sont placées entre des diodes et des MOS ou un connecteur (ouverts), il n'est pas nécessaire de les sortir du circuit pour les mesurer.

Remontage
Il suffit de faire comme marqué dans les documentations automobiles : "Suivre le même processus dans l'ordre inverse". Pour bien faire les choses, on va même recoller les shields RF autour des nappes et des câbles du backlight.
Wiring the boards on the Syncmaster 151N

Syncmaster 151N working

icon Tags de l'article : ,

Autoradio Tuner List (3) : Intégration

icon 08/01/2017 - No comments

Le chargeur de téléphone est placé juste devant le levier de vitesse, et le câble peut s'enrouler autour, ce qui peut devenir gênant en roulant.

Pour éviter tout ça, il doit être possible d'intégrer le chargeur de téléphone dans l'autoradio (dans lequel il reste la place du lecteur de cassettes).

Câblage
L'autoradio est alimenté par le +12V_Permanent (pin A4), et le +12V_Contact (pin A7) ne sert qu'à l'activer à la mise du contact.
DIN/ISO 10487 pinouts

Il y a deux gros pads à proximité d'une capa de découplage sur le PCB, l'empreinte ressemble à celle d'une capa chimique SMD, sauf qu'ils sont reliés au +12V_Permanent, et qu'on ne veut pas que notre chargeur vide la batterie.
Tuner list full PCB

En jouant un peu à l'Ohm-mètre (les pistes sont dures à suivre avec un PCB multi-couches), on arriver à trouver un pin relié au +12V_Contact. Les pistes sont fines, mais semblent correctes pour 500mA (<500mΩ, mon Ohm-mètre n'est pas plus précis).
+12V_Contact

Une fois les pads repérés, on peut souder sur la carte à LM2596 du chargeur de téléphone, sans oublier de mettre un fusible de 1A.

On peut aussi profiter que l'autoradio soit ouvert pour mettre les selfs différentielles à l'intérieur. En pratique, avec des selfs toriques, les fuites sont tellement faibles qu'on peut se permettre de les placer n'importe comment sans qu'il n'y ait de couplage avec d'autres selfs ou les circuits voisins.

Mécanique
On peut utiliser des vis/entretoises M3 pour fixer l'alimentation. Il faut faire attention à ce que les vis ne touchent rien d'autre que la masse, j'ai dû ajouter une rondelle isolante pour une vis proche du rail d'entrée.
Mounted PSU with

Comme c'est installé dans une voiture, il ne faut pas oublier qu'il y a beaucoup de vibrations et des cycles thermiques assez larges, du coup ce n'est pas une mauvaise idée d'ajouter des contre-écrous en plus du taraudage des trous.
Jammed Nuts on standoffs

Pour les vibrations, il faut aussi sceller tout ce qui peut bouger : fils, fusible, nappes, selfs. Les zip-ties sont moches, mais bien adaptés à ce genre de choses.
Zipties as strain reliefs

Une fois que tout est fait, on n'oublie pas de vérifier à l'Ohm-mètre qu'il n'y a rien de mal câblé, et que rien ne bouge en secouant le bloc. Avec un fusible de 15A dans la voiture, il y a de quoi faire des dégats sans même que ça ne coupe.

Une fois testé, on peut vérifier que le chargeur ne fonctionne que lorsque la clé est insérée.
Blue LEDs show the charger is powered

icon Tags de l'article : , , ,

Autoradio Tuner List (2) : Bruit

icon 30/12/2016 - No comments

En ayant pu (enfin) utiliser la voiture, j'ai remarqué qu'on entendait un bruit dépendant du régime moteur dans l'autoradio (probablement l'allumage).
En investiguant un peu, j'ai remarqué qu'en utilisant le chargeur de téléphone avec le moteur allumé, le téléphone avait aussi un bruit audible.

Identification et réparation
Ça suppose soit un PSRR immonde pour le chargeur du téléphone, soit du bruit de mode commun (rayonné ou bien conduit).

Du coup la solution miracle est arrivée après quelques secondes de réflexion : des selfs différentielles.

Avec quelques tours de câble enroulé autour d'un tore de ferrite sur les câbles d'entrée analogique et d'alimentation ont complètement réglé le problème.

common-mode ferrite inductors


Principe
Le but est de filtrer un courant parasite qui circule dans une boucle. Un simple filtre LC sur chaque fil de signal filtrerait le signal utile, sans beaucoup atténuer le signal parasite.
common-mode noise

Avec une self sur chaque signal, y compris la masse, c'est le même problème, on filtre le signal utile.
En couplant ces selfs entre elles, le signal de mode différentiel n'est pas perturbé. Le sens du bobinage fait que l'inductance est faible (le champ est nul) tant que le courant qui rentre par les fils de signaux est égal au courant qui retourne par la masse. Par contre en cas de perturbation de mode commun, le courant entrant et le courant sortant tendent à ne pas être égaux (soit par une boucle de masse, soit par des capacités parasites), du coup il commence à y avoir un champ magnétique dans la self, qui présente une inductance (et atténue ces courants).

common-mode vs differential inductors

Références

icon Tags de l'article : , , , ,

Autoradio Tuner List : Entrée Aux

icon 30/10/2016 - No comments

J'ai un autoradio Tuner List (Renault/VDO, modèle 22DC259/62T), avec un lecteur cassettes qui m'est inutile, mais je voulais ajouter une entrée analogique pour y brancher un smartphone ou un lecteur audio.

/!\ Danger
La tension maximale n'est que de <15V, mais tout est sous tension, même lorsque le contact n'est pas mis, ou que l'autoradio est éteint. Le fusible permet de sortir 15A, largement de quoi tout casser et se blesser avant qu'il ne fonde.
/!\ Warning
The maximum voltage is only <15V, however, the radio is always powered, even when switched off or when the engine is turned off. The fuse is rated for 15A, more than enough to blow the radio and hurt yourself before it melts.


Démontage
Sur les Renault Mégane, la face avant de l'autoradio est plus large que celle des autres voitures, mais les fixations sont à peu près au même standard.
Il suffit d'insérer deux clous de 4mm dans les deux trous en bas sur les côtés, pousser les clous vers l'extérieur, et de faire bouger l'autoradio sur les côtés en le tirant. Deux mains sont nécessaires, mais c'est faisable sans outils spéciaux.
Removing the radio from the car's front panel

Une fois l'autoradio tiré, il y a un connecteur DIN/ISO (parfois séparé en deux parties) à gauche, puis un connecteur (jaune dans ce cas), pour relier les commandes au volant et l'afficheur (I²C). Il y a aussi parfois aussi un connecteur (bleu) dans le cas où un chargeur de CD serait présent. Le câble d'antenne (Coax à droite) est aussi à débrancher. Il est souvent clipsé à l'arrière de l'autoradio.

Code
Quand l'alimentation de l'autoradio a été débranchée, il est nécessaire d'entrer un code (normalement fourni, sinon trouvable à partir du numéro de série).
Quand l'autoradio affiche "0000", avec le premier '0' clignotant et qu'il faut entrer le code "1234", il faudra taper une fois sur la touche "1", une fois sur la touche "2" pour choisir le 2nd caractère (qui doit clignoter), puis deux fois sur cette touche (l'écran doit afficher "1200"), idem avec les touches 3 et 4 pour les derniers digits.
Une fois le code complet, il faut maintenir la touche 6 appuyée jusqu'à ce que l'autoradio fonctionne normalement.

Teardown
Le haut de l'autoradio se démonte simplement en déclipsant 4 clips avec un tournevis plat.

Il faut retirer deux connecteurs Würth WR-MM et dévisser 4 vis Torx T8 pour démonter le lecteur de cassettes en le tirant vers l'arrière (il faut retirer la cassette présente avant de retirer le lecteur).

La carte n'a de composants que sur la face, le PCB vertical à l'arrière contient uniquement le tuner FM/AM, et le PCB vertical à l'avant supporte des boutons poussoirs et des LEDs.

Il y a 3 composants qui nous intéressent :
  • TEA0676T : Préampli de cassette, à proximité du connecteur WR-MM à 4 pins des têtes du lecteur de cassette
  • SAA7708H : ADC + DSP + DAC + MUX + décodage RDS + décodage SPDIF, ASIC "magique" conçu pour les autoradios
  • 93CW44DF : Microcontrôleur OTP ou ASIC custom, sans documentation, semble tout contrôler

Les autres gros circuits intégrés concernent le tuner, l'ampli de puissance ou de la glue logique.
VDO/Renault Tuner List taken apart

Sur cet autoradio, il est possible d'utiliser l'entrée SPDIF (disponible sur le connecteur du chargeur de CD), mais le périphérique doit communiquer avec l'autoradio (RS232 0-12V, 9600, 8N1).

Entrée
Le circuit SAA7708H supporte 3 entrées analogiques (phone, tape, CD), mais elles sont contrôlées par le chip 93CW44DF (contrôle par un bus I²C).
Comme le lecteur de cassettes ne me sert pas, je vais câbler l'entrée à la place de celui-ci.

Au niveau des têtes de lecture, le niveau est très faible (~1mV), et surtout le signal est remis en forme (filtres, égaliseur). Il est nettement plus simple de récupérer le signal en sortie du préampli (signal déjà égalisé, filtré et amplifié), à environ 1V (compatible avec une sortie casque/ligne au volume maximal).

En regardant entre la sortie du TEA0676T l'entrée du SAA7708H, on voit des capacités pour bloquer une composante DC, et un filtre passe-haut (entrée d'ADC). On va donc câbler l'entrée juste à la sortie du TEA0676T.

Adding an analog input to the VDO tuner list
Adding an analog input to the VDO tuner list

Les pins 1 et 16 sont dessoudés et isolés de leurs pastilles, et le câble d'entrée est soudé sur des points de test et la masse sur un plan.

Après un test, l'entrée fonctionne uniquement si le lecteur de cassettes (connecteur à 10 pins) est branché et si une cassette est présente (il n'y a pas besoin de brancher le câble à 4 pins).

Lecteur de cassettes
Par un peu de rétro-ingéniérie, il est possible d'identifier chaque signal du connecteur WR-MM à 10 pins :
PinFonction
1Auto-reverse switch
2GND
3Presence switch (C)
4Presence switch (T)
5Motor (+)
6Mute switch
7Solenoid
8Solenoid
9NC
10CrO2 switch
Avec quelques tests, seulement les fils en gras sont utiles pour activer le lecteur de cassette.
Le pin 6 (Mute switch) est à relier au pin 2 (GND). Les pins 2 et 3 (presence switch) sont à relier entre eux.
fooling the cassette deck controls on the VDO tuner list


Remarques
Attention, il y a très peu de place entre le volant et le levier de vitesse, un faux mouvement fait vite des dégâts. En pratique, il faut isoler le mécanisme de cassette et le PCB de contrôle avec des sachets antistatiques, et aussi débrancher le connecteur WR-MM à 10 pins avant chaque modification.

À la moindre erreur, il peut y avoir de gros dégâts :
what happens when you're not careful enough

L'autoradio est soumis à de larges cycles de température et doit supporter des vibrations. Pour cela, tous les câbles ont été isolés avec de la gaine thermo-rétractable ou plusieurs couches de ruban de kapton ou de vinyl.
Il faut aussi prendre en compte le fait que le jack peut être tiré depuis l'extérieur. Un simple noeud permet d'éviter de casser les soudures.
careful wiring

Les boutons eject et avance/retour rapide ont été fixés par des morceaux de PVC pris en sandwich entre la face avant et le haut du boitier. Il a été nécessaire de percer les boutons pour laisser passer le câble.
Front face of the modded Tuner List. One could barely tell it has been deeply modified.

Tests
Une fois toutes les modifications testées in-situ, puis faites de façon définitive, on a gagné un jack 3.5mm (de quoi faire des envieux chez les propriétaires d'iPhones 7)

Avec mon lecteur audio Sandisk Sansa et mon smartphone HTC Desire X, le volume doit être au maximum pour avoir le même volume que le tuner FM, mais le son est bien en stéréo et de bonne qualité.


Références

icon Tags de l'article : , , , ,

Chargeur de téléphone

icon 28/10/2016 - No comments

J'ai eu besoin d'un adaptateur fonctionnant sur un allume-cigare de voiture, pour charger un téléphone, et occasionellement d'autres objets.
Comme mon appareil photo ne se charge qu'à 250mA, je vais mettre deux ports, un câblé pour autoriser une charge rapide à 1.5A (smartphone), et un autre limité à 250mA.

Solutions
J'ai récupéré un chargeur de Motorola T205 avec un connecteur allume-cigare. Le problème, c'est que le circuit du chargeur est incompatible avec n'importe quel périphérique USB (5.8V à vide + limite de courant à 150~200mA).

Pour cela, on ne gardera que le boitier compatible avec un connecteur allume-cigare, mais on devra changer le convertisseur pour qu'il puisse fournir du 5V, avec quelques contraintes :
  • Tension d'entrée : 7~16V, tension bruitée
  • Courant d'entrée : <2A, fusible
  • Tension de sortie : 5.0V, peu bruitée
  • Courant de sortie : 2A

J'ai quelques régulateurs de la famille LM25xx (ici des LM2596 donnés pour 3A) et des connecteurs USB dessoudés d'une carte-mère de PC, ça devrait pouvoir s'adapter sans aucun problème.
buck psu as a car smartphone charger

Câblage
Régulateur
Pour éviter les problèmes avec le régulateur ajustable, le potentiomètre permettant de régler la tension d'alimentation va être remplacé par des résistances fixes de 2.2k et 6.8k (le potentiomètre peut facilement être dérêglé par des vibrations, et rentre mal dans le boitier).
replacing the pot by two fixed resistors

Ici, j'ai utilisé une résistance traversante et une 1206 pour optimiser le routage (et parce que les pastilles du PCB Made in China sont parties en dessoudant le potentiomètre).

USB
J'ai uniquement regardé les spécifications des ports USB concernant les périphériques "universels" (je n'utilise pas de périphériques Apple).
Le port USB Rapide est câblé avec les deux pins D+ et D- reliés (<200Ω d'après les specs) et une résistance de pulldown de 1MΩ pour ne pas s'éloigner des specs.
Le port USB Lent est câblé avec uniquement des résistances de pulldown de 12kΩ.
pulldown resistors on the USB connector

Les résistances de pulldown sont rarement présentes dans les chargeurs cheap, mais laisser les pins de données flottants pose un risque d'ESD (surtout dans une voiture isolée de la terre).

Assemblage
Le boitier d'origine est légèrement trop petit, il a fallu le fraiser, puis le refermer avec du duct-tape et des zipties. L'arrière du port USB est protégé par de la colle chaude et du duct-tape.
duct-taped and ziptied smartphone charger

J'ai remarqué une fois l'assemblage terminé qu'une LED visible depuis l'extérieur aurait été utile.

Il est indispensable d'isoler proprement les pins en entrée de l'alimentation.
dangerous Chinese wiring


Références

icon Tags de l'article : , , ,

Sandisk Sansa Clip+

icon 31/07/2016 - No comments

J'utilise un balladeur Sandisk Sansa Clip+ sans avoir eu le moindre problème depuis 2010.

Il y a quelques jours, le bouton poussoir de mise en marche ne fonctionnait plus, la partie extérieure du bouton bougeait sans actionner les contacts.

Démontage
C'est la partie la plus délicate, la face arrière est clipsée sur la face avant (sans colle).
Seuls le haut et le bas ont des gros clips faciles à actionner, mais j'ai décidé de l'ouvrir par le haut pour éviter de toucher les fils de la batterie (un court-circuit ferait beaucoup de dégâts).

La solution qui semble la plus pratique est d'enfoncer une lame de cutter (attention aux doigts), entre la face avant et l'arrière, au niveau du bouton d'alimentation, puis de faire levier.
Une fois qu'un ou deux clips ont bougé, on peut glisser la lame un peu plus loin sur les côtés et le bas. Il faut un peu forcer, la batterie est légèrement collée à la coque arrière et au PCB.

Le PCB est vissé à la face avant, mais l'écran est collé sur la face avant, j'ai décidé de ne pas y toucher pour garder l'écran aligné et fonctionnel.

Identification
Sandisk Sansa Clip plus system board
Le dos du PCB est assez simple :
  1.  SoC Sandisk (ASIC custom?) en boitier BGA
  2.  Mémoire Flash Sandisk 2Gio, (probablement 32nm)
  3. Radio FM RDA5802E
  4. Batterie Li-po BAK 323036 (dimensions L l e en mm et dixièmes de mm), 290mAh

Réparation
J'ai trouvé les soudures du bouton poussoir arrachées, et le bouton poussoir entre la batterie et le SoC.
Un test avec un tournevis à permis de vérifier qu'aucune piste n'a été arrachée, et la re-soudure du bouton poussoir à réglé le problème.
Sandisk Sansa Clip plus broken switch solder joints

Dans le doute, j'ai aussi refait quelques autres soudures peu chargées en étain.
Sandisk Sansa Clip plus repaired switch solder joints


Références

icon Tags de l'article : , ,

Alimentation HP ESP135

icon 22/07/2016 - No comments

Description
J'ai récupéré une alimentation HP ESP-135 qui vient d'un HP Proliant DL-380 G4 et fabriquée par Lite-On (modèle PS-3601-1C).
Ces alimentations peuvent se monter par paire et sont "hot swap". Par contre, je n'ai pas récupéré la carte d'interconnection entre les alimentations et la carte mère et qui permet de contrôler l'alimentation. Du coup il faudra faire un peu de reverse-engineering pour la faire fonctionner.

D'après l'étiquette, l'alimentation a un rail +5V (standby) sortant 7A, et un rail +12V capable de sortir 47A (600W).

Mesure
Le soucis, c'est que la connectique n'est pas documentée et ne respecte aucun standard, on peut trouver les lames de gauche qui sont reliées à la masse, et celle de droite au +12V (reliées par des busbars à l'intérieur).

Alimentation branchée, mais arrêtée :
  1. +5V
  2. +5V
  3. +5V
  4. 3~5V
  5. 0V
  6. 4.6V
  7. 0.2V
  8. 0V
  9. 0,2V
  10. 4.6V
  11. 1.5V
  12. 0V

Les pins en rouge sont des rails d'alimentation et ceux en bleu sont des signaux logique ou de feedback (forte impédance)

En identifiant un peu et en regardant le marquage sur le PCB, on peut trouver quelques signaux :

Identification :
  1. +5V SB
  2. +5V SB
  3. +5V SB
  4. FAN_V (out)
  5. -12V
  6. PS_ON_1?
  7. 12V FB?
  8. GND
  9. GND_FB?
  10. PS_ON_2?
  11. ?
  12. 5V_FB?
Uniquement les signaux en vert sont écrits explicitement sur le circuit imprimé. Les autres ont été "devinés" en mesurant et en testant.

Si on relie les deux signaux PS_ON à la masse (pins 6, 8 et 10), l'alimentation démarre.

Alimentation démarrée :
  1. +5V
  2. +5V
  3. +5V
  4. 3~12V
  5. -12V
  6. 0V_
  7. 12V
  8. 0V
  9. 0.2V
  10. 0V_
  11. 1.5V
  12. 4.5V

Câblage
Comme avoir des câbles qui pendent autour du connecteur n'est pas très pratique, j'ai voulu avoir un interrupteur en façade de l'alimentation.
switch wiring

Le PCB de connectique est relié à la carte principale de l'alimentation par des busbars et quelques câbles. Le connecteur CN8 est relié à un autre PCB de contrôle de l'alimentation.
Les signaux qui nous intéressent, PS_ON_1 et PS_ON_2, sont respectivement sur les pins 3 et 6 du connecteur CN8. On peut trouver un point de masse sur le connecteur de la LED D910.
ground signal

Pour éviter que l'alimentation ne fonctionne dans un serveur, on va enlever les fils 3 et 6 du connecteur CN8 et les câbler directement sur l'interrupteur.
J'ai utilisé un interrupteur bipolaire pour limiter la casse (je ne sais pas comment la carte-mère commande l'alimentation), mais on peut voir d'autres montages où les deux signaux PS_ON_1 et PS_ON_2 sont reliés en permanence.
modified PSU


Notes
La vis située à côté des busbars est l'unique point qui relie la masse du secondaire au le châssis de l'alimentation. Il faut noter que les transistors Q300 et Q302 (PFC?) chauffent avec l'alimentation à vide, lorsque la masse est isolée. Dans le cas où on voudrait mettre plusieurs alimentations en série (ce qui n'est pas une bonne idée), c'est ce point-là qu'il faut isoler.
Secondary ground point

Références
Convert HP server PSU for RC use - TjinTech

icon Tags de l'article : , ,