 La prochaine conférence va être donnée par Bethy qui est déjà là et il travaille dans le chiffrement, la cryptographie et il aime bien détourner des objets et les réutiliser pour leur trouver de nouveaux cas d'utilisation et il va nous parler de ça aujourd'hui avec son website conférence qui s'appelle Wi-Fi Broadcast et en fait il va nous expliquer comment convertir des modules Wi-Fi que vous utilisez tous les jours pour faire autre chose que du Wi-Fi en fait on va détourner le Wi-Fi pour faire un peu de choses et de nouvelles choses. Merci beaucoup. Aujourd'hui je vais vous présenter mon travail sur la modification de modules Wi-Fi pour l'utiliser d'une manière qu'ils n'ont pas été conçus pour. Un exemple serait de broadcaster des transmissions ou l'utiliser pour créer le contenu aujourd'hui. Je vais commencer par la skip motive de faire ça. Pourquoi vous auriez besoin de faire ça en fait ? Pourquoi c'est besoin de faire ces changements sur ces modules Wi-Fi ? Parce qu'on l'utilise tous les jours et il fonctionne déjà très bien et c'est vrai pour le cas d'utilisation, pour le cas où ils sont prévus pour, mais il y a un tas d'autres cas d'utilisation où le standard Wi-Fi ne fonctionne pas correctement, il n'est pas adapté et donc on va se concentrer sur ces cas d'utilisation différents qui ressemblent à du Wi-Fi mais qui ne sont pas du Wi-Fi. Je vais commencer par vous montrer le principe de fonctionnement général et ensuite je vais vous montrer comment on peut améliorer des transmissions faites par les modules Wi-Fi pour faire des transmissions qui sont vraiment très difficiles à perdre, très très fiable et je vais vous montrer quelques cas d'utilisation. Je vais vous faire à la fin, je vais également vous faire, je vais avoir quelques vidéos pour vous montrer un peu des démons quoi. Donc commençons par ma motivation, skip motive et un bon exemple d'une application de ce que je fais. Si vous voulez construire un gestiel libre avec un drone, n'importe quel type de drone, par exemple un quadcopter, c'est pas très important quel type de drone c'est. La partie importante c'est que ce drone a une caméra attachée sur le drone et qu'elle envoie directement via téléversement les images de la vidéo et ce qui serait bien c'est de pouvoir uniquement piloter le drone, uniquement regardant la vidéo, ce flux vidéo et du coup la fiabilité de ce flux vidéo est très très importante, il faut qu'on ait joué à la vidéo, il faut toujours qu'elle soit fluide pour pouvoir piloter le drone. Peut-être que ça entre vous, on est déjà venu de comment est-ce qu'on pourrait réaliser ça. Vous pourrez rajouter par exemple du matériel wifi dessus sur le drone, écrire un point d'accès sur le drone et sur le sol, vous pourriez vous placer un ordinateur portable pour vous connecter au wifi du drone et depuis le drone du coup envoyer votre flux vidéo sur l'ordinateur via des packs AIDP par exemple. C'est là plutôt une bonne idée et si vous testez ça à la maison, vous vous rendrez compte que ça marche en fait plutôt bien, mais si vous vous testez ça dans la vraie vie dehors vous allez vous rendre compte que vous allez avoir des problèmes de connectivité, de connexion et vous allez perdre la connexion avec le drone et du coup vous allez devoir piloter à l'avogle un drone, ce qui n'est pas très évident. Ok, peut-être que c'est pas trop grave, le wifi d'habitude ça se reconnecte tout seul. Peut-être que la récognition thématique c'est à vous aider, peut-être qu'en fait ça n'a pas à vous aider du tout. L'avantage de ça c'est qu'en fait c'est très facile à mettre en place, vous pouvez juste tester le matériel et tester, mais peut-être qu'au final votre drone il va s'écraser, un des problèmes ici c'est qu'en fait le wifi c'est un maquillisme d'association qui garde un état et c'est très difficile de garder un état dans un environnement où les transmissions sont pas très fiables. Un autre problème c'est que donc ici comme je dis une petite dépacquerie d'épée et ça assemble être le bon choix parce que c'est une hydírectionnelle et que dp en fait c'est sans état et du coup c'est plus intelligent peut-être que tcp où il y a un flux, il faut envoyer des hack knowledge man, il faut envoyer des paquets vers le drone avec udp on a pas besoin de faire ça. udp ça a l'air bien d'apprendre vu la couche réseau mais en fait sur la couche inférieure, la couche mag avec le wifi il y a toujours une connexion, il y a toujours du trafic bidirectionnel même si vous utilisez de l'udp. Donc en fait même en utilisant du dp à travers le wifi vous avez quand même besoin d'envoyer des accusations vers le drone. Et donc vous avez besoin d'avoir un flux qui va du sol vers le drone et c'est quelque chose que vous voulez pas avoir parce que du coup au lieu d'indépendre de deux liens, du drone vers le sol vous allez dépendre de deux liens, du drone vers le sol et du sol vers le drone et c'est quelque chose que vous voulez pas parce que c'est beaucoup plus compliqué à appérer. C'est moins fiable, la bidirectionnalité c'est moins fiable. Idealement vous voulez avoir quelque chose de complètement assymétrique. Donc par exemple si vous voulez pouvoir augmenter la portée du réseau wifi, par exemple vous pourriez installer un amplificateur pour faire ça. Mais du coup avec le wifi vous aurez besoin d'avoir, si c'est bidirectionnel vous aurez besoin d'avoir un amplificateur à la fois sur le drone et à la fois sur le sol et c'est pas très pratique. Il y a aussi un tas de mécanismes dynamiques par exemple de contrôle de la transmission avec wifi. Par exemple si jamais les agribles qui gèrent le wifi se rendent compte que la transmission est pas terrible, la qualité est pas terrible, on va par exemple réduire la bande passante et tout ça ça se passe automatiquement si vous n'avez pas le contrôle là dessus. Donc imaginez que vous êtes en train de envoyer un flux vidéo qui fait 10 Mbps et d'un coup votre bande passante wifi passe de 10 à 5, vous perdez votre flux vidéo. Donc le contrôle de la bande passante automatique, le contrôle de la puissance de transmission automatique. C'est quelque chose que vous ne pouvez pas faire parce que vous voulez toujours enfatiser la puissance maximale de transmission en quelque soit l'environnement qui vous entoure, les autres réseaux qui vous entourent. Donc si dans le standard wifi vous avez un système de CRC pour vérifier que le signal est correct et c'est un problème en fait. Imaginez que vous volez de plus en plus loin de votre station au sol et au bout d'un moment les bénéfices de ces sommes de contrôle CRC vont plus être utiles, vous allez avoir de la corruption et sans prévenir et d'un coup tout va s'arrêter. Vous n'avez pas l'avoir de dégradation, c'est à pas doucement se dégrader, ça va se dégrader d'un coup et vous allez tout perdre d'un coup. Alors qu'en fait ce qui serait sympa c'est d'avoir peut-être un peu quelques images, quelques frames mais on peut encore piloter le drone au lieu d'avoir d'un coup perdre tout. Et donc tous ces points que je viens d'expliquer c'est ce qui motive en fait à revisiter le wifi et voir ce qu'on pourrait changer pour faire ça que ce soit plus fiable. Dans le wifi de base on a une station de base, un access point et on se connecte dessus. Et le fi il broadcast tous les modes qu'il travaille dessus et du coup là on dit le transmetteur et le récept receiver. Et on utilise des dongles de la standard qui sont réellement beau marché. Et basé sur ces noms on peut déjà voir qu'en fait c'est vraiment du unidirectionnel. Le transmetteur il travaille dans le mode d'injection et il envoie des modes, des paquets qui peuvent être fait comme on veut. Et le récepteur il travaille dans le mode de moniteur et on va juste lire tous les paquets qui se passent partout. Et du coup on va juste recevoir les paquets du transmetteur et ça fait déjà un lien très très primitif mais étonnamment bon et qui n'a pas tous les problèmes du wifi standard comme le directionnel. En théorie c'est très très simple à faire et il y a un API qui permet d'accéder directement avec quelques lignées seulement et c'est go to go très très facilement. En réalité il y en a des problèmes mais le côté d'injection qui fait que c'est beaucoup plus compliqué parce qu'on sort du domaine du wifi standard et on sort du domaine du normal et on n'a plus de garantie comment le hardware il réacte par rapport à ça. Et que je vous en ai vu c'est que l'injection rate va être réellement bas et que pour certains chips c'est vraiment terriblement mauvaise et très très bas et cette manière de résoudre ça c'est de prendre des bons chips, des bons capteurs, des bons plus et beaucoup des fermets et des pilotes ils ignorent en fait des paramètres très très cruciels quand par exemple la puissance DX. Beaucoup d'adopteurs ignorent ce paramètre et on voit juste la puissance minimale qui est contraire ce qu'on veut et quelques lignées ajoutées dans le kernel patch si vous pouvez le regarder pas trop en détail mais c'est très très dégueulasse mais ça fait le beau. Deuxième c'est de demander la bande passante pour mettre en fait beaucoup d'adapteurs ils sont un bon passante trop basse heureusement il y a un dangle celui que je viens vu avant qui permet de changer le firmware qui est accessible du coup on juste télécharge et le flash sur le dangle et ça permet d'avoir du contrôle sur le data rate comme on veut comme ça on peut contrôler la bande passante pour garantir qu'on n'a pas assez pour les flux de vigno. Disons tous les problèmes sont résolus on remet sur ce système que l'on a vu avant et ça marche réellement bien plusieurs centaines mètres j'arrivais à faire avec ce setup sans jouer trop des trop des choses autour mais motivation pour ce projet c'était beaucoup plus de faire des opérations de vendu de oiseaux et du coup il fallait augmenter la distance possible donc c'était pas suffisant encore. Une possibilité c'était avoir plusieurs accepteurs qui permettent de faire de la diversité en software. Ce l'air d'être pas très utile il est juste trois capteurs de plus qui vont être exactement même chose donc on va avoir trois copies du même chose mais en réalité c'est pas le cas. En fait ça aide énormément et la réalité c'est qu'on a du multi path interference donc des paths multiples qui s'interferent et ça bue du goût aider beaucoup. En fait par terre on n'a jamais un path un chemin direct pour le signal il y a toujours des réflexions qui interfèrent l'ondant du récepteur qui peuvent être des informations constructif ou destructif et du coup par la chance unique soit on a quelque chose de constructif ou destructif et en mettant plusieurs récepteurs on peut changer un peu l'angle et cet triangle en bas et ça peut augmenter la probabilité pour avoir au moins un récepteur qui a une bonne interface et ça en réalité aide énormément. Il y a plusieurs méthodes il y a par exemple la diversité d'ontane. Par exemple quand on regarde ces ontanes noires c'est les ontanes omnidirectionnelles qui sont des 360 degrés mais on peut mettre des ontanes différentes pour les différentes récepteurs et du coup prendre une ontane qui en garde très très haute pour des longues distances si on sait en fait je ne vais voler que dans cette direction là et si on met un peu plus d'argent on peut avoir plusieurs ontanes de longues distances en parallèle en fait c'est une ontane qui n'est pas possible de faire juste avec la magique d'ontane elle est électronique et en autre cas d'utilisation c'est en fait la couverture spatiale du coup ça aide énormément là on a des occlusions des endroits où le signal peut pas passer par exemple à travers les murs ou pas passer par dessus donc juste mettre plusieurs récepteurs à différents endroits et le software mélange automatiquement le signal de tous ces récepteurs et on reçoit en stream des données logique et tout ça se passe automatiquement dans une clé à l'autre. Donc laissez-moi vous expliquer rapidement comment tout ça fonctionne c'est en fait assez simple par exemple si on a un exemple avec trois cartes quatre paquets qui sont consécutifs et imaginons juste que vous avez reçu un paquet par exemple une erreur CRC il y a quelque chose qui s'est mal passé mais on sait pas exactement quoi au moins un bit à changer a été flip mais ça pourrait être autre chose pour être très grave ou pas très grave on sait pas mais les autres cartes ont reçu le paquet correct avec une bonne somme de contrôle CRC et donc si on les combine sur les combines si on combine ces trois réceptions et ben on peut avoir le bon résultat le second paquet peut-être qu'il serait bon sur la première carte mais on a une erreur CRC sur la carte 2 peut-être qu'on n'a pas du tout reçu sur la dernière carte mais encore une fois ici le choix est facile on part en celui qu'on a bien reçu et on commis disons ces trois résultats on arrive à là bas un paquet un bon paquet troisième paquet voilà on a deux erreurs de somme de contrôle et un paquet qu'on n'a pas reçu ici le choix est difficile à faire mais la meilleure chose qu'on pourrait faire c'est prendre un des paquets avec l'horre de somme de contrôle CRC peut-être le paquet a été reçu avec la meilleure le meilleur signal la meilleure puissance de signal et le deuxième paquet complètement manquant sur toutes les cartes et ça ça arrive souvent qu'on a des interférences externes par exemple une étincelle je sais pas quelque chose et un phénomène externe et vous pouvez pas faire grand chose en ce cas là et donc si on prend ce flux de paquet combiné c'est beaucoup mieux qu'une carte mais bon il y a encore des artefacts des choses manquantes on peut faire quelque chose à propos de tout ça en ajoutant des codes de correction d'erreur forward error correction code de correction d'erreur on a l'envers l'avant donc en fait on pourrait rajouter des paquets supplémentaires et le nombre de paquets supplémentaires que vous allez rajouter va dépendre de la bonne patiente de la qualité du signal que vous avez donc quelle est d'où un paquet c'est bien passé on n'a rien à faire mais après on a donc ce paquet corrompu et ce paquet manquant donc on applique le premier paquet qui contient du code du code de correction d'erreur et en fait avec des algorithmes de correction d'erreur assez malin on peut recalculer la donnée qui est manquante et du coup on est capable de retrouver ce paquet manquant et pareil on pourrait utiliser un autre paquet de correction d'erreur pour fixer la corruption du paquet bien sûr ici c'est un exemple optimal en vérité vous avez des situations où vous avez utilisé tout le paquet de correction d'erreur et vous pouvez plus rien faire et si ça arrive trop souvent bah vous pouvez peut-être essayer de rajouter plus de paquets de correction d'erreur ça c'était les principes basiques du truc maintenant j'aimerais vous monter à quelques cas d'utilisation et des outils que j'ai développés et qui utilisent tous ces principes qu'on a expliqué premièrement c'est un peu artificiel comme exemple mais c'est un transfert simplifié donc on a un récepteur donc on veut reçoire tous les paquets donc on commence par lancer ce programme qui s'appelle RX on lui donne en argument le récepteur wifi qu'on m'a utilisé la carte qu'on m'a utilisé et donc mon logiciel est assez malin quoi si vous avez plusieurs récepteurs il serait capable d'utiliser d'un coup et tous les données reçues vont être affichées sur sd out et ensuite pipelineer vers nos programmes pour l'affichage et donc du côté de la transmission on a à peu près la même chose sauf que d'abord on ligne image sur la sortie standard et ensuite on la pipeline vers notre logiciel de transmission par broadcast et donc voilà ça va être envoyé à travers l'air et reçue et ça marche simple un peu artificiel maintenant voici un calculisation vraiment réelle que j'utilise sur mon drone pour transmettre la vidéo comme ordinateur j'utilise un Raspberry Pi que sur le drone non qui passe au bon petit sur la station du sol bon ça a l'air un peu plus compliqué comme une commande mais en fait c'est un peu plus simple la première commande c'est un outil standard pour le Raspberry Pi qui en fait envoie une vidéo compressée avec h2c 4 et donc on envoie cette vidéo dans le programme de transmission et même s'il n'y a pas de récepteur le programme de transmission va quand même envoyer tout ça une alternative si vous voulez pas utiliser un Raspberry Pi c'est juste streamer ça ressemble à pas la même chose par exemple vous pouvez utiliser un périphérique vidéo for Linux qui prend une caméra par exemple et hop vous récupérer l'image de la caméra et vous envoyer ça sur le transmitter vous pouvez bien sûr faire la même chose en la main sans saverse et du coup prendre les données reçues et les envoyer dans streamer pour l'affichage maintenant les broadcasts wifi et en fait complètement agnostique un type de données que vous transportez en soi c'est pas très utile c'est pour ça que j'ai développé des composants qui peuvent rendre l'application avec le drone plus complète par exemple c'est enfin vous pouvez par exemple mettre des images sur votre Raspberry Pi sur une carte et les envoyer depuis votre Raspberry Pi et du coup aux côtés réception on peut également enregistrer donc vous pouvez mettre par exemple QSB sur le Raspberry Pi et enregistrer directement à ce qu'il y a été aussi sur la carte sur la carte QSB vous pouvez également avoir un petit écran sur Raspberry Pi j'imagine et afficher du redirectement des données de telemétrie dessus je aussi réaliser un port pour android tout ce que j'ai fait c'est un peu plus compliqué que prévu mais pour vous donner un aperçu de ce que vous pouvez faire voici j'ai un Raspberry Pi 0 avec une petite caméra et c'est directement produit la caméra directement produite par les gens qui font le Raspberry Pi c'est déjà après quelque chose de pas mal pour un drone et voici mon propre setup j'ai fait la main pour la réception donc j'ai découpé de la mousse le truc bleu au milieu c'est la batterie et le truc blanc à droite c'est le récepteur wifi ça ne s'est pas assez joli j'ai tout dans ma poche et je peux prendre avec quand je vais voler ça c'est un image de mon display vous voyez des choses comme la force du signal l'horizon artificiel ou la distance juste chez moi vous allez voir des autres exemples de tout ça ça c'est une capture d'écran de mon screenshot de soi même quand je suis pris on fait vous voyez sur le display directement ce que j'ai pris comme un screenshot et c'est trop victimement du dongle au android et j'ai dû recompiler le kernel du android c'est un peu complexe parce qu'il du faire un change route et on voyait ça en netcap qui envoie après des paquets utp en port local et du côté android j'ai dû recevoir les données du port local et après les s'afficher sur l'écran c'est pas très bien produit de l'asateur mais ça marche conclusion j'aimerais bien vous montrer un un record une transmission distance c'est pas fait par moins ce que vous voyez maintenant c'est aussi le le display l'osd et la vidéo en arrière c'est en fait regardé sur sur place et c'est en fait le vidéo que vous voyez comme pilote c'est un avion en fait et vous voyez dans l'air dans l'air dans quelques secondes vous voyez l'antenne du drone qui est rien de spécial c'est juste cette bague gris c'est une antenne non directionnelle à tout effet standard vous regardez en bas ça c'est la distance à l'opérateur qui est énorme quand vous voyez la vidéo elle est très très net c'est un très bon visuel pour contrôler votre drone en fait et je vais laisser tourner ça pour les questions merci beaucoup et je suis content de prendre vos questions très impressionnant merci beaucoup béfi vous pouvez procéder au microphone pour poser vos questions ok on a on va commencer à lui fin numéro deux bonjour merci pour votre torque vous avez dit que il y aurait une dégradation de signal de manière graceful est-ce que vous pouvez également afficher la qualité de la connexion par exemple combien de paquets de correction des verges utilisé oui je le fais pas quelque chose similaire si vous regardez au nom le premier chiffre la quantité des blocs de données qui pourraient qui ont pas pu être récupéré par le flip paquet je me demande pourquoi ça augmente pas mais se donne déjà une assez bonne indication c'est une question pratique qu'est-ce que quel est le nom du récepteur des filles que vous utilisez ce mot tourner en arrière sur l'image donc c'est pièce blanc c'est appelé tl dash w n 7 n si vous achetez celui là fait sûr que vous avez la première révision parce que les révisions plus tard ont refait tout l'intérêt du chip et ont failli d'utiliser un chip différent je suis très impressionné par ce que vous faites avec le dieu de matériel pour genre mot consumers pas professionnels et vous arrivez à être dans une distance de plusieurs dizaines de kilomètres en fait le sable est asymétrique l'antenne standard au début du vidéo elle n'aurait pas 100 kilomètres distance de soi-même en fait c'était regardé depuis le sol avec une antenne directionnelle très très haute amplification et j'engeais que si vous installez cette antenne sur l'avion pour le lire en fait depuis le sol j'aimerais savoir quelle technologie vous utilisez pour filtrer les paquets depuis le côté recevoir réception de réception une fois que vous êtes en mode de moniteur comment est-ce que vous filtrer les paquets qu'est ce que vous utilisez pour sélectionner seul morceau il y a la vidéo cpf les paquets que j'utilise en une adresse mac spéciale j'applique les bif là dessus la telemetrie est aussi envoyée par du broadcast wifi et celui là il soutient une supporte des ports pour avoir plusieurs flux en parallèle les plus grosses applications dans type de vol c'est le délai que vous avez sur la vidéo comment est-ce que vous avez comment ça se compare comment mettre votre vidéo digitale se compare à des choses des bains de transmission analogues analogiques en réalité le délai est un peu plus grand j'ai un exemple à l'exemple analogues latent c'est autour de 40 millisecondes le vifi avec du rasper hippie c'est autour de 100 millisecondes c'est un peu plus long mais c'est pas le vifi pour casque qui est à la base mais c'est la compression de vidéo sur le rasper hippie il fait du trigain basé par l'image seulement une fois vous avez une image complète ça commence la traduction et on serait mieux de commencer la compression déjà avant malheureusement avec du rasper hippie c'est pas possible parce que la compression vidéo c'est du close source et justement non j'ai pas encore trouvé une meilleure alternatif ouverte qui ferait sa meilleure la seule manière de faire ça c'est de faire du hardware à soi-même avec du contrôle complet ou en FPGA mais je décide de pas l'utiliser parce que le vifi progress serait d'être accessible à tout le monde et les FPGAs sont un peu trop spécial pour ça de prendre des trucs de base sur un on-line shop normal vous avez montré du rasper hippie sur la caméra mais vous n'êtes pas le chip wifi broadcam c'est le truc de pélique et oui c'est bien c'est bien ce que le présentateur a dit que c'est bien ce qu'on fait un petit truc de pélique merci beaucoup pour votre conférence j'ai cru correct le dongle wifi j'en ai un moi même en fait et je me demandais est-ce que le chip atheros atheros est-ce qu'il reste encore des chips des dongle wifi atheros avec cette révision du matériel en fait c'est pas exactement si c'est encore accessible parce que si vous êtes dans un magasin maintenant vous pouvez plus trouver ce dongle wifi il y a d'autres alternatives par exemple le 5 gigahertz vous pouvez utiliser des autres à puce il y a un lien sur mon bloc il y en a pour cette présentation si vous êtes utilisés pour l'application drone il y a trois ou quatre présentations déjà qui ont déjà augmenté la fonctionnalité par plusieurs magnitudes merci ok prochaine question merci pour votre conférence c'était très impression de voir une vidéo claire une question est comment vous contrôlez le drone est ce que c'est une autre communication unidirectionnelle vous pouvez utiliser du vif broadcast pour ça aussi faire le rx et x sur le même dongle en parallèle ça marche et moi je préfère d'avoir plus autres possibles plus autres fiabilités sur le canon de contrôle donc je suis de liste et des choses comme vous pouvez les acheter sur le marché ils font un petit peu d'interference mais il y a des chemins pour enlever ça et je fais vraiment le plus autre fiabilité pour le contrôle et je sais que pour la vidéo feedback c'est moi ça me sert juste à l'opinion personnelle et notre dernière question en ce qui concerne la collection erreur vous avez montré que si vous utilisez des packets collection erreur vous pouvez tu sais pour réparer des packets cassés est ce que vous avez regardé si c'était possible j'ai pas très con la question merci pour reconstruire donc c'est par le sujet de ce que vous préparez c'est celui qui est cassé que cacé j'ai pas regardé ça désolé pour ça j'ai pas plus d'infos là dessus avec des vidéos analogiques traditionnelles vous avez la possibilité de choisir le canal sur lequel vous transmettez sauf plusieurs personnes peuvent voler en même temps donc vous avez mentionné que dans le broadcast wifi vous pouvez avoir différents ports pour différents streams combien de ports pouvez-vous supporter en même temps et combien de drones vous pouvez avoir dans l'air en même temps et ce qu'il y a la possibilité plus ou moins de ports si vous avez besoin de bandes passantes enfin oui si vous limitez la bande passante vous pouvez transmettre plus en parallèle je ne recommande pas d'utiliser des ports différentes pour voler des drones en parallèle parce qu'il y a des drones qui pourra jouer pour être gentil et d'utiliser moins ou plus de bandes passantes donc je recommande d'utiliser des canons wifi différentes pour les séparer et en fait le dongle blanc que je vous montre il est assez puissante et vous pouvez le détenuer pour même aller à des bandes passantes à 3 gigas en 3 gigas et tout plus