How to learn crazyflie-firmware effectively

Firmware/software/electronics/mechanics
Post Reply
HC766
Beginner
Posts: 17
Joined: Wed Oct 09, 2019 2:16 pm

How to learn crazyflie-firmware effectively

Post by HC766 »

Hi all, I am new to the drone's area. I have not contacted any embedded system, hardware and software before. I have play the crazyflie for fun several weeks. I can use the api using ROS and vicon system to achieve autonomous flying. But I do not just wanna stay at the stage of beginner, I would like to become a developer. So how can I use the right way to learn the crazyflie-firmeare.
I have the C++ and python programming and the control algorithms background.
Thanks a lot.
kimberly
Bitcraze
Posts: 1050
Joined: Fri Jul 06, 2018 11:13 am

Re: How to learn crazyflie-firmware effectively

Post by kimberly »

Hi! Great to hear that you want to step it up your development ambitions :) There is not a single road to get to that point, but we can give some pointers on how to gain more knowledge:

- Documentation: There is some information about the hardware architecture of the Crazyflie that will be interesting to read: https://www.bitcraze.io/docs/overview_crazyflie/. It's good to know about what microprocessors are on the Crazyflie and what handles what. The STM32F4 is the microprocessor that runs the main crazyflie firmware, which bring us to...
- Read the source code: https://github.com/bitcraze/crazyflie-firmware. It is handy to know the structure of the crazyflie firmware, on which modules there are, how the expansion deck drivers are handled. Once you got a feel for that you can try to ...
- Write an application: From this you can look at the push demo described in this blogpost https://github.com/ataffanel/crazyflie-push-demo, which pretty much enables you to have fully autonomous behavior on board with a flowdeck and a multiranger. You can also use it to write an onboard statemachine to be used in MoCap, flying a figure or something like that.
- Contribute: Also, since it is an opensource project, we always appreciate if people use the code and contribute back improvements or features by pullrequests to the Crazyflie firmware github repository. So hopefully you will reach that level as a developer soon enough.

The easiest way to start programming on the Crazyflie is to starts from the idea that you want to implement and gathering the knowledge on how to implement it. So could you let us know what you would like to achieve with your crazyflie?
Post Reply