Show Posts
Pages: 1 2 [3] 4 5
31  International / Français / Re: Vinciduino : Bug sur le 3V3 => Problème avec shield Ethernet on: October 06, 2012, 07:56:44 am
Merci Barbudor !

Il fallait le trouver !

Je vais faire gaffe sur ma Vinciduino.
32  International / Français / test on: October 05, 2012, 03:10:41 pm
Merci à tous pour les compliments  smiley-red

Maintenant, mon but est d'extraire du PCB la "netlist" pour dans un premier temps créer le schéma avec tous les composants utilisés mais sans "fil" dessiné pour matérialiser les liaisons entre les pattes, puis de placer les composants  et dessiner les fils qui relient toutes les pattes reliées logiquement entre elles.

Je devrais alors (aux pistes présentes dans les couches de PCB internes près, mais a priori, il n'y en a pas beaucoup), pouvoir recréer le schéma complet du TL-WR703N !!!
33  International / Français / Re: WR703N + VinciDuino on: October 05, 2012, 02:46:08 pm
Bonsoir à tous !

Je pensais peut-être rajouter une section "How?"  smiley-mr-green

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  smiley-sweat

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  smiley
34  International / Français / Re: WR703N + VinciDuino on: October 04, 2012, 04:20:19 pm
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).
35  International / Français / Re: WR703N + VinciDuino on: September 22, 2012, 03:27:54 pm
Merci pour les photos hi-res du PCB  smiley-cool
36  International / Français / Re: WR703N + VinciDuino on: September 22, 2012, 06:01:25 am
Oui, parfois une formation d'écailler peut servir smiley

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  smiley
  • 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.
37  International / Français / Re: WR703N + VinciDuino on: September 14, 2012, 03:08:31 pm
Scanné ? Pour faire une photo de carte sans ombres je ne vois que çà comme solution smiley-wink
Merci, je vais arrêter de me bousiller les yeux.
Non, avec reflex APN 5 MPX avec éclairage fort par le dessus. Etant donnée la faible hauteur des composants, les ombres ne sont pas trop visibles. On arrive à avoir 1000 dpi avec une bonne profondeur de champ, ce qui n'est pas le cas avec un scanner à plat, même si avec les scanners modernes (pas comme le mien !), la résolution est supérieure.

Barbudor, pour ne pas abimer tes beaux yeux smiley-lol, voici des photos du PCB nu auxquelles j'ai contribué, cette fois-ci avec un reflex APN 8 MPX avec 1600 dpi:
http://www.kean.com.au/oshw/WR703N/teardown/

Je suis assez silencieux en ce moment car je prépare une surprise, et je ne dirais qu'une chose : faites chauffer EagleCAD smiley-zipper

Je pense que tu as inversé U5 et U6 dans ta description.
Heu, non ?

U5 est bien un convertisseur DC/DC 5V/3.3V avec diode Schottky intégrée et sa self à noyau ferrite L14 juste à côté, et U6 est bien un switch d'alimentation USB, placé sous le connecteur d'alim microUSB.
38  International / Français / Re: WR703N + VinciDuino on: September 01, 2012, 03:02:14 am
Une petite mise à jour concernant le WR703N : après avoir décortiqué le brochage du CPU AR9331, je continue mon exploration avec le PCB complet.

Le rôle de chaque composant est maintenant identifié, et à part la datasheet du AR9331 que nous n'aurons probablement jamais, il ne reste que 2 chips non formellement identifiés, bien que leur fonction soit parfaitement connue: U5 (convertisseur DC/DC 5V/3.3V avec diode Schottky intégrée) et U6 (switch d'alimentation USB).

Voici 2 images du PCB "zoomables" avec la molette du mulot  smiley-eek:

http://zoom.it/4ym9
http://zoom.it/nsDQ

Les mêmes images en HR "fixes":

http://img684.imageshack.us/img684/3559/tlwr703ntop.jpg
http://img253.imageshack.us/img253/1109/tlwr703nbottom.jpg

Notez que les 2 images se superposent parfaitement et que l'on peut donc par transparence suivre les vias smiley-mr-green

Non, je n'ai pas d'image des couches internes smiley-cry
39  International / Français / Re: WR703N + VinciDuino on: August 28, 2012, 03:07:00 pm
Tout à fait d'accord, le U-Boot du WR703N est assez limité! Juste pour info, pour arrêter le boot normal et obtenir le prompt U-Boot, il faut taper "tpl" rapidement au tout début. C'est écrit quelque part dans le Wiki OpenWRT, mais au moins, cela évitera à tout le monde de chercher !

Un autre truc que j'ai utilisé ailleurs et pas encore sur le WR703N, c'est la possibilité de monter le rootfs par NFS: il n'y a alors plus besoin de recopier les modifs sur le filesystem du routeur lors du développement à chaque fois, celles-ci apparaissent de manière magique au fur et à mesure smiley-cool

Voici un projet intéressant au sujet du U-Boot sur le WR703N: wr703n-uboot-with-web-failsafe
40  International / Français / Re: WR703N + VinciDuino on: August 28, 2012, 11:07:03 am
Ca ça serait pas mal !

On pourrait faire comme le Raspberry Pi avec les cartes SD : on change de clé USB et hopla !

Mais attention, l'alim de l'USB Host est pilotée par la GPIO8, donc il faudra la mettre à 1 avant d'y accéder pour que l'USB fonctionne.
41  International / Français / Re: WR703N + VinciDuino on: August 26, 2012, 12:59:56 pm
Le modules chargeables à la main c'est avec CONFIG_xxx=m au lieu de =y ?
Mais ne faut-il pas modprobe pour les charger alors ? J'ai pas trouvé modprobe sur OpenWRT
Oui, et "modprobe" n'est qu'une surchouche à "insmod"/"rmmod" qui tente d'installer/enlever les modules dépendants, donc on peut facilement se débrouiller avec "isnmod"/"rmmod" qui eux sont présents.

Et bon boulot sur le pinout !
Merci ! C'était pour inaugurer ma loupe binoculaire toute neuve (en promo chez Nature & Decouvertes à 140€, -30% smiley-eek).

Maintenant, y a plus qu'à bricoler avec le VinciDuino, vu qu'il n'y a pas assez de GPIO de dispo smiley-lol
42  International / Français / Re: WR703N + VinciDuino on: August 26, 2012, 12:12:44 pm
Bienvenue au club  smiley-mr-green

Bon, ça a l'air d'être reparti, non ?

Pas de panique côté nombre de reflashage: le chip Flash SPI est donné pour 100 000 cycles. A coup de 20 par jour, tu en as pour 13 ans  smiley-roll

Mais je te conseilles d'expérimenter le noyau en mettant tes expériences sous forme de modules chargeables à la main, avant de l'intégrer en fixe, cela évite pas mal de déboires !

Sinon, pour les bidouilleurs fous, j'ai beaucoup travaillé pour trouver le pinout du chip Atheros AR9331 (CPU du WR703N), le résultat est là :
http://wiki.openwrt.org/toh/tp-link/ar9331_pinout

J'avais déjà fais une étude détaillée du PCB:
http://wiki.openwrt.org/toh/tp-link/tl-wr703n_pcb
43  International / Français / Re: WR703N + VinciDuino on: August 25, 2012, 05:23:16 pm
Bravo !

Tu as bien avancé !

Je vais tenter de répondre à tes questions :
  • hotplug2: effectivement, si tu ne compte pas insérer de périphérique USB à chaud, cela ne sert à rien
  • RAM: pas t'affoles ! Linux a horreur du vide  smiley-mr-green Il profite qu'il y a de la RAM dispo pour s'étaler, en gros jusqu'à la moitié de la RAM totale disponible. Mais si il y a besoin, il va réduire la voilure
  • kmod-scsi-core: oui, c'est nécessaire, les "Mass Storage Class" USB s'appuyant sur un jeu de commande SCSI
  • led-gpios: il n'y a pas grand chose, à part ce thread dans OpenWRT qui parle des GPIOs du WR703N avec des exemples
  • kmod-ipt-core: non, si tu ne cherches pas à te connecter à Internet directement, iptables ne te sert à rien. donc tu peux virer celui-ci et les modules noyau associés
  • hello world: je te  conseilles ce tuto en Français
44  International / Français / Re: WR703N + VinciDuino on: August 24, 2012, 03:34:29 pm
Quote
Pour le "pivot root", il faut utiliser du ext2/3/4, sinon les chances d'y arriver sont minces ! Formatte ta clé sur ton PC Linux en tant que partition primaire ext4, c'est le plus simple.
EXT2 pas EXT3/4 sinon tu as la journalisation qui bourre toute ta clef usb ...

En plus si je me rappelle bien seul EXT2 est géré en bas niveau par le kernel, pour EXT3/4 il faut un module kernel en plus.
(kmod-fs-ext3 ou kmod-fs-ext4 je crois)
Le sujet est très controversé  smiley-confuse

L'ext3/etx4 gèrent effectivement un journal qui permet de récupérer le filesystem en cas de problème d'intégrité (coupure de courant innopinée, plantage smiley-eek-blue), ce qui est quand même un gros plus pour un système qui doit avoir une disponibilité sans utilisateur.

Il y a aussi un problème de performances : l'ext4 est pratiquement 2x plus performant que l'ext2, cf. ce lien et celui-ci, il y en a un tas d'autres qui vont tous dans le même sens. Là aussi, cela peut avoir un sens pour une plateforme embarqué qui doit être un minimum efficace en consommation: il ne faut pas croire, mais les disques USB consomment beaucoup lorsqu'on y accède en lecture, encore plus en écriture, et énormément lors d'un effacement de secteur. Donc le moins de temps on l'utilise, le mieux c'est !

En bref, même si l'ext3/ext4 ont un "overhead" dû à la journalisation, ils apportent quand même une sécurité et des performances non négligeables, sachant qu'il est possible de jouer avec certains paramètres pour éviter les effets négatifs pour les disques Flash :
  • l'option "noatime" que j'ai utilisée permet de ne pas écrire les date de dernier accès aux fichiers, ce qui est une des causes majeures d'usure des disques flash si on n'y prête pas attention
  • l'option "commit" permet de régler la durée de conservation des données en cache RAM avant écriture : en passant la valeur par défaut de 5 s à 120 s, on multiplie par 60 la durée de vie du disque Flash et on passe ainsi de 6 mois à 30 ans de durée de vie  smiley-eek... Au détriment de la granularité en termes de perte de données

C'est pourquoi personnellement, je recommanderais l'ext4 avec ou sans journalisation (on peut la désactiver avec l'option "noload", cf. la doc de l'ext4, on obtient alors l'équivalent d'un ext2 aux stéroïdes  smiley-twist).

De plus, le noyau ne possède aucun support "bas niveau" pour un quelconque filesystem, que ce soit ext2, ext3, ext4, jffs2, squashfs, etc. : c'est juste que le module mkod-fs-ext2 est intégré par défaut dans la configuration noyau d'OpenWRT. Mais si on construit son propre noyau, on peut changer cela et mettre l'ext4 à la place ou en plus.

Il n'y a en tous cas aucun risque de "bourrage" de la clé USB, mais il convient toutefois de bien comprendre ce que l'on fait, car cela peut conduire à des situations d'usure prématurée de la clé USB à plus ou moins long terme, donc gaffe !

45  International / Français / Re: WR703N + VinciDuino on: August 23, 2012, 04:55:57 pm
1) Une fois recompilé mon firmware avec les changements de .config je le flash de la façon suivante :
- copie (scp) de openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin dans /tmp
- mtd write /tmp/openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin firmware

Je perd mes réglages à chaque fois (adresses IP, mot de passe, etc ...)

Y a t'il un moyen de faire un upgrade sans tout casser ?

J'ai essayé aussi avec openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin mais je n'ai pas vu de différence
Oui : d'abord, il faut utiliser l'image "openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin" et pas la "openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin" qui est faite pour écraser le firmware TP-Link d'origine.

Ensuite, il ne faut pas utiliser "mtd write" qui écrabouille joyeusement la partition mtd, mais l'utilitaire "sysupgrade" avec l'option "-c" pour préserver les changements dans "/etc/" :
Code:
root@TL-WR703N:~# sysupgrade --help
Usage: /sbin/sysupgrade [options] <image file or URL>

Options:
        -d <delay>   add a delay before rebooting
        -f <config>  restore configuration from .tar.gz (file or url)
        -i           interactive mode
        -c           attempt to preserve all changed files in /etc/
        -b / --create-backup <file>
                     create .tar.gz of files specified in sysupgrade.conf
                     then exit. Does not flash an image. If file is '-',
                     i.e. stdout, verbosity is set to 0 (i.e. quiet).
        -r / --restore-backup <file>
                     restore a .tar.gz created with sysupgrade -b
                     then exit. Does not flash an image. If file is '-',
                     the archive is read from stdin.
        -n           do not save configuration over reflash
        -F / --force
                     Flash image even if image checks fail, this is dangerous!
        -q           less verbose
        -v           more verbose
        -h / --help  display this help
A la fin du flashage, sysupgrade va sauvegarder tes paramètres, rebooter automatiquement le routeur et remettre tes paramètres en place.

2) J'ai inséré une clé USB formattée FAT32 (oui j'ai bien ajouté aussi le kmod-fs-vfat)
Mais j'obtient :
Code:
root@OpenWrt:/# ls -Al /dev/sd*
brw-r--r--    1 root     root        8,   0 Sep  8 15:52 /dev/sda
brw-r--r--    1 root     root        8,   1 Sep  8 15:52 /dev/sda1
root@OpenWrt:/# mount -t vfat /dev/sda1 /mnt/sda1
[  645.560000] FAT-fs (sda1): codepage cp437 not found
mount: mounting /dev/sda1 on /mnt/sda1 failed: Invalid argument
root@OpenWrt:/#

Je te déconseille fortement d'utiliser une clé formattée en FAT32 si tu veux faire un "pivot root" dessus: le FAT32 ne gère pas les liens symboliques, donc la moitié des trucs ne vont pas fonctionner correctement !!!

Pour le "pivot root", il faut utiliser du ext2/3/4, sinon les chances d'y arriver sont minces ! Formatte ta clé sur ton PC Linux en tant que partition primaire ext4, c'est le plus simple.

Sinon pour le problème de "codepage" VFAT, c'est encore une Windowserie qui nécessite l'installation de 2 modules noyaux supplémentaires pour gérer les pages de code du FAT32 :
Code:
opkg install kmod-nls-cp437 kmod-nls-iso8859-1

Bonne chance smiley-wink
Pages: 1 2 [3] 4 5