L’Orange PI Zero 2 est une des nombreuses carte Orange Pi offrant des caractĂ©ristiques intĂ©ressantes:
- processeur ARM H616 4 coeurs 64 bits
- ethernet 1GB
- WIFI + BT
- RAM 512MB ou 1GB
- USB 2
- Micro HDMI
- OS: DEBIAN . Voir l’article ici pour l’installation
- prix autour de30⏠chez Aliexpress

Pour accĂ©der au GPIO d’un Orange PI, on peut utiliser une des bibliothĂšque (si elle existe) ou utiliser le systĂšme de fichier virtuel Sysfs introduit par le noyau Linux qui permet par des commandes systĂšme d’activer les pins du GPIO.
Si la mĂ©thode par fichier virtuel Sysfs est simple et s’adapte Ă toute les cartes, elle ne permet pas de positionner les rĂ©sistance d’entrĂ©e en PULLUP ou PULLDOWN. De plus les actions prennent parfois des ms ce qui rend impossible des contrĂŽles de quelques micro secondes.
Connecteur carte Orange Pi Zero2
La carte Pi Zero 2 dispose d’un connecteur 26 pins suivant le schĂ©ma ci dessous.

Pour attaquer une des pins en entrĂ©e ou en sortie, il faut trouver la rĂ©fĂ©rence du GPIO correspondant. Le tableau ci aprĂšs est valable pour l’Orange Pi Zero 2 H616 . Ainsi si on veut utiliser la pin 10, elle correspond au GPIO 227. Ce tableau est par exemple diffĂ©rent pour Un Orange Pi One Plus H6 ou le GPIO 227 correspond Ă la pin 26.

Exemple Oscillateur sur pin 10
Ci dessous un programme en python 3. Attention, contrainte importante. Il faut ĂȘtre en root pour accĂ©der au GPIO.
#!/usr/bin/python3 Python 3 environment
#-- coding: utf-8 --
import os # To execute system command
from time import sleep # this lets us have a time delay
numgpio=227
numgpio=str(numgpio)
print ("numgpio:"+numgpio)
os.system("sudo echo "+numgpio+" > /sys/class/gpio/export")
os.system("sudo echo out > /sys/class/gpio/gpio"+numgpio+"/direction")
try:
print ("Square signal around 50Hz . Press CTRL+C to exit")
while True:
os.system("echo 0 > /sys/class/gpio/gpio"+numgpio+"/value")
sleep(0.01)
os.system("echo 1 > /sys/class/gpio/gpio"+numgpio+"/value")
sleep(0.01)
except KeyboardInterrupt:
# set port/pin value to 0/LOW/False
os.system("echo 0 > /sys/class/gpio/gpio"+numgpio+"/value")
# Clean GPIO
os.system("sudo echo "+numgpio+" > /sys/class/gpio/unexport")
print ("Bye from F1ATB.")
pour le lancer, si le programme se trouve sur votre bureau:
python3 /home/utilisateur/Desktop/Nom_du_programme.py
On peut rentrer les commandes Ă la main depuis une fenĂȘtre de terminal.
La commande …export active le GPIO 227 qui correspond Ă la pin 10.
La commande direction, ici out pour ĂȘtre en sortie.
Les commandes value alternativement Ă 0 ou 1 pour faire un oscillateur.
Puis en cas de Ctrl-C, on termine proprement en libérant le GPIO 227.
Pour s’affranchir du problĂšme du root, une solution peut ĂȘtre de lancer le programme Ă la mise en route de l’Orange PI qui dans ce cas est en root avant de passer en mode utilisateur. Il suffit de modifier le fichier /etc/rc.local (sudo nano /etc/rc.local) . Mettre la commande de lancement avec le chemin en absolu (python . /home/……py) avant l’exit 0 du fichier rc.local. Une autre solution est une tache cron.
Merci AndrĂ© pour cette trĂšs intĂ©ressante rĂ©alisation. Je l’utilise en ce moment pour du trafic en 80m :-), aprĂšs avoir modifiĂ© quelques trucs dans les diffĂ©rents fichiers pour faciliter le passage Ă©mission-rĂ©ception et commuter des filtres passe bas suivant les bandes dĂ©camĂ©triques. Ton logiciel trĂšs ouvert est trĂšs clair et permet de dĂ©couvrir plein de choses en programmation, rĂ©seau, et possibilitĂ©s de GNU radio. Bref un modĂšle du genre pour de la pĂ©dagogie, Ă recommander dans tous les radio clubs !
Meilleures 73 et encore bravo
Yves (F4HSL)
Merci pour vos encouragements.
Quel SDR utilisez-vous en émission et réception?
Que souhaiteriez-vous comme fonctionnalités nouvelles pour répondre à votre besoin?
73
F1ATB
En Ă©mission jâutilise le hackrf one. En rĂ©ception jâutilise une clĂ© rtlsdr prĂ©cĂ©dĂ©e dâun up convertisseur qui ajoute 200 MHz et fait aussi office de LNA (convertisseur construit par SV1AFN). La sensibilitĂ© de rĂ©ception est trĂšs correcte, pas beaucoup de diffĂ©rence avec un transceiver du commerce.
Lâampli hf de 100w (50 db de gain) proposĂ© sur eBay par 60dbm.com fait parfaitement lâaffaire. Je vais aussi tester ses filtres commutables (par les pins gpio du raspi4), jâai modifiĂ© le fichier python correspondant.
Jâutilise encore la version 2, faut que je me mette Ă jour đ
Pour les fonctionnalités qui me semblent intéressantes pour le moment :
Il serait peut-ĂȘtre intĂ©ressant dâavoir les bandes dĂ©ca dans la liste en Ă©mission, pour lâinstant jâai modifiĂ© le fichier correspondant .
Jâai modifiĂ© le fonctionnement du bouton txaudio dans le fichier correspondant pour quâil commute en mĂȘme temps le rxaudio. Peut-ĂȘtre Ă mettre en option car câest plus pratique dans le cas dâun fonctionnement type transceiver.
Il faut aussi que je regarde la BF car on me dit que la modulation est lĂ©gĂšrement granuleuse. Peut-ĂȘtre faudrait-il rajouter aussi un niveau de compression plus Ă©levĂ© pour la BLU (il nây a pas beaucoup de diffĂ©rences entre les niveaux 1 et 2)
Je nâai pas tout testĂ© et je dĂ©couvre au fur et Ă mesure les possibilitĂ©s tout en mâamusant Ă analyser tous les fichiers đ Je vous tiendrais au courant si vous le souhaitez.
Pour autant le résultat est spectaculaire pour un TX expérimental en vrac sur mon établi !
Meilleures 73
Yves
Ok pour votre configuration. C’est intĂ©ressant pour le dĂ©ca.
Il faudrait passer en version 4.1, cela répondrait à certaines de vos remarques.
Pour la modulation entre les niveaux 1 et 2, il y a peu de diffĂ©rence sauf qu’en 2, il y a un plus de distorsion.
Actuellement je travaille sur la version 4.2 qui aura un equaliser sur l’audio du microphone en Ă©mission. En ligne d’ici 1 Ă 2 semaines.