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