Raspi 4 et SIM800L

Bonjour, je risque de déterrer un vieux truc, oui je me décide toujours après la tempête ;op mais pour faire court, je bosse sur un projet qui met en œuvre un Raspi 4b, une nano et une SIM800L. Jusque la, pas de quoi casser trois pattes à un canard me direz vous mais, mais, quand je fais discuter la Nano avec le Pi via l’UART, pas de problème. Quand la Nano et la SIM800L échangent via l’UART, pas de soucis, mais quand je veux faire passer des infos du Raspi vers laSIM800L, là c’est le hic … Cela fait plus d’une semaine que je retourne le net dans tous les sens, que je regarde sous les jupes et j’en passe, mais je ne trouve pas la solution. Quelqu’une ou quelqu’un aurait-il une idée s’il vous plaît ?
Merci pour votre aide.
Cordialement,
FX

Je suppose que
a) la SIM800L est une interface gsm s’interfaçant via un UART au RPi (ou à la nano)
b) que la nano est un arduino nano, s’interfaçant via son unique UART au RPi.
c) que la RPi n’a qu’un UART… (au mieux : certaines cartes chapeau HAT le cachent mecaniquement…)

Je vois deux solutions:
a) vous convertissez un (au moins) des UARTs en USB, via un convertisseur UART USB (les arduini uno en ont déjà un qui vous sert à les programmer, je parie que la nano en a aussi : il vous reste à trouver un convertsiiseur UART USB pour le SIM800L, s’il n’est déjà là…
b) les arduini basés sur 328 n’ont qu’un UART hardware , mais il est possible d’en simuler un second par la bibliothèque SoftwareSerial -demandez à google - : la version officielle désactive les interruptions lors de la reception (doit être informée de la reception d’un front montant) et de l’emission (pour avoir des temps stables)… Arduino SoftwareSerial : c'est pas du FullDuplex = LoopBack interdit - MCHobby - Le Blog a l’air de recommander AltSoftSerial Library, for an extra serial port (qui a des restrictions d’emploi)…

Je vous recommanderais, si jamais j’ai bien compris votre problème et votre materiel, de regarder la solution a), dont le surcoût est de l’ordre de 10 E$ USB to TTL (UART) Cable
ou https://www.gotronic.fr/art-convertisseur-usb-uart-3v3-5v-103990049-21832.htm

Dans l’idée leRaspi est le maitre, le Nano et laSIM800L sont slaves. Je veux récupérer des données provenant du Nano dans le Raspy et envoyer à la demande ces données par la SIM800L. La remontée de data depuis le Nano vers le Raspi via le bus I2C et les échanges Raspi - SIM800L en série sur l’UART.

n’est pas coherent avec votre post numero 1

Je vous propose pour la partie communication (et adaptation de niveaux) SIM800 RPi, de lire Comment brancher et utiliser un module GSM SIM800L avec le Raspberry Pi (sans batterie).. Si vous n’avez pas accès à l’UART, un adaptateur -je vous en ai montré deux- se traduit par un simple renommage du periferique (/dev/usbttyx si je me souviens bien)

Quant à l’interface PI nano, via l’I2C (déjà les niveaux sont compatibles, ce qui est interessant), de le traiter ulterieurement … s’il y a lieu (ambiguité post 1 et 3)
Edité: dans le 13 ième post de Automatiser la lecture d'une musique par input digital - #10 par dbrion06 @bof lie vers un exemple de liaison I2C entre un Arduino (esclave) et un RPi (maître); les hésitations quant aux niveau xn’ont pas lieu d’être dans votre cas: la nano et le RPi sont en 3.v. Mais la nano est elle necessaire?

Tout d’abord, merci pour votre aide. J’ai suivi à la lettre ou presque le tuto proposé ici " Comment brancher et utiliser un module GSM SIM800L avec le Raspberry Pi (sans batterie). "et bien d’autres encore. A la lettre ou presque : le temps du développement, j’utilise une alimentation de labo stabilisée pour la SIM800L et prends soin de bien mettre tout le monde à la masse (la même pour le monde, sinon pas d’échange I2C ou UART) dans mon premier post je voulais exprimer le fait que j’ai fait des croisements pour débugger. Pour en revenir au tuto que vous me proposez, c’est un des premiers que j’ai suivi, j’ai même commandé la diode Zener sitée dans le tuto, et c’est pour cela qu’en attendant j’utilise mon alim de labo. Dans mes recherches j’ai cru un temps que le problème venait du Raspi, c’est pour ca que j’ai utilisé le Nano a la place de la SIM800 et constaté que minicom et l’UART du Pi sont fonctionnels, et d’autre part le pilotage de la SIM800 par le Nano est fonctionnel aussi, alors pourquoi malgrés tous les tutos le Pi ne communique pas avec la SIM800 et inversement ??

hello,

peut être une piste là :

Bonjour, merci pour votre contribution, je connais cette page j’y ai usé mes yeux pendant trois heures, et en fait comme le nano cause avec le Pi, je pense que le problème est ailleurs, du moins je le suppose, je ne vois pas la différence sur le plan protocole UART entre le Nano et la SIM800, ce problème me secoue vraiment les neurones ( le peu qu’il m’en reste ;op ).

je suppose que tu as déja trouvé ça :
https://simcom.ee/documents/?dir=SIM800L
ds https://simcom.ee/documents/SIM800L/SIM800L(MT6261)_Hardware%20Design_V1.01.pdf
il y a une commande pour fixer le baudrate ! ( AT+IPR=x ) l’idée c’est que le rpi et le sim800 ne se communiquerait pas le baudrate … ok on peut rêver lol

Alors, ce doc là je crois que je ne l’ai pas vu, mais sur la masse d’info sur la SIM800, je peux de chance de manquer. Pour ce qui est du baudrate : j’ai testé 9600, 19200 et 155200 via le Nano voir même un convertisseur USB/UART et ça cause, donc pas de soucis de vitesse. Une autre idée, je sais je suis chiant mais j’aime ça, nan … je déconne ( ou pas ;op) Bref ça fait pas nos affaires ça, l’aventure continue.

Bon, on découvre tous les jours … vous avez utilisé un convertisseur USB/UART, et semble-t-il, avec succès (à noter que les prises USB sont plus fiables que les câbles Dupont+broadbeards).
Etes vous sûr … d’avoir un UART disponible (i.e. logiciellement reconnu) dans votre RPi?

Oui je pense. 1 - il n’y a rien d’autre de branché sur les pins du RPIO que le ventillo du Pi (3.3v et gnd)
2 - j’ai bien /dev/ttyS0 , ttyAMA0, entre autre et la correspondance des liens symboliques que je fais un ls -l /dev/tty*

La je suis au bureau mais ce soir je compte faire le teste suivant : activer l’UART N°2 (je dispose d’un Raspberry pi 4 qui permet cela) juste je ne sais pas si cela va fonctionner. Il faut que je modifie le /boot/config.txt avec un truc du genre : enabla_uart=2 (pour l’uart 2 au lieu de 1 actuellement) et ca en vu de me dédouaner d’un problème hard du raspi.

Bonjour, hier soir j’ai testé en vain l’uart2 puis le 3. Alors, pour ne pas rester sur une défaite, j’ai continué a chercher et j’ai trouvé un autre truc : faire communiquer un pc ( pour l’heure win10) avec le raspi via le port série. Voici la configuration : un convertisseur USB/UART branché sur un port USB du pc win10, et le Rpi relié par l’UART via le GPIO. Un bout de soft très simple sous python dans le raspi le port com, affiche ce qu’il y voit et le renvoi vers le port com pour y être lu sur le PC win10. Donc j’écris dans la console sur le pc win 10, et je lis dans la console du Rpi, pas de soucis, mais c’est là que ça ne va plus, rien ne s’affiche en retour sur le pc. Ce soir je vais tenter d’écouter avec un analyser numérique le flux.
Petite précision : je suis un amateur même si j’utilise des matériels « exotiques » comme un analyser logic ;op

Mais pourquoi (si ce n’est déjà fait; j’avoue que je me perds dans vos essais) n’utilisez vous pas un adaptateur UART USB entre le RPi et l’UART de votre carte? (comme RPi a tendance a faire un peu n’importe quoi avec les UART, que les travailleurs du chapeau (HAT) s’ingénient à cacher l’UART GPIO (les nanopi, jetson ont fait un connecteur spécial pour que l’UART soit toujours accessible; RPi fait n’importe quoi sur ce point) c’est une solution viable à therme (et c’est ce que je fais avec des arduini).

le choix vient du fait qu’a terme le Pi sera dans un boitier autonome, le projet final c’est une station météo pour un club de parapente, en gros info vent par radio, internet, sms et en voice par téléphone, et je souhaite limité le plus possible le nombre des composants présents dans le boitier.

Bonsoir, YYYYYYYhhhAAAAAAAAAA, enfin ça cause. Alors pour faire court, ma SIM800L est connectée au Rpi sur l’UART2, il semble que quoi que je face l’info ne sortait pas du Pi sur l’UART1. bref je vais pouvoir continuer à faire avancer mon projet. Pour info dans le bas du fichier /boot/config.txt se trouve :

[all]
#dtoverlay=vc4-fkms-v3d
#hdmi_enable_4kp60=1
enable_uart=1

#dtoverlay=w1-gpio

dtoverlay=uart2
dtoverlay=pi3-miniuart-bt

et la SIM800L est cablée sur les pins 27 et 28 soit les GPIO 0 et 1 pour TxD2 et RxD2.

Je vous remercie encore pour avoir chercher une solution mon problème.

Bonne soirée cordialement, FX