summary of different flash-update options
Posted: Wed Sep 29, 2021 4:05 pm
Hi,
I am new (couple weeks) to crazyflie. I have a crazyflie2.1 and before I do any programming I wanna make sure I understand all the options for programming the two processors. Basically I wanna make sure I don't 'brick' anything. Is there any documentation on these different configurations?
Seems like there are a lot of different potential modes: wireless, USB, debug headers...
Wireless:
Code is downloaded over the RF link (landing on the NRF51822 first), so that implies that the NRF51822 can program the STM32F405RG, true?
I see code in https://github.com/bitcraze/crazyflie2- ... /src/swd.c that sets up P0.24/25/28 as SPI, but it doesn't look like it
is used (swdInit() isn't called), so I don't see how the NRF51822 can program the STM32F405RG.
Also, can the NRF51822 also be re-flashed wirelessly? That is... can it reprogram its own flash?
USB:
Code is downloaded over USB (landing on the STM32F405RG first), so that implies that the STM32F405RG can program the NRF51822, true?
If yes, what is the interface between STM/NRF that supports this?
Debug headers:
Looking at the Crazyflie2.1 schematic, I see two debug headers (STM & NRF debug); with only the STM header populated.
Seems I need P4 to be populated if I want to re-flash the NRF51822, true?
Most of the above questions assume that there is a hardware interface between the two processors that allows one to program the other. I guess an alternative approach would be that they simply have a communication interface between them allowing either processor to send an image and then each processor programs itself. Is that the ticket?
Sorry for all the questions and thanks in advance,
Ed
I am new (couple weeks) to crazyflie. I have a crazyflie2.1 and before I do any programming I wanna make sure I understand all the options for programming the two processors. Basically I wanna make sure I don't 'brick' anything. Is there any documentation on these different configurations?
Seems like there are a lot of different potential modes: wireless, USB, debug headers...
Wireless:
Code is downloaded over the RF link (landing on the NRF51822 first), so that implies that the NRF51822 can program the STM32F405RG, true?
I see code in https://github.com/bitcraze/crazyflie2- ... /src/swd.c that sets up P0.24/25/28 as SPI, but it doesn't look like it
is used (swdInit() isn't called), so I don't see how the NRF51822 can program the STM32F405RG.
Also, can the NRF51822 also be re-flashed wirelessly? That is... can it reprogram its own flash?
USB:
Code is downloaded over USB (landing on the STM32F405RG first), so that implies that the STM32F405RG can program the NRF51822, true?
If yes, what is the interface between STM/NRF that supports this?
Debug headers:
Looking at the Crazyflie2.1 schematic, I see two debug headers (STM & NRF debug); with only the STM header populated.
Seems I need P4 to be populated if I want to re-flash the NRF51822, true?
Most of the above questions assume that there is a hardware interface between the two processors that allows one to program the other. I guess an alternative approach would be that they simply have a communication interface between them allowing either processor to send an image and then each processor programs itself. Is that the ticket?
Sorry for all the questions and thanks in advance,
Ed