Je ne me souviens plus comment et pourquoi je suis tombé sur ce nouveau « RaspberryPi like » mais ses caractéristiques m’ont donné envie de le commander et de le tester. Voici le NanoPi NEO Air de chez FriendlyArm
Les caractéristiques
Ce module est tout petit (40x40mm) et si on devait faire une comparaison, il faudrait le comparer au Raspberry PI zéro. Ce qui m’a séduit, hormis sa taille, c’est le chip WiFi/Bluetooth intégré + les 8Go de eMMC qui n’existe pas sur le PiZéro.
Par contre, le slot micro-usb utilisé pour l’alimentation ne permet pas comme son concurrent de brancher directement un appareil en USB. Cependant, si on est un peu bricoleur, on peut sortir 2 USB des PINs du module.
Aussi, le module n’a pas de sorti HDMI (bien que le microprocesseur ait un GPU et HDMI compatible, les pattes ne sont pas routées)
Le microprocesseur est un AllWinner H3 (très utilisé dans les Android TV ou tablettes chinoises à pas cher). il possède 4 Coeurs cadensés à 1.2Ghz.
Voilà rapidement les caractéristiques de l’engin. Si vous voulez plus de détails, rendez-vous sur le site du constructeur.
Voici, pour comparaison, les deux modules :
Le prix
Cet appareil, seul, coûte environ : 17€ .
Par contre pour fonctionner correctement, il est important d’investir dans :
- Une alimentation 5VDC/2A (~=10€)
- Une antenne 2.4Ghz UFL (~=4€)
- Une SD (mais de manière temporaire) (~=10€)
TOTAL : ~= 31€
Si on doit comparer au PiZéro à (~=5€), on retombe sur nos pattes, car il lui faut :
- Une alimentation 5VDC/2A (~=10€)
- Une clef USB WiFi avec convertisseur USB/MicroUSB (~= 10€)
- Une SD à demeure (~=10€)
TOTAL : ~= 35€
L’installation
Le fabricant a créé un wiki permettant de mettre en route le module –> Wiki.
Il existe plusieurs méthodes pour installer le NanoPI pour qu’il soit exploitable.
- Soit en mode SDcard. (même principe que pour les RaspberryPi)
- Soit en utilisant la eMMC. (Ca serait franchement dommage de ne pas l’utiliser)
En fait, par défaut, le module démarre à l’aide d’un U-Boot qui va d’abord chercher la SDcard. Si elle existe, il démarre dessus, sinon il démarre sur la eMMC.
Au départ, il n’y a rien, c’est pour cela que l’on doit passer automatiquement par une carte SD.
Pour ceux qui ont l’habitude avec le Raspberry, c’est la même chose :
- On télécharge l’image qui va bien (elle se trouve ici) – Prendre l’image de 8Go pour pouvoir utiliser l’outil eFlasher permettant d’installer le rootfs sur la eMMC.
- On la copie sur la carte SD à l’aide de USBIT ou win32diskimager ou dd (pour les barbus linuxiens)
- On la plug sur le module
- On branche l’alimentation
1ère difficulté :
Ce module n’a pas d’HDMI. Du coup, le démarrage se fait « en aveugle » et on se demande comment faire pour se connecter au module et jouer avec.
Le Wiki recommande d’avoir un Linux (type Ubuntu), de plugger la carte SD et de modifier les paramètres du WiFi (/etc/wpa_supplicant/wpa_supplicant.conf) pour qu’au démarrage le module se connecte à votre réseau. Ensuite, il suffit de s’y connecter avec un client SSH.
Je trouve la méthode un peu galère, un peu longue à mon goût et pas super fiable.
Ma solution :
J’ai utilisé un câble FTDI USB-TTL que j’ai connecté au module qui s’applle : « Debug USB » sur le schéma (en début d’article). Il faut relier le GND au GND_FTDI, le TX au RX_FTDI et le RX au TX_FTDI.
Ce système permet de se connecter en mode console (avec une COM) sur le module et de ne pas être dépendant du réseau. Voici les paramètres de connexion sur le port COM :
Vitesse : 115200 bauds Datas : 8bits Stop : 1bit Pas de parité, pas de contrôle de flux
C’est une fois connecté sur la console que l’on peut sereinement paramétrer le module.
1- Configurer le WiFi
Modifier le fichier /etc/wpa_supplicant/wpa_supplicant.conf
si on suit la « doc », vous devez remplir à la main le fichier comme suit :
[pastacode lang= »bash » manual= »ctrl_interface%3DDIR%3D%2Fvar%2Frun%2Fwpa_supplicant%20GROUP%3Dnetdev%0Aupdate_config%3D1%0Anetwork%3D%7B%0A%20%20%20%20%20%20%20%20ssid%3D%22YOUR-WIFI-ESSID%22%0A%20%20%20%20%20%20%20%20psk%3D%22YOUR-WIFI-PASSWORD%22%0A%7D » message= » » highlight= » » provider= »manual »/]
Mais ça me gène de stocker le mot de passe en clair, je vous recommande donc la commande suivante :
[pastacode lang= »bash » manual= »wpa_passphrase%20%3CSSID%3E%20%3Cpass%3E%20%3E%2Fetc%2Fwpa_supplicant%2Fwpa_supplicant.conf » message= » » highlight= » » provider= »manual »/]
Une fois le fichier généré, il faut l’ouvrir pour effacer le commentaire qui vous rappelle le mot de passe en clair :/
2 -Flasher le rootfs sur la eMMC
vous pouvez transférer le rootfs sur la eMMC du module en tapant cette commande:
flash_eMMC.sh -d /mnt/sdcard/Ubuntu-Core-qte/
Si tout ce passe bien, vous obtenez le message en toute fin :
INFO: flash system to eMMC success
Personnellement, j’ai eu une erreur lors de la copie. Le script m’a demandé de faire un fsck qui a corrigé l’erreur…
Une fois effectuée, il faut rebooter et retirer la carte SD.
Attention, restez bien avec la console sur le port COM parce que le paramétrage du réseau n’est pas encore terminé. Le script de flashage copie bien le fichier wpa_supplicant.conf mais pas le fichier de paramétrage des interfaces réseaux. Si vous l’aviez modifier, il ne sera plus actif sur la eMMC.
3 – Configurer l’adresse IP
Pour configurer l’adresse IP, il faut faire comme avec n’importe quel Linux de type Ubuntu. il faut modifier le fichier :
/etc/network/interfaces
Si vous laissez le fichier en l’état, l’adresse IP sera affectée par DHCP. Vous en conviendrez, ce n’est vraiment pas pratique lorsqu’on veut accéder au module…
Du coup, voici les paramètres à remplir:
[pastacode lang= »bash » manual= »iface%20inet%20wlan0%20static%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20address%20192.168.0.50%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20netmask%20255.255.255.0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20gateway%20192.168.0.254″ message= » » highlight= » » provider= »manual »/]
Voilà la configuration réseau est terminée. Vous pouvez tenter un « reboot » pour voir si tout fonctionne.
Si tout fonctionne, vous pouvez abandonner le port console pour fonctionner « sans fil » (hormis l’alimentation).
Utilisez donc un client SSH à l’adresse IP paramétrée avec les identifiants par défaut :
root/fa
Les Tests
La consommation
La première chose que je me demande sur un module aussi petit, c’est est-ce que je peux le faire fonctionner sur batteries. En effet, le fait de fonctionner sur batteries multiplie les possibilités !
Du coup, hop, je branche le module sur mon alimentation qui me permet d’avoir une consommation moyenne approximative.
Voici mes résutlats :
Je suis quand même agréablement surpris de la consommation moyenne. Si on compare avec la Raspberry Pi Zéro, les résultats sont très bon à périphérique actif équivalent…
Voici les résultats de la PiZéro :
En désactivant l’HDMI pour être à fonction égale au NanoPi, on obtient ~=120mA de consommation.
A une certaine époque, j’avais poussé les paramètres du PiZéro pour qu’il consomme le moins possible, en désactivant pas mal de périphériques, en mettant toutes les IOs en entrées analogique, en coupant la Led, etc…
Je n’ai jamais réussi à tomber en dessous de 68mA.
Benchmark
Je ne savais pas trop comment tester le module et c’est la que je me suis tourné vers la domotique. En effet, chez moi j’ai une RaspberryPi 3 B+ avec Jeedom installé. Je me suis souvenu que cette plateforme domotique a une section « Santé » ou on peut effectuer un Benchmark.
Alors attention, ce n’est pas un Benchmark poussé, il teste simplement la lecture/écriture dans une base de données ainsi que l’accès à certains caches et parties mémoires.
Cette méthode n’est pas irréprochable mais je voulais juste rapidement avoir une idée de ce que pouvez apporter un appareil comme le NanoPi dans le domaine de la domotique.
Voici les résultats :
NanoPi
RaspberryPi 3
On peut observer que la eMMC fait bien le travail au niveau de la lecture. A noter que j’ai optimisé le cache (mise en RAM) sur la RaspberryPi 3 afin de ne pas trop « user » ma carte SD et d’améliorer les performances en lecture. (Sur le NanoPi, je n’ai appliqué aucune optimisation)
Voici un fichier excel qui a été créé pour comparer la performance des matériels sur Jeedom (en fonction de différentes configuration). Je trouve ce fichier très intéressant et du coup, les performances de ce module sont loin d’être ridicule.
Conclusion
Je commande et teste plein de petits objets de ce type …et celui-ci m’a paru vraiment intéressant.
Tout d’abord, son format : je préfère le format carré qui est, mécaniquement, plus facile à intégrer que le Raspberry Pi zéro.
De plus, à part l’antenne ufl à rajouter, on peut s’arranger pour que rien ne dépasse des 4cmx4cm, ce qui est impossible sur le RaspberryPi Zéro où vous allez rajouter des convertisseurs USB ou HDMI ainsi que l’alimentation sur le côté. C’est un avis personnel, mais en pratique le PiZéro devient « bordélique » à la moindre application.
Côté performance, c’est plutôt pas mal !!! c’est plus puissant qu’un Raspberry Pi zéro avec une taille légèrement plus petite. Cependant, c’est un peu plus gourmand mais cela reste acceptable. Bien entendu, tout dépend de ce qu’on souhaite faire avec. Personnellement, je ne l’utiliserai pas pour une utilisation sur batterie (le PiZéro non plus ….) sauf dans certains cas particuliers (Drone par exemple) mais pas pour un capteur …
La communauté est tout de même moins importante que pour le Raspberry et si vous êtes novice en Linux Embarqué, vous serez pénalisés avec ce module. D’autant plus, que la distribution pour le NanoPi est une Ubuntu 15.10 (wily) avec un Kernel 3.4 qui n’évoluera s’en doute pas (bien que vous pouvez le faire vous même, mais pas sur que ça en vaille la peine). Le Raspberry, lui, évolue très souvent et contrairement au NanoPi est maintenu. (On en est au Kernel 4.4 à l’heure où je rédige).
Si vous avez pleins d’idées, que vous aimez les prototypes et que vous vous estimez « novice », choisissez le Raspberry Pi Zéro.
Si vous aimez mettre les mains dans le cambouis et que vous voulez plus de puissance et de stabilité (eMMC) pour un produit mécaniquement plus facile à intégrer, je vous recommande le NanoPi NEO Air.
C’est une petite cart très sympa – accès wifi par SSH.
J’ai fait une antenne wifi : https://fabiobaltieri.com/2012/06/02/diy-cheap-internal-wifi-antenna/
programmes « bureautique » installés (total système 1,1GB):
bc : calculatrice
sc : speadsheet
nano, joe : editeurs texte
cal : calendrier
gfortran, gcc : compilateurs fortran et C
J’essaie actuellement d’envoyer des emails (en ligne de commande).
Il doit y avoir moyen de réduire la consommation en limitant la fréquence du CPU
Bonjour,
Il ne semble pas évident de se procurer cette petite carte en France.
Chez FriendlyArm, on nous conseille de passer par allnet.de , mais
ce distributeur semble vendre uniquement aux professionnels.
Si vous connaissez une adresse, je suis intéressé.
JP
En effet, il n’y a pas de distributeur de produit FriendlyArm en France. Personnellement, j’ai commandé le mien directement sur le site du constructeur en y sélectionnant les options adéquates. En passant par PayPal et vu le prix des modules, il n’y a pas grand risque. Le mien est arrivé sous quinzaine…
Cet appareil, seul, coûte environ : 17€ .
Par contre pour fonctionner correctement, il est important d’investir dans :
Une alimentation 5VDC/2A (~=10€)
Une antenne 2.4Ghz UFL (~=4€)
Une SD (mais de manière temporaire) (~=10€)
Ce qui fait un total de 41€ et non 31€ !!!
Je ne compte pas la carte SD… Puisque temporaire. Voilà pourquoi
Commandé aussi sur le site fabricant (et arrivé aussi sous la quinzaine)
Et si vous avez un smartphone, pas besoin d’alimentation supplémentaire. Le mien fonctionne avec un chargeur basique de smartphone (5V/1A). D’autre part, une micro SD de 8Go, c’est plutôt 5 que 10€.
J’arrondi toujours au supérieur dans mes articles pour éviter les surprises. Là, j’ai peut-être un peu abusé. Je concède…
Finalement j’ai acheté mon NanoPI chez Conrad, mais ce n’est pas le modèle avec wifi intégré, donc j’utilise un dongle WIFI externe.
Pour ceux que cela intéresse j’utilise le NanoPI comme serveur WEB auxiliaire.
https://sites.google.com/view/nanopi/