Nouveau matériel: cartes micro SD, HAT Pi ReSpeaker 2-Mics et routeur Xiaomi 3G
2018-03-13
Mise à jour : 2018-03-22

Ce billet est tout comme une vidéo de type "mailbag" omniprésente sur YouTube, mais sans un flux vidéo et sans bande sonore. En l'espace de quelques jours, j'ai reçu de fournisseurs très éloignés, cinq cartes micro SD de 8Go, deux HAT Pi ReSpeaker 2-Mics et un routeur Xiaomi Mi WiFi 3G. Voici mes premières impressions de ce nouveau matériel.

Table des matières

  1. Cartes micro SD
  2. Pi Hat ReSpeaker 2-Mics
  3. Router Xiaomi Mi WiFi 3G

  1. Cartes micro SD
  2. image of card Récemment, j'ai testé certaines cartes micro SD Verbatin d'une capacité de 16Go et j'ai été déçu des résultats. Les informations trouvées sur le Web, lors de la recherche d'un logiciel de test, insinuaient que le marché était inondé de cartes bon marché de qualité douteuse qui n'atteignaient pas les vitesses de lecture et d'écriture annoncées. Pire, certaines cartes n'avaient apparemment même pas la capacité déclarée. Je me sentais un peu penaud parce que je venais tout juste de commander des cartes micro SD arborant une marque inconnue, du moins ici. J'étais prêt à faire une croix sur cet achat en pensant que je les méritais pour avoir essayé de gratter quelques sous.

    Voici les résultats représentatifs des tests d'écriture et de lecture faits avec le logiciel F3.

    michel@hp:~$ sudo .local/bin/f3write "/media/michel/SD Card" F3 write 7.0 Copyright (C) 2010 Digirati Internet LTDA. This is free software; see the source for copying conditions. Free space: 7.49 GB Creating file 1.h2w ... OK! Creating file 2.h2w ... OK! Creating file 3.h2w ... OK! Creating file 4.h2w ... OK! Creating file 5.h2w ... OK! Creating file 6.h2w ... OK! Creating file 7.h2w ... OK! Creating file 8.h2w ... OK! Free space: 0.00 Byte Average writing speed: 11.64 MB/s michel@hp:~$ sudo .local/bin/f3read "/media/michel/SD Card" F3 read 7.0 Copyright (C) 2010 Digirati Internet LTDA. This is free software; see the source for copying conditions. SECTORS ok/corrupted/changed/overwritten Validating file 1.h2w ... 2097152/ 0/ 0/ 0 Validating file 2.h2w ... 2097152/ 0/ 0/ 0 Validating file 3.h2w ... 2097152/ 0/ 0/ 0 Validating file 4.h2w ... 2097152/ 0/ 0/ 0 Validating file 5.h2w ... 2097152/ 0/ 0/ 0 Validating file 6.h2w ... 2097152/ 0/ 0/ 0 Validating file 7.h2w ... 2097152/ 0/ 0/ 0 Validating file 8.h2w ... 1032128/ 0/ 0/ 0 Data OK: 7.49 GB (15712192 sectors) Data LOST: 0.00 Byte (0 sectors) Corrupted: 0.00 Byte (0 sectors) Slightly changed: 0.00 Byte (0 sectors) Overwritten: 0.00 Byte (0 sectors) Average reading speed: 15.70 MB/s

    Ces résultats obtenus avec chacune des cinq cartes ne sont pas aussi mauvais que je le craignais. Il ne semble y avoir aucun problème de capacité et ces cartes sont vraiment de classe 10 bien que la vitesse de lecture soit nettement inférieure aux cartes Verbatim. Vu la vitesse d'écriture, ces cartes BiNFUL seraient meilleures dans un appareil photographique, mais je n'ai pas testé cela. Actuellement, j'utilise une des cartes sans aucun problème dans mon Raspberry Pi 3.

    Les cartes sont livrées avec des adaptateurs pour lecteurs de cartes SD de taille normale. Ils semblent plus fragiles que ceux fournis avec les cartes de Verbatim. Cependant, la carte micro glisse parfaitement dans l'adaptateur et ce dernier s'insère bien dans le lecteur de carte SD sur mon ordinateur de bureau. Aucune plainte ici non plus.

    Bien sûr, seule l'utilisation à long terme dira si ces cartes sont fiables. Néanmoins, j'ai commandé quelques cartes supplémentaires de 8Go ainsi que des cartes 16Go du même fournisseur et en espérant ne pas le regretter plus tard.

    Produit: Carte micro SD de BiNFUL 8Go, Classe 10
    Commandé: 2018-01-30
    Reçu: 2018-03-13
    Coût: 5.48 $CDN/pièce, livraison gratuite
    Source: Boutique BESTHINKING sur AliExpress

    Ceci ne constitue pas une approbation. Les cinq cartes ont passé le test, mais quand sera-t-il à moyen et long terme ? Les cartes Verbatim étaient tout aussi bonnes au départ, mais sont maintenant devenues peu fiables.

  3. Pi Hat ReSpeaker 2-Mics
  4. La principale source d'informations lorsque j'ai configuré Google Assistant avec un Orange Pi Zero et DietPi était un article de CNXSoft. J'avais alors été surpris que l'on se soit servi d'un microphone USB à la place du microphone intégré que j'ai trouvé tout à fait adéquat. Je devrais souligner que CNXSoft avait tout de même donné des instructions pour l'utilisation du microphone intégré. Plus tard, quand j'ai voulu faire de la reconnaissance vocale sur un Raspberry Pi, j'ai décidé d'essayer le même type de microphone USB. Malheureusement, la performance était inacceptable. Je me suis donc tourné vers le HAT Pi ReSpeaker 2-Mics de seeed, qui semblait offrir une solution intéressante. La carte de la même taille qu'un Raspberry Pi Zero a un prix raisonnable, mais les frais d'expédition sont presque une fois et demie le prix de la carte semblent exagérés, étant donné qu'il a fallu plus de 7 semaines pour que le produit arrive dont presque un mois pour parvenir au Canada par avion! Cependant, les trois longues semaines pour acheminer le colis à l'intérieur du pays sont probablement attribuables à ma faute, car il semble que j'avais inséré un chiffre de trop dans le code postal.

    Installation du pilote

    Après l'installation et la mise à jour de Raspbian (Stretch, version serveur) sur une nouvelle carte micro SD de 8 Go, j'ai suivi les instructions sur le site seeed pour installer les pilotes ce qu'il faut faire manuellement.

    "HAT" (Hardware Attached on Top) est la version Raspberry Pi des "shields" de Arduino, les "mini shields" de WeMos, des "capes" de Beaglebone... En principe, l'installation des pilotes nécessaire au fonctionnement d'un HAT se fait automatiquement et en plus son connecteur doit permettre d'enficher un autre HAT par dessus. Ni l'une ni l'autre de ces exigences n'est satisfaite ici. D'après la Fondation Raspberry "... you can only call something a HAT if it follows the spec." Clairement, ReSpeaker 2-Mics n'est pas un "HAT"

    pi@rpi3:~ $ sudo apt install git ... pi@rpi3:~ $ git clone https://github.com/respeaker/seeed-voicecard.git pi@rpi3:~ $ cd seeed-voicecard pi@rpi3:~/seeed-voicecard $ sudo ./install.sh 2mic ... ------------------------------------------------------ Please reboot your raspberry pi to apply all settings Enjoy! ------------------------------------------------------ pi@rpi3:~/seeed-voicecard $ halt

    J'ai ensuite éteint le Raspberry Pi, connecté le "casque" ReSpeaker et branché un ensemble de haut-parleurs alimentés à la prise 3,5 mm sur le chapeau et un autre ensemble de haut-parleurs alimentés à la prise 3,5 mm sur le Raspberry Pi.

    Après la mise sous tension et le démarrage d'une session ssh, la vérification que l'installation avait été faite correctement était facile. Il suffit d'afficher les dispositifs de capture et de lecture de sons.

    pi@rpi3:~ $ arecord -l **** List of CAPTURE Hardware Devices **** card 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 pi@rpi3:~ $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0

    Il n'y a qu'un seul périphérique de capture, les deux microphones du ReSpeaker, qui est la carte 1 selon ALSA. Il y a trois périphériques de lecture. Deux sont sur la carte 0 qui est la sortie audio du Raspberry Pi. Ce sont la sortie analogique de 3,5 mm (appareil 0) et la sortie numérique HDMI (appareil 1). La carte 1, le ReSpeaker, a un appareil, le DAC du WM8960 connecté à la prise de 3,5 mm.

    Si vous faites le test audio suggéré

    pi@rpi3:~ $ arecord -f cd -D hw:1 | aplay -D hw:1
    éloignez les haut-parleurs des microphones sinon vous obtiendrez une boucle de retour, sorte d'équivalent d'une image infiniment réfléchie entre deux miroirs qui se font face, sauf que le son devient de plus en plus fort. Cela m'a plutôt rappelé le film d'espionnage et le livre IPCRESS File. J'ai effectué un test plus classique en enregistrant d'abord un son dans un fichier wav puis en le rejouant.

    pi@rpi3:~ $ arecord -f cd -d 10 -D hw:1 test.wav Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo lecture via la sortie audio du ReSpeaker : pi@rpi3:~ $ aplay -D hw:1 test.wav Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo lecture via la sortie audio du Raspberry Pi : pi@rpi3:~ $ aplay -D hw:0 test.wav Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    Pour ce dernier, j'ai dû ajuster le volume de lecture en utilisant alsamixer dans une session ssh parallèle avant d'entendre quoi que ce soit.

    De Lex, j'ai appris que la "... configuration alsa [fichier /etc/asound.conf] utilise le plugin dmix et le plugin dsnoop pour que plusieurs applications puissent lire et enregistrer simultanément". Voici le contenu du fichier.

    # The IPC key of dmix or dsnoop plugin must be unique # If 555555 or 666666 is used by other processes, use another one pcm.!default { type asym playback.pcm "playback" capture.pcm "capture" } pcm.playback { type plug slave.pcm "dmixed" } pcm.capture { type plug slave.pcm "array" } pcm.dmixed { type dmix slave.pcm "hw:1,0" ipc_key 555555 } pcm.array { type dsnoop slave { pcm "hw:1,0" channels 2 } ipc_key 666666 }

    Comme on peut le voir, la carte 1, le ReSpeaker, est définie à la fois comme périphérique de capture par défaut et périphérique de lecture par défaut. L'option -D hw:1 n'était donc pas nécessaire dans les exemples d'enregistrement et d'affichage ci-dessus.

    Test des DEL embarquées

    Il y a 3 DEL RGB, de type APA102, sur la carte. Celles-ci sont branchées sur un bus SPI. Pour les tester, j'ai activé le bus SPI avec raspi-config et ensuite installé un autre dépôt git à partir de seeed et les liaisons Python du bus SPI.

    pi@rpi3:~ $ git clone https://github.com/respeaker/mic_hat.git Cloning into 'mic_hat'... remote: Counting objects: 28, done. remote: Total 28 (delta 0), reused 0 (delta 0), pack-reused 28 Unpacking objects: 100% (28/28), done. pi@rpi3:~ $ cd mic_hat pi@rpi3:~/mic_hat $ mkvenv venv creating virtual environment /home/pi/mic_hat/venv updating virtual environment /home/pi/mic_hat/venv pi@rpi3:~/mic_hat $ ve venv (venv) pi@rpi3:~/mic_hat $ pip install spidev Collecting spidev Downloading https://www.piwheels.org/simple/spidev/spidev-3.2-cp35-cp35m-linux_armv7l.whl Installing collected packages: spidev Successfully installed spidev-3.2 (venv) pi@rpi3:~/mic_hat $ python pixels.py get out of the loop with CtrlC ^C(venv) pi@rpi3:~/mic_hat $

    La commande mkvenv crée et met à jour un environnement virtuel Python 3, alors que ve l'active. Ceci est documenté dans un billet précédent : Environnements virtuels Python 3 (en anglais).

    Utiliser Google Assistant

    En décembre de l'année dernière, l'un des développeurs travaillant sur Google Assistant (GA) basé sur le Raspberry Pi était plutôt négatif pour ce qui est de l'utilisation des "HAT" ReSpeaker. Je pense que qu'il était trop pessimiste. J'ai réussi à faire fonctionner GA. Comme avant, je n'entrerai pas dans les détails fastidieux de la création d'un projet et de l'obtention des informations d'identification appropriées d'un projet Google. D'une part, il s'agit d'une cible mouvante, car Google modifie souvent le SDK et les étapes requises pour l'enregistrement et l'accès aux projets. Il suffit de dire que j'ai suivi les instructions de Configure a Developer Project and Account Settings. Voici les informations sur le projet que j'ai créé sur le site:

    Project name: ga-Respeaker2
    Project ID: ga-respeaker2
    Product name : mics
    Manufacturer name : macomp (jamais utilisé)
    Device type: Light (ne pas définir de traits)
    Device model ID: ga-respeaker2-mics-cab8un
    Il est étrange que notre appareil Google Home bricolé doive être affublé d'un type de dispositif qui ne peut correspondre qu'à un actionneur. C'est l'une des nouveautés de cette nouvelle version du SDK. L'ID du modèle du dispositif a été proposé par la console du projet et est clairement composé de l'ID du projet, du nom du produit et d'un code aléatoire. Je n'ai pas pris la peine d'essayer de le changer. Les deux éléments en gras sont nécessaires plus tard.

    Un couple de paquets (bibliothèques de développement) doit être installé dans le système avant que les bibliothèques Python ne soient ajoutées à l'environnement virtuel Python.

    pi@rpi3:~ $ sudo apt-get install portaudio19-dev libffi-dev libssl-dev Reading package lists... Done ... After this operation, 13.8 MB of additional disk space will be used. Do you want to continue? [Y/n] y .. pi@rpi3:~ $ cd mic_hat pi@rpi3:~/mic_hat $ ve venv (venv) pi@rpi3:~/mic_hat $ pip install --upgrade google-assistant-library ... (venv) pi@rpi3:~/mic_hat $ pip install --upgrade google-assistant-sdk[samples] ... (venv) pi@rpi3:~/mic_hat $ pip install --upgrade google-auth-oauthlib[tool] ... (venv) pi@rpi3:~/mic_hat $ google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ > --save --headless --client-secrets credentials.json Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?response_type... Go to the very long link, log into your Google account and then copy the displayed authorization code Enter the authorization code: 4/XXXX............7776 credentials saved: /home/pi/.config/google-oauthlib-tool/credentials.json

    Cela devrait compléter l'installation; il est maintenant possible d'essayer d'utiliser Google Assistant. Notez qu'un fichier .asoundrc local n'a pas été créé. Pour être franc, j'en ai fait un suivant les instructions du SDK, mais cela n'a abouti qu'au silence plutôt qu'à une sortie audio. Il m'a fallu du temps pour comprendre que je devais me débarrasser de ce fichier de configuration. Ce qui m'a finalement aidé était d'essayer de lancer le programme googlesamples-assistant-audiotest. Comme on peut le voir ci-dessous, rien ne fonctionnait lorsque le fichier de configuration était en place.

    (venv) pi@rpi3:~/mic_hat $ googlesamples-assistant-audiotest Traceback (most recent call last): File "/home/pi/mic_hat/venv/bin/googlesamples-assistant-audiotest", line 11, in ... sounddevice.PortAudioError: Error opening RawStream: Unanticipated host error [PaErrorCode -9999]: 'Device or resource busy' [ALSA error -16]

    J'ai enlevé le fichier de configuration puis j'ai redémarré le Raspberry Pi et alors le programme a fonctionné.

    (venv) pi@rpi3:~/mic_hat $ googlesamples-assistant-audiotest INFO:root:Starting audio test. INFO:root:Recording samples. parler pendant 5 secondes INFO:root:Finished recording. INFO:root:Playing back samples. écouter la voix enregistrée pendant 5 secondes INFO:root:Finished playback. INFO:root:audio test completed.

    Une fois le test googlesamples-assistant-audiotest réussi, j'ai utiliser deux des applications installées: google-assistant-demo qui utilise la détection de mots-clés (OK Google) pour lancer une conversation et googlesamples-assistant-pushtotalk où la conversation est lancée en appuyant sur la clé Entrée.

    (venv) pi@rpi3:~ $ google-assistant-demo --device_model_id ga-respeaker2-mics-cab8un \ > --project_id ga-respeaker2 device_model_id: ga-respeaker2-mics-cab8un device_id: 0DB103C82FBA0EBB21E1DA840C646DA9 https://embeddedassistant.googleapis.com/v1alpha2/projects/ga-respeaker2/devices/0DB103C82FBA0EBB21E1DA840C646DA9 200 ON_MUTED_CHANGED: {'is_muted': False} ON_START_FINISHED "ok google" ON_CONVERSATION_TURN_STARTED quelle heure est-il ? ON_END_OF_UTTERANCE ON_RECOGNIZING_SPEECH_FINISHED: {'text': 'quelle heure est-il'} ON_RESPONDING_STARTED: {'is_error_response': False} "il est 18 heures 47" ON_RESPONDING_FINISHED ON_CONVERSATION_TURN_FINISHED: {'with_follow_on_turn': False} "ok google" ON_CONVERSATION_TURN_STARTED "what time is it?" ON_END_OF_UTTERANCE ON_RECOGNIZING_SPEECH_FINISHED: {'text': 'what time is it'} ON_RESPONDING_STARTED: {'is_error_response': False} "il est 18 heures 47" ON_RESPONDING_FINISHED ON_CONVERSATION_TURN_FINISHED: {'with_follow_on_turn': False} quitter en appuyant sur la combinaison CtrlC (venv) pi@rpi3:~/mic_hat $ googlesamples-assistant-pushtotalk --device-model-id ga-respeaker2-mics-cab8un \ > --project-id ga-respeaker2 INFO:root:Connecting to embeddedassistant.googleapis.com INFO:root:Using device model ga-respeaker2-mics-cab8un and device id 14a074a6-27c9-11e8-9fb7-b827ebff56fd Press Enter to send a new request... INFO:root:Recording audio request. WARNING:root:SoundDeviceStream read overflow (3200, 6400) "Quelle heure est-il?" INFO:root:Transcript of user request: "tell". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "tell". INFO:root:Playing assistant response. INFO:root:End of audio request detected INFO:root:Transcript of user request: "tell him". INFO:root:Playing assistant response. INFO:root:Finished playing assistant response. Press Enter to send a new request... INFO:root:Recording audio request. "What time is it?" INFO:root:Transcript of user request: "what". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what time". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what time is". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what time is it". INFO:root:Playing assistant response. INFO:root:End of audio request detected INFO:root:Transcript of user request: "what time is it". INFO:root:Playing assistant response. "It is 7:26" INFO:root:Finished playing assistant response. Press Enter to send a new request... INFO:root:Recording audio request. quitter en appuyant sur la combinaison CtrlC

    Comme on peut le voir, les deux ont fonctionné quoique différemment. Tout d'abord google-assistant-demo est évidemment lié à mon compte Google Home ce qui explique pourquoi la sortie était en français. On peut interroger GA en anglais ou en français et d'obtenir une réponse correcte. Ce bilinguisme m'a surpris, alors j'ai vérifié et le Google Home mini répond aussi en français aux questions posées en français et en anglais. De plus, mes règles IFTTT peuvent être invoquées (voir Google Home Mini avec Domoticz par l'entremise de IFTTT) mais, bien sûr, uniquement dans la langue dans laquelle les règles sont écrites.

    Dans la version originale du billet, j'ai mal raporté les capacités linguistiques de googlesamples-assistant-pushtotalk. Comme le montre la suite, cet assistant est multilingue.
    2018-03-22

    Par défaut, googlesamples-assistant-pushtotalk n'a pas détecté les paramètres de langue de mon compte Google Home, comme indiqué ci-dessus. Cependant, si je spécifie un paramètre de langue, il se comporte plus comme google-assistant-demo.

    (venv) pi@rpi3:~/mic_hat $ googlesamples-assistant-pushtotalk --device-model-id ga-respeaker2-mics-cab8un \ > --project-id ga-respeaker2 --lang fr-CA INFO:root:Connecting to embeddedassistant.googleapis.com INFO:root:Using device model ga-respeaker2-mics-rcl7xe and device id 91b7128e-2dd1-11e8-a78f-b827ebaa03a8 Press Enter to send a new request... Enter INFO:root:Recording audio request. "Quelle heure est-il ?" INFO:root:Transcript of user request: "quelle". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "quelle heure". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "quelle heure est-il". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "quelle heure est-il". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "quelle heure est-il". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "quelle heure est-il". INFO:root:Playing assistant response. INFO:root:End of audio request detected INFO:root:Transcript of user request: "quelle heure est-il". INFO:root:Playing assistant response. "Il est 10 heures 38" INFO:root:Finished playing assistant response. Press Enter to send a new request... Enter INFO:root:Recording audio request. "Quelle heure est-il ?" INFO:root:Transcript of user request: "ouais". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "WhatsApp". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what time". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what time is". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what time is it". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what time is it". INFO:root:Playing assistant response. INFO:root:Transcript of user request: "what time is it". INFO:root:Playing assistant response. INFO:root:End of audio request detected INFO:root:Transcript of user request: "what time is it". INFO:root:Playing assistant response. "Il est 10 heures 38" INFO:root:Finished playing assistant response. Press Enter to send a new request... quitter en appuyant sur la combinaison CtrlC

    Il est possible d'invoquer les règles IFTTT configurées pour utilisation avec Google Home.

    L'autre application testée, googlesamples-assistant-pushtotalk, est unilingue. Pour des raisons insondables, les caractères de soulignement dans les noms de paramètres de ligne de commande ont été remplacés par des tirets :

                     google-assistant-demo: --device_model_id --project_id
        googlesamples-assistant-pushtotalk: --device-model-id --project-id
    Il y avait aussi des différences avec les niveaux sonores que je n'ai pas encore eu le temps d'examiner.

    C'est un bon début. Je pense qu'il sera possible de créer quelque chose d'utile avec ce dispositif. Puisque j'ai acheté deux "HAT" (pour amortir les frais de port), le montant investi est suffisant pour me motiver à les utiliser.

    Produit: ReSpeaker 2-Mics Pi HAT v1.0
    Commandé: 2018-01-17
    Reçu: 2018-03-09
    Cost: 9,90 $US x 2 + 14,08 $US frais de port = 43,37 $CDN
    Source: seeed

  5. Router Xiaomi Mi WiFi 3G
  6. Il y a quelque temps, j'ai remplacé le micrologiciel d'un vieux routeur Rosewill 300M Wireless N (de fait un TP-Link TL-WR841N / ND v7) avec OpenWrt 15.05.1. Plus tard, je l'ai mis à jour à LEDE 17.01.4 (qui était alors une fourche, mais est maintenant fusionnée de nouveau avec OpenWrt). À l'époque, je rêvais de lancer Domoticz sur le routeur. J'ai plus ou moins abandonné quand j'ai réalisé qu'il n'y avait tout simplement pas assez de mémoire flash.

    Quand j'ai vu que le router Mi WiFi 3G de Xiaomi avait 128 Mo de mémoire flash et 256 Mo de RAM et que certains avaient réussi à remplacer son micrologiciel en langue chinoise par OpenWrt, j'ai décidé d'en acheter un dans le but de réaliser le projet de faire fonctionner Domoticz sur un routeur.

    Pour l'instant, le logiciel domotique n'est pas installé même si, j'ai réussi à remplacer le micrologiciel OpenWrt. Alors qu'on s'efforce pour ajouter un paquet Domoticz/Open-ZWave à OpenWrt mais il n'est pas encore disponible pour installation automatique. Je vais attendre un peu avant de revenir vers ce projet.

    Si vous essayez d'installer OpenWrt sur le routeur ou même simplement de le configurer, je vous suggère d'utiliser le navigateur Web Chromium de Google, en raison de son mécanisme de traduction intégré (ou d'installer quelque chose d'équivalent dans votre client Web préféré). En outre, vous trouverez que l'application Android est en anglais, et probablement l'application IOS aussi. Voici quelques références pour expliquer comment procéder. Elles sont toutes en anglais sauf les deux premières qui sont en langue chinoise.

    Product page
    Product FAQ
    Hardware Device Wiki
    How to Flash Xiaomi Mi WiFi 3G Router Firmware
    LEDE - MiWiFi 3G - UniFi Ready
    LEDE Project Forum - Xiaomi WiFi Router 3G
    OpenWrt - Xiaomi Mi WiFi R3G
    OpenWrt - Image files for the ramips/mt7621 target

    Voici un peu d'information supplémentaire qui pourrait être utile. À un moment donné, vous devez télécharger la version développeur du microprogramme du routeur. Les instructions disent de le chercher à http://www.miwifi.com/miwifi_download.html mais il semble maintenant être trouvé sur http://www1.miwifi.com/miwifi_download.html. Voici les liens directs vers les micrologiciels de Xiaomi:

        Version stable du ROM de R3G
        Version 2.26.3 (8 novembre 2017)
        http://bigota.miwifi.com/xiaoqiang/rom/r3g/miwifi_r3g_firmware_0a271_2.26.3.bin
    
        Version de développement du ROM for R3G
        Version 2. 25. 122 (24 août 2017)
        http://bigota.miwifi.com/xiaoqiang/rom/r3g/miwifi_r3g_firmware_c2175_2.25.122.bin

    J'ai eu du mal à obtenir un autre fichier nécessaire: miwifi_ssh.bin. Je ne suis pas trop comment j'ai enfin réussi. Il fallait ouvrir un compte en utilisant l'application Android/IOS et je pense qu'il était nécessaire d'utiliser le routeur lui-même pour se connecter au Web. Si je me souviens bien, j'utilisais Chromium et Firefox en même temps. Peut-être que les choses seraient plus simples sur un ordinateur Windows.

    Depuis que LEDE et OpenWrt sont fusionnés, les deux fichiers constituant le micrologiciel à installer sur le routeur ont été renommés :

        lede-ramips-mt7621-mir3g-squashfs-kernel1.bin 
          ==>  openwrt-ramips-mt7621-mir3g-squashfs-kernel1.bin
        lede-ramips-mt7621-mir3g-squashfs-rootfs0.bin 
          ==>  openwrt-ramips-mt7621-mir3g-squashfs-rootfs0.bin

    J'ai trouvé que les radios n'étaient pas activées et même pas définies après le téléversement de OpenWrt. Bien qu'il existe des instructions sur la façon de définir les interfaces WiFi, la solution la plus simple s'est avérée être l'installation de LuCI, puis la mise à niveau du microprogramme OpenWrt. Il s'agit d'une simple procédure de pointage et de clic dans l'interface graphique Web d'administration du routeur à l'adresse http://192.168.1.1. Le fichier de mise à niveau s'appelle openwrt-ramips-mt7621-mir3g-squashfs-sysupgrade.tar. Ne vous inquiétez pas qu'il ne soit pas nommé *-sysupgrade.bin. Comme confirmé dans le forum, l'utilitaire sysupgrade gérera correctement l'archive tar.

    Produit: Router MiWiFi 3G de Xiaomi
    Commandé: 2018-02-21
    Reçu: 2018-03-01
    Coût: 45,67 $US frais de port inclus, soit 59,73 $CDN.
    Source: Gearbest, Banggood, AliExpress.