Nrf2401 radio.write return 0

Bonjour,fait ?
Je communique avec des NRF2401.
Lors du write, il me semble que je devrais recevoir la valeur 1 si l’envoi est fait, mais j’ai toujours 0.
if ( radio.write( &buf, BufferLength -2)==1)

Un bug de la librairie ?

Sébastien

la communication passe ??

si vous regardez le code ça retourne bien 0 ou 1 s’il y a eu un ACK

jetez un oeil ici aussi, ça peut se produire si l’alimentation n’est pas assez bonne

Oui, la communication passe nickel. Bon il ne faut pas oublier les condos sur l’alim!
Mais cette valeur de retour m’interroge…
Incompatibitilé entre buf et BufferLength ?

plutôt l’ACK qui ne revient pas, donc write() ne sait pas que le message est passé

Et le Ack, (question bête) il vient de où?

de l’autre Arduino / RF24, suivant comment c’est configuré

cf void RF24::setAutoAck ( bool enable )

J’ai bien radio.setAutoAck(true); // Ensure autoACK is enabled

j’ai posté un code de test pour un autre membre ici, essayez le pour voir si ça marche ?

Oui,
merci, le test fonctionne.
Je vais adapter à mon cas et je redis…

Bon, j’ai avancé.
Le problème est que dans setup de l’émetteur, j’ai:
radio.openReadingPipe(0,listening_pipes[0]);
parce qu j’aimerais recevoir une réponse.
et là , je ne vois pas comment faire start / stop de la réception…

la doc a un warning sur le pipe0

If the reading pipe 0 is opened by this function, the address passed to this function (for pipe 0) will be restored at every call to startListening(), but the address for pipe 0 is ONLY restored if the LSB is a non-zero value.
Read Maniacal Bits: Improve RF24 Radio Performance With Proper Addressing Schemes to understand how to avoid using malformed addresses. This address restoration is implemented because of the underlying neccessary functionality of openWritingPipe().

jetez un oeil sur mon autre exemple qui fait un échange de structures

Re-merci,
je crois que j’ai compris…
Ce qu’il n’aime pas :radio.openReadingPipe(0,listening_pipes[0]);
C’est le 0, avec 1 l’envoi se fait correctement

Je dois encore tester la réception maintenant…

le pipe 0 est réservé à l’émission je crois

Ok, tout va bien…
Comme je fait des tests à 30 cm,
le radio.setPALevel(RF24_PA_MAX);
Je crois que c’était pas une bonne idée!

:grimacing: :skull_and_crossbones:
oui