problem with nrf24l01+ on crazyflie sending with ack_payload
Posted: Fri Oct 25, 2013 10:56 pm
Hi,
Im trying to understand communication between crazyradio and crazyflie. To make it simple, i am trying to get nrf24l01+ on crazyflie (client) to talk to another nrf24l01+ (communicating with an STM32 discovery board). The code on crazyflie side is setup with crazyflie being PRX (with ACK_PAYLOAD enabled). The other is configured as PTX.
It is working with ACK enabled (without payload). However when ACK_PAYLOAD is enabled (through feature and dynamic payload registers), the PTX does not receive RX payload (TX_DS and RX_DR flags are not set) even though PRX is sending the payload (TX_DS on PRX is set). I am not sure if this is a good place to post this, but can you provide some pointers. I have tried to follow the settings on the datasheet. Please let me know if i have missed out some information here. Thanks!
PTX config:
1) TX_ADDRESS = {0xE7,0xE7,0xE7,0xE7,0xE7}
2) RX_ADDR_P0 = {0xE7,0xE7,0xE7,0xE7,0xE7}
3) Enable Pipe0, Auto acknowledge
4) SETUP_RETR: 500us, 10 retransmit
5) RF_SETUP: 250 kbps (have tried with 1 mbps and 2 mbps without success as well)
6) FEATURE: enable ack payload, dynamic payload
7) DYNPD: enable dynamic payload pipe 0
8) CONFIG: 0x0e (disable all interrupts on IRQ, power up PTX, 2 bit CRC)
PRX config on crazyflie:
same as PTX except
RX_PW_0: number of bytes sent by PTX.
CONFIG: 0x0f (disable all interrupts on IRQ, power up PRX, 2 bit CRC)
Scheme:
PTX-------->send payload-----> AIR-------> receive payload(Crazyflie PRX)
receive payload with ACK<---AIR<---- Send ACK (with payload)
Im trying to understand communication between crazyradio and crazyflie. To make it simple, i am trying to get nrf24l01+ on crazyflie (client) to talk to another nrf24l01+ (communicating with an STM32 discovery board). The code on crazyflie side is setup with crazyflie being PRX (with ACK_PAYLOAD enabled). The other is configured as PTX.
It is working with ACK enabled (without payload). However when ACK_PAYLOAD is enabled (through feature and dynamic payload registers), the PTX does not receive RX payload (TX_DS and RX_DR flags are not set) even though PRX is sending the payload (TX_DS on PRX is set). I am not sure if this is a good place to post this, but can you provide some pointers. I have tried to follow the settings on the datasheet. Please let me know if i have missed out some information here. Thanks!
PTX config:
1) TX_ADDRESS = {0xE7,0xE7,0xE7,0xE7,0xE7}
2) RX_ADDR_P0 = {0xE7,0xE7,0xE7,0xE7,0xE7}
3) Enable Pipe0, Auto acknowledge
4) SETUP_RETR: 500us, 10 retransmit
5) RF_SETUP: 250 kbps (have tried with 1 mbps and 2 mbps without success as well)
6) FEATURE: enable ack payload, dynamic payload
7) DYNPD: enable dynamic payload pipe 0
8) CONFIG: 0x0e (disable all interrupts on IRQ, power up PTX, 2 bit CRC)
PRX config on crazyflie:
same as PTX except
RX_PW_0: number of bytes sent by PTX.
CONFIG: 0x0f (disable all interrupts on IRQ, power up PRX, 2 bit CRC)
Scheme:
PTX-------->send payload-----> AIR-------> receive payload(Crazyflie PRX)
receive payload with ACK<---AIR<---- Send ACK (with payload)