1. Ajouter un port Ethernet au Raspberry Pi Zero
Par Francois F6DAA — ARALA / CQ44
Figure 1 :Raspberry Pi Zero 2 W — carte compacte idéale pour projets embarqués
Le Raspberry Pi Zero, dans ses versions V1, Zero W et Zero 2 W, est devenu un incontournable pour les projets compacts, économiques et embarqués. Sa faible consommation et son format miniature en font un excellent candidat pour les montages radioamateurs, les hotspots numériques, les systèmes de supervision ou les installations extérieures.
Toutefois, cette carte présente une limitation importante : l’absence de port Ethernet natif. Les versions équipées du Wi-Fi peuvent répondre à de nombreux besoins, mais dans certains environnements, une connexion filaire reste indispensable pour garantir :
- une stabilité réseau supérieure, notamment dans les zones perturbées RF ;
- une latence plus faible et plus régulière ;
- une sécurité accrue dans les installations sensibles ;
- une fiabilité totale pour les équipements fonctionnant 24h/24 ;
- une configuration réseau prévisible, sans dépendre du signal Wi-Fi.
Pour pallier cette absence de port RJ45, plusieurs modules Ethernet basés sur le circuit ENC28J60 sont disponibles. Ils utilisent le bus SPI du Raspberry Pi et permettent d’ajouter une interface réseau filaire de manière simple et efficace.
Parmi ces modules, celui de GeeekPi se distingue par sa conception : il s’enfiche directement sur le connecteur GPIO du Pi Zero, sans aucun câble. Cette approche offre une solution :
- compacte : aucun fil, aucun adaptateur USB ;
- robuste : ensemble mécanique solide ;
- fiable : pas de faux contacts ;
- simple : installation immédiate.
Les sections suivantes détailleront l’installation matérielle de ces modules, la configuration logicielle du Raspberry Pi Zero, ainsi que les ajustements éventuels pour obtenir une interface Ethernet parfaitement fonctionnelle.
2. Installation matérielle du module ENC28J60
Il existe plusieurs modèles de modules ENC28J60. Certains sont conçus pour être directement enfichés sur le connecteur GPIO du Raspberry Pi Zero, tandis que d’autres nécessitent un câblage manuel via les broches SPI. Ces derniers sont les plus courants et se présentent sous forme de petites cartes électroniques qu’il faut relier au Raspberry Pi à l’aide de fils Dupont ou de soudures.
Figure 2 : Exemples de modules ENC28J60 nécessitant un câblage manuel via les broches SPI.
Ces modules doivent être raccordés au Raspberry Pi Zero en utilisant les broches SPI du GPIO. Le tableau ci-dessous rappelle les correspondances entre les broches du Pi Zero et celles du circuit ENC28J60 :
- GPIO10 (broche 19) → MOSI
- GPIO8 (broche 24) → CS
- 3,3V (broche 17) ou 5V (broche 2) → VCC (selon le modèle)
- GPIO25 (broche 22) → INT
- GPIO9 (broche 21) → MISO
- GPIO11 (broche 23) → SCLK / CLK
- GND (broches 6, 9, 14, 20, 25) → Masse
Les modules ENC28J60 existent en version 3,3 V ou 5 V. Il ne faut jamais alimenter un module avec les deux tensions simultanément.
Module GeeekPi enfichable
Le module GeeekPi simplifie considérablement l’installation : il s’enfiche directement sur le connecteur GPIO du Raspberry Pi Zero. Aucun câblage n’est nécessaire, et l’ensemble forme un bloc compact, idéal pour les montages embarqués ou les installations extérieures.
Figure 3 : Module GeeekPi enfichable directement sur le Raspberry Pi Zero.
Cette solution est particulièrement adaptée aux radioamateurs recherchant une installation fiable, durable et facile à maintenir. Elle évite les erreurs de câblage et garantit une connexion stable du bus SPI.
La section suivante détaillera la configuration logicielle du Raspberry Pi Zero pour activer le bus SPI et permettre au système d’exploiter correctement le module ENC28J60.
3. Configuration du Raspberry Pi Zero
Une fois le module ENC28J60 installé sur le Raspberry Pi Zero, il est nécessaire d’activer le bus SPI et de charger le pilote réseau correspondant. Cette étape est indispensable pour que le système reconnaisse correctement l’interface Ethernet et puisse l’utiliser comme une carte réseau standard.
Activation du bus SPI
Le module ENC28J60 communique avec le Raspberry Pi via le bus SPI. Par défaut, ce bus n’est pas activé dans Raspberry Pi OS. Pour l’activer, il suffit de modifier la configuration du système à l’aide de l’outil raspi-config.
Ouvrir le menu de configuration :
sudo raspi-config
Ensuite :
- Aller dans Interface Options
- Sélectionner SPI
- Choisir Enable
- Quitter et redémarrer le Raspberry Pi
Après redémarrage, le bus SPI est actif et prêt à communiquer avec le module ENC28J60.
Chargement du pilote ENC28J60
Le Raspberry Pi utilise un système de “device overlays” pour activer certains périphériques. Le pilote du module ENC28J60 est disponible sous forme d’overlay et doit être ajouté au fichier /boot/config.txt.
Éditer le fichier de configuration :
sudo nano /boot/config.txt
Ajouter la ligne suivante :
dtoverlay=enc28j60
Une fois la ligne ajoutée, il faut enregistrer le fichier avant de quitter l’éditeur nano. Voici les commandes essentielles :
- CTRL + O → Enregistrer le fichier (nano demande confirmation, valider avec Entrée)
- CTRL + X → Quitter nano et revenir au terminal
Après l’enregistrement, redémarrer le Raspberry Pi pour que le pilote ENC28J60 soit chargé correctement.
Vérification de l’interface réseau
Après redémarrage, l’interface Ethernet doit apparaître automatiquement dans la liste des interfaces réseau. Pour vérifier son bon fonctionnement, utiliser la commande :
ip a
Une nouvelle interface nommée eth0 ou enc28j60 doit être visible. Si un câble réseau est branché, l’interface doit obtenir une adresse IP via DHCP.
Dans la section suivante, nous aborderons la gestion de l’adresse MAC, un point important pour garantir une identification stable de l’interface réseau dans les environnements où plusieurs Raspberry Pi sont utilisés.
4. Gestion de l’adresse MAC du module ENC28J60
Le module ENC28J60 ne possède pas d’adresse MAC fixe en usine. À chaque démarrage, le pilote génère une adresse MAC aléatoire. Dans la plupart des cas, cela ne pose aucun problème, mais dans certains environnements radioamateurs ou informatiques, il peut être utile — voire indispensable — de définir une adresse MAC stable.
Une adresse MAC fixe permet notamment :
- de garantir une identification constante de l’interface réseau ;
- d’éviter les conflits DHCP dans les réseaux locaux ;
- d’assurer une configuration prévisible dans les scripts ou les systèmes automatisés ;
- d’améliorer la gestion des accès filtrés par adresse MAC.
Définir une adresse MAC fixe
Pour définir une adresse MAC stable, il suffit d’ajouter un paramètre supplémentaire dans le fichier /boot/config.txt. L’overlay du module ENC28J60 accepte un argument permettant de spécifier l’adresse MAC souhaitée.
Éditer le fichier de configuration :
sudo nano /boot/config.txt
Ajouter la ligne suivante (exemple avec une adresse MAC personnalisée) :
dtoverlay=enc28j60,mac=de:ad:be:ef:00:01
Comme pour toute modification avec nano :
- CTRL + O → Enregistrer le fichier
- Entrée → Valider le nom du fichier
- CTRL + X → Quitter nano
Après redémarrage, l’interface réseau utilisera l’adresse MAC définie. Il est conseillé de choisir une adresse MAC unique dans votre réseau local afin d’éviter tout conflit.
Vérification
Pour vérifier que l’adresse MAC est bien appliquée, utiliser la commande :
ip link show
L’adresse MAC doit apparaître dans la ligne correspondant à l’interface enc28j60 ou eth0.
Conclusion
L’ajout d’un module ENC28J60 sur un Raspberry Pi Zero permet de transformer une carte compacte et économique en un système réseau filaire fiable, stable et parfaitement adapté aux usages radioamateurs. Grâce au module enfichable GeeekPi, l’installation matérielle devient simple et robuste, tandis que la configuration logicielle reste accessible même aux débutants.
La possibilité de définir une adresse MAC fixe apporte une touche de professionnalisme supplémentaire, utile dans les environnements où plusieurs Raspberry Pi cohabitent ou dans les installations nécessitant une identification réseau stable.
Ce montage offre une solution élégante, durable et efficace pour tous les radioamateurs souhaitant améliorer la connectivité de leurs projets basés sur le Raspberry Pi Zero.
Hommage à François F6DAA
Cet article est le fruit du travail, des essais matériels et de l'expérience de François F6DAA. C’est avec une profonde tristesse que nous avons appris son décès survenu il y a trois semaines, juste avant la parution de ce numéro.
L’ensemble des membres de l’ARALA ainsi que toute l’équipe de rédaction du CQ44 s’associent à la peine de sa famille et de ses proches, et leur adressent leurs plus sincères condoléances.
François incarnait parfaitement l’esprit de partage, de curiosité technique et de convivialité propre à notre communauté radioamateur. Nous sommes fiers de publier aujourd'hui cet article, qui résonne comme un dernier hommage à sa mémoire.