Arduino Forum

International => Français => Topic started by: barbudor on Jul 25, 2012, 09:02 pm

Title: WR703N + VinciDuino
Post by: barbudor on Jul 25, 2012, 09:02 pm
Bonsoir

J'ai reçu il y a quelques jours mon WR703N commandé sur eBay à un prix défiant toute concurrence.
Le firmware chinois d'origine a été vite remplacé par un dérive d'OpenWRT (http://www.madox.net/blog/projects/tp-link-tl-wr703n/) en provenance d'Australie.
Un petit bricolage pour rendre la console série accessible via un adaptateur Sparkfun FT232L externe.
Et ma VinciDuino connecté en USB avec un Blink modifié pour envoyer un "Hello "+ compteur sur le port série virtuel de l'USB.

Et voilà :
(http://barbudor.free.fr/files/703+vinci.jpg)

(http://barbudor.free.fr/files/703+vinci_2.jpg)
(Ca marche aussi avec SSH)

Une futur BlyssuinoBox ?

maintenant il va falloir apprendre à configurer la distri d'OpenWRT pour en faire ce que je veux.
Il y a plein de trucs qui ne me servent à rien.
Du pain sur la planche pour le reste de l'été.

(Est-ce vraiment raisonnable d'emporter son Arduino sur la plage ?)
Title: Re: WR703N + VinciDuino
Post by: al1fch on Jul 25, 2012, 10:01 pm
Bonsoir
Très intéressant !!
Je connais des Fonera et même des WRT54G qui prennent un coup de vieux !!
Title: Re: WR703N + VinciDuino
Post by: skywodd on Jul 26, 2012, 01:58 am
Salut barbudor,


J'ai reçu il y a quelques jours mon WR703N commandé sur eBay à un prix défiant toute concurrence.
Le firmware chinois d'origine a été vite remplacé par un dérive d'OpenWRT (http://www.madox.net/blog/projects/tp-link-tl-wr703n/) en provenance d'Australie.

Il me semble que tu m'avais donné le lien ebay par MP mais je ne le retrouve plus :smiley-zipper:
Tu pourrais me (re)donner le numéro ebay de l'objet ou juste le non du vendeur que tu as utilisé ?
(DealExtreme est en "backorder" pour le WR703N ... à éviter donc ...)


Un petit bricolage pour rendre la console série accessible via un adaptateur Sparkfun FT232L externe.
Et ma VinciDuino connecté en USB avec un Blink modifié pour envoyer un "Hello "+ compteur sur le port série virtuel de l'USB.

Question stupide, c'est du 3v3 ou du 5v pour les signaux TTL ?

Le wiki de openWRT est assez peu documenté sur le port série hardware :
Quote
Serial console

The serial console connector does not utilise the regular TP-Link pinouts. Two pads labelled TP_OUT and TP_IN are the TX and RX signals.

Baudrate du bootloader CFE (obligatoire pour le flash si je veux avoir mon firmware avec kernel maison) ?
Niveaux TTL ?
etc ...


Une futur BlyssuinoBox ?

Personnelement j'y compte bien 8)


maintenant il va falloir apprendre à configurer la distri d'OpenWRT pour en faire ce que je veux.
Il y a plein de trucs qui ne me servent à rien.
Du pain sur la planche pour le reste de l'été.

Moi je vais surement partir sur une distribution DD-WRT, en fait tout dépendra du makefile.
Si c'est toujours celui que j'utilisai pour compiler mes drivers/kernel maison pour mon WRT54GL je resterai sur une base connu, sinon je partirai à l'aventure avec openWRT ^_^


(Est-ce vraiment raisonnable d'emporter son Arduino sur la plage ?)

Ya pas de raison, les enfants emmènent bien leurs jouets à la plage, pourquoi les grands enfants ne pourrons pas amener leur jouets eux aussi :P

(Est-ce vraiment bien raisonnable de répondre sur le forum à 2h du mat ...)
Title: Re: WR703N + VinciDuino
Post by: Artouste on Jul 26, 2012, 01:11 pm

Bonsoir

J'ai reçu il y a quelques jours mon WR703N commandé sur eBay à un prix défiant toute concurrence.
Le firmware chinois d'origine a été vite remplacé par un dérive d'OpenWRT (http://www.madox.net/blog/projects/tp-link-tl-wr703n/) en provenance d'Australie.
Un petit bricolage pour rendre la console série accessible via un adaptateur Sparkfun FT232L externe.
Et ma VinciDuino connecté en USB avec un Blink modifié pour envoyer un "Hello "+ compteur sur le port série virtuel de l'USB.


(Ca marche aussi avec SSH)

Une futur BlyssuinoBox ?

maintenant il va falloir apprendre à configurer la distri d'OpenWRT pour en faire ce que je veux.
Il y a plein de trucs qui ne me servent à rien.
Du pain sur la planche pour le reste de l'été.

(Est-ce vraiment raisonnable d'emporter son Arduino sur la plage ?)



Bonjour Barbudor
sympa ton test
j'avais mis le WR703N dans mes achats à faire pour jouer a  partir de l'automne  8)
d'ici là tu aura eu le temps de déverminer, ce sera ça de moins à faire "pour les autres"   :)

neanmoins si tu à l'occasion de faire le test :
en utilisation un peu soutenu WIFI , la conso reelle sur le +5V est de combien ?

Title: Re: WR703N + VinciDuino
Post by: barbudor on Jul 26, 2012, 03:59 pm
Dernier message avant les vacances .....
J'emmène l'Arduino mais peut être pas Internet :D

Quote
Il me semble que tu m'avais donné le lien ebay par MP mais je ne le retrouve plus

Chercher WR703N sur ebay
Le vendeur que j'ai choisit et Rosefireboy
Mais ils sont plusieurs à moins de 20€ port compris
Le mien est arrivé en vrac dans une enveloppe matelassée. Transfo prise US Mais adaptateur Europe fournit ;)

Quote
Question stupide, c'est du 3v3 ou du 5v pour les signaux TTL ?

Pas du tout stupide mon cher Skywodd.
Mesuré à 2.7V, polarité TTL d'où branchement direct sur le FT232
Sur mon sparkfun j'ai coupée la piste qui va sur la pin VIO du FT232. Donc la tension d'alim des IO doit toujours être fournie par la carte cible, c'est ce qui me semble le plus fiable. Pas besoin de mettre des zener ou autre adaptation.
Donc je pique aussi le 2V7 sur une résistance de pull-up pas loin pour alimenter la partie IO du FT232.

Quote
Baudrate du bootloader CFE (obligatoire pour le flash si je veux avoir mon firmware avec kernel maison) ?

115200 pour UBoot puis le kernel
Le shell est dispo direct sur la liaison série sans besoin de se logguer

Quote
Est-ce vraiment bien raisonnable de répondre sur le forum à 2h du mat .

Non mais kesse kon nenna a foutre

Quote
en utilisation un peu soutenu WIFI , la conso reelle sur le +5V est de combien ?

J'en suis pas encore là :D


Le PCB du 703N est légèrement plus petit que ma VinciDuino qui est déjà bien petite pour une Arduino.

Title: Re: WR703N + VinciDuino
Post by: skywodd on Jul 26, 2012, 06:18 pm

Chercher WR703N sur ebay
Le vendeur que j'ai choisit et Rosefireboy
Mais ils sont plusieurs à moins de 20€ port compris
Le mien est arrivé en vrac dans une enveloppe matelassée. Transfo prise US Mais adaptateur Europe fournit ;)

Ok je look tout ça ;)


Pas du tout stupide mon cher Skywodd.

Normal je suis un génie ... ou pas :P


Mesuré à 2.7V, polarité TTL d'où branchement direct sur le FT232
Sur mon sparkfun j'ai coupée la piste qui va sur la pin VIO du FT232. Donc la tension d'alim des IO doit toujours être fournie par la carte cible, c'est ce qui me semble le plus fiable. Pas besoin de mettre des zener ou autre adaptation.
Donc je pique aussi le 2V7 sur une résistance de pull-up pas loin pour alimenter la partie IO du FT232.

2v7, ok donc c'est de la logique basse tension comme sur les ARM.
On as de la chance ça aurait pu être de la logique trés basse tension 1v8 maintenant que j'y pense :smiley-sweat:
Je prend note de ton hack ftdi, ça va mettre d'une grande utilité ;)


Non mais kesse kon nenna a foutre

:smiley-mr-green:


Le PCB du 703N est légèrement plus petit que ma VinciDuino qui est déjà bien petite pour une Arduino.

Arg... ma olimexino est de la même taille que la vinciduino je crois ... j'espère que ça va passer, sinon je mettrai une de mes cartes teensy à contribution.
Title: Re: WR703N + VinciDuino
Post by: barbudor on Jul 26, 2012, 07:07 pm
Tu veux mettre l'olimexduino dans le même boitier ?
T'es fou
Il manque 1mm dans chaque sens pour que la vinciduino rentre
Title: Re: WR703N + VinciDuino
Post by: skywodd on Jul 26, 2012, 08:54 pm

Tu veux mettre l'olimexduino dans le même boitier ?
T'es fou
Il manque 1mm dans chaque sens pour que la vinciduino rentre

Arg ... j'avais prévu de faire un truc propre, avec un hub usb intégré dans le boitier + clef usb (pour le prog) + arduino & kit 433MHz :smiley-zipper:
Bon je regarderai comment faire une fois le matos arrivé sur mon bureau :smiley-mr-green:
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 03, 2012, 11:47 pm
Bonjour à tous!

Un petit nouveau :~

Je me permet de poster dans ce fil de discussion, car j'ai un WR703N depuis novembre dernier, que j'ai déjà pas mal bidouillé (hard et soft), mais dont je ne voyais pas trop comment l'utiliser pour faire quelque chose qui dialogue avec le vrai monde jusqu'à présent!

Et puis je suis tombé par hasard (merci Google !) ici, où j'ai découvert l'existence de la VinciDuino. J'avais déjà une Duemilanove, mais je ne l'utilisait plus depuis un moment, pour cause de trop de cartes sur lesquelles bidouiller (Raspberry Pi, OLinuXino-Micro et une carte USBug de ma conception à base de ARM-Cortex LPC1343 !!!).

J'ai été frappé par la concordance de taille entre la VinciDuino et le WR703N: malheureusement, il y juste quelques mm en trop  =(

J'ai donc tout de même commandé une VinciDuino en kit et je viens juste de finir de la monter et de flasher le bootloader dessus ! On ne se refait pas...

Quelques précisions: l'UART console du WR703N est en LVTTL (3.3 V) et pas en 2.7 V, et donc n'importe quel adaptateur USB/série avec 2 fils TXD/RXD fait l'affaire (pour ma part, j'ai coupé un câble CA42 USB acheté sur eBay). Le moins cher est probablement l'adaptateur "USB 2.0 to UART TTL 6PIN Connector Module Serial Converter CP2102 New" sur Ebay à un peu plus de 2€, port compris.

Sinon pour les consos, cf. le Wiki d'OpenWRT (http://wiki.openwrt.org/toh/tp-link/tl-wr703n):
Quote
Power consumption
This router is standardly powered via USB at 5V. The voltage regulator inside is unknown, but its input voltage should be at least between 3.7V - 5.5V, but not over 5.5V. The device will get damaged at too high voltages. Maximum current draw at 5V is 185mA (OpenWrt boot), average current draw with WiFi at 18dBm is 100mA, without WiFi 80mA. Hence the average router power consumption is 0.5W, which is incredibly low.

Power consumption will be higher if a USB device is attached to its USB port!
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 04, 2012, 05:14 pm

Quelques précisions: l'UART console du WR703N est en LVTTL (3.3 V) et pas en 2.7 V


A moins que mon multimètre soit complètement à l'ouest, j'ai bel et bien mesuré un VCC a 2.7V
Peut être pas la même révision de hard si tu as le tien depuis longtemps.
J'ai pas emporté mon multimètre en Corse donc je ne peux pas re-vérifier avant 2 semaines XD
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 04, 2012, 07:59 pm
A moins que mon multimètre soit complètement à l'ouest, j'ai bel et bien mesuré un VCC a 2.7V
Peut être pas la même révision de hard si tu as le tien depuis longtemps.
J'ai pas emporté mon multimètre en Corse donc je ne peux pas re-vérifier avant 2 semaines XD

Loin de moi l'idée de remettre en cause tes mesures !

Il doit y avoir une explication : soit la version de PCB, comme tu l'indiques (le mien est un PCB "Rev:1.1", le boîtier du WR703N est lui marqué "Ver:1.3"), ou encore la source d'alimentation (le mien est alimenté par l'USB de mon PC portable à l'aide du câble fourni par TP-Link).

J'ai donc sorti l'oscillo pour en avoir le coeur net et voici ce que j'obtiens lors du boot sur le signal TP_OUT : un niveau haut à 3.08 V.

Il n'y a donc pas de scrupules à avoir et on peut donc utiliser un convertisseur USB <=> LVTTL de base !
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 04, 2012, 09:41 pm

A moins que mon multimètre soit complètement à l'ouest, j'ai bel et bien mesuré un VCC a 2.7V
Peut être pas la même révision de hard si tu as le tien depuis longtemps.
J'ai pas emporté mon multimètre en Corse donc je ne peux pas re-vérifier avant 2 semaines XD

Loin de moi l'idée de remettre en cause tes mesures !

Je voie deux hypothèses :
- il ya de subtiles différences suivant les différentes révisions du routeur
- le cpu (de type ARMv7 il me semble) travaille en +2v7 pour le cpu (ce qui est la norme en µc ARM) mais utilise une alimentation 3v3 pour les périphériques interne

@Squonk42: Pour en avoir le cœur net :
- mesure la tension en VCC sur ta carte :
--> si 3v3 l'hypothèse des différences entre révisions semble la plus probable,
--> si 2v7 l'hypothèse du cpu en +2v7 avec une alimentation des périphériques en 3v3 semble la plus probable,
--> si 1v8 on prend la fuite :smiley-mr-green: (1v8 = tension des nouveaux cpu ARM)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 05, 2012, 12:13 am
D'après le Wiki OpenWRT (http://wiki.openwrt.org/toh/tp-link/tl-wr703n), il y a des versions de routeur TL-WR703N de 1.0 à 1.6. Mais ceci ne correspond pratiquement qu'à des mises à jour du firmware (chinois), et je n'ai toujours vu que des versions de PCB 1.0 (rare !) ou 1.1. Cela se confirme en faisant une recherche Google Image de "WR703N" des images à dominante verte  :smiley-mr-green:

Voici à quoi ressemble mon PCB (c'est l'image d'OpenWRT, le mien est pareil, à part le "date code" en bas à gauche qui est "11 38" au lieu de "11 52"):
(http://wiki.openwrt.org/_media/toh/tp-link/tl-wr703n_top.jpg?w=600)
Le processeur est un Atheros AR7240 CPU (400Mhz), c-à-d un MIPS24kc et non pas un CPU ARM, intégré dans le chip Atheros AR9331 "U1" avec la radio Wifi, avec un bus DDR à 400 MHz, un bus AHB à 200 MHz, tout ça à partir d'un quartz à 25 MHz.

Pour ce qui est des tensions, c'est encore pire que le pire de tes cauchemars  ]:D

Non, sans blaguer, il faut simplement regarder les points de test au dos du PCB:
(http://wiki.openwrt.org/_media/toh/tp-link/tl-wr703n_bottom.jpg?w=600)
Je vous laisse le plaisir de les chercher tous, mais on trouve :


Donc tout va bien, il n'y a pas de 1.8 V   ;)

C'est vrai qu'il manque encore le 2.8 V et le 1.0 V, sinon, on les aurait toutes ! Trève de plaisanterie, cette multiplication des tensions d'alimentation dans les SoCs est assez courante, car elle permet de limiter au maximum les pertes de puissance (P=UxI...).

Pourtant, les seuls chips régulateurs externes sont "U5" (en haut à gauche de la deuxième photo), qui semble être un régulateur à découpage (bobine "L14" à côté), et "U6" qui semble être un régulateur linéaire à faible chute de tension ("LDO" = "Low Drop-Out"). Les autres tensions sont probablement générées par des LDOs intégrés dans le SoCs Atheros "U1" lui-même.

Les chips identifiés "D1" et "D2" (de chaque côté du PCB) sont des doubles diodes de protection contre les décharges électrostatiques ("ESD") pour l'USB, ceux identifiés "Q1" et "Q2" sont de simples transistors dont l'utilité est inconnue; le chip "U2" est la DDR, le chip "U3" la Flash série SPI, je ne trouve pas "U4". "T1" est le transformateur Ethernet. "Y1" est le quartz 25 MHz, le reste n'est constitué que de composants passifs sans intérêt. Voilà pour le tour du proriétaire !

Heureusement, l'alimentation des périphériques est encore très souvent en 3.3 V (comme ici) pour des raisons de compatibilité avec les chips externes, ouf !
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 05, 2012, 01:27 pm

Le processeur est un Atheros AR7240 CPU (400Mhz), c-à-d un MIPS24kc et non pas un CPU ARM, intégré dans le chip Atheros AR9331 "U1" avec la radio Wifi, avec un bus DDR à 400 MHz, un bus AHB à 200 MHz, tout ça à partir d'un quartz à 25 MHz.

Oups, j'étais dans mes ARM mais oui aprés relecture c'est du cpu Atheros (dommage ça aurait était bien sympa d'avoir du ARM :smiley-sweat:)


Donc tout va bien, il n'y a pas de 1.8 V   ;)

C'est vrai qu'il manque encore le 2.8 V et le 1.0 V, sinon, on les aurait toutes ! Trève de plaisanterie, cette multiplication des tensions d'alimentation dans les SoCs est assez courante, car elle permet de limiter au maximum les pertes de puissance (P=UxI...).

... ok ... moi qui trouvé galère de travailler avec 3 tensions (3v3, 2v7, 1v8) avec mes cpu ARM je sent que je vais m'amuser ... ou pas :smiley-sweat:


Heureusement, l'alimentation des périphériques est encore très souvent en 3.3 V (comme ici) pour des raisons de compatibilité avec les chips externes, ouf !

Alléluia ! :smiley-mr-green:
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 05, 2012, 02:20 pm
Je viens juste de poster une description ultra-détaillée du PCB du TL-WR703N (attention, en Anglais, âmes sensibles s'abstenir !) :

https://forum.openwrt.org/viewtopic.php?pid=174105#p174105

Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 05, 2012, 03:42 pm

Je viens juste de poster une description ultra-détaillée du PCB du TL-WR703N (attention, en Anglais, âmes sensibles s'abstenir !) :

https://forum.openwrt.org/viewtopic.php?pid=174105#p174105

\o/ nikel, merci pour le méga coup de main !
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 06, 2012, 11:18 pm
Voici quelques liens sur des modifs hardware du WR703N dans le forum OpenWRT :

Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 06, 2012, 11:48 pm

Voici quelques liens sur des modifs hardware du WR703N dans le forum OpenWRT :
  • Internal USB hub and flashdrive upgrade (https://forum.openwrt.org/viewtopic.php?id=34188)

  • Converting MicroB USB to USB2serial+Power on TP-WR703N (https://forum.openwrt.org/viewtopic.php?id=35682)

  • External SMA antenna connector (https://forum.openwrt.org/viewtopic.php?pid=152457#p152457)

  • TL-MR3420 flash modification (https://forum.openwrt.org/viewtopic.php?id=28343) (s'applique aussi au TL-WR703N)



Bonsoir Squonk42
Sympa tes démarches ici de suivis de la "bestiole" :smiley-mr-green:
Je regarde tout ça actuellement d'un œil distrait, mais neanmoins très attentif  8)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 07, 2012, 07:23 am

Bonsoir Squonk42
Sympa tes démarches ici de suivis de la "bestiole" :smiley-mr-green:
Je regarde tout ça actuellement d'un œil distrait, mais neanmoins très attentif  8)

De rien, je trouve cette plateforme très intéressante, surtout liée à l'Arduino !

J'ai dans l'idée de réaliser une carte (problement à base d'ATMega32U4), d'un chip hub USB, voire d'un adaptateur USB/UART qui se mettrait pile-poil à la place du couvercle bleu...

Si quelqu'un a des idées ou des souhaits à ce sujet, toutes les bonnes volont?s sont bienvenues !
Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 08, 2012, 02:58 pm
Bonjour
Vu les liens de squonk42

appel aux petits genies du C,linux, du WRT et autres details   8)

Il semblerait que ça :
http://www.ldlc.com/fiche/PB00123703.html

soit BidComp  :smiley-mr-green:  (Bidouille Compatible) avec le WR703N

Pour des raisons parfaitement hermétiques et personnelles  :smiley-mr-green:
j'ai plus de facilités de commander ça.

merci pour vos vos avis, conseils et surtout commentaires

Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 08, 2012, 03:31 pm
Oui, je confirme que le TP-Link TL-MR3020 est très proche au niveau matériel du TL-WR703N, et que tous les hacks soft/hards sont compatibles.

Bien que légèrement plus gros (74 mm x 67 mm x 22 mm au lieu de 57 mm x 57 mm x 18 mm) et plus cher, il a l'avantage d'être disponible en France, avec une interface en Français/Anglais et non en Chine avec une interface Chinoise uniquement, et d'avoir 2 antennes internes au lieu d'1 seule...

Sans parler de la console série qui est disponible sur un connecteur (non monté) au pas de 2,54 cm (bien plus facile !), et qu'il a plus de LEDs et de boutons dispos !

Après, il faut aussi voir que le gros de l'activité actuelle est sur le TL-WR703N...
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 08, 2012, 05:15 pm
Salut,


appel aux petits genies du C,linux, du WRT et autres details   8)

Il semblerait que ça :
http://www.ldlc.com/fiche/PB00123703.html

soit BidComp  :smiley-mr-green:  (Bidouille Compatible) avec le WR703N

Qu'on ne me parle plus d'openWRT avant 50-60ans, j'en suis à ma 12éme compilation foireuse :smiley-yell:
Non je rigole, openWRT ça roxe, bien plus que DD-WRT au final :smiley-eek:

Barbudor avoue que c'était un cadeau piége ta carte NGW100 :smiley-mr-green:
La carte SD est reconnu par le bootloader mais pas par openWRT ... même avec les même drivers :smiley-zipper:
(Je suis en train de devenir fou avec ce truc, espérons que ce sera pas pareil avec le WR703N et le rootfs sur clef usb :smiley-zipper:)


Pour des raisons parfaitement hermétiques et personnelles  :smiley-mr-green:
j'ai plus de facilités de commander ça.

35€ ... huuuuuu chère la petite bête comparé au WR703N ...


Bien que légèrement plus gros (74 mm x 67 mm x 22 mm au lieu de 57 mm x 57 mm x 18 mm) et plus cher, il a l'avantage d'être disponible en France, avec une interface en Français/Anglais et non en Chine avec une interface Chinoise uniquement, et d'avoir 2 antennes internes au lieu d'1 seule...

Deux antennes au lieu d'une, c'est pas négligeable !
Pas de différence au niveau de la RAM/Flash ?


Sans parler de la console série qui est disponible sur un connecteur (non monté) au pas de 2,54 cm (bien plus facile !), et qu'il a plus de LEDs et de boutons dispos !

C'est du bonus ça :P


Après, il faut aussi voir que le gros de l'activité actuelle est sur le TL-WR703N...

C'est le même chipset ?
Même layout (uboot/kernel/rootfs/env) pour la flash ?
Si oui ça devrait pas être un probléme de cross-compiler du WR703N vers le MR3020.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 08, 2012, 05:29 pm

La carte SD est reconnu par le bootloader mais pas par openWRT ... même avec les même drivers :smiley-zipper:
(Je suis en train de devenir fou avec ce truc, espérons que ce sera pas pareil avec le WR703N et le rootfs sur clef usb :smiley-zipper:)

Le "pivot root", c'est toujours un peu chaud, mais c'est bien documenté car il y en a qui s'y sont cassé les dents !


Deux antennes au lieu d'une, c'est pas négligeable !
Pas de différence au niveau de la RAM/Flash ?

Ca peut effectivement faire une différence...

Non, pas de différence de Flash/DDR SDRAM: 4MB/32MB, même chips !



Sans parler de la console série qui est disponible sur un connecteur (non monté) au pas de 2,54 cm (bien plus facile !), et qu'il a plus de LEDs et de boutons dispos !

C'est du bonus ça :P

Oui, surtout que le cuivre a tendance à se délaminer du FR4, c'est une maladie chronique des PCBs Chinois :)


C'est le même chipset ?
Même layout (uboot/kernel/rootfs/env) pour la flash ?
Si oui ça devrait pas être un probléme de cross-compiler du WR703N vers le MR3020.

C'est exactement le même chipset, pour le layout, il faut vérifier mais je crois bien que oui ! La seule différence notable est sur les GPIOs (LEDs et boutons), beaucoup plus nombreuses sur le MR3020 que sur le WR703N.
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 08, 2012, 05:46 pm

Le "pivot root", c'est toujours un peu chaud, mais c'est bien documenté car il y en a qui s'y sont cassé les dents !

C'est bien documenté, sauf pour la carte ATNGW100 MKI :smiley-yell:
Saloperie de kmod-mmc-atmelmci ... le pire c'est que l'image kernel d'ATMEL marche ...


Ca peut effectivement faire une différence...

J'ai pas regardé dans openWRT mais avec DD-WRT tu peut avoir une antenne pour la réception et une pour l'émission, ça fait un boost de vitesse en wifi non négligeable.


C'est exactement le même chipset, pour le layout, il faut vérifier mais je crois bien que oui ! La seule différence notable est sur les GPIOs (LEDs et boutons), beaucoup plus nombreuses sur le MR3020 que sur le WR703N.

Kmod-mmc-gpio ? :P
Ce serait démentielle d'avoir un slot pour carte SD.
(Du coup j'hésite, WR703N ou MR3020 ... :smiley-yell:)
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 08, 2012, 08:32 pm
J'ai pris un MR3020 pour m'en servir tel quel (amazon) et un 703N (ebay) pour le bricoler.
C'était l'occasion de tester un achat ebay pas cher et sans trop de risque. Et quite à le briquer, je préférais le faire sur un modèle à 20€ qu'un à 36€.
Sinon, sur le fofo OpenWRT quelqu'un a dit qu'on pouvait flasher le firmware MR3020 anglais sur un 703N...

@skywodd: Pour le NGW100, désolé ce n'était pas un cadeau piégé intentionnel ;)
Tu n'as qu'a le repasser à quelqu'un d'autre XD
Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 08, 2012, 08:59 pm

...
35€ ... huuuuuu chère la petite bête comparé au WR703N ...
...

Bonsoir skywodd
J'ai bien conscience que vu de ton budget d'étudiant impécunieux (ça c'est aussi un quasi pléonasme :smiley-mr-green: ) , cela fait une différence de quasi 50%, mais dans mon cas cela est beaucoup plus simple pour moi que de procéder ainsi  8) .

Phrase de vieux c.n : "tu comprendra pourquoi plus tard, termine tes études d'abord ! "  :)

Bon : vu les différents avis (squonk42,barbudor) , je vais sortir le carnet de bons de commande  8)
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 08, 2012, 09:42 pm

@skywodd: Pour le NGW100, désolé ce n'était pas un cadeau piégé intentionnel ;)
Tu n'as qu'a le repasser à quelqu'un d'autre XD

Non je suis têtu, c'est pas un driver qui va me résister ]:)
Ça fait 4 jours que je suis dessus :P
J'ai réussi à faire marcher le linux de ATMEL, celui de openWRT tournera lui aussi ou je mange ma carte SD :smiley-mr-green:


Phrase de vieux c.n : "tu comprendra pourquoi plus tard, termine tes études d'abord ! "  :)

Si c'est le grand sage qui le dit :smiley-mr-green:


Bon : vu les différents avis (squonk42,barbudor) , je vais sortir le carnet de bons de commande  8)

Quitte à prendre un routeur autant prendre celui qui as le plus de potentiel, pour ça le MR3020 semble le plus intéréssant (gpio dispo = mod carte sd, voir + (mod i2c/spi/1wire/...)).
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 08, 2012, 10:04 pm

gpio dispo = mod carte sd


Tu as vu quelque chose de précis là dessus ?

Sinon : USB + Hub + mini clefs USB ou mini lecteur de carte µSD c'est parfait pour rajouter un stockage supplémentaire.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 08, 2012, 10:07 pm
Y a personne qui peut avoir des réducs quelque part ? $) Sinon il faudrait faire un "GP" (Group Buy). Au besoin, j'ai un contact à Shenzen.

Acheter sur eBay en Chine, je le fais en permanence en utilisant PayPal: je n'ai jamais eu de problème, à part une fois pour un dongle USB RTL-SDR (radio logicielle) où soit-disant le matériel était parti alors qu'il n'avait pas le produit, et où le gars ma remboursé sans discuter!

Entre le WR703N et le MR3020, je pense qu'il n'y a pas de différence fondamentale, et peut-être même à terme le MR3020 sera-t-il plus pérenne que le WR703N qui n'est disponible que sur le marché Chinois. Mais c'est vrai que payer le double pour la même chose, cela fais un peu mal au derrière, et je comprends que le budget étudiant ne soit pas extensible à l'infini... Moi, j'ai déjà un WR703N canibalisé de partout, et un deuxième en route depuis la Chine... C'est plus sport :D

Pour la carte SD sur GPIO, ce n'est pas à mon humble avis une solution très viable question vitesse. Pour avoir du volume de stockage qui pédale, mieux vaut opter plutôt pour une clé USB genre SanDisk Cruzer Fit:
(http://www7.pcmag.com/media/images/269902-sandisk-cruzer-fit.jpg)

Il y a une promo actuellement sur le vendeur Amazon MarketPlace GizzmoHeaven (http://www.amazon.fr/gp/product/B005FYNSZA/ref=as_li_ss_tl?ie=UTF8&tag=pcas-21&linkCode=as2&camp=1642&creative=19458&creativeASIN=B005FYNSZA): le modèle 16GB est à 8,99€  :smiley-eek:

A bon entendeur, salut ! (Dépêchez-vous, ça va pas durer aussi longtemps que le bon pain !)

Un petit hub USB qu'on intègre dans le WR703N comme cela (https://forum.openwrt.org/viewtopic.php?id=34188), et hop !  :smiley-mr-green:
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 08, 2012, 10:13 pm

Tu as vu quelque chose de précis là dessus ?

Kmod-mmc-gpio + le n° des gpio en question = carte SD
J'ai passé mes deux dernières soirée dessus, ya vraiment des trucs énormes dans les modules kernel de openWRT.
(I2C-gpio, 1wire-gpio, SPI-gpio, driver EEPROM i2c, lcd 2x16, capteur dallas, ...)


Sinon : USB + Hub + mini clefs USB ou mini lecteur de carte µSD c'est parfait pour rajouter un stockage supplémentaire.

Oui mais ça fait trop propre :smiley-mr-green:
Rien ne vaut un support de carte micro sd soudé de manière bien crade sur le coté du routeur 8)
(Bon ok pour la vitesse ce serait pas terrible :smiley-sweat:)
Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 08, 2012, 10:35 pm

...
à part une fois pour un dongle USB RTL-SDR (radio logicielle) où soit-disant le matériel était parti alors qu'il n'avait pas le produit, et où le gars ma remboursé sans discuter!
...

Tiens , tiens   :smiley-mr-green:
SDR evoqué ici
http://arduino.cc/forum/index.php/topic,109892.msg865028.html#msg865028
Apparté
j'ai commandé chez DX (sur deniers perso  :smiley-mr-green: )
une EZcap 668 qui s'avère finalement une EZcap645 après décapsulage (le tuner n'est pas un E4000 mais un FC0013)
Apres info DX a maintenant changé sa description.
ceci étant après passage au banc,  l'utilisation avec SDR# (Rev541 à cet instant) est bien sympathique , au moins pour ce qui m'intéresse.
DX m'a fait comme d'hab un credit de qq $ sur une prochaine commande lorsqu'il y a (petit) litige
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 08, 2012, 10:44 pm


...
à part une fois pour un dongle USB RTL-SDR (radio logicielle) où soit-disant le matériel était parti alors qu'il n'avait pas le produit, et où le gars ma remboursé sans discuter!
...

Tiens , tiens   :smiley-mr-green:
SDR evoqué ici
http://arduino.cc/forum/index.php/topic,109892.msg865028.html#msg865028
Apparté
j'ai commandé chez DX (sur deniers perso  :smiley-mr-green: )
une EZcap 668 qui s'avère finalement une EZcap645 après décapsulage (le tuner n'est pas un E4000 mais un FC0013)
Apres info DX a maintenant changé sa description.
ceci étant après passage au banc,  l'utilisation avec SDR# (Rev541 à cet instant) est bien sympathique , au moins pour ce qui m'intéresse.
DX m'a fait comme d'hab un credit de qq $ sur une prochaine commande lorsqu'il y a (petit) litige

J'avais commandé chez win-buy88, en fait c'était plutôt loose-buy00 :smiley-mr-green:
J'ai fini par trouver ce vendeur (http://stores.ebay.fr/Pella-CS?_trksid=p4340.l2563) fiable sur eBay en Allemagne à 17€ port compris: tuner E4000 8)

Edit de Jean-François : j'ai mis l'adresse de la boutique du vendeur plutôt que celle d'un objet...
Ok, désolé, c'est effectivement préférable, ne serais-ce qu'à long terme quand la vente aura disparue !
Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 08, 2012, 11:03 pm

...
J'avais commandé chez win-buy88, en fait c'était plutôt loose-buy00 :smiley-mr-green:
J'ai fini par trouver ce vendeur (http://cgi.ebay.fr/itm/110673922593) fiable sur eBay en Allemagne à 17€ port compris: tuner E4000 8)

C'est un peu hors topic, mais tampic   :smiley-mr-green:

fais gaffe, tu va te faire engueuler et à juste titre par JF pour le lien Eb..y  :smiley-mr-green:

D'après ce que j'en ai compris, le tuner E4K n'est plus fondu depuis ~1 an , ce que l'on trouve "encore" sur le "marché" en new associé au RTL ne sont plus que de la queue de stock.
A  titre perso et pour l'utilisation "ludique" que j'en fait, je n'ai pas rencontré de limitations avec le FC0013 Vs E4K.




Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 08, 2012, 11:29 pm

fais gaffe, tu va te faire engueuler et à juste titre par JF pour le lien Eb..y  :smiley-mr-green:

OK  :smiley-roll-sweat:
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 15, 2012, 09:28 am
2 excellentes nouvelles concernant le couple WR703N + VinciDuino :



Pour le premier point, j'ai commencé par compiler depuis scratch en cible avr sur mon PC Linux binutils + gcc + avr-libc + avrdude, en suivant le tuto d'avr-libc (http://www.nongnu.org/avr-libc/user-manual/install_tools.html). A part qu'avant de compiler gcc, il faut copier les sources des packages gmp + mpfr + mpc dans l'arborescence de gcc dans des sous-répertoires "gmp", "mpfr" et "mpc", respectivement (cf. la section... "Tools Required for Building the Toolchain for Windows"  :D), tout ça se déroule comme décrit.

En ce qui concerne la partie Arduino proprement dite, il faut d'abord installer (si ce n'est déjà fait) le distribution Arduino pour Linux. Il faut également installer Python (probablement déjà présent) et picocom et enfin ino en suivant le tuto ino (http://inotool.org/#installation).

Pour l'utilisation en ligne de commande de l'Arduino, il suffit alors de suivre le QuickStart (http://inotool.org/quickstart). Je conseille toutefois de créer dès que possible le fichier "ino.ini" décrit à la fin du QuickStart, pour éviter d'avoir à saisir la carte et le port série pour toutes les commandes.

Pour le deuxième point, à savoir compiler du code AVR sur le WR703N, il a fallut que je cross-compile binutils + gcc dans une configuration appelée "Canadian Cross", c-à-d avec une machine de compilation Linux PC, une machine sur laquelle va s'exécuter le compilateur Mips24Kc, et une cible AVR. Là, je suis tombé sur 2 petits bugs : un problème de warning sur variables masquées dans binutils MIPS32 qui se termine en erreur, et un problème de changement de syntaxe assembleur "gas" dans mpfr. Notez qu'il n'y a pas besoin de recompiler avr-libc pour le MIPS, car les binaires sont déjà destinés à l'AVR. avrdude quant à lui est déjà disponible en tant que package pour OpenWRT, ainsi que picocom.

Il me reste maintenant à faire marcher ino sur le WR703N pour pouvoir compiler des sketches Arduino sur le WR703N... Pour cela, il faut que je fasse marcher Python et les dépendances requises par ino sur OpenWRT.

Notez que vu la taille de la chaîne de compilation, il faut absolument utiliser un "extroot" sur clé USB, cela ne tient pas (et de loin  :smiley-sweat:) sur la Flash SPI de 4MB.
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 15, 2012, 10:16 am
Squonk42:
Pour le build de la toolchain avr-gcc tu t'est cassé la tête pour rien (enfin je crois bien)
https://dev.openwrt.org/ticket/8885
(et pour avrdude le package est intégré dans les feeds openWRT)

Pour la compilation arduino en CLI, moyennant un interpréteur ruby il y a un makefile avec générateur de code intégré ici :
https://github.com/takanuva/arduino-makefile

Ou encore la version classique en "pure makefile" :
http://arduino.cc/playground/OpenBSD/CLI
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 15, 2012, 12:57 pm

Squonk42:
Pour le build de la toolchain avr-gcc tu t'est cassé la tête pour rien (enfin je crois bien)
https://dev.openwrt.org/ticket/8885
(et pour avrdude le package est intégré dans les feeds openWRT)

Pour la compilation arduino en CLI, moyennant un interpréteur ruby il y a un makefile avec générateur de code intégré ici :
https://github.com/takanuva/arduino-makefile

Ou encore la version classique en "pure makefile" :
http://arduino.cc/playground/OpenBSD/CLI


Bon d'accord, ce n'est pas une première alors  =(
EDIT: si, si, c'est une première ! Le ticket était une demande pour porter avr-gcc sous OpenWRT, mais cela n'a jamais été réalisé, et le ticket a été fermé il y a 8 jours comme "wontfix"...

Mais le ticket en question date de 18 mois, et le script de construction qui y figure de 2009 ! Pire, les packages binutils-2.17, avr-libc-1.4.6 et gcc-4.1.2 datent de 2007 !!!

J'ai vérifié un par un tous les patches cités : ils ont été intégrés depuis belle lurette et sont donc obsolètes. Il y a même encore dedans le support pour le format binaire COFF qui n'est plus utilisé. Il manque aussi la plupart des CPU récents, comme les ATmega128x et ATxmega et je crois aussi le support pour les petits ATtiny1x.

Pour ma part, j'ai compilé la toolchain avec les dernières versions stables, à savoir:


Je n'ai pas recompilé avrdude pour le WR703N, car j'avais vu qu'il était déjà disponible en tant que package .ipkg.

Par contre, pour la compilation Arduino en CLI, je suis confus :~ Quel est l'outil le plus abouti ? Quelqu'un a-t-il une expérience avec les différentes solutions ?

Vous vous demandez peut-être pourquoi suis-je si excité tout d'un coup par la compilation en CLI ?

Mon but avec le CLI est de pouvoir automatiser la compilation et le flashage de sketches Arduino sur le WR703N, de manière à intégrer cela dans une interface Web basée sur uhttpd et un éditeur Javascript de grande classe (Ace (http://ace.ajax.org/),  à voir absolument : la démo live (http://ace.ajax.org/build/kitchen-sink.html)). Comme c'est du Javascript, cela tourne dans le navigateur client, et est donc très interactif, sans nécessiter de ressources de la part du "petit" WR703N.

Ainsi, non seulement le WR703N est un "super shield" Wifi+Ethernet+USB_host pour le VinciDuino, mais on obtient alors un environnement de programmation Arduino complètement autonome, accessible par un navigateur Web sans aucune installation sur le PC/Mac, tout ça dans une boîte de 6 cm x 6 cm (de la même taille que le VinciDuino)  :smiley-eek:
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 15, 2012, 06:16 pm

EDIT: si, si, c'est une première ! Le ticket était une demande pour porter avr-gcc sous OpenWRT, mais cela n'a jamais été réalisé, et le ticket a été fermé il y a 8 jours comme "wontfix"...

Mais le ticket en question date de 18 mois, et le script de construction qui y figure de 2009 ! Pire, les packages binutils-2.17, avr-libc-1.4.6 et gcc-4.1.2 datent de 2007 !!!

J'avais pas vu, effectivement c'est vieux comme ticket ...
Bon reste plus qu'as faire un patch/paquet et tenter de le proposer sur le svn de openWRT :smiley-sweat:


Par contre, pour la compilation Arduino en CLI, je suis confus :~ Quel est l'outil le plus abouti ? Quelqu'un a-t-il une expérience avec les différentes solutions ?

La version makefile + générateur de code en ruby est la plus aboutie, mais il faut l'interpréteur ruby ...
La version makefile pure est un peu plus restrictive mais elle marche (c'est le principal).


Mon but avec le CLI est de pouvoir automatiser la compilation et le flashage de sketches Arduino sur le WR703N, de manière à intégrer cela dans une interface Web basée sur uhttpd et un éditeur Javascript de grande classe (Ace (http://ace.ajax.org/),  à voir absolument : la démo live (http://ace.ajax.org/build/kitchen-sink.html)). Comme c'est du Javascript, cela tourne dans le navigateur client, et est donc très interactif, sans nécessiter de ressources de la part du "petit" WR703N.

Projet trés intéréssant cet éditeur javascript !
Un duo nginx + makefile en FastCGI et cet éditeur pourrait donner quelque chose de trés intéressant.
Une sorte de Codebender fait maison en gros.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 15, 2012, 08:12 pm

Bon reste plus qu'as faire un patch/paquet et tenter de le proposer sur le svn de openWRT :smiley-sweat:


C'est en cours ! Je vais tenter d'écrire 3 packages OpenWRT, pour copier la structure de Debian : "binutils-avr", "gcc-avr" et "avr-libc" (cherchez l'intrus  :D)

Puis probablement un méta-package "arduino" qui inclut ces 3 là plus "avrdude" et les drivers USB pour l'Arduino.

Je suis en train de compiler le package "binutils-avr".


La version makefile + générateur de code en ruby est la plus aboutie, mais il faut l'interpréteur ruby ...
La version makefile pure est un peu plus restrictive mais elle marche (c'est le principal).


J'ai jeté un coup d'oeil aux différentes solutions. Franchement, le bout en ruby est assez facile à traduire en Shell pur... Ils ont vraiment utilisé ruby pour se faire plaisir ! C'est vrai que celle-ci a l'air plus aboutie que la seconde, mais les 2 ne gèrent pas bien certaines choses que ino semble gérer mieux :



J'ai bien réussi à installer le package "python_mini" pour ino, mais bon quand même, c'est lourd...


Projet trés intéréssant cet éditeur javascript !
Un duo nginx + makefile en FastCGI et cet éditeur pourrait donner quelque chose de trés intéressant.
Une sorte de Codebender fait maison en gros.


Voui !

Je ne connais pas nginx... C'est un serveur HTTP ? Qu'est-ce qu'il peut apporter par rapport à uhttpd qui est utilisé par Luci ?

Et oui, il faut toujours que je ne fasse pas comme tout le monde : au lieu de remonter le compilateur vers le "Cloud", je le descend vers le matériel !
Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 15, 2012, 08:18 pm
bonsoir
je n'ai pas tout bien suivi/assimilé de la manip, mais si j'ai bien compris il s'agi(rai)t de (re)programmer un .INO sur une base arduino distante connectée au WR703N et ça par la liaison ethernet (filaire ou WiFI)  ?
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 15, 2012, 09:06 pm

C'est en cours ! Je vais tenter d'écrire 3 packages OpenWRT, pour copier la structure de Debian : "binutils-avr", "gcc-avr" et "avr-libc" (cherchez l'intrus  :D)

Ok ok ça semble prometteur tout ça :)


Puis probablement un méta-package "arduino" qui inclut ces 3 là plus "avrdude" et les drivers USB pour l'Arduino.

Bonne idée, par contre pour le driver usb c'est juste du serial CDC classique (intégré de base).
Il ne devrait donc pas y avoir de modif à faire (si ce n'est de s'ajouter au groupe dialout) ?


J'ai jeté un coup d'oeil aux différentes solutions. Franchement, le bout en ruby est assez facile à traduire en Shell pur... Ils ont vraiment utilisé ruby pour se faire plaisir ! C'est vrai que celle-ci a l'air plus aboutie que la seconde, mais les 2 ne gèrent pas bien certaines choses que ino semble gérer mieux :

Il existe un autre makefile "arduino" plus poussé avec un utilitaire en perl pour parser boards.txt.
Mais la méthode pour intégrer le .mk à son makefile est un peu ... méli mélo :
http://mjo.tc/atelier/2009/02/arduino-cli.html


Je ne connais pas nginx... C'est un serveur HTTP ? Qu'est-ce qu'il peut apporter par rapport à uhttpd qui est utilisé par Luci ?

Ouaip, c'est un serveur HTTP hyper léger mais trés puissant, surtout pour faire des applications CGI-bin.
J'utilise pas Luci personnellement, ya plein de module mais je trouve ça trop usine à gaz.


Et oui, il faut toujours que je ne fasse pas comme tout le monde : au lieu de remonter le compilateur vers le "Cloud", je le descend vers le matériel !

De même, faire comme tout le monde c'est pas mon truc :smiley-mr-green:
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 15, 2012, 09:10 pm

bonsoir
je n'ai pas tout bien suivi/assimilé de la manip, mais si j'ai bien compris il s'agi(rai)t de (re)programmer un .INO sur une base arduino distante connectée au WR703N et ça par la liaison ethernet (filaire ou WiFI)  ?


Oui, en gros, voici la situation existante: le WR703N peut être relié au Vinciduino par la console série et/ou l'USB, ce qui permet d'utiliser le WR703N comme un "super shield" Wifi+Ethernet+USB_host et donc au vinciDuino d'accéder au réseau Internet par le Wifi, l'Ethernet filaire ou même la 3G (avec une clé USB connectée au WR703N, chose pour laquelle il est prévu à l'origine...).

Mais en plus, avec cette manip, c'est comme si on installait l'IDE Arduino SUR le WR703N!!! Par le réseau, on édite le sketch .INO à l'aide d'un éditeur Javascript (cf. ci-dessus) servi par le serveur HTTP du WR703N, puis celui-ci lance le compilateur avr-gcc pour compiler le sketch et enfin avrdude pour le flasher sur le VinciDuino, avant d'offrir la possibilité se connecteur au VinciDuino par la voie série/le port USB...
Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 15, 2012, 09:15 pm


Oui, en gros, voici la situation existante: le WR703N peut être relié au Vinciduino par la console série et/ou l'USB, ce qui permet d'utiliser le WR703N comme un "super shield" Wifi+Ethernet+USB_host et donc au vinciDuino d'accéder au réseau Internet par le Wifi, l'Ethernet filaire ou même la 3G (avec une clé USB connectée au WR703N, chose pour laquelle il est prévu à l'origine...).

Mais en plus, avec cette manip, c'est comme si on installait l'IDE Arduino SUR le WR703N!!! Par le réseau, on édite le sketch .INO à l'aide d'un éditeur Javascript (cf. ci-dessus) servi par le serveur HTTP du WR703N, puis celui-ci lance le compilateur avr-gcc pour compiler le sketch et enfin avrdude pour le flasher sur le VinciDuino, avant d'offrir la possibilité se connecteur au VinciDuino par la voie série/le port USB...

Bon OK
merci Squonk42, je suis rassuré encore à cette heure sur au moins ma capacité à comprendre  :smiley-mr-green:
Challenge sympa  8)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 15, 2012, 11:27 pm


C'est en cours ! Je vais tenter d'écrire 3 packages OpenWRT, pour copier la structure de Debian : "binutils-avr", "gcc-avr" et "avr-libc" (cherchez l'intrus  :D)

Ok ok ça semble prometteur tout ça :)


Ca y est ! Le plus dur c'était de faire le premier package  :smiley-sweat: En tous cas, c'est comme ça que je me rassure ! J'ai le binutils-avr qui s'installe et qui a l'air de fonctionner, à tester plus en profondeur :
Code: [Select]
root@TL-WR703N:~# opkg info binutils-avr
Package: binutils-avr
Version: 2.22-1
Depends: libc, zlib
Provides:
Status: install user installed
Section: devel
Architecture: ar71xx
Maintainer: Michel Stempin <michel.stempin@wanadoo.fr>
MD5Sum: 6a73a66a67960ee9287a00f5c5567bf2
Size: 6098030
Filename: binutils-avr_2.22-1_ar71xx.ipk
Source: feeds/packages/devel/binutils-avr
Description: Binary utilities supporting Atmel''s AVR targets
Installed-Time: 1345064729

root@TL-WR703N:~# avr-readelf --version
GNU readelf (GNU Binutils) 2.22
Copyright 2011 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.





Puis probablement un méta-package "arduino" qui inclut ces 3 là plus "avrdude" et les drivers USB pour l'Arduino.

Bonne idée, par contre pour le driver usb c'est juste du serial CDC classique (intégré de base).
Il ne devrait donc pas y avoir de modif à faire (si ce n'est de s'ajouter au groupe dialout) ?


Bon, tant mieux!



J'ai jeté un coup d'oeil aux différentes solutions. Franchement, le bout en ruby est assez facile à traduire en Shell pur... Ils ont vraiment utilisé ruby pour se faire plaisir ! C'est vrai que celle-ci a l'air plus aboutie que la seconde, mais les 2 ne gèrent pas bien certaines choses que ino semble gérer mieux :

Il existe un autre makefile "arduino" plus poussé avec un utilitaire en perl pour parser boards.txt.
Mais la méthode pour intégrer le .mk à son makefile est un peu ... méli mélo :
http://mjo.tc/atelier/2009/02/arduino-cli.html


Y en a marre de tous ces pseudos langages, les vrais programmeurs écrivent en C ou en Shell  :smiley-mr-green:



Je ne connais pas nginx... C'est un serveur HTTP ? Qu'est-ce qu'il peut apporter par rapport à uhttpd qui est utilisé par Luci ?

Ouaip, c'est un serveur HTTP hyper léger mais trés puissant, surtout pour faire des applications CGI-bin.
J'utilise pas Luci personnellement, ya plein de module mais je trouve ça trop usine à gaz.


Oui, mais cela a l'air d'être le standard sur OpenWRT pour la configuration par interface Web  :smiley-slim:

Le principal, c'est que cela soit plutôt léger en mémoire, sachant qu'il n'y aura pas énormément de connexions simultanées, et que le trafic sera faible : je comptais utiliser ACE pour la partie édition, et un maximum de JQuery + Twitter Bootstrap, en stockant les CSS/Javascript dans des fichiers séparés sur le WR703N pour bénéficier du cache navigateur. Je cherche si il n'y a pas déjà en OS une espèce d'IDE Web basée sur ACE ou équivalent...
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 16, 2012, 05:40 pm

Y en a marre de tous ces pseudos langages, les vrais programmeurs écrivent en C ou en Shell  :smiley-mr-green:

Les vrai programmeurs codent en assembleur, faut savoir parler directement avec la machine 8)
Sérieusement, tout langages à ses avantages et ses inconvénients, il n'y as pas de "pseudo langages" ;)


Oui, mais cela a l'air d'être le standard sur OpenWRT pour la configuration par interface Web  :smiley-slim:

Sérieux ?
Moi j'arrête pas de voir du lighttpd ou du nginx sur mes routeurs/switchs, ce serait bien d'avoir un comparatif des différents serveur web et de leur empreinte mémoire.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 16, 2012, 06:08 pm


Y en a marre de tous ces pseudos langages, les vrais programmeurs écrivent en C ou en Shell  :smiley-mr-green:

Les vrai programmeurs codent en assembleur, faut savoir parler directement avec la machine 8)
Sérieusement, tout langages à ses avantages et ses inconvénients, il n'y as pas de "pseudo langages" ;)


Je blague :), j'ai arrêté de compter vers les 20 (après, je n'ai plus assez de doigts et d'orteils) ! Non, ce qui est embêtant, c'est que sur une plateforme embarquée comme ici, on ne peut pas se permettre d'avoir du compilé C/C++, du Shell, du Lua, du Python, du Perl, du Ruby, du Tcl, du JavaScript, etc.

Surtout que vu la complexité du script Perl en question, c'est tout à fait possible de faire la même chose en Shell !



Oui, mais cela a l'air d'être le standard sur OpenWRT pour la configuration par interface Web  :smiley-slim:

Sérieux ?
Moi j'arrête pas de voir du lighttpd ou du nginx sur mes routeurs/switchs, ce serait bien d'avoir un comparatif des différents serveur web et de leur empreinte mémoire.

Je crois que Luci peut tourner sur lighttpd aussi. Le problème, c'est que c'est difficile pour pas mal d'utilisateurs qui ne veulent pas toucher aux fichiers de config en direct de se passer de Luci, à moins de re-écrire l'équivalent, mais là c'est une autre histoire...
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 20, 2012, 12:23 am


Oui, mais cela a l'air d'être le standard sur OpenWRT pour la configuration par interface Web  :smiley-slim:

Sérieux ?
Moi j'arrête pas de voir du lighttpd ou du nginx sur mes routeurs/switchs, ce serait bien d'avoir un comparatif des différents serveur web et de leur empreinte mémoire.


Ici : http://wiki.openwrt.org/doc/howto/http.overview

La question que je me pose c'est : Le but étant de créer un équipement dédié connecté (station météo, contrôleur domotique à-la BlyssBox etc...), associée à une (ou plusieurs Arduino) qu'est-ce qui est le plus simple/efficace ?
1) Utiliser un serveur light comme ceux déjà listés + cgi-bin
2) Faire un environnement (bibliothèque) tel que celles utilisées sur l'Arduino (Ethernet.server) et intégrer dans un seul exe le serveur Web, la communication avec la/les Arduino et la gestion d'ensemble de l'application.

Notamment ce qui me gène dans le cas 1, c'est l'intégration globale.
Je vois 3 composantes majeures :
- les interactions de l'utilisateur avec le navigateur web et donc avec le serveur Web : complètement asynchrone avec le déroulement de l'application
- les communications entre WR703 et Arduino: peut être synchrone (question/réponses) ou asynchrone (évènement extérieur, utilisateur qui presse un bouton hard / telco Blyss, ...)
- la gestion du contexte

Le cgi-bin est entièrement lié aux requètes web. Donc la gestion de contexte et tout ce qui est indépendant de l'interaction utilisateur ne peuvent pas s'y trouver. Il faut donc une application globale qui tourne en permanence.

De la même façon que cette appli va gérer les communication avec les Arduino (serial), elle va devoir aussi communiquer avec l'utilisateur Web donc avec les cgi-bin (ou plutot ce sont les cgi-bin qui vont communiquer avec elle). Des sockets (ou des pipes ?) semble la solution la plus simple à utiliser mais cela crée une lourdeur supplémentaire car il y a un protocole de plus a gérer.

L'avantage c'est que ca peut migrer facilement sur une plateforme plus grosse ensuite en utilisant Apache+PHP par exemple.


Le cas 2 peut être suffisant pour gérer de petites applications. C'est déjà ce que l'on fait sur une Arduino Ethernet. Donc finalement pourquoi ne pas reproduire la même structure en dual-core (WR + Arduino) ?
A partir d'une certaine "taille" il est sur que ce n'est plus la bonne solution mais par exemple si on reste sur une petite application qui a 2 ou 3 pages a présenter (station météo, contrôle de porte de garage ... comme certains on envisagé) ca me semble encore une solution acceptable.

Qu'en pensez-vous ?
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 20, 2012, 01:14 pm

Ici : http://wiki.openwrt.org/doc/howto/http.overview

Pas aussi léger que ce que je pensai nginx ... en faite le plus léger / adéquat pour un site à faible traffic c'est mini-httpd d'aprés ce tableau.


La question que je me pose c'est : Le but étant de créer un équipement dédié connecté (station météo, contrôleur domotique à-la BlyssBox etc...), associée à une (ou plusieurs Arduino) qu'est-ce qui est le plus simple/efficace ?
1) Utiliser un serveur light comme ceux déjà listés + cgi-bin
2) Faire un environnement (bibliothèque) tel que celles utilisées sur l'Arduino (Ethernet.server) et intégrer dans un seul exe le serveur Web, la communication avec la/les Arduino et la gestion d'ensemble de l'application.

Notamment ce qui me gène dans le cas 1, c'est l'intégration globale.
Je vois 3 composantes majeures :
- les interactions de l'utilisateur avec le navigateur web et donc avec le serveur Web : complètement asynchrone avec le déroulement de l'application
- les communications entre WR703 et Arduino: peut être synchrone (question/réponses) ou asynchrone (évènement extérieur, utilisateur qui presse un bouton hard / telco Blyss, ...)
- la gestion du contexte

Le cgi-bin est entièrement lié aux requètes web. Donc la gestion de contexte et tout ce qui est indépendant de l'interaction utilisateur ne peuvent pas s'y trouver. Il faut donc une application globale qui tourne en permanence.

De la même façon que cette appli va gérer les communication avec les Arduino (serial), elle va devoir aussi communiquer avec l'utilisateur Web donc avec les cgi-bin (ou plutot ce sont les cgi-bin qui vont communiquer avec elle). Des sockets (ou des pipes ?) semble la solution la plus simple à utiliser mais cela crée une lourdeur supplémentaire car il y a un protocole de plus a gérer.

L'avantage c'est que ca peut migrer facilement sur une plateforme plus grosse ensuite en utilisant Apache+PHP par exemple.


Le cas 2 peut être suffisant pour gérer de petites applications. C'est déjà ce que l'on fait sur une Arduino Ethernet. Donc finalement pourquoi ne pas reproduire la même structure en dual-core (WR + Arduino) ?
A partir d'une certaine "taille" il est sur que ce n'est plus la bonne solution mais par exemple si on reste sur une petite application qui a 2 ou 3 pages a présenter (station météo, contrôle de porte de garage ... comme certains on envisagé) ca me semble encore une solution acceptable.

Qu'en pensez-vous ?

En gros tu veut faire un deamon avec serveur web et gestionnaire de communication intégré ?
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 20, 2012, 03:32 pm

En gros tu veut faire un deamon avec serveur web et gestionnaire de communication intégré ?


En gros comme sur Arduino :  seul exécutable qui gère l'interface Web, la comm. avec les périphériques (Arduino sur Serial ou autres GPIO) et l'application elle même.
Tout se qui serait "gros web" pourrait être déchargé d'ailleurs sur un hébergement externe full-LAMP.

Ca resterait une appli de type loop() qui est un noeud d'échange entre les différents modules.
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 20, 2012, 09:24 pm

Quelques précisions: l'UART console du WR703N est en LVTTL (3.3 V) et pas en 2.7 V


Ayant quitté l'Ile de Beauté et mes montagnes savoyardes, de retour dans la gridsille francilienne (on sent bien le désapointement hein ?), je ressort mon WR703N, mon multimètre.
Je persiste et persiffle : je mesure bien un TXD (TP_OUT) à 2,7V ainsi que le VCC sur la résistance de pull-up R82 a coté de RXD (TP_IN).

Mon modèle est indiqué "Ver:1.6" sur l'étiquette derrière le boitier et "Rev:1.1" sur le PCB ;)

Je viens de télécharger le Image Generator d'OpenWRT (version stable 10.03.1) mais je suis pas sur que ce soit ce qu'il faut car ce package est daté de décembre 2011.

Pouvez vous me confirmer ce qu'il faut prendre ?

1ère étape pour moi : apprendre à configurer OpenWRT pour réduire au minimum a ce qui m'interesse.
En effet l'intérêt d'OpenWRT pour moi est d'avoir une distri Linux toute prête qui support la plateforme mais je n'ai pas besoin de toute la partie WRT (Wireless Router).
Ce que je veux obtenir dans un premier temps c'est :

- Linux
- Busybox, shell
- SSHd (dropbear)
- USB Mass Storage (pour mettre une clé USB ou un adaptateur de carte uSD)
- USB CDC Serial pour Arduino ou autres USB/TTL (CP21xx, FTDI, etc...)
- Ethernet
- Client Wifi (une configuration statique par fichier de config me convient très bien)

Je compte le faire d'abord avec Image Generator sans recompiler
Puis ensuite installation de OpenWRT BuildRoot, pas tant pour recompiler OpenWRT lui-même que pour faire ma propre appli qui va discuter avec l'Arduino.

A+
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 20, 2012, 10:32 pm
BOn
Ca commence bien :
- Le WR703N (et le MR3020) ne sont pas supportés dans la backfire 10.03.1 mais uniquement dans le trunk
- je viens de récupérer le snapshit du jour et ca ne génère pas :

Quote
Building package index...
(cd /home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64/packages; /home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64/scripts/ipkg-make-index.sh . > Packages && \
      gzip -9c Packages > Packages.gz \
   ) >/dev/null 2>/dev/null
make[2]: *** [package_index] Error 126
make[2]: Leaving directory `/home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64'
make[1]: *** [_call_image] Error 2
make[1]: Leaving directory `/home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64'
make: *** [image] Erreur 2


problème qui ne vient pas de moi apparemment : https://dev.openwrt.org/ticket/11943

Donc apparemment il va falloir que je me mette à Buildroot plus tôt que prévu  =(

Vous n'avez pas eu de problème particulier ?
Il suffit de suivre les indications ?

PS: Je suis partit sur un host en Xubuntu (simple, facile pour un non Linuxien comme moué). Mais apparemment la team OpenWRT est plutôt Arch linux qui me semble un peu trop "streamline" pour moi ;)
Vous utilisez quoi de votre coté ?
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 20, 2012, 10:43 pm

Je persiste et persiffle : je mesure bien un TXD (TP_OUT) à 2,7V ainsi que le VCC sur la résistance de pull-up R82 a coté de RXD (TP_IN).

Mon modèle est indiqué "Ver:1.6" sur l'étiquette derrière le boitier et "Rev:1.1" sur le PCB ;)

Il n'y a eu a priori que 2 versions de PCB: 1.0 (peu répandue) et 1.1, donc ce n'est pas un problème de version. J'ai d'ailleurs détaillé le PCB 1.1 composant par composant dans le Wiki OpenWRT (http://wiki.openwrt.org/toh/tp-link/tl-wr703n_pcb), et d'après les points de tests dûment étiquetés, il y a du 3,3 V, du 2,5 V, du 2,0 V et du 1,2 V, toutes ces tensions ayant une utilité identifiée.

C'est peut-être tout simplement un problème d'alimentation ? Ou alors ton multimètre qui a une résistance d'entrée trop faible ? j'ai déjà eu le cas avec un multimètre chinois à 10 euros... J'ai plus tendance à croire un scope avec une sonde calibrée 1 Mohms /20 pF, d'abord parce que c'est calibré et ensuite parce que je peux voir le résultat !

Mais après tout, qu'importe ? Mon WR703N tourne avec une adaptateur LVTTL (3,3 V) / USB depuis 6 mois sans soucis  :smiley-mr-green:


Je viens de télécharger le Image Generator d'OpenWRT (version stable 10.03.1) mais je suis pas sur que ce soit ce qu'il faut car ce package est daté de décembre 2011.

Pouvez vous me confirmer ce qu'il faut prendre ?

1ère étape pour moi : apprendre à configurer OpenWRT pour réduire au minimum a ce qui m'interesse.
En effet l'intérêt d'OpenWRT pour moi est d'avoir une distri Linux toute prête qui support la plateforme mais je n'ai pas besoin de toute la partie WRT (Wireless Router).
Ce que je veux obtenir dans un premier temps c'est :

- Linux
- Busybox, shell
- SSHd (dropbear)
- USB Mass Storage (pour mettre une clé USB ou un adaptateur de carte uSD)
- USB CDC Serial pour Arduino ou autres USB/TTL (CP21xx, FTDI, etc...)
- Ethernet
- Client Wifi (une configuration statique par fichier de config me convient très bien)

Je compte le faire d'abord avec Image Generator sans recompiler

Le "Image Generator" est plutôt fait pour rajouter des packages que pour en enlever. Le système de base est assez interdépendant au niveau des packages installés, et la seule façon d'enlever des choses va passer par une configuration des options de ces packages et une recompilation :smiley-sweat:

Et de toutes façons, il faut absolument partir du "trunk" avec Subversion ou un "snapshot" (vaut mieux le SVN !), car le WR703N n'est pas encore supporté dans les versions stables.

Après, il suffit de suivre à la lettre le Wiki OpenWRT (installation (http://wiki.openwrt.org/doc/howto/buildroot.exigence) et utilisation (http://wiki.openwrt.org/doc/howto/build)).
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 20, 2012, 10:45 pm

Vous n'avez pas eu de problème particulier ?
Il suffit de suivre les indications ?

Ouaip,

Code: [Select]
cd ~
svn co svn://svn.openwrt.org/openwrt/trunk/ openwrt
cd openwrt
./script/feeds update -a
./script/feeds install -a
make menuconfig
# --> tu fait ta config comme tu l'entend
make -Jx (remplace x par le nombre de cœur de ton cpu)
# --> tu patiente entre 10 minutes (i7 8 coeurs) et 4 heures (celeron dual core)
# Ton firmware et son rootfs se trouve dans le dossier "bin/lenomducpu"
# Ta toolchain pour la compilation se trouve dans le dossier "staging_dir"


Si tu veut je peut te faire un screencast ;)
(mais avec la ngw100 comme cible pour la compilation)


PS: Je suis partit sur un host en Xubuntu (simple, facile pour un non Linuxien comme moué). Mais apparemment la team OpenWRT est plutôt Arch linux qui me semble un peu trop "streamline" pour moi ;)
Vous utilisez quoi de votre coté ?

MINT 13 avec plein de modif kernel / paquets custom de partout :smiley-sweat:
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 20, 2012, 10:55 pm

Quote
Building package index...
(cd /home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64/packages; /home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64/scripts/ipkg-make-index.sh . > Packages && \
      gzip -9c Packages > Packages.gz \
   ) >/dev/null 2>/dev/null
make[2]: *** [package_index] Error 126
make[2]: Leaving directory `/home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64'
make[1]: *** [_call_image] Error 2
make[1]: Leaving directory `/home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64'
make: *** [image] Erreur 2


problème qui ne vient pas de moi apparemment : https://dev.openwrt.org/ticket/11943

Donc apparemment il va falloir que je me mette à Buildroot plus tôt que prévu  =(

Vous n'avez pas eu de problème particulier ?
Il suffit de suivre les indications ?

PS: Je suis partit sur un host en Xubuntu (simple, facile pour un non Linuxien comme moué). Mais apparemment la team OpenWRT est plutôt Arch linux qui me semble un peu trop "streamline" pour moi ;)
Vous utilisez quoi de votre coté ?


J'utilise Ubuntu 12.04 LTS, remis à jour périodiquement depuis au moins 2 ou 3 ans.

Un piège classique avec les xxxUbuntu est que ceux-ci remplacent le Shell "bash" par un Shell "dash" qui est sensé être plus rapide pour le boot (ça reste à prouver  :~), mais qui casse les scripts shell de compilation...

Un moyen de vériefier est de taper :
Code: [Select]
ls -l /bin/sh
lrwxrwxrwx 1 root root 4 août  11 19:25 /bin/sh -> bash


Si le tiens point sur "dash": bingo !

Il faut alors changer de shell en tapant:
Code: [Select]
sudo update-alternatives --install /bin/sh sh /bin/bash 100
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 20, 2012, 11:03 pm

Code: [Select]
make -Jx (remplace x par le nombre de cœur de ton cpu)

En fait, il faut faire :
Code: [Select]
make -j x (remplace x par le nombre de cœurs de ton cpu + 1)
Ou mieux, utiliser "ccache", mais c'est plutôt délicat à faire marcher comme il faut :P
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 21, 2012, 02:24 pm

En fait, il faut faire :
Code: [Select]
make -j x (remplace x par le nombre de cœurs de ton cpu + 1)

J'ai jamais compris ce +1, puisse qu'au final tu as un nombre limité physiquement de threads ... +1 ou non ton cpu peut pas exécuter un nombre illimité de chose en parallèle ...
Du reste en regardant le man de make et les différentes doc sur le web tu trouve de tout, nb_threads, nb_threads + 1, ... :smiley-zipper:

Ps: en argument CLI unix que tu fasse -J8 ou -J 8 ça revient à la même chose.


Ou mieux, utiliser "ccache", mais c'est plutôt délicat à faire marcher comme il faut :P

J'utilise ccache, mais c'est utile uniquement pour les recompilations incrémentielles, pas pour la premier compilation complète.
Mais c'est un gros bordel pour activer ccache dans menuconfig donc je préfére pas perdre barbudor avec.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 21, 2012, 04:13 pm


En fait, il faut faire :
Code: [Select]
make -j x (remplace x par le nombre de cœurs de ton cpu + 1)

J'ai jamais compris ce +1, puisse qu'au final tu as un nombre limité physiquement de threads ... +1 ou non ton cpu peut pas exécuter un nombre illimité de chose en parallèle ...
Du reste en regardant le man de make et les différentes doc sur le web tu trouve de tout, nb_threads, nb_threads + 1, ... :smiley-zipper:

D'après ce que j'ai pu voir à droite et à gauche (j'ai du mal à me souvenir où  :smiley-red:), cela correspond effectivement au nombre de "jobs" (et donc de "threads"), mais il y a toujours un thread principal qui lui ne fait qu'attendre la fin des autres.


Ps: en argument CLI unix que tu fasse -J8 ou -J 8 ça revient à la même chose.

Oui, par contre, n'est ce pas "j" minuscule et pas "J" majuscule ?



Ou mieux, utiliser "ccache", mais c'est plutôt délicat à faire marcher comme il faut :P

J'utilise ccache, mais c'est utile uniquement pour les recompilations incrémentielles, pas pour la premier compilation complète.
Mais c'est un gros bordel pour activer ccache dans menuconfig donc je préfére pas perdre barbudor avec.

C'est vrai que c'est un peu brutal comme mise en bouche  :smiley-mr-green:
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 21, 2012, 09:08 pm

D'après ce que j'ai pu voir à droite et à gauche (j'ai du mal à me souvenir où  :smiley-red:), cela correspond effectivement au nombre de "jobs" (et donc de "threads"), mais il y a toujours un thread principal qui lui ne fait qu'attendre la fin des autres.

... ouai, faudrait que je regarde ça de plus prés.


Oui, par contre, n'est ce pas "j" minuscule et pas "J" majuscule ?

Oui c'est j et non J ... petit bug de l'interface chaise / clavier :smiley-mr-green:


C'est vrai que c'est un peu brutal comme mise en bouche  :smiley-mr-green:

Bon par contre quand la première compilation est finit les suivantes sont hyper rapide 8)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 21, 2012, 09:51 pm
J'ai réussi à générer un paquet "binutils-avr" qui tient la route (pour ceuce qui sont intéressés, les patches et le makefile OpenWRT), à placer dans le répertoire "feeds/packages/devel" du "trunk" d'OpenWRT, suivi d'un "[font=courier]./scripts/feeds update -i[/font]" pour ajouter le package et d'un "[font=courier]./scripts/feeds install -a[/font]" pour l'ajouter au menuconfig.

Mais pour le "gcc-avr" et l' "avr-libc", c'est une autre paire de manche...

En effet, il faut :


Ceci est compliqué par le problème dit "de la poule et de l'oeuf", à savoir qu'on a besoin à un moment donné de faire tourner le compilateur mips24kc => AVR pour générer un tas de chose (fichiers de démarrage, includes, etc.) qui ont eux-même besoin du compilateur pour être créés !

Cette configuration avec 3 architectures est connue en tant que "Canadian build", en référence au système politique Canadien qui comportait 3 partis politiques majeurs à l'époque où ce problème a été rencontré en premier.

En gros, on s'en tire en générant un compilateur intermédiaire linux-x86 => AVR pour générer ces fameux fichiers.

J'ai réussi à faire cette manip "à la mimine" à partir des sources et générer un gcc-avr+avr-libc qui tourne sur le WR703N, mais j'aimerai bien pouvoir le faire proprement en tant que package, et je me bats donc actuellement avec les makefiles OpenWRT :smiley-sweat:

Mon plus gros problème est de générer de manière conditionnelle des outils (qui vont dans le répertoire "tools" d'OpenWRT), à savoir ce fameux compilateur intermédiaire, lorsque l'utilisateur choisit de générer un compilateur AVR pour le WR703N.

Si quelqu'un a des idées sur le sujet, il est le bienvenu !
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 21, 2012, 09:58 pm

Un moyen de vériefier est de taper :
Code: [Select]
ls -l /bin/sh
lrwxrwxrwx 1 root root 4 août  11 19:25 /bin/sh -> bash


Si le tiens point sur "dash": bingo !


Bingo !

Quote

Il faut alors changer de shell en tapant:
Code: [Select]
sudo update-alternatives --install /bin/sh sh /bin/bash 100


Fait mais ca ne change pas le problème :(
J'ai bien bash maintenant au lieu de dash mais l'erreur est toujours là

Quote

C'est vrai que c'est un peu brutal comme mise en bouche 


Mais dans quel tiroir ais-je donc rangé l'aspirine....

Bon, allé c'est partit pour installer BuildRoot!

Quote

J'ai réussi à générer un paquet "binutils-avr" ...
Mais pour le "gcc-avr" et l' "avr-libc", c'est une autre paire de manche...


perso, je me contenterais d'AVRdude afin de pouvoir reflasher l'Arduino en remote.
Recompiler les sketches sur le WR703 lui même me parait inutile (pour l'instant ;)).
Bon courage!
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 21, 2012, 10:31 pm

Quote

Il faut alors changer de shell en tapant:
Code: [Select]
sudo update-alternatives --install /bin/sh sh /bin/bash 100


Fait mais ca ne change pas le problème :(
J'ai bien bash maintenant au lieu de dash mais l'erreur est toujours là


Bon, c'est déjà mieux, mais c'est pas encore çà! Tu es sûr d'avoir tous les outils de compilation installés (vérifie avec "sudo dpkg -l build-essential") ? Sinon, il faut un :
Code: [Select]
sudo aptitude update; sudo aptitude install build-essential


Quote

J'ai réussi à générer un paquet "binutils-avr" ...
Mais pour le "gcc-avr" et l' "avr-libc", c'est une autre paire de manche...


perso, je me contenterais d'AVRdude afin de pouvoir reflasher l'Arduino en remote.
Recompiler les sketches sur le WR703 lui même me parait inutile (pour l'instant ;)).
Bon courage!



Ca ne serait pas cool de faire tourner l'IDE Arduino dans un navigateur Web pointant sur le serveur intégré au WR703N ?

Le couple WR703N + VinciDuino deviendrait alors un outil complètement indépendant du PC/Mac/iPhone/Android !
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 22, 2012, 11:23 pm
J'ai pu recompiler !

1er essai a partir du trunk et d'un defconfig.
Compil ok, re-flashage ok mais le firmware ne comportait pas luci

2eme essai a partir du trunk et du fichier default+luci de Madox (http://www.madox.net/blog/projects/tp-link-tl-wr703n/)
Reflashage difficile puisque je n'avais pas Luci.
Copie du firmware par scp (ouf, il y avait dropbear dans le firmware par défaut) puis "mtd write"
Et c'est repartit

Bon, ben apparemment j'ai pris le coup. tant que j'ai dropbear je sais reflasher.
Il faudrait quand même que je teste le mode failsafe via liaison série au cas où :)


Maintenant on va travailler le fichier de config pour maitriser les options.

Par ailleurs, vous auriez des liens qui pourrait m'expliquer les histoires d'overlay ?
Si j'ai bien compris au lieu de monter ma clé USB (ou carte µSD) dans un répertoire, il serait possible de "plaquer" le filesystem de la clé USB par dessus le filesystem read-only
C'est çà ?
Comment kon fait ?

A+
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 22, 2012, 11:58 pm
Super !

Tu as trouvé pourquoi ça ne marchait pas ?

Je te conseille quand même d'installer une console USB avec un câble type CA42 à moins de 2€ et 3 coups de fer à souder, on ne sait jamais  :D

Si tu maîtrise "vi" le minimum nécessaire pour éditer un fichier et le sauvegarder, il n'y a pas besoin de Luci : les fichiers de config sont dans "/etc/config" et sont en texte clair, leur description est dispo ici (http://wiki.openwrt.org/doc/start#uci.configuration).

Pour ce qui est de l'overlay, c'est assez simple, en fait:

Code: [Select]
config mount
option target /overlay
option device /dev/sda1
option fstype ext4
option options rw,sync,noatime,commit=120
option enabled 1
option enabled_fsck 0


L'option "noatime" permet de ne pas mettre à jour en permanence les dates d'accès aux fichiers, et "commit=120" permet de mettre en cache les accès pendant 120 s (au lieu de 5 s par défaut) : cela permet d'améliorer BEAUCOUP la durée de vie de la clé USB Flash  8)

Presque tout cela est bien expliqué dans le lien ci-dessus, qui détaille le "pivot overlay extroot".
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 23, 2012, 08:50 pm

Tu as trouvé pourquoi ça ne marchait pas ?


Non. La génération avec Image Generator (trunk) ne marche pas.
Je suis passé à BuildRoot.


Je te conseille quand même d'installer une console USB avec un câble type CA42 à moins de 2€ et 3 coups de fer à souder, on ne sait jamais  :D

Déjà fait. Connecteur 6 points et adaptateur SparkFun externe, le même que j'utilise avec ma breadboarduino.

J'ai commandé 2 nouveaux convertisseurs à base de CP21xx mais dans l'idée de m'en servir dans l'autre sens pour avoir + de liaisons série sur le WR pour dialoguer avec des cartes distribuées dans la maison.

Quote

Si tu maîtrise "vi" le minimum nécessaire pour éditer un fichier et le sauvegarder, il n'y a pas besoin de Luci : les fichiers de config sont dans "/etc/config" et sont en texte clair, leur description est dispo ici (http://wiki.openwrt.org/doc/start#uci.configuration).

Oui de toute façon je vais vite virer Luci et le serveur web puisque j'aurais mes pages Web applicatifs a moi.
Quand j'aurais figé mon noyau de base, je n'aurais plus besoin d'upgrade de firmware complet, je ferait de l'install dynamique des nouvelles applis.

Quote

Pour ce qui est de l'overlay, c'est assez simple, en fait:
...

merci.
De la bonne lecture en perspective.
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 23, 2012, 11:11 pm
Aide demandé

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

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: [Select]
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:/#


ci attaché mon fichier de config

merci d'avance
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 23, 2012, 11:55 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: [Select]
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: [Select]
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: [Select]
opkg install kmod-nls-cp437 kmod-nls-iso8859-1

Bonne chance ;)
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 24, 2012, 03:02 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)
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 24, 2012, 04:19 pm
Merci pour le truc sur l'upgrade je n'avais pas vu de référence à cette commande.
Je vais peut être me faire un script shell qui monitore un répertoire /tmp/upg et qui lance l'upgrade automatiquement si je scp un package dans ce répertoire.

Le test en fat c'était juste pour voir parce que j'ai une clef FAT sous la main.
Sur pour l'overlay ca sera du filesystem linux

Pour ext2 vs 3 ou 4, je vous laisse juge.
Il y a bien une option kernel pour ajouter ext4 et rien de spécifique a priori pour 2 et 3.
Ca rejoindra l'option que c'est dispo nativement.
Mais il faut de toute façon que je commence par formatter la clé sous Xubuntu puisqu'on a pas fdisk ni mkfs par défaut sur OpenWRT (pas utile en passant).

J'ai aussi voulu essayer une micro-sd dans un adaptateur mais ca na pas mieux marché.

A votre avis qu'est-ce qui sera le plus efficace (performance, usage CPU) : clef USB ou micro-SD ?
Vous allez me dire que ca dépend de la clé et de la SD bien sur :)

Ce soir, je crois que je fais un pause et que je reprendrais çà demain ;)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 24, 2012, 10:34 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é  :~

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 (http://www.linuxplanet.com/linuxplanet/tutorials/7208/1) et celui-ci (http://forum.porteus.org/viewtopic.php?f=48&t=668&sid=7d2806ca102779c6eaf54d3034f1bd6d), 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 :


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 (http://www.mjmwired.net/kernel/Documentation/filesystems/ext4.txt), on obtient alors l'équivalent d'un ext2 aux stéroïdes  ]:D).

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 !

Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 25, 2012, 04:13 pm
Hummm ... je prend note ...
Bon va peut être falloir que je recompile deux trois trucs avec le support EXT4 :smiley-sweat:
Et que je modifie 2-3 fichiers de config :smiley-sweat:
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 25, 2012, 07:17 pm
Bon, ben j'ai bien bidouillé ma config

J'ai viré Luci, le server Web et pas mal de chose.
j'arrive à
Code: [Select]

root@barbuWR703:/# free
             total         used         free       shared      buffers
Mem:         29480        16072        13408            0         1624
-/+ buffers:              14448        15032
Swap:            0            0            0
root@barbuWR703:/# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                    1088       220       868  20% /
/dev/root                 2048      2048         0 100% /rom
tmpfs                    14740        52     14688   0% /tmp
tmpfs                      512         0       512   0% /dev
/dev/mtdblock3            1088       220       868  20% /overlay
overlayfs:/overlay        1088       220       868  20% /
root@barbuWR703:/# ps
  PID USER       VSZ STAT COMMAND
    1 root      1516 S    init
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [ksoftirqd/0]
    4 root         0 SW   [kworker/0:0]
    5 root         0 SW   [kworker/u:0]
    6 root         0 SW<  [khelper]
    7 root         0 SW   [kworker/u:1]
   62 root         0 SW   [sync_supers]
   64 root         0 SW   [bdi-default]
   66 root         0 SW<  [kblockd]
   95 root         0 SW   [kswapd0]
  144 root         0 SW   [fsnotify_mark]
  156 root         0 SW<  [ath79-spi]
  167 root         0 SW   [mtdblock0]
  172 root         0 SW   [mtdblock1]
  177 root         0 SW   [mtdblock2]
  182 root         0 SW   [mtdblock3]
  187 root         0 SW   [mtdblock4]
  192 root         0 SW   [mtdblock5]
  233 root         0 SW   [kworker/0:1]
  405 root         0 SWN  [jffs2_gcd_mtd3]
  407 root         0 SW   [flush-mtd-unmap]
  423 root      1512 S    /bin/ash --login
  455 root         0 SW<  [cfg80211]
  464 root         0 SW   [khubd]
  541 root      1520 S    /sbin/syslogd -l 8 -C16
  543 root      1504 S    /sbin/klogd
  545 root       844 S    /sbin/hotplug2 --override --persistent --set-rules-f
  553 root       860 S    /sbin/ubusd
  557 root      1508 S    /sbin/netifd
  586 root      1520 S    udhcpc -p /var/run/udhcpc-br-lan.pid -s /lib/netifd/
  736 root      1512 S    /sbin/watchdog -t 5 /dev/watchdog
  934 root      1152 S    /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
  958 root      1516 S    /usr/sbin/ntpd -n -p 0.openwrt.pool.ntp.org -p 1.ope
  967 root      1508 R    ps


Je suis pas sur d'avoir besoin de hotplug2. Idée ?
A la fin j'aurai certainement en statique une clé USB ou une carte µSD, la léonardo, peut être 1 ou 2 autres adaptateur série pour communiquer avec d'autres cartes ou module GSM (je garde la console pour le debug).
Je ne compte pas faire de auto-mount.

J'ai l'impression que mon /tmp me prend encore 14MB de DRAM. Est-ce vraiment utile ? Est-ce lui qui est majoritairement responsable des 16MB utilisés ?
Où puis-je réduire cela ?

J'ai les drivers série y compris USB_ACM qui me permet de brancher ma Léonardo et avec screen j'ai vérifié que j'arrivais bien recevoir ce que 'envoie la Leonardo.

Je crois que CONFIG_PACKAGE_kmod-scsi-core est nécessaire pour les clés USB ?

Oui puis-je trouver de la doc sur les différents packages concernant les leds ? leds-gpio, ledtrig-xxx

Ais-je besoin de CONFIG_PACKAGE_kmod-ipt-core alors que je ne me sert pas de mon WR703 comme d'un routeur ? seul le client Ethernet et Wifi m'intéresse .


Maintenant il va falloir que j'apprenne à faire un petit "Hello World" et la magie des packages.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 26, 2012, 12:23 am
Bravo !

Tu as bien avancé !

Je vais tenter de répondre à tes questions :
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 26, 2012, 04:53 pm
Quote

AAAaaarrrrrgggghhhh  =(

Ce qui devait arriver arriva !

BRICK

Code: [Select]
[    1.150000] TCP cubic registered
[    1.150000] NET: Registered protocol family 17
[    1.150000] 8021q: 802.1Q VLAN Support v1.8
[    1.160000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[    1.170000] Freeing unused kernel memory: 204k freed
mkdir: can't create directory '/dev/shm': Read-only file system
mkdir: can't create directory '/dev/pts': Read-only file system
mount: mounting devpts on /dev/pts failed: No such file or directory
/etc/preinit: line 1: can't create /dev/null: Read-only file system
/etc/preinit: line 1: can't open : no such file
[    2.360000] Kernel panic - not syncing: Attempted to kill init!


J'arrive même pas au failsafe  =(  =(  =(


Je vais devoir tenter un reflashage depuis U-Boot
Mais j'ai des doutes sur l'opération.
Tout d'abord, la map de la flash telle que donnée dans le wiki d'openWRT est :
Code: [Select]
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 000d9fa8 00010000 "kernel"
mtd2: 002f6058 00010000 "rootfs"
mtd3: 000f0000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 003d0000 00010000 "firmware"


D'où je déduit
Code: [Select]
u-boot 00000000 020000
kernel 00020000 0d9fa8
rootfs 000f9fa8 2f6058
rootfs_data 003f0000 0f0000
art 004e0000 010000
firmware 004f0000 3d0000
end 008c0000


ce qui ne marche pas pour une flash de 4MB !!!!

Mais dans u-boot je vois :
Quote
bootargs=console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),2752k(rootfs),896k(uImage),64k(NVRAM),64k(ART)


ce qui donne

Code: [Select]
u-boot 00000000 040000
u-boot-env 00040000 010000
rootfs 00050000 2b0000
kernel/uImage 00300000 0e0000
nvram 003e0000 010000
art 003f0000 010000
end 00400000


un peu plus logique

Question 1:
Docteur je reflashe quoi ?
Juste le firmware ou aussi le rootfs ?

Question 2:
Le Wiki d'OpenWRT décrit une méthode via liaison série mais apparemment l'u-boot d'origine du WR703 ne la supporte pas. Juste tfptboot.
Bon, apparemment y'a déjà tftp-hpa sur mon Xubuntu, je vais apprendre ....

Question 3:
Est-ce que quelqu'un pourrait me confirmer les commandes u-boot pour l'opération.
Le wiki donne ceci pour remettre le firmware d'origine :

Code: [Select]

tftpboot 0x81000000 xxxx.bin
erase 0x9f020000 +0x3c0000
cp.b 0x81000000 0x9f020000 0x3c0000
bootm 9f020000

Qui n'est même pas correct par rapport à la map donnée parle wiki (kernel + rootfs = d9fa8 + 2f6058 = 3d0000 et non pas 3c0000)

Bref, je suis un peu perdu....

Merci d'avance




EDIT : Bon, ben j'ai suivit la méthode du Wiki et c'est repartit.

EDIT2: Je crois qu'il va falloir que je sauvegarde le contenu total de ma flash, y compris ART et que je m'achète quelques flash de rab parce que avec 15 à 20 reflashage par jour depuis une semaine ...
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 26, 2012, 07:12 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é (http://www.spansion.com/Support/Datasheets/S25FL032P_00.pdf) 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
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 26, 2012, 07:53 pm
Merci

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

Et bon boulot sur le pinout !
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 26, 2012, 07:59 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 (http://www.natureetdecouvertes.com/cadeau-ideal/optique/microscopes-et-accessoires/loupe-binoculaire-biorit-icd-bresser-40124360) 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 XD
Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 27, 2012, 01:34 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 (http://www.natureetdecouvertes.com/cadeau-ideal/optique/microscopes-et-accessoires/loupe-binoculaire-biorit-icd-bresser-40124360) 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 XD
bonjour
Juste pour dire que je suis tout ça du coin de l'œil avec intérêt.
et j'imagine bien le temps passé  :smiley-red:
mais arrangez vous pour que tous ça soit au point mi-septembre  :smiley-mr-green:
c'est à partir de cette date que je vais récupérer mes "WRT"  8)
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 27, 2012, 02:48 pm
Et avec un paquet cadeau aussi ?  ]:D

Je ferais un résumé pour quick-starter quand j'aurais quelque chose qui marche.
Pour l'instant je vais arrêter de bidouille la config du OpenWRT. C'est satisfaisant bien que j'ai quelques soucis pour mixer Ethernet et WIfi en même temps.

Cette semaine je me concentre sur un hello world : environnement de développement, test sur PC, test sur WR703, dialogue avec Arduino.
Mon idée est d'arriver à avoir une couche Serial similaire a celle de l'Arduino ce qui sera plus facile pour ceux qui veulent passer de l'une a l'autre. Et peut être quelque chose aussi de similaire a EthernetClient/EthernetServer.
Title: Re: WR703N + VinciDuino
Post by: Artouste on Aug 27, 2012, 03:39 pm

Et avec un paquet cadeau aussi ?  ]:D


:smiley-mr-green:
D'accord mais le paquet  avec un joli cerclage en bolduc  :smiley-mr-green:
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 27, 2012, 03:42 pm

Juste pour dire que je suis tout ça du coin de l'œil avec intérêt.

De même, je reste dans l'ombre en attendant que le matos arrive :smiley-mr-green:


Et avec un paquet cadeau aussi ?  ]:D

Oublie pas le papier bulle, le papier bulle c'est la vie 8)
Title: Re: WR703N + VinciDuino
Post by: jfs on Aug 28, 2012, 07:39 am
Moi aussi ça me plait bien votre bidouille.... je surveille aussi  XD
Title: Re: WR703N + VinciDuino
Post by: skywodd on Aug 28, 2012, 05:34 pm
Re,

Je viens de découvrir que U-boot (en derniére version et avec certain cpu) supporter le boot directement depuis une clef usb :smiley-eek:
Faut recompiler avec les #define qui vont bien par contre (pas un gros probléme).

J'ai pas regarder si le WR703N était dans la liste mais ça pourrait être un truc tiptop (boot de la uImage depuis la clef usb, pivot pour avoir le rootfs sur la clef usb et hop plus besoin de flasher la flash)
Va falloir que j'approfondisse mes recherches sur le sujet !
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 28, 2012, 06:07 pm
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.
Title: Re: WR703N + VinciDuino
Post by: barbudor on Aug 28, 2012, 08:12 pm
Bonne idée
Pour l'instant je n'ai pas reflashé le u-boot. Je garde celui d'origine de TP-Link.
Il est un peu limité par rapport a d'autre que j'avais vu.
Par exemple pas de possibilité de sauvegarder les modifs des variables.

Je me demande si ce n'est pas par limitation de taille de flash ?
Mais si on ne se sert plus de la flash hormis le boot, on peut prendre toute la place.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Aug 28, 2012, 10:07 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 8)

Voici un projet intéressant au sujet du U-Boot sur le WR703N: wr703n-uboot-with-web-failsafe (http://code.google.com/p/wr703n-uboot-with-web-failsafe/)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Sep 01, 2012, 10:02 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 =(
Title: Re: WR703N + VinciDuino
Post by: barbudor on Sep 01, 2012, 12:38 pm
Scanné ? Pour faire une photo de carte sans ombres je ne vois que çà comme solution ;)
Merci, je vais arrêter de me bousiller les yeux.
Je pense que tu as inversé U5 et U6 dans ta description.
Title: Re: WR703N + VinciDuino
Post by: Artouste on Sep 01, 2012, 01:58 pm

Scanné ? Pour faire une photo de carte sans ombres je ne vois que çà comme solution ;)
...

Bonjour barbudor
il y a aussi la technique de l'éclairage scyalitique, qui permet de faire des photos sans ombres portées et avec une profondeur de champ "assez importante" selon les optiques choisies.
mais pour du PCB la technique scanner est souvent suffisante, encore que la profondeur de champ est tres restreinte
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Sep 14, 2012, 10:08 pm

Scanné ? Pour faire une photo de carte sans ombres je ne vois que çà comme solution ;)
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 XD, 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.
Title: Re: WR703N + VinciDuino
Post by: barbudor on Sep 14, 2012, 10:19 pm

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:

Et moi je procrastine... pas bougé depuis 15j....


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.
[/quote]
Ok.
L'emplacement ne me paraissait pas logique : régulateur sous l'USB de "sortie" et switch sous l'USB d'entrée ?
J'ai pas regardé plus que çà.
Title: Re: WR703N + VinciDuino
Post by: skywodd on Sep 20, 2012, 02:57 pm
Salut tout le monde,

il m'aura fallu un peu de temps mais c'est bon j'ai un TL-MR3020 (la version dispo en france du WR703N) qui va arriver vendredi (si tout va bien).
J'ai préparé un buildroot openWRT propre pour pas tout mélanger, je suis en version "trunk" au passage.

Squonk42: Je prendrai des photos en résolution max du pcb, on sait jamais ça pourrait être utile.
Title: Re: WR703N + VinciDuino
Post by: skywodd on Sep 22, 2012, 10:53 am
Re,

Bon mon joujou est arrivé hier soir :smiley-mr-green:
J'ai pu tourner un peu autour de la bête mais j'ai un problème con ...

Comme séparer la partie coloré du corps du routeur ? :smiley-sweat:
J'ai essayé de passer un lame de couteau mais j'ai l'impression qu'il y a plusieurs clips, voir même un peu de colle ?
Title: Re: WR703N + VinciDuino
Post by: barbudor on Sep 22, 2012, 11:26 am
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.
Title: Re: WR703N + VinciDuino
Post by: skywodd on Sep 22, 2012, 11:30 am

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 :smiley-mr-green:

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.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Sep 22, 2012, 01:01 pm
Oui, parfois une formation d'écailler peut servir :)

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


Sinon côté électronique et logiciel, les 2 appareils sont très semblables.
Title: Re: WR703N + VinciDuino
Post by: barbudor on Sep 22, 2012, 02:02 pm

  • 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....
Title: Re: WR703N + VinciDuino
Post by: skywodd on Sep 22, 2012, 03:53 pm
Re tout le monde,

J'ai mis en ligne les photos du TL-MR3020 et quelques commentaires :
http://skyduino.wordpress.com/2012/09/22/hack-tl-mr3020-openwrt-bidouillage-usb-wifi-ethernet/

C'est juste la partie hardware pour le moment, la partie software viendra plus tard ;)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Sep 22, 2012, 10:27 pm
Merci pour les photos hi-res du PCB  8)
Title: Re: WR703N + VinciDuino
Post by: barbudor on Sep 22, 2012, 10:39 pm
Une question : la zone ART est-elle dépendante de chaque unité ? de chaque modèle ? ou du chip Atheros ?
Title: Re: WR703N + VinciDuino
Post by: skywodd on Sep 23, 2012, 07:00 pm

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.
Title: Re: WR703N + VinciDuino
Post by: barbudor on Sep 23, 2012, 07:04 pm
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) ?
Title: Re: WR703N + VinciDuino
Post by: skywodd on Sep 23, 2012, 07:45 pm

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.


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" (http://wiki.openwrt.org/doc/techref/mtd) pour restaurer un dump)

J'ai pas testé mais cette commande devrait marcher :
Code: [Select]
dd if=/dev/mtd4 of=/tmp/art_dump.bin

Pour avoir la liste des partitions mtd et leurs tailles :
Code: [Select]
cat /proc/mtd
Title: Re: WR703N + VinciDuino
Post by: Artouste on Sep 23, 2012, 10:18 pm


Bon mon joujou est arrivé hier soir :smiley-mr-green:


bonsoir
Ma commande est arrivée depuis qq temps au bureau achat , mais comme je suis actuellement en phase
"changement d'herbage"  :smiley-mr-green: , 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)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Oct 04, 2012, 11:20 pm
Pour ceux qui se demandaient où j'étais passé, voici la réponse :

(https://raw.github.com/Squonk42/TL-WR703N/master/Pictures/TL-WR703N%20Top%20LoRes.png)(https://raw.github.com/Squonk42/TL-WR703N/master/Pictures/TL-WR703N%20Bottom%20LoRes.png) (http://squonk42.github.com/TL-WR703N/)

Pour les détails, veuillez consulter http://squonk42.github.com/TL-WR703N/ (pardon, c'est en Anglais).
Title: Re: WR703N + VinciDuino
Post by: jblb on Oct 05, 2012, 02:18 pm
ha oui ! quand même ! Bravo a toi
Title: Re: WR703N + VinciDuino
Post by: chestroled on Oct 05, 2012, 07:16 pm
Un sacré travail. Bravo !
Title: Re: WR703N + VinciDuino
Post by: skywodd on Oct 05, 2012, 07:37 pm
Et ben il fait pas les choses à moitié Squonk42 :smiley-mr-green:
:smiley-eek: ça laisse sans voix ...
Title: Re: WR703N + VinciDuino
Post by: Artouste on Oct 05, 2012, 08:46 pm
bonsoir
ha oui quand meme !
clap-clap  :smiley-mr-green:

Juste par curiosité squonk42, tu a utilisé quel soft pour "reproduire" le PCB ?
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Oct 05, 2012, 09:46 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 (http://www.kean.com.au/oshw/WR703N/teardown/) 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 (http://www.cadsoftusa.com/download-eagle/?language=en) (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 (http://chime.tv/products/glass2k.shtml) 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  :)
Title: Re: WR703N + VinciDuino
Post by: al1fch on Oct 05, 2012, 09:56 pm
Quote
C'est quand même beaucoup de boulot  smiley

beaucoup de boulot astucieux et efficace ..... ça fait la différence !!
Title: Re: WR703N + VinciDuino
Post by: Artouste on Oct 05, 2012, 10:03 pm

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

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)
Title: Re: WR703N + VinciDuino... la suite
Post by: Squonk42 on Oct 13, 2012, 07:52 pm
Merci Jean-François!

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

(https://raw.github.com/Squonk42/TL-WR703N/master/Pictures/TL-WR703N%20Schematic%20LoRes.png) (http://squonk42.github.com/TL-WR703N/)

:smiley-sweat:

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 ;)

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 :


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 :


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


Bref, il y a de quoi s'amuser !
Title: Re: WR703N + VinciDuino... la suite
Post by: Squonk42 on Oct 15, 2012, 12:02 am
Petites corrections dans le schéma et le PCB, comme expliqué ici (https://forum.openwrt.org/viewtopic.php?pid=180590#p180590).

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  :smiley-mr-green:
Title: Re: WR703N + VinciDuino
Post by: jfs on Oct 15, 2012, 08:36 am
Topic réparé... j'essaye de récupérer les messages en vadrouille  XD
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Oct 15, 2012, 09:25 am
Youpie !
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Oct 15, 2012, 11:02 pm
Bon, voici l'idée de base :

(http://img15.hostingpics.net/pics/776222LinkDuinoTop.png)

En l'occurrence, le schéma de la VinciDuino dans le contour du capot bleu du WR703N  :smiley-eek:

Non, les coins ne sont pas en arcs de cercle, mais en arcs d'ellipse ! C'est un peu au chausse-pied, mais les connecteurs pour les shields rentrent à peu près  :smiley-roll-sweat:

Je voudrais aussi intégrer un GL850G (chip Hub USB 4 ports), comme sur la carte d'extension de Kean (http://www.kean.com.au/oshw/WR703N/).

Côté design, j'ai envie de cacher les composants à l'intérieur du boîtier du WR703N et de faire un joli dessin en "dithering" sur le dessus, un peu comme cela :

(http://dangerousprototypes.com/wp-content/media/2012/08/Visulizer0.3-back.jpg)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Oct 29, 2012, 09:31 am
Je retranscris en Français, le message (https://forum.openwrt.org/viewtopic.php?pid=181719#p181719) que j'ai posté dans le forum OpenWrt:

Il y a définitivement un bug dans le bloc hardware USB de l'AR9331.

J'ai effectué un simple test avec une Arduino Duemilanove ou une Vinciduino en faisant tourner bitlash (http://bitlash.net/) avec le simple script suivant sur l'Arduino:

Code: [Select]
function toggle13 {d13 = !d13;print i;i = i + 1;}
function startup {pinmode(13,1); run toggle13,1000;}


...c'est-à-dire, faire clignoter la LED toutes les secondes, en affichant un compteur monotonique incrémenté à la même cadence sur l'UART à travers l'USB.

Côté TP-LINK TL-WR703N, j'ai juste mis le module driver correspondant au chip USB de l'Arduino (ftdi_sio + usbserial en tant que /dev/ttyUSB0 pour la Duemilanove, cdc_acm en tant que /dev/ttyACM0 pour la Vinciduino), et l'émulateur de terminal simple de BusyBox "microcom" ("microcom -s 57600 /dev/ttyUSB0" pour la Duemilanove, "microcom -s 57600 /dev/ttyACM0" pour la Vinciduino).

La communication plante après un temps variable (allant de quelques minutes à quelques heures), mis en évidence par la LED TX de l'Arduino restant allumée en permanence. L'Arduino continue de fonctionner, car la LED d13 continue de flasher tranquillement toutes les seconds.

Même si vous sortez de microcom, de votre session, ou supprimez/réinsérez le module driver, la communication avec la carte Arduino ne redémarre pas. La seule solution pour remettre les choses en état de marche est de couper le jus de l'Arduino. Si celle-ci est alimentée par l'USB, cela se fait simplement en tapant les commandes :

Code: [Select]
echo 0 > /sys/classes/gpio/gpio8/value
echo 1 > /sys/classes/gpio/gpio8/value


J'ai constaté que si vous insérez un hub USB passif comme celui décrit dans ce topic (https://forum.openwrt.org/viewtopic.php?id=34188), vous pouvez effectuer le même test pendant plus de 10 heures sans problème... Vous pouvez même faire tourner LES DEUX cartes Arduino en même temps sans problème !

De tout ceci, nous pouvons tirer les conclusions suivantes :


Cette dernière conclusion confirme seulement que le bloc USB à l'intérieur de l'AR9331 n'est pas très bon, car j'avais déjà constaté que l'AR9331 n'était pas capable de gérer les périphériques USB low-speed comme un simple clavier ou une souris, mais que cela fonctionne à travers un hub USB passif.

La solution: TOUJOURS insérer un hub passif, comme la "Pieuvre" (http://www.ebay.co.uk/itm/190540919713), qui intègre un chip hub USB GL850G en boîtier SSOP28 (http://www.genesyslogic.com/manage/upfile/12052255151.pdf). Notez que certains modèles (http://www.ebay.co.uk/itm/250763987476) semblables extérieurement, contiennent une puce directement soudée sur le PCB et noyée dans le silicone au lieu du boîtier SSOP28. Ce n'est pas important si vous utilisez le hub tel quel, mais c'est un problème si vous voulez dés-souder le chip pour un  hack... Le hub complet est à peu près au même prix que le chip seul, mais vous avez des câbles et des connecteurs USB, un boîtier plastique réutilisable et un PCB avec un quartz en rab :)

Le fait que le son USB marche et pas les ports série USB n'est pas lié aux endpoints différents, mais est peut-être lié aux types de transactions USB : pour les communications série, des transactions "bulk" sans erreurs sont utilisées avec détection d'erreurs et ré-essais, car une transmission fiable est requise, alors que les données de son (ou de vidéo) utilisent des transactions "isochronous" qui ne garantissent pas une transmissions sans erreur, car normalement ce type de données peut contenir quelques glitches sans que cela ne soit perçu.

C'est juste une supposition, mais étant donnée la nature aléatoire du bug, il semble qu'il y ait un problème lorsqu'une erreur de transmission survient dans le mécanisme de ré-essais, présent seulement dans les transactions "bulk". Cela pourrait être confirmé en insérant de manière TRANSPARENTE un analyseur de protocole USB entre la carte Arduino et le routeur TP-LINK TL-WR703N .
Title: Re: WR703N + VinciDuino
Post by: archibal11 on Mar 06, 2013, 06:08 pm
Lorsque je lance upgrade firmware et aprés un chargement j'ai le message "upgrade failed"

je précise que mon wr703n v1.6 a un firmware dd-wrt de pré-installé.

Comment faire, merci.
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Mar 06, 2013, 06:31 pm
De ce que je sais, dd-wrt utilise un partitionnement de la Flash spécifique, alors qu'OpenWrt utilise le même que le firmware d'origine.

Il faut donc remettre le firmware d'origine sur le routeur avant de pouvoir installer OpenWrt dessus.

Je crois que la  procédure pour revenir au firmware d'origine est documentée sur le site dd-wrt.
Title: Re: WR703N + VinciDuino
Post by: archibal11 on Mar 06, 2013, 06:35 pm
d'accord , donc repassé a un firmware TP-link si possible en anglais (sera plus lisible que le chinois )  puis installé openwrt..
Title: Re: WR703N + VinciDuino
Post by: Artouste on Mar 06, 2013, 07:33 pm
Bonjour
tiens puisque que ce topic est reactivé
question aux petits genies de l'openwrt et des WR703 et MR3020
il existe une communauté qui s'interesse à la SDR et à l'ADSB et qui utilise comme recepteurs des clefs usb de reception TV.
ça fonctionne tres bien sous windows, c'est ce que j'utilise
Je crois avoir lu que la partie reception/injection de RAW sur TCP/IP a été portée sur RPI
pensez vous que cette partie puisse etre facilement portée sur les petits routeurs TP-LINK.
Ce n'est pour moi , là qu'aau stade de la reflexion declenchée il y a 5 minutes.
une reponse du genre : non pas possible parce que ceci ou cela , me convient aussi bien que oui peut , il faut faire attention à ça ou ça.

pour situer ce qu'est la SDR sur base clef usb
le site de Youssef le développeur SDR# et ADSB# (un français très sympathique)
et surtout les liens sur sa page vers les installs
http://sdrsharp.com/

Merci pour vos avis, meme si on s'eloigne un peu de l'arduino
Title: Re: WR703N + VinciDuino
Post by: archibal11 on Mar 06, 2013, 09:36 pm
je n'arriva pas a trouver sur le net comment passer du firmware dd-wrt a un firmware officiel tp link pour le wr703n,  pour ensuite pouvoir installé openwrt.

Si quelqu'un a une solution!!
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Mar 06, 2013, 09:38 pm
Je crois que c'est là:
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=85237&postdays=0&postorder=asc&start=225 (http://www.dd-wrt.com/phpBB2/viewtopic.php?t=85237&postdays=0&postorder=asc&start=225)
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Mar 06, 2013, 09:44 pm

Bonjour
tiens puisque que ce topic est reactivé
question aux petits genies de l'openwrt et des WR703 et MR3020
il existe une communauté qui s'interesse à la SDR et à l'ADSB et qui utilise comme recepteurs des clefs usb de reception TV.
ça fonctionne tres bien sous windows, c'est ce que j'utilise
Je crois avoir lu que la partie reception/injection de RAW sur TCP/IP a été portée sur RPI
pensez vous que cette partie puisse etre facilement portée sur les petits routeurs TP-LINK.
Ce n'est pour moi , là qu'aau stade de la reflexion declenchée il y a 5 minutes.
une reponse du genre : non pas possible parce que ceci ou cela , me convient aussi bien que oui peut , il faut faire attention à ça ou ça.

pour situer ce qu'est la SDR sur base clef usb
le site de Youssef le développeur SDR# et ADSB# (un français très sympathique)
et surtout les liens sur sa page vers les installs
http://sdrsharp.com/

Merci pour vos avis, meme si on s'eloigne un peu de l'arduino


J'ai moi-même une clé USB DVB-T+DAB+FM basée sur un tuner silicone EL4000 + contrôleur RTL2832-u, mais je ne l'ai utilisé pour le moment que sous Windows avec HDSDR.

Bon, il faudra oublier les xx# sur un routeur comme ça :)

A part ça, le CPU du TL-WR703N est un MIPS24kc à 400 MHz, soit de l'ordre de 240 MIPS, je ne sais pas si cela va suffire pour faire la DFT et l'envoyer sur le réseau ?
Title: Re: WR703N + VinciDuino
Post by: Artouste on Mar 07, 2013, 11:52 am



J'ai moi-même une clé USB DVB-T+DAB+FM basée sur un tuner silicone EL4000 + contrôleur RTL2832-u, mais je ne l'ai utilisé pour le moment que sous Windows avec HDSDR.

Bon, il faudra oublier les xx# sur un routeur comme ça :)

A part ça, le CPU du TL-WR703N est un MIPS24kc à 400 MHz, soit de l'ordre de 240 MIPS, je ne sais pas si cela va suffire pour faire la DFT et l'envoyer sur le réseau ?

Bonjour squonk
merci pour la reponse

perso je prefere SDR# (ADSB#) à HDSDR , mais ça c'est affaire de gout et d'utilisation

le RPI dans son utilisation principalement ne "fait que" acquerir par usb les signaux I/Q (8 bits) et les présente sur le réseau comme serveur.
Il ne traite pas plus l'info (c'est le soft eloigné qui le fait)
3 liens plus ciblés
http://sdr.osmocom.org/trac/wiki/rtl-sdr
http://www.hamradioscience.com/raspberry-pi-as-remote-server-for-rtl2832u-sdr/
http://www.youtube.com/watch?v=rU0dgV7VX2o

perso , j'ai pensé à ça hier soir en lisant une reponse au topic, et tres humblement je ne me rend pas compte
de la faisabilité ou pas avec les petits TP-Link, mais si c'est possible, ça peut être tres sympa


Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Mar 07, 2013, 12:16 pm


Bonjour squonk
merci pour la reponse

perso je prefere SDR# (ADSB#) à HDSDR , mais ça c'est affaire de gout et d'utilisation

Désolé, c'est un réflexe: j'ai tendance à fuir tous les logiciels dont le nom se termine par "#" :)

Mais c'est vrai que l'interface de HDSDR est loin d'être intuitive...

le RPI dans son utilisation principalement ne "fait que" acquerir par usb les signaux I/Q (8 bits) et les présente sur le réseau comme serveur.
Il ne traite pas plus l'info (c'est le soft eloigné qui le fait)

Bon, dans ce cas, ça peut être jouable, ça dépend du débit sur le port USB.
Title: Re: WR703N + VinciDuino
Post by: Artouste on Mar 07, 2013, 02:17 pm

...
Bon, dans ce cas, ça peut être jouable, ça dépend du débit sur le port USB.


sauf mauvaise lecture de ma part le flux brut issu de la clef doit tourner autour de
(8I + 8Q ) * 2.4 MSP = ~ 38.4 Mbit/s ~ 5 Mo/s
Title: Re: WR703N + VinciDuino
Post by: archibal11 on Mar 07, 2013, 03:07 pm
Merci  squonk  pour le lien cela m'a permis de passer en firmware  tp-link, puis j'ai pu installer openwrt.

Title: Re: WR703N + VinciDuino
Post by: thierry69 on Mar 09, 2013, 10:09 pm
Bonjour a tous.
Je suis arrive sur ce forum suite au "bricage" de mon wr703n fraichement recu...
J'avais installer openwrt et en essayant de lui comfigurer piratebox et encore et encore....j'ai fini par le bloque.
j'ai essaye de passer par un arduino pour lui causer en serie mais apres plusieurrs jours de tests je n'y suis pas parvenu....
J'ai reussis a reflasher avec un lecteur de carte sim bidouiller en convertisseur serial ttl....et apres beaucoup  de reinstall et maj etc...ma piratebox marche nickel.
Mais bon quand ca marche c'est deja moin marrant...alors avant de bidouiller autre chose j'aimerai pouvoir faire une image du system pour faciliter sa reinstallation dans quelque temps. Si quelqu'un a la solution? Merci
Title: Re: WR703N + VinciDuino
Post by: thierry69 on Mar 28, 2013, 07:51 pm
Solution:

Cat /dev/mtd5 /tmp/backup.bin
Title: Re: WR703N + VinciDuino
Post by: barbudor on Oct 10, 2013, 08:42 pm
Je reviens sur ce sujet

Est-ce que quelqu'un a regarder l'architecture de la Yun ?
On ne pourrait pas l'appliquer à Leonardo + WR703 ?
Title: Re: WR703N + VinciDuino
Post by: Squonk42 on Oct 12, 2013, 09:24 am
Impossible à dire avec certittude, car les schémas complets du Yun (comprenant la partie AR9331) ne sont pas disponibles =(

En pratique, je pense en effet que le Yun soit très proche d'une Leonardo + WR703N car également basé sur OpenWrt, avec probablement les mêmes problèmes de freeze de la voie série virtuelle sur USB...
Title: Re: WR703N + VinciDuino
Post by: 3Sigma on Oct 12, 2013, 09:42 am
Grosso modo c'est la même architecture, avec 16 Mo de flash sur la Yun, au lieu de 4 sur le WR703N ou son frère européen MR3020, ce qui parfois est trop juste.
Bien sûr, ce qui compte c'est la mémoire qui reste disponible mais au moins avec 16 Mo tu peux enlever des choses inutiles pour avoir plus de place.
Title: Re: WR703N + VinciDuino
Post by: skywodd on Oct 15, 2013, 02:53 pm

Impossible à dire avec certittude, car les schémas complets du Yun (comprenant la partie AR9331) ne sont pas disponibles =(

Et il risque pas de l'être, la partie Atheros étant sous licence proprio.


En pratique, je pense en effet que le Yun soit très proche d'une Leonardo + WR703N car également basé sur OpenWrt, avec probablement les mêmes problèmes de freeze de la voie série virtuelle sur USB...

En pratique c'est une carte Leonardo + WR703N avec x2 mémoire flash/ram.
Ya aucune autre différence à par un slot pour carte SD je crois (de mémoire, à vérifier).

Pour l'openWRT j'ai fini par trouver les fichiers de configuration complet - surement à jour (impossible de le vérifier) - sur un serveur FTP dont le lien est disponible dans un sous-sous-sous-topic du forum anglais.
Il y a aussi les .ipk pré-compilés pour ceux qui voudraient installer de nouveau paquets sur la Yun, bon par contre niveau mémoire ça risque d'être plus compliqué :smiley-mr-green: