jeudi 13 octobre 2016

[SDR] Logiciel Natpos

Bonjour,

Lors d'un QSO récent, Gabriel F5RZU me parle d'un logiciel SDR permettant pas mal de choses comme
-l'entrée directe de la fréquence centrale au clavier
-le scan
-la réécoute en cliquant dans le waterfall (chute d'eau)
-et bien d'autre que je vous laisse découvrir sur le site de présentation de ce logiciel:
http://www.ecstaticlyrics.com/radio/sdr/natpos/

Vous trouverez également sur ce site la procédure pour l'installation.

Voici une petite vidéo rapide pour vous donnez un aperçu du logiciel.


Je vous invite à le tester !

Jérôme, F4GMU

mercredi 12 octobre 2016

Chameleon Mini RevG

Bonjour,

Je vais vous faire ici une présentation succincte du Chameleon Mini RevG.
C'est un projet Kickstarter qui est terminé et dont les participants sont actuellement livrés.
J'ai reçu le mien hier et je dois dire que je suis bluffé ! J'ai encore beaucoup de choses à découvrir, mais jusque là, tout fonctionne comme espéré.

C'est un outil portable, programmable, qui permet de lire, cloner, émuler, "sniffer" les cartes sans contactes aux protocoles ISO14443 / ISO15693 / NFC.

Cette carte est pourvu d'une batterie rechargeable via un connecteur USB qui sert aussi pour la mise à jour du firmware et à la programmation, d'un interrupteur pour l'utilisation sur batterie (autonomie annoncé par le fabricant : 1h), de 2 boutons poussoir et de 2 leds.

Je ne vais pas entrer dans les détails de programmation car il y a beaucoup à dire et que je n'ai testé qu'une infime partie de cette carte.
Toute la documentation se trouve ici :
https://rawgit.com/emsec/ChameleonMini/master/Doc/Doxygen/html/index.html
Et le firmware se trouve ici :
https://github.com/emsec/ChameleonMini 

Lors de la réception, la carte est livrée avec un firmware de démo permettant de vérifier le bon fonctionnement de la carte.
Le flashage du firmware est très bien expliqué dans la doc et se fait sans problèmes.

Concernant la programmation, elle peut se faire via un terminal série ou via un petit programme python que l'on trouve dans le dossier Github (chamtool.py)

Avec le terminal série, rien de plus simple :
-interrupteur sur OFF
-on branche le CameleonMini revG en USB
-on sélectionne le bon port série (ici avec GtkTerm) sans se soucier de la vitesse et autres paramètres !!!!
La commande 'help' vous renvoie toutes les commandes dispo.

A noté que les boutons poussoir sont totalement programmable avec appui court ou long, ainsi que les leds rouge et verte.
Bon à savoir :
-COMMANDE=
    renvoi le contenu de la commande
-COMMANDE=?
    renvoi les 'variables' dispo pour cette commande

Il y a 10 mémoires dans le ChameleonMini RevG. Chaque mémoires peut contenir une config différentes (hormis pour les leds et les boutons).
Par exemple, la mémoire 1 chez moi est programmé en lecteur, la mémoire 2 en émulateur MiFare Ultralight, la mémoire 3 en émulateur MiFare Classic 1k...
Une pression courte sur le bouton de droite me permet de changer de mémoire, alors qu'une pression longue attribue un UID aléatoire à la carte..



Bref, vraiment tout est programmable à souhait !

Bon à savoir (suite) :
-Pour changer de mémoire pendant la programmation, c'est la commande 'SETTING'
-Pour configurer une mémoire en émulateur ou lecteur ou sniffeur, c'est la commande 'CONFIG'

Voilà pour cette introduction rapide au ChameleonMini RevG.

A bientôt,

Jérôme, F4GMU

[ARDUINO] Rotor site azimuth

Bonjour,

Aujourd'hui je vais vous montrer comment fabriquer un rotor de suivi satellite à moindre coût.

Vous aurez besoin de 2 servomoteurs de modelisme ( j'utilise des servos standard car mon rotor est prévu pour une petite antenne patch très légère), un arduino (uno, nano, mini ou juste un atmega 328 et ses 3 composants vitaux...).
Et c'est tout !

Ceux qui connaissent les servos 'classique' dirons : "Ca marchera pas, ces servos ont une course de 180°..."
C'est vrai! On trouve des servos 360° mais beaucoup plus chère, et voulant réduire les coûts, il fallait trouver une solution.

Voici la solution qui fonctionne en vidéo :
 Concrètement, et pour faire simple,
-du Nord au Sud en passant par l'Est, tout est bon avec les 180° du servo.
-lorsque qu'on passe le Sud, le servo Az fait un 180° alors que le servo de Site inverse sa position. Ce qui permet le suivi de 181° à 360°.


Coté hard, rien de compliqué : Une alim pour les servos et un arduino où l'on branchera les 2 servos (PWM 9 et 10).
Ces 2 derniers sont montés l'un sur l'autre avec quelques petites équerres. Il est possible de vous équiper d'un kit 'tilt-pan' qu'on trouve sur les drones pour bouger la caméra. Ou alors quelques pièces imprimés en 3D !

Coté software, l'arduino interprète les commandes d'un rotor au protocole Easycomm2. Il suffira donc de configurer un rotor 'easycomm2' dans votre logiciel de suivi sat préferé.
Voici la procédure sous Linux avec Gepredict :
-installer 'hamlib'
-dans un terminal : rotctld -m 901 -r /dev/ttyACM0 -s 19200
  ou -m 901 correspond au protocole Easycomm2
       -r le port série de l'Arduino (à adapter en fonction..)
       -s la vitesse du port.
-dans Gpredict:
  Edition/Préférences/Interfaces/Rotor
et ajouter un rotor comme suit :
Pour avoir accès au contrôleur de rotor, cliquer sur la flèche en haut à droite de la fenêtre de Gepredict puis "contrôle d'antenne".
Et voilà !
Le sketch de l'arduino à la fin de cet article.
Bonne bidouille !

Jérôme, F4GMU

#include <Servo.h>
Servo azServo;
Servo elServo;

char az[4];
char el[4]; 
int azInt;  
int elInt;
char inBuffer[13];
int inCount = 0;  d

char command;  
bool inBufferFull = false; 

void setup() {
 
  command = 0x00; 
 
  for (int i=0; i<4; i++){
  az[i]=0x0;
  el[i]=0x0;
  }
 

  Serial.begin(19200, SERIAL_8N1);
  azServo.attach(9);
  elServo.attach(10);
  azServo.write(0);
  elServo.write(0);
   
}

void loop() {
  
   
   
    if (command!=0x1f && command!=0x2f) return;
  
    if (command == 0x2f){
      for (int i=0;i<4;i++){   
      az[i] = inBuffer[i+1]-'0'; 
      el[i] = inBuffer[i+6]-'0';
      }
      updateAZEL();   
     
      command=0x0;   
     
      if (azInt > 180){   
        azInt=azInt-180;
        elInt=180-elInt;
      }
      azInt=azInt*(.972);
      elInt=elInt*(1);

      moveServos();
      return;                   
    }
   
    Serial.write(0x57);         
       for (int i=0; i<4; i++){
       Serial.write (az[i]);
       }
      
       Serial.write(0x01); 
      
       for (int i=0; i<4; i++){
       Serial.write(el[i]); 
        }
       
       Serial.write(0x01);     
       Serial.write(0x20);      /
       command=0x0;
}




//--------------------------------------------------------------

void updateAZEL() {
 
  elInt=0;
  azInt=0;
 
  azInt = az[1]*100;         
  azInt = azInt + az[2]*10;
  azInt = azInt + az[3];
 
  elInt = el[1]*100;
  elInt = elInt + el[2]*10;
  elInt = elInt + el[3];
 
  if (azInt >= 360) azInt=azInt-360; 

  char buf[3];
 
  sprintf (buf, "%03i", azInt);
  for (int i = 0; i<3;i++){
    az[i] = buf[i]- '0';
  }
 
  sprintf (buf, "%03i", elInt);
  for (int i = 0; i<3;i++){
    el[i] = buf[i]- '0';
  }
 
  az[3]=0;
  el[3]=0;
 
  if (elInt >= 360) elInt=elInt-360;  //
}

//--------------------------------------------------------------

void serialEvent(){

  while (Serial.available()){
 
    char inChar= (char) Serial.read();
      inBuffer[inCount]=inChar;
      inCount++;
     
  }
 
  if (inCount==13){
    command=inBuffer[11];

    inCount=0;
  }
}



//--------------------------------------------------------------

void moveServos(){

  azServo.write(azInt);
  elServo.write(elInt);
}

dimanche 10 juillet 2016

Bidouilles en vrac

Bonjour,

Je ne fais pas d'articles sur toutes mes bidouilles, mais dans celui-ci je vais vous poster quelques photos.
Pour ceux qui veulent, vous pouvez me suivre sur Twitter @f4gmu.

Commençons par l'impression 3D:

un boitier pour mon hotspot D-Star
 Des équerres
 Un support pour mon HackRF
 Un boitier pour mon modem D-Star

Ca c'était un TX/RX 433.92 expérimental :)

2 photos reçu de la station spatiale international


Un capteur de température/humidité wifi


Un lecteur RFID
Et une carte autonome clonable RFID

Un peu de SDR (décodage dstar, dmr, météo..)


 TX d'image via le HackRF et gr-paint
 Utilisation du logiciel Inspektrum
Ajout d'une BAV99 sur un LNA4ALL qui permet une bonne protection du LNA
 Test de Osmocom-BB ;)
 Station météo connecté sur un écran oled.


Il y en a d'autre, mais j'en garde un peu pour une prochaine fois.
En attendant, je m'amuse à "écouter" ce qui se passe sur le Bluetooth avec mon BladeRF

Bonne journée !
Jérôme, F4GMU.

jeudi 19 mai 2016

[Linux] NodeMCU ESP8266

Le but de cet article est de vous permettre de flasher le firmware d'un NodeMCU ESP8266 sous Linux.

Pour ça, il faut récupérer le programme nommé "esptool" depuis Github grace à la commande suivante :
git clone https://github.com/themadinventor/esptool.git

Dans le dossier récupéré, on trouvera le programme écris en Python : "esptool.py"
 cd /esptool

Pour flasher l'ESP8266 avec le firmware "exemple.bin" (l'ESP étant branché sous /dev/ttyUSB0), la commande est la suivante :
sudo python esptool.py --port /dev/ttyUSB0 write_flash 0x00000 exemple.bin

Simple non ?

Jérôme,
F4GMU






lundi 9 mai 2016

[DIY] Lecteur RFID Bluetooth

Cette bidouille m'a été inspirée suite à la lecture d'un article dans le "Hackable magazine" n°11 de Mai 2016.

Ils présentent dans cet article un module RFID 125kHz appelé RDM6300 (que l'on trouve facilement pour moins de 6€) qui, couplé à un Arduino Uno, nous renvoie les données lu sur le tag RFID sur le terminal série de l'IDE Arduino.

Pourquoi pas se passer de l'Arduino UNO ? En effet, cette carte n'est ni plus ni moins qu'un ATMEGA 329P avec un quartz, un régulateur et un port USB (pour simplifier..)

Je commence donc à dessiner mon projet avec DipTrace.

On y retrouve l'ATMGA328P, le quartz de 16MHz et ses 2 capas de 22pF et un poussoir pour le "reset".
J'y ai ajouté un étage de régulation pour pouvoir alimenter l'ensemble avec une pile 9V ou directement en 5V (via une prise USB par exemple).
Enfin, on retrouve les connecteurs pour l'EM4100 et un dernier connecteur pour un HC-05 (ou HC-06).

En effet, je souhaitai que ce lecteur soit portable et je voulais également pouvoir l'utiliser sans avoir à utiliser un PC. Le module Bluetooth HC-05 m'envoie les données du tag RFID directement sur mon smartphone !


Une petite vidéo lors du "smoke test" ;)

Dans cette vidéo, j'utilise un tag RFDI "classique" puis une carte home-made qui est un "cloneur RFID"...

Jérôme,
F4GMU

Astuces pour Linux

Aujourd'hui, je peux dire que j'ai adopté Linux. Pourquoi? Parce que ça fonctionne bien...
Là où sous Windows j'étais toujours em..... pour trouver un driver pour mes adaptateurs USB/série ou autre, sous Linux il suffit de le brancher et il est immédiatement reconnu. (Un exemple parmi tant d'autres.)

J'ai tout de même rencontré des petits obstacles que j'ai réussi à résoudre. C'est l'objet de cet article.

Comme tout bon radioamateur, j'utilise mon PC pour communiquer avec mes radios ou mes bidouilles. Par exemple, D-Rats pour la transmission de données via D-Star, FL-Digi pour les modes numérique ou encore GtkTerm qui est un terminal série.
Toutes les entrées/sorties sous Linux se trouvent dans le répertoire /dev
Un port série (natif), qui sous Windows se nome COM1, se nome ttyS1 sous Linux. Les convertisseurs USB/série se nome ttyUSB1.

Le soucis que je rencontrai est que seul l'administrateur peut accéder à ses ports d'entrée/sortie ce qui implique de lancer son logiciel avec la commande 'sudo'.
Par exemple : sudo gtkterm
Donc, si je lance l'application depuis le raccourci (un clique sur l'icon), le logiciel s'ouvre, mais je n'ai pas accès aux ports série.

La solution est de permettre à l'utilisateur d'utiliser ces ports par la commande suivante :

sudo adduser utilisateur dialout (remplacer "utilisateur" par votre nom d'utilisateur)
Vous aurez besoin d'un redémarrage du système pour que cette modification soit validée.
*** Un reboot n'est pas nécessaire pour valider cette commande, une déconnexion, reconnexion de session suffit. Merci à Dominique, HB9HLI ! ***

Voilà pour cette première astuce !

Ensuite, il se peut qu'un logiciel Windows n'ai pas d'équivalence sous Linux. Dans mon cas, je pense à Airmail (que j'utilise pour le pactor).
Il est quand même possible de l'installer avec Wine.
Le soucis est que pour communiquer avec le modem, Airmail propose des ports COMx et non des ttySx. Comment faire?

Voici la solution :
Il faut créer un 'lien symbolique' vers votre port série. Admettons que le modem soit branché sur le port /dev/ttyUSB1 (donc via un convertisseur USB/Série).
Déplaçons nous dans le dossier 'dosdevices' de Wine:
cd ~/.wine/dosdevices
Puis créons le lien symbolique :
ln -s /dev/ttyUSB1 com1

Dans le logiciel, il suffira de configurer le modem sur le port COM1.

Bonnes bidouilles,

Jérôme,
F4GMU