Digipeater APRS abordable (~30€)

Publié le par F4GBV

Digipeater Raspbian RTL2832U

Digipeater Raspbian RTL2832U

MATERIEL :

.

RaspBerry 1 type B minimum (1 Ethernet + 1 Usb)-------- 20 €

RTL2832U (clef DVB USB) ------------------------------------- 7 €

SD CARD (4 Go minimum) ------------------------------------- 3 €

.

TOTAL-------------------------------------------------------------- 30 €

.

.

.

désolée pour la mise en page,

beaucoup de mal avec le nouvel outil d'édition de over-blog :(

.

​.

Voici en dessous des images des produits , le résumé de la démarche d'installation.

.

​.

Le RaspBerry :

Raspberry Pi type B minimum

Raspberry Pi type B minimum

.

La Clef DVB-T :

Clef DVB-T USB : exemple RTL2832U

Clef DVB-T USB : exemple RTL2832U

Mes choix :

.

SYSTEME D'EXPLOITATION :                            

 

LINUX Distribution : RASPBIAN

.

 

CHOIX  LOGICIELS:                                           

.

  pour la Clef DVB-T-USB   RTL_FM
pour l'acquisition des trames APRS MULTIMON-NG
pour remonter les trames sur le NET (iGate) PYMULTIMONAPRS

 

 

 

 

 

 

 

 

 

 

 

 

.

.

.

.

.

.

.

Options :                    

(outils utilisés pour l'install et le contrôle)

.

Envoi de l'image système sur la SD-CARD WinDiskImager
Connexion SSH au Raspberry depuis mon PC Putty
Contrôle à distance (pallier l'absence d'écran) * VNCSERVER+TightVNC

(*) :     non-sécurisé : tunnel SSH conseillé en cas de connexion depuis internet)

.

.

.

.

Digipeater APRS abordable  (~30€)

Voici la démarche que j'ai suivi pour mettre en place ce digipeater :

Je n'ai rien inventé, tout est sur le net.

Toutefois quelques petites modifs pour que ça fonctionne.

.

Je me suis basée sur le tuto suivant :

http://www.algissalys.com/amateur-radio/raspberry-pi-sdr-dongle-aprs-igate

.

L'objectif n'est pas de re-faire le tuto, mais de préciser quelques détails, et les choix que j'ai fait pour que ça fonctionne correctement.

.

Etapes d'installation :

.

1°) Préparation :

.

a) Tout d'abord, il s'agit d'aller chercher la dernière bonne image bootable du système d'exploitation sous forme d'un fichier compressé :

.

décompresser : 20XX-XX-XX-raspbian-wheezy.img

.

La distrib Raspbian est basée sur Debian,

il existe un site propre à Raspbian :

.

http://www.raspbian.org/

.

Téléchargement de l'image :

http://www.raspberrypi.org/downloads/

.

.

b) SD-Card :

(J'ai préparé ma carte sur un pc linux, mais cette étape est à vrai dire inutile  :/  )

Pour appliquer l'image raspbian sur la carte SD, j'ai utilisé win32diskimager

.

c) Pas d'écran: --> SSH

.

Pour ceux qui comme moi n'ont pas d'écran externe, ou d'adaptateur HDMI,

pas la peine de s'en procurer un.

.

La Raspbian est fournie avec un serveur SSH qui se lance automatiquement au démarrage.

On peut donc tout faire à partir d'un PC à distance.

.

Avant le premier démarrage du raspberry,

s'assurer des paramètres de connexion au réseau local.

.

Si vous avez comme moi une connexion réseau particulière

(Adresse ip serveur, ip statique souhaitée, etc...)

aller éditer la configuration réseau situé sur la carte SD (/etc/network/interfaces...) ,

et entrer les bonnes caractéristiques (ip, etc...)

(.., site debian pour compléments d'informations)

.

Pour ma part j'ai utilisé un PC sous debian pour éditer les fichiers de la SD-card,

mais tout appareil,

tournant sur linux et doté d'un port SDcard ou adaptateur USB/SD-Card,

peut faire l'affaire

(PC,Tablette, téléphone).

.

2°) Lancement

 

.

a) Connexion via un client SSH.

J'ai choisi Putty, mais il y en a d'autres.

login pi mot de passe par défaut : rapsberry

connaître l'ip : exemple 192.168.1.XX.

.

on passe en mode command :

.

 

pour créer le mot de passe root : sudo passw root

mot de passe : à votre choix.  xxxxxxxx

.

J'ai commencé par mettre à jour le firmware du raspberry pour ne pas être embêtée avec des bugs de versions.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

rpi-update          
(!!!! MAJ  FIRMWARE !!!- ici passé de 3.18.7+ à 3.18.11+)

reboot

.

.

.

Comme précisé dans le tuto, il s'agit maintenant de configurer le raspberry :

.

raspi-config

.

en profiter pour changer pwd pi

.

.

3°) Accès à distance :

.

Pour plus de facilité, j'ai installé aussitôt VNCSERVER,

le paquet s'appelle :

.

tightvnc

.

 

attention de mon côté j'ai eu des problèmes de d'affichage,

 

je les ai réglés en installant les fontes 75&100dpi :

 

sudo apt-get install xfonts-75dpi

 

sudo apt-get install xfonts-100dpi

 

Côté Raspberry :

lorque tightvnc est stabilisé, à chaque redémarrage, lancer sur le raspi :

vncserver :1

(ou l'intégrer dans un script de démarrage auto)

.

configurer les accès.

vncpwd : définition du mot de passe.

.

Côté PC:

lancer (après install pour windows) tightVnc :

avec les paramètres :

XXX.XXX.XXX.XXX :1

et le mot de passe (défini avec vncpwd sur le raspi).

.

4°) Installer la clef SDR :

.

cf tuto cité précédemment.

.

voici mon fichier blacklist (cf tuto) :

nano etc/modprobe.d/raspi-blacklist.conf

.
blacklist dvb_usb_rtl28xxu
blacklist rtl_2832
blacklist rtl_2830
reboot

.

installer RTL SDR (cf tuto)

ldconfig

installer sox

.

5°) Etape de test du SDR :

.

a)

certains peuvent rencontrer quelques problèmes d'alimentation de la clef USB,

si insuffisant, passer sur sur un hub USB.

Je n'ai pas eu à le faire pour ma config.

 

rtl_test

 

(j'ai eu une erreur claim_interface -6,
et je l'ai résolue via :
rmmod dvb_usb_rtl28xxu)

.

b)

Tant que vous ne captez pas France Inter, ce n'est pas la peine d'aller plus loin


rtl_fm -M wbfm -f 95.2M | play -r 32k -t raw -e s -b 16 -c 1 -V1 -

.

chez moi c'est 95.2 Mhz  ....    :)

.

Bien sûr, pour cela, on utilise la sortie jack du raspi, que l'on connecte à un HP ou plutôt à une entrée audio préamplifiée.

.

Le tuto décrit une étape de tests APRS via rtl_fm,

pas obligatoire. Cela peut permettre de vérifier la fréquence réelle de décalage de la clef par rapport à la fréquence APRS (chez moi : la clef reçoit sur 144.790 et non pas 144.800)

.

Personnellement j'ai fait ce test plus loin, via multimon-ng, ce fut plus précis, puisqu'en plus du son, je voyais tout de suite la bonne fréquence quand les trames étaient décodées.

.

c) Installation de Kalibrate-RTL:     kal

(remarque : toujours se fier au tuto pour les étapes détaillées,

ici je ne reprends que les grandes étapes et les problèmes rencontrés)

.

Cette étape est importante, car elle permet de connaître le paramètre ppm que l'on devra préciser dans la ligne de commande finale pour le digipeater

.

mes notes  sur la phase de calibrage :

.

kal -s GSM900

.

(il a trouvé le canal 9 (936.8Mhz) faible,
le18 le20, le 22 très fort, le 27 ...)

.

kal -c 22 -v
(il m'a retourné : -40.816 ppm d'erreur moyenne absolue)

.

assez long... patience ...

.

d) Installation de multimon-NG decoder :  

(cf tuto)

.

Tests et décodages de trames APRS :
-----------------------------------------------------
rtl_fm -f 144.790M -s 22050 -p 2 -g 42.0 - | multimon-ng -a AFSK1200 -A -t raw -

.

via TightVNC, il peut être intéressant d'utilser l'option SCOPE (cf doc multimon-NG).

.

pas la peine de passer à l'étape suivante tant que l'on le voit pas les trames décodée s'afficher en mode console. Attendre que quelques CALLs habituels soit passés pour vérifier si la fréquence est bien centrée où si la réception est limite.

.

 

 

 

 

Digipeater APRS abordable  (~30€)

e) PymultimonAprs

.

~/rtl/pymultimonaprs $ sudo pymultimonaprs -v

.

j'ai passé du temps sur cette étape car , malgré la réception de trames en local avec MultiMon-NG (cf étape précédente), je ne remontais rien sur le net (aprs.fi) :(

.

Il a donc fallu que je modifie les fichiers de config pour que ça passe.

.

Il doit y avoir plus simple mais ça marche :

.

modifié la fréquence dans fichier de config de pymultimonaprs :
--> passée de 144800 à 144790.
les fichiers de config sont :

  • pymultimonaprs.json
  • pymultimonaprs.init

j'ai également forcé la fréq à 144790000 dans pymultimonaprs.py de rtl/
puis refait un BUILD puis un INSTALL !!!

.

Attention à chaque essai, relancer les étapes de compilation et mise-à-jour config système :

sudo python setup.py build
sudo python setup.py install
sudo /etc/init.d/pymultimonaprs stop
sudo /etc/init.d/pymultimonaprs start

.

.

f) lancement automatique au démarrage du raspi :

je crois que c'est dans le tuto

.

sudo nano /etc/init.d/pymultimonaprs

(modifier)

.

sudo chmod +x /etc/init.d/pymultimonaprs
sudo update-rc.d pymultimonaprs defaults

.

démarrage manuel :

sudo /etc/init.d/pymultimonaprs start

.

et voilà!

.

.

6°) Remarques :

 

a) log aprs dans var/log/syslog

.

b) generation de la clef d'authentification pour APRS-IS

.

pour obtenir le mot de passe pour votre CALL : (cf tuto)
./keygen.py F4GBV  (remplacer par votre call)
ne pas mettre d'extension même si votre identifiant sur aprs.fi est de type F4GBV-3

la clef sera la même pour toutes les extensions de votre call sur aprs.fi

.

Bon, j'espère n'avoir rien oublié...

(rêve :D  )

.

.

OPTIMISATIONS POSSIBLES :

.

RTL2832U : Préampli intégré :

La clef SDR est dotée d'un préampli très chouette,

je l'ai largement utilisée dans le décodage de Radiosondes, elle est beaucoup plus sensible que bien des postes avec ou sans préamplis.

Aucune raison qu'elle ne le soit pas autant sur 2m.

Il serait donc intéressant de passer un peu de temps sur les options liées à ce préampli.

.

Autres pistes :

Largeur du spectre à régler, décalage en fréquence à contrôler.

.

WIFI :

J'ai choisi d'utiliser la carte Ethernet du Raspberry,

afin de rester dans la configuration la plus simple.

Après avoir réussi cette étape, ajouter si nécessaire, une clef WIFI-USB  (~10€).

On peut aussi choisir, dès le départ, un Raspberry plus récent, doté du WIFI.

.

 

 

 

.

 

.

 

 

 

Raspberry de F4GBV

Raspberry de F4GBV

Connexion au server ok (aller ensuite vérifier si les trames sont réellement remontées... )

Connexion au server ok (aller ensuite vérifier si les trames sont réellement remontées... )

ANNEXES :

.

OPTIONS de RTL_FM :

TRES utiles quand ça ne marche pas du premier coup hi!

(source github)

.

.
Raw

  rtl_fm options  Permalink

.
1 rtl_fm, a simple narrow band FM demodulator for RTL2832 based DVB-T receivers
2
 .
3 Use:    rtl_fm -f freq [-options] [filename]
4     -f frequency_to_tune_to [Hz]
5         use multiple -f for scanning (requires squelch)
6         ranges supported, -f 118M:137M:25k
7     [-M modulation (default: fm)]
8         fm, wbfm, raw, am, usb, lsb
9         wbfm == -M fm -s 170k -o 4 -A fast -r 32k -l 0 -E deemp
10         raw mode outputs 2x16 bit IQ pairs
11     [-s sample_rate (default: 24k)]
12     [-d device_index (default: 0)]
13     [-g tuner_gain (default: automatic)]
14     [-l squelch_level (default: 0/off)]
15     [-p ppm_error (default: 0)]
16     [-E enable_option (default: none)]
17         use multiple -E to enable multiple options
18         edge:   enable lower edge tuning
19         dc:     enable dc blocking filter
20         deemp:  enable de-emphasis filter
21         direct: enable direct sampling
22         offset: enable offset tuning
23     filename ('-' means stdout)
24         omitting the filename also uses stdout
25
 .
26 Experimental options:
27     [-r resample_rate (default: none / same as -s)]
28     [-t squelch_delay (default: 10)]
29         +values will mute/scan, -values will exit
30     [-F fir_size (default: off)]
31         enables low-leakage downsample filter
32         size can be 0 or 9.  0 has bad roll off
33     [-A std/fast/lut choose atan math (default: std)]
34
 .
35 Produces signed 16 bit ints, use Sox or aplay to hear them.
36     rtl_fm ... | play -t raw -r 24k -es -b 16 -c 1 -V1 -
37                | aplay -r 24k -f S16_LE -t raw -c 1
38       -M wbfm  | play -r 32k ...
39       -s 22050 | multimon -t raw /dev/stdin

 

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article