(modifié le 20 novembre 2021 à 12:45)

On m'a sollicité pour réparer une boite à histoires Lunii (v1). Celle-ci est tombée avec le câble microUSB en place, ce qui a eu pour effet d'arracher le port de son PCB.

Symptôme de départ : celle-ci ne se charge plus et la LED de témoin de charge reste éteinte.

Récit d'une réparation exploratoire réussie que je vous partage comme je l'avais déjà fait pour réparation du BIOS d'un PC Portable DELL.

Avant tout si vous ne connaissez pas Lunii :

Je contacte le support

J'ai déjà changé la molette de volume qui craquait sur une autre Lunii, rapidement et sans aucun frais. C'est un problème fréquent et bien connu et le nettoyant contact n'y a rien fait. Je sais donc que l'entreprise Lunii dispose d'une page de support dédiée sur laquelle vous pouvez décrire votre problème, ce que j'ai fait.

J'ai demandé s'il était possible de recevoir un connecteur microUSB ainsi qu'une batterie (car elle était mal en point à zéro volt, lunii étant restée allumée).

Voici la réponse du support :

Étant donné le dommage subi par l'appareil, votre Fabrique à Histoires est considérée comme étant hors garantie.
Par ailleurs, le port USB et la molette de sélection ne sont pas réparables sur Ma Fabrique à Histoires.

Nous avons tout de même une solution à vous proposer 😊

Nous pouvons vous proposer d'échanger votre appareil contre une Fabrique à Histoires reconditionnée, pour 30 euros. Cet appareil sera comme neuf aussi bien esthétiquement qu'en matière de performances et de fiabilité et sera garanti 6 mois.

Il doit s'agir d'une réponse type (ou d'une erreur) car je n'ai pas parlé de la molette de sélection mais bien de la batterie et du port microUSB. Dans ma demande j'ai précisé que je réaliserai l'opération de soudure moi-même car j'en avais l'habitude.

Devant cette réponse je me dit que je peux tenter le coup, si je ne m'en sors pas j'accepterai la proposition pour recevoir une Lunii reconditionnée à 30 euros.

Une boite qui se répare facilement

Lunii s'ouvre facilement avec des vis cruciformes et tout est très accessible. C'est assez rare pour le souligner, la marque s'inscrit dans une démarche de longévité et de réparabilité dont d'autres entreprises devraient s'inspirer.

Ceci étant dit c'est assez logique : ça n'est pas tant le prix du boitier qui leur rapporte de l'argent mais aussi et surtout les histoires que les parents achètent régulièrement sur le Luniistore :

Il y a régulièrement des soldes sur les packs 😉

Mais revenons à notre boite ouverte. Heureusement les pistes ne sont pas arrachées du PCB et je parviens à ressouder le port, à l'aide de flux et de pâte à souder.

Eureka! la LED rouge s'allume bien quand la Lunii charge, et après quelques minutes la tension de la batterie remonte :

La boite à histoire fonctionne de nouveau. Mais quelque chose m'interpelle...

Une étrange partition

J'ai extrait la carte microSD pour la connecter en direct sans passer par Lunii, pour avoir un accès direct et éviter une émulation quelconque d'un périphérique USB par Lunii :

Lorsque je regarde la partition de la carte microSD SanDisk de 8G, j'ai de l'espace vide (non partitionné) et une partition de 10 mo en FAT12 (étrange!) en fin de carte sur l'avant dernier cylindre (965 sur 966).

Voici son contenu :

Mais où sont stockées les histoires ?! J'ai beau chercher des fichiers cachés, rien. De toutes façons ça ne peut pas tenir dans 10 mo. Le plus étrange c'est que Lunii fonctionne bel et bien...

De mon côté DiskGenius et Windows m'indique tous les deux que la partition de 10mo semble mal en point. Je lance une réparation avec chkdsk qui corrigera les erreurs avec succès.

J'essaie de nouveau : Lunii fonctionne toujours, c'est déjà ça. Sauf que ça ne colle pas du tout aux infos que je trouve sur le web (cf tuto), car on voit bien dans cette vidéo le répertoire ".content" et les fichiers contenant les histoires :

Ce répertoire n’apparait pas chez moi. Je me dis que quelque chose ne va pas.

Je continue mes recherches et je découvre l'existence de plusieurs firmwares :

  • VENDOR_ID : PRODUCT_ID
  • 0x0c45 : 0x6820 ➡️ Lunii v1 firmware 1.x (version actuelle)
  • 0x0c45 : 0x6840 ➡️ Lunii v1 firmware 2.x (cible)
  • 0x0483 : 0xa341 ➡️ Lunii v2 Firmware 2.x

J'en conclus que j'étais sur un firmware 1.x avec un accès direct à la carte SD.

Pour trouver votre Lunii connectée en USB à partir d'une invite PowerShell :

Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB'} | ft -auto

Et pour cible juste Lunii à partir en filtrant sur les 2 VENDOR_ID connus :

Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '(_0c45|_0483)' } | ft -auto

Vous pouvez aussi le voir avec Nirsoft USBDeview.

Une mise à jour qui tourne en rond

Comme demandé je débranche Lunii qui redémarre à 2 reprises... puis Luniistore boucle sur ce message :

Je me rends compte que quelque chose se passe mal dans le processus de mise à jour, et que ce cas n'est pas prévu par le logiciel Luniistore. Quand j'essaie d'allumer Lunii sans câble j'arrive sur l'erreur "system not found" invitant connecter Lunii à un ordinateur :

Lunii est donc "briquée", oh joie. Impossible d'accéder à quoi que ce soit d'autre que la popup demandant la mise à jour dans le Luniistore. Même en restaurant une image de la carte microSD... comme s'il y avait un cache quelque part.

Bloqué

J'écris en désespoir de cause au support Lunii et la suite vous la connaissez puisque vous êtes ici en train de lire cette aventure! En effet au moment ou j'écris cet article je n'ai pas encore reçu de réponse.

Sans carte microSD Lunii a son écran qui clignote blanc, impossible d'aller plus loin c'est bloquant. J'ignore si le firmware est stocké sur la carte microSD ou bien si le firmware a besoin de fichiers censés être présents sur la carte microSD. Je teste des combinaisons de bouton des fois qu'un reset existe, sans succès.

La carte microSD semble corrompue et sans elle Lunii ne démarre pas. Perdu pour perdu je supprime tous les fichiers présents dans la partition FAT12 de 10mo de la carte microSD, mais ça ne change rien.

Mon hypothèse est donc la suivante : Lunii travaille effectivement avec des données dans une partition invisible, confirmé par ce post hackaday qui évoque une autre partition FAT12 qui serait cachée. Mes manipulations de réparation n'ont pas du mettre de l'ordre dans tout cas, vu qu'il n'était pas censé y avoir de données dans l'espace libre.

D'autres personnes se sont trouvées dans le même cas sur le post Facebook annonçant la mise à jour en 2020. Cette mise à jour apporte le support du format MP3 en plus du format WAV, qui permet d'avoir plus d'histoires sur la carte microSD, au détriment d'une batterie qui fond plus rapidement à cause du décodage probablement logiciel.

Mon hypothèse : en fonction du firmware le partitionnement et la structure de la carte microSD n'est pas la même.

La solution : effacer la carte microSD

Je me dis alors que c'est sûrement une zone mémoire illisible dans la carte microSD, dans laquelle Lunii n'arrive pas à écrire qui bloque la mise à jour.

J'avais vu sur le web que le support renvoyait une carte microSD dans certains cas. Je me dit alors que c'est quand même dommage de changer la carte si elle n'est pas morte... mais je sais bien que le support n'enverra pas d'image pour restaurer la carte, ils ne veulent peut-être pas donner trop de bille sur le "comment ça marche".

Mais peut-être que le support Lunii envoie une carte microSD vide ? c'est mon hypothèse.

Je lance dans un effacement complet de la carte microSD avec DiskGenius pour y écrire des zéros :

Il est aussi possible de le faire avec diskpart sous Windows (et linux) depuis un CMD admin :

diskpart
list diskselect disk XX (numéro du disque)
clean

Si vous êtes sous GNU/Linux (sdX = votre clé USB) :

dd if=/dev/zero of=/dev/sdX bs=1M

Attention : n'utilisez pas ces commandes si vous ne savez pas exactement ce qu'elles font, vous risquez d'effacer toutes les données de votre ordinateur (exemple de retour attendu).

J'insère la carte microSD dans Lunii et celle-ci m'invite à la connecter à l'ordinateur. Une fois connectée le Luniistore reconnaît que Lunii est vide et il va réinstaller tout ce qu'il faut, yeah !

Je procède ensuite à une réinitialisation via Luniistore histoire d'être sûr que tout est bien reparti de zéro.

Et je vois que en version de firmware 2.7 quand je clique en haut à droite sur l'icône Lunii > paramètres :

Maintenant la partition est de type FAT32 et elle occupe tout l'espace de la carte microSD :

Luniistore me propose ensuite d'envoyer toutes les histoires déjà achetées. C'est le gros avantage de Lunii : tout ce que vous avez acheté reste disponible en ligne dans le Luniistore et vous pouvez toujours renvoyer les histoires dans une ou plusieurs boites à histoire (3 maximum).

Enfin je relance la commande PowerShell pour voir que les ID VENDOR et PRODUCT sont bien ceux attendus :

Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '(_0c45|_0483)' } | ft -auto

Status Class FriendlyName InstanceId
------ ----- ------------ ----------
OK USB Dispositif de stockage de masse USB USB\VID_0C45&PID_6840\USB2.0_DSP

Même chose sous GNU/Linux :

lsusb | grep -P "(0424|6001)"

Conclusion

L'object est atteint : faire fonctionner cette Lunii🎉.

Je suis content d'avoir pu ressouder le port microUSB sur le PCB, sinon il aurait fallu gratter le vernis pour souder des fils sur les pistes. Rien d'insurmontable mais il aurait fallu trouver une colle forte pour le nouveau port (comme celle-ci en poudre présentée par Philippe dans cette vidéo).

Les concepteurs de Lunii auraient du prévoir un port de charge classique rond et un port de connexion à part. Le format microUSB reste trop fragile d'une manière générale, et sur la v2 de Lunii il est d'ailleurs remplacé par un USB-C.

Je pense que la multiplication des firmwares et versions est pas super bien géré par le Luniistore (écrit en java), ou bien que l'état de la carte microSD fait planter le tout. C'est fort dommage de ne pas avoir mis une mémoire interne plus fiable (genre eMMC) au moins pour le boot et le fonctionnement de la boite à histoire. Mettre une carte microSD dans un appareil manipulé par des enfants qui vont sans cesse jouer avec le bouton ON/OFF n'est pas l'option que j'aurai choisie.

Cela n'enlève rien au succès de Lunii qui s'est vendu à plus d'un million d'exemplaires pour un prix de 60€. D'autant que le produit se répare plutôt bien, avec les guides fournies, des vis standard, etc. Seule la batterie dispose d'un connecteur verrouillé, j'ai du tirer sur le connecteur pour déclipser les fines pattes en plastique... les fils se sont cassés et j'ai du les ressouder.

Voilà nous sommes arrivés à la fin de cette aventure Luniiesque! Et vous, vous avez déjà réparé cette bestiole verte ?!

Liens utiles

Voici un récapitulatif des liens qui peuvent vous intéresser (recherche Google).

Réinitialisations et connexion de Lunii à l'ordinateur :

Remplacement et réparation de pièces :

Logiciels, histoires et tutoriels :

ℹ Pour contacter le support Lunii c'est par ici.

ps : je vous parlerai prochainement de DiskGenius plus en détail pour ceux que ça intéressent

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter