I'm finding for the implement of the "pipe"

Firmware/software/electronics/mechanics
Post Reply
John B. H.
Beginner
Posts: 1
Joined: Thu Jul 26, 2018 5:23 am

I'm finding for the implement of the "pipe"

Post by John B. H. » Thu Jul 26, 2018 7:37 am

Hello. My name is John, and I've been searching for application possibilities of your products, Crzyflie 2.0 for about 4 months.
Recently, I become interested in the structure of the communication protocol between the Crazyradio and Crazyflie. So I analyzed the firmwares in your BitcrazeVM.ova for 3 weeks to understand the implement. I focused these files below:

crazyflie-firmware/src/
hal/ nrf24link, radiolink
init/main
modules/ comm, commander, console, crtp, log, param,
crazyflie2-nrf-firmware/ syslink, esb, main

especially I have been looking for finding the implement of "pipe", enabling the Crazyradio to distinguish each Crazyflies connected to.
Then I became to know that the number of pipe is controlled by STM32 below than 6, and how the address(like E7E7E7E7A1) can be loaded by STM32 configblock from the EEPROM and be moved to the nRF51822 through the SYSLINK. And finally I know the address in the nRF51822 is stored in the PREFIX0 and BASE0.

Then, however, I cannot take at least one step forward from this point.

Nobody refer the PREFIX0 and BASE0 for comparing the address.
I cannot find out the "address" in the ESB packet structure. (I could find the "match" only, but this indicates only the 'UNICAST' or 'MULTICAST')
Thus, ESB in nRF51 only classifies the Uni/Multi cast and sends all packets recieved to STM32. (the packets in the queue"rxPackets")
In addition, nobody access the queue "rxPackets" to restore the packet on the queue.
Finially, CRTP Packet, unpacked in STM32, doesn't include the address information in the CRTP Packet structure.

I would be very grateful, if you point something wrong out, from the 5 things I wrote above.

Anyway, so I guess that a protocol exists and is implemented in the layer below the ESB, and this protocol compares the address in the packet from the air and the address in the memory of nRF51.

I want to find the point where I can see how the address is stored in the packet on the air, and how the address is compared at the nRF51.
I want to see a code where the "pipe" is generated and maintained.


Thank you for reading.

Post Reply