1. Ajouter un port Ethernet au Raspberry Pi Zero

Par Francois F6DAA — ARALA / CQ44

Module ENC28J60 monté sur un Raspberry Pi Zero

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 :

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 :

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.

Module ENC28J60 à câbler Module ENC28J60 avec broches SPI Carte ENC28J60 non enfichable

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 :

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

Module GeeekPi enfichable sur Raspberry Pi Zero

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 :

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 :

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 :

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 :

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.