Projet de robot Wifi – Torture d’un routeur TPLink MR3020

J’ai en projet un robot piloté en wifi depuis un smartphone ou un PC. La base de ce robot est un routeur très économique le TP-Link MR3020.

MR3020

 

Seulement voilà, j’ai à brancher sur ce routeur:

  • Un arduino sur lequel seront connectés moteurs ( des servos modifiés ) et capteurs.
  • Une webcam basique ( Logitech CZ110 ).

 

Au départ j’avais en tête d’ajouter une connectique USB surement présente sur le microprocesseur du routeur, comme j’avais fait il y a quelque temps sur un routeur Netgear. Seulement voilà, le datasheet du microprocesseur n’est pas public et son « form factor » le rend très difficile à bidouiller.

Vous me direz, un usb, ça suffit pour la webcam. Sauf que le routeur n’a que 4Mo de mémoire flash ce qui rend impossible l’ajout de logiciels comme python et mjpeg-streamer. Il faut donc ajouter de la mémoire supplémentaire. Pour cet ajout 2 possibilités: 1 MMC utilisée avec des lignes GPIO ou 1 SD / clef en USB. Les lignes GPIO étant peu nombreuses ( sauf à retirer interrupteurs et LED ) j’ai opté pour l’USB ainsi qu’un lecteur de µSD. Je vais aussi utiliser 2 lignes GPIO en I2C pour communiquer avec l’arduino.

Je me suis procuré un hub USB STOREX à 3€ pour le démonter et récupérer son PCB. Malheureusement le hub n’est pas autoalimenté mais la consommation de la caméra + SD étant très limitée on va y remédier en branchant l’alimentation du hub sur l’USB.

Allez, hop on démonte la boîte qui est collée. Seule la carte nous intéresse. L’alimentation est inutile dans ce projet, on va la mettre de côté pour plus tard.

Le hub USB

 

La prise d’alimentation doit être retirée ainsi que les connecteurs USB afin de gagner de la place et du poids.

Hub usb / Alimentation

 

Le lecteur de µSD à 3 € est aussi démonté afin d’accéder facilement aux pistes USB. Il est démonté « proprement » pour être ensuite ré-assemblé, la carcasse de la prise USB étant indispensable au maintient de la carte µSD.

µSD reader

 

Le lecteur peut alors être directement soudé sur le hub USB toujours dans l’idée de gagner de la place.

Le hub usb

 

Ensuite, on peut ré-assembler le lecteur et le coller sur le hub.

Le hub et le lecteur de µSD

J’ai abîmé quelques pistes en dessoudant le connecteurs USB. Il faut dire qu’à 3€, le PCB ne vaut pas grand chose… mais bon c’est quand même de l’epoxy et non de la bakélite.

 

Retournons maintenant sur le routeur. Afin d’augmenter sa portée assez réduite, nous allons lui ajouter une antenne externe. Il suffit pour cela de supprimer le shunt en J4 et de venir souder l’âme du câble d’antenne sur la piste à côté de l’inscription J4 (1) et la masse sur le pad à côté (2).

 

Antenne externe en J4

 

C’est tout petit et en zoomant ont voit bien mes gros pâtés !

 

Connexion de l’antenne externe

 

voilà le résultat avec le routeur dans son coffret d’origine.

Antenne externe et console série

 

Pour ne pas abîmer le routeur, je n’ai pas dessoudé son port USB. J’ai juste soudé directement des fils sous le PCB pour les relier au hub. Un coup de fer et l’on peut rendre au routeur sa fonction d’origine. De plus, à cet endroit, la place occupée par le connecteur ne me gène pas.

 

La caméra est installée avec une nouvelle connectique à base de barette sécable en 2.54.

Le MR3020, son hub usb et la webcam

 

Voilà c’est tout pour les modifications matérielles. La suite concernera la recherche de GPIOs libres et la partie soft.

 

GPIO sur l’interrupteur de sélection du mode

 

Voilà par exemple une piste. Plutôt que de retirer les LEDS qui ont leur utilité, on peut retirer l’interrupteur de sélection du mode qui ne nous sert pas. Ça nous donnera nos 2 GPIO  (1: GND, 2: GPIO 18 & 20) pour l’i2c. Mais avant de faire ça, je vais voir s’il n’y a pas d’autres GPIO peu utiles voire inutiles comme sur son cousin le WR703N

 

24 réponses sur “Projet de robot Wifi – Torture d’un routeur TPLink MR3020”

  1. Salut EquinoxeFR !

    Serait-il possible de nous rajouter une petite image pour voir comment tu as reliés le routeur et le hub ?

    Sur le hub, il y a 4 USB exploitable à la base.
    Tu en as utilisé 1 pour la webcam, 1 pour le lecteur de µSD et j’imagine 1 pour le routeur.
    Il y en reste donc qu’un de libre, c’est bien ça ?
    Pourtant tu en indique 2 sur l’avant dernière image !

    Beau boulot en tout cas !
    J’attends la suite avec impatience.

    Et bravo pour ton site.


    BugsByte

  2. @BugsByte, non pas tout à fait. Sur le hub, il y a 4 usb host et un port usb slave. C’est sur le slave que vient se brancher le routeur. Du coup, sur le hub il en reste 2.

  3. Salut,
    Pourquoi passer en I2C et pas simplement par le port série ? Il est dispo est paramétrable à 115200, j’ai claqué un arduino dessus pour faire une PirateBox ‘intelligente’.
    Pour la uSD, aujourd’hui on trouve des clés USB dites ‘nano’, aui prennent la même place.

    En tout cas, je suis impatient de voir la suite ….

  4. @Asthro, je préfère conserver la console série pour la gestion / maj du routeur. Et puis si j’arrête mon projet de robot, je pourrais toujours utiliser le routeur avec des capteurs en i2c.
    Pour la µSD, c’est pour qu’elle soit petite et amovible, c’est pour ça que je n’ai pas utilisé de petite clef usb…

    Pierre

  5. logique ! En plus entre temps j’ai lu de la doc sur I2C et son intégration avec Arduino. Du coup, je comprends mieux l’utilisation I2C ! Je vais orienter mon projet de domotique publique avec I2C.

  6. Question: l’openWRT embarqué, c’est une image standard ou tu t’en es compilé une perso ?
    Sinon great job , ca va beaucoup beaucoup m’aider 😉

  7. Salut,
    Ton sujet m’intéresse beaucoup; j’y ai découvert les ports I2C et je suis en train de me pencher dessus.
    Mais je voulais savoir si tu avais encore avancer, et si tu avais un résultat à nous montrer?

  8. Bonjour,

    Il y a aussi ce post http://www.equinoxefr.org/post/2012/11/12/mr3020-et-i2c-avec-les-gpio/ et celui-ci http://www.equinoxefr.org/post/2012/11/26/conversion-de-signaux-i2c-3-3v-5v/

    Depuis je n’ai pas beaucoup avancé si ce n’est un test de communication I2C entre un arduino et le routeur. ça marche nickel.

    J’ai un autre projet qui va probablement passer devant le robot et qui va utiliser ce matériel: un arrosage automatique des plantes sur la terrasse avec une pompe de lave glace.

  9. Je rencontre de serieux probleme de soudage …
    Meme en faisant attention, lorsque je desoude les resistances, les pads s’arrachent…
    J’ai un fer a souder relativement fin , mais forcemment enorme a l’echelle des CMS en question.
    Sous la loupe je ne vois rien , et meme apres avoir bricolé une loupe a fort grossissement avec une webcam , j’ai toujours du mal a souder correctement …
    Puis je savoir ce que tu as utilisé comme materiel / technique ?

  10. La taille du fer importe peu mais sa température est capitale. Il te faut un fer thermoregulé si tu ne veux pas brûler tes pads…

  11. Hi:

    Thanks for the post. If I am not wrong, you are connecting your USB hub in parallel with original USB port, can I still use the original USB port?

  12. j’ai suivie le schema il est vrement bien ,juste un truc si jamais sa t’interesse pour le transformer en robot spaky (WEBCAM MOBILE)
    tu as les les led que moi j’ai retirer est brancher directe sur un circuit de voiture telecommander est sa marche du tonner .

  13. Bonjour,

    merci pour ce super billet.
    J’ai une petite question, je compte réaliser un hack similaire sur mon MR3020 mais j’aimerais si possible externaliser les deux antennes internes plutôt qu’une seule.

    Mes connaissances en électronique étant limitées, je comptais procéder comme indiqué sur la page du wiki d’openwrt (qui m’a d’ailleurs conduit ici) et scier les antennes internes pour souder mes coaxiaux directement dessus.

    Seulement je me rend compte en lisant ton billet ainsi qu’un autre article pointé par le wiki que cette modification n’est pas la bonne approche et qu’il vaut mieux faire sauter la résistance J4 pour se brancher sur un de ses pads.

    Ma question est donc la suivante: où brancher mon second coaxial ?
    En regardant le circuit je n’arrive vraiment pas à me figurer quel pourrait être le bon choix.

  14. Bonjour,

    Oui j’en avais vraiment besoin mais après plusieurs soucis (notamment dus à la mémoire de stockage extrêmement limitée et à la faible portée/stabilité du point d’accès wifi) j’ai renvoyé le MR3020 pour le remplacer par un petit routeur de chez GLi: https://www.gl-inet.com/

    D’ailleurs je les recommande vivement à tous ceux qui liront ces lignes, ils sont supérieurs en tout point au routeur de TP-Link pour des tarifs similaires voir inférieurs.

    Sur les routeurs de GLi les ports GPIO sont accessibles et documentés, et certains modèles sont môme directement livrés avec une ou deux antennes externes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload CAPTCHA.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.