WR703N + VinciDuino

barbudor:
Oui, le MR3020 est collé et s'ouvre moins facilement que le WR703.
Voir sur le wiki d'openWRT ils donnent des conseils pour l'ouverture mais il v falloir forcer pour casser la colle et il se refermera moins bien.

Yes, j'ai persévéré avec mon couteau et miracle le routeur c'est ouvert :grin:

Je posterai les photos dés que possible, mais en gros tout les côtés sont soudés par ultrason à des petites équerres sur le corps.
Il y a aussi deux clips, un juste au dessus du port mini usb et un autre en face à 1.5cm à gauche du logo tp-link.

Oui, parfois une formation d'écailler peut servir :slight_smile:

Sinon, voici les différences entre le MR3020 et le WR703N :

  • il est agréé CE/FCC
  • il est distribué à l'export et donc aussi en France
  • il a 4 LEDs en plus
  • il a un interrupteur à glissière en plus
  • le bouton RESET en replacé par le bouton/LED WPS
  • il a 2 antennes intégrées, dont une seule est utilisée (celle au coin)
  • le connecteur RJ45 SMT blindé avec découpe du PCB est remplacé par un RJ45 non blindé traversant (?!?)
  • l'UART est accessible par un connecteur non monté au pas de 2.54 mm très facile à souder :slight_smile:
  • il est plus gros (6,7 cm x 7, 4 cm x 2,2 cm au lieu de 5,7 cm x 5,7 cm x 1,9 cm)
  • il est plus cher (30,03 € au lieu de 16,73 € sur eBay), si quelqu'un a un plan moins cher, je suis preneur !

Sinon côté électronique et logiciel, les 2 appareils sont très semblables.

Squonk42:

  • il est plus cher (30,03 € au lieu de 16,73 € sur eBay), si quelqu'un a un plan moins cher, je suis preneur !

15,37€ cet après midi. Ah non, c'est une pub mal faite où il faut choisir le bon modèle ....
Ca change tous les jours....

Re tout le monde,

J'ai mis en ligne les photos du TL-MR3020 et quelques commentaires :

C'est juste la partie hardware pour le moment, la partie software viendra plus tard :wink:

Merci pour les photos hi-res du PCB 8)

Une question : la zone ART est-elle dépendante de chaque unité ? de chaque modèle ? ou du chip Atheros ?

barbudor:
Une question : la zone ART est-elle dépendante de chaque unité ? de chaque modèle ? ou du chip Atheros ?

A mon avis elle est différente pour chaque unité vu qu'elle contient l'adresse mac et les données de calibration.

Calibration individuelle donc...
Bon, va falloir que je fasse un dump un de ces jours.
Vu que le u-boot d'origine ne permet pas le dump, quel moyen suggères tu (a part dessouder et relire avec un programmeur SPI) ?

barbudor:
Bon, va falloir que je fasse un dump un de ces jours.

De même, c'est un des 1er points sur ma liste dés que j'aurai compilé ma uImage custom.

barbudor:
Vu que le u-boot d'origine ne permet pas le dump, quel moyen suggères tu (a part dessouder et relire avec un programmeur SPI) ?

Si tu as une uImage openWRT fonctionnelle tu peut utiliser l'utilitaire "dd" pour copier le contenu brute de la mémoire.
(Et l'utilitaire "mtd" pour restaurer un dump)

J'ai pas testé mais cette commande devrait marcher :

dd if=/dev/mtd4 of=/tmp/art_dump.bin

Pour avoir la liste des partitions mtd et leurs tailles :

cat /proc/mtd

skywodd:
Bon mon joujou est arrivé hier soir :grin:

bonsoir
Ma commande est arrivée depuis qq temps au bureau achat , mais comme je suis actuellement en phase
"changement d'herbage" :grin: , je ne les ai pas encore" récupérés.

et puis de toutes façons, c'est plus simple d'attendre que vous ayez fini le "job" 8)

Pour ceux qui se demandaient où j'étais passé, voici la réponse :

Pour les détails, veuillez consulter http://squonk42.github.com/TL-WR703N/ (pardon, c'est en Anglais).

ha oui ! quand même ! Bravo a toi

Un sacré travail. Bravo !

Et ben il fait pas les choses à moitié Squonk42 :grin:
:astonished: ça laisse sans voix ...

bonsoir
ha oui quand meme !
clap-clap :grin:

Juste par curiosité squonk42, tu a utilisé quel soft pour "reproduire" le PCB ?

Bonsoir à tous !

Je pensais peut-être rajouter une section "How?" :grin:

J'ai utilisé les images en haute résolution du PCB nu prises par Kean.

Les photos ont été prises avec un APN 8 Mpx, soit 2.8 Mpx en X ou en Y. Sachant que le PCB fait 4,7 cm x 4,7 cm ou un peu moins de 2 pouces x 2 pouces, cela fait pas loin de 1.5 Mpx/pouce, bien mieux que ce que l'on peut espérer avec on scanner à plat à 1200 x 2400 dpi...

Bon, après, le problème, c'est que l'image n'est pas parfaite : il y a un effet de perspective (les bords du PCB ne sont pas // entre eux et encore moins // avec les bords de l'image), il faut donc corriger les 2 images (dessus/dessous du PCB) avec un programme genre PS ou Gimp avec la fonction idoine.

Ensuite, l'image n'a pas forcément des pixels "carrés", et son échelle en X et Y est a priori inconnue... Il faut donc trouver un repère de dimensions connues en X et Y, ici le circuit U1 (AR9331) ou U2 (SDRAM). Avoir un composants avec beaucoup de pattes et plutôt gros est important, car l'image n'est peut-être pas non plus avec une échelle constante partout (phénomène de type "barrique" lié à la lentille en mode macro). Il faut donc mettre à l'échelle séparément en X et en Y pour retrouver des pixels "carrés" et contrôler que c'est le cas dans un maximum d'endroits dans l'image, toujours en se basant sur des dimensions de composants connus.

Une fois ceci réalisé, il faut aligner le dessus/dessous pour que les trous, vias et le contour du PCB coïncident. J'utilise le mode "déformation de la marionnette" de PS avec les 2 images placées sur 2 couches avec de la transparence. Ce mode permet de placer des aiguilles et de les déplacer pour déformer localement une couche/l'autre. On commence par les 4 coins, puis on rajoute des aiguilles entre lorsqu'il y en a besoin, jusqu'à obtenir la superposition parfaite.

Il faut ensuite lancer EagleCAD (le logiciel de CAO électronique utilisé) et créer un fichier de PCB contenant un des composants présents sur la carte (de préférence un gros...), que l'on prend dans une bibliothèque existante ou que l'on crée à demeure. La création des composants est une opération longue et pénible si on n'a pas trop l'habitude. Avec un peu d'entraînement, cela devient presque facile :sweat_smile:

Il faut alors mettre le PCB EagleCAD en plein écran et en transparence pour mettre à l'échelle les images pour que cela corresponde parfaitement avec les composants EagleCAD. Pour cela, j'utilise sous XP l'utilitaire Glass2K pour rendre les fenêtres plus ou moins transparentes. Il faut s'arranger pour que que la taille de l'image bitmap à une échelle simple (comme 25%), corresponde à la taille du PCB EagleCAD en plein écran. Si on règle le facteur de zoom d'EaglCAD sur 2, on peut alors zoomer l'image à 50%/100%/200% et le PCB EagleCAD presque simultanément pour voir les détails.

Enfin, il faut créer, puis placer tous les composants précisément, puis recréer toutes les pistes entre... Dernière touche, créer les plans de masse et d'alimentation, en créant au passage des "classes" de pistes qui ont des tolérances d'espacement/plans plus ou moins importantes (les pistes "RF" sons plus éloignées des plans de masses que les simples pistes) : c'est alors automatiquement géré par EagleCAD.

C'est quand même beaucoup de boulot :slight_smile:

C'est quand même beaucoup de boulot smiley

beaucoup de boulot astucieux et efficace ..... ça fait la différence !!

Squonk42:
...
C'est quand même beaucoup de boulot :slight_smile:

Merci pour avoir détaillé ta manip
J'imagine facilement le temps passé sur les "points de détails"

en tous cas et pour ce qui me concerne , respect pour le "boulot" 8)

Merci Jean-François!

Je disais donc: voici enfin le schéma du TL-WR703N reconstitué presque intégralement :

:sweat_smile:

Le schéma n'est pas complet, car il est basé uniquement sur l'observation des couches externes. Les marqueurs 0-9/A-Q encerclés dans le schéma sont des vias qui vont vers les couches internes, et ils correspondent aux étiquettes sur les routages PCBs dessus/dessous. Si quelqu'un veux participer, c'est possible :wink:

Mais tel quel, le schéma est déjà très intéressant. En se servant du cadre de localisation externe du schéma, on voit :

  • qu'il y a de nombreuses broches inutilisées sur l'AR9331, mais que toutes ne sont pas des GPIOs. Certaines on une fonction dédiée, comme la seconde interface RF connectée à GND dans la zone G4, ou les ports Ethernet additionnels dans la zone D4
  • qu'il y a des GPIOs inutilisées qui le sont sur d'autres modèles TP-Link (MR3020) dans la zone D5, mais qu'elles ne sont pas accessibles car localisées sous le chip AR9331
  • que les seules GPIOs disponibles sont celles que nous connaissons déjà: celles en E3 : GPIO11 (RESET_SW), GPIO7, GPIO6 (LDO, qui est en fait !USB_OC pour l'indicateur de sur-courant USB), GPIO29, GPIO8 (USB_POWER) et GPIO27 (LED3); celles localisées en G4-5: GPIO28, GPIO13 to GPIO17, GPIO0, GPIO1 et bien sûr les pads de l'UART LVTTL TP_IN/TP_OUT
  • que la plupart de ces GPIOs sont connectées à GND ou VCC par des résistances de pull-up/pull-down, et qu'elles sont utilisées au démarrage comme switch de configuration, et qu'on ne peut donc les mettre dans l'état opposé, au moins pendant cette phase initiale. C'est pourquoi j'ai tenté de le faire et regardé si le WR703N bootait toujours :stuck_out_tongue:

C'est le deuxième endroit où on peut encore découvrir des choses intéressantes : en lisant les sources du noyau modifié par Atheros, on trouve des indications qui laissent à penser qu'il est possible :

  • de booter sur le bus MDIO, peut-être aussi depuis l'USB... Le démarrage en USB en mode DFU permettrait de récupérer un WR703N "brické", par exemple
  • d'overclocker le quartz 25 MHz à 40 MHz
  • de mettre l'USB en mode host ou device
  • de booter soit normalement depuis le SPI, soit depuis une ROM interne (boot USB ?)
  • de choisir une SDRAM SDR/DDR1/DDR2

Mais en regardant attentivement le schéma, il y a des choses qui sont d'ores et déjà possibles :

  • on peut souder une antenne en enlevant J1 et en soudant l'antenne côté chip avec le gros pad de masse juste à côté pour le blindage
  • en mettant un gros pâté de soudure à la place de R113 qui n'est pas montée, on court-circuite le switch d'alimentation et de protection en sur-courant USB, permettant ainsi d'alimenter le WR703N par le port USB hôte
  • en enlevant R65/R68, on accède aux paires Ethernet 1/2 et 4/5 pour alimenter le WR703N en PoE
  • en désactivant l'USB dans le noyau et en pilotant le signal USB_POWER en tant que GPIO, on peut alimenter qqchose connecté sur le port USB hôte avec VBUS/GND, comme un relais "solid state" pour piloter une charge alimentée par le 220 V...

Bref, il y a de quoi s'amuser !

Petites corrections dans le schéma et le PCB, comme expliqué ici.

J'ai surtout pris le multimètre et testé les vias internes pour savoir où ils allaient : résultat, il n'yen a plus qu'un seul qui résiste, et le schéma est pratiquement complet !

Bon, maintenant je vais pouvoir me remettre sérieusement sur la partie Arduino :grin: