Test – NanoPi NEO Air

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

package nanopi neo air

Les caractéristiques

caracteristiques

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 :

NanoPi + Raspberry PI Zéro

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.

Port COM sur le nanoPi

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 :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="YOUR-WIFI-ESSID"
        psk="YOUR-WIFI-PASSWORD"
}

Mais ça me gène de stocker le mot de passe en clair, je vous recommande donc la commande suivante :

 

wpa_passphrase <SSID> <pass> >/etc/wpa_supplicant/wpa_supplicant.conf

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:

iface inet wlan0 static
              address 192.168.0.50
              netmask 255.255.255.0
              gateway 192.168.0.254

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 :

img_20161028_142148

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 :

img_20161028_142626

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

benchmark_nanopi

RaspberryPi 3

benchmark_raspi3

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.

Tableau comparatif

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.

img_20161028_140943

img_20161028_141022

 

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.

exemple PiZéro

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.

 

[Total : 1    Moyenne : 1/5]

8 comments

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

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

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

  3. 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€ !!!

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

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *