WR703N + VinciDuino

Youpie !

Bon, voici l'idée de base :

En l’occurrence, le schéma de la VinciDuino dans le contour du capot bleu du WR703N :astonished:

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 :cold_sweat:

Je voudrais aussi intégrer un GL850G (chip Hub USB 4 ports), comme sur la carte d'extension de Kean.

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 :

Je retranscris en Français, le message 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 avec le simple script suivant sur l'Arduino:

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 :

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, 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 :

  • l'Arduino tourne comme un coucou suisse :slight_smile:
  • ce n'est pas un problème d'alimentation, car j'ai pu faire tourner le hub passif USB + les 2 cartes Arduino en même temps
  • ce n'est pas un problème logiciel applicatif du côté du TP-LINK TL-WR703N, car le logiciel est exactement le même dans les deux cas
  • si c'est un problème logiciel, c'est un problème de très bas niveau lié aux différences de timing/protocole entre les configurations directe/à travers le hub, mais pas dans le driver USB lui-même, car cela se produit de la même façon dans le driver ftdi_sio + usbserial et le driver cdc_acm, donc cela se passe danas les accès bas-niveau interruptions/accès aux registres/DMA, etc.
  • plus probablement, il s'agit d'un bug dans le bloc hardware USB :frowning:

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", qui intègre un chip hub USB GL850G en boîtier SSOP28. Notez que certains modèles 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 :slight_smile:

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 .

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.

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.

d'accord , donc repassé a un firmware TP-link si possible en anglais (sera plus lisible que le chinois ) puis installé openwrt..

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

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

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!!

Je crois que c'est là:
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=85237&postdays=0&postorder=asc&start=225

Artouste:
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 :slight_smile:

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 ?

Squonk42:
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 :slight_smile:

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

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

Artouste:
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 "#" :slight_smile:

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

Artouste:
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.

Squonk42:
...
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

Merci squonk pour le lien cela m'a permis de passer en firmware tp-link, puis j'ai pu installer openwrt.

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

Solution:

Cat /dev/mtd5 /tmp/backup.bin

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 ?

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...

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.

Squonk42:
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.

Squonk42:
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é :grin: