Use of BLAS, LAPACK, ATLAS in Crazyflie Firmware?

Post Reply
Posts: 15
Joined: Sun May 31, 2020 3:07 am

Use of BLAS, LAPACK, ATLAS in Crazyflie Firmware?

Post by asr » Sun Jul 05, 2020 9:31 pm

I've been looking at the Crazyflie firmware ( and noticed that there doesn't seem to be a way to deal with matrix/vector operations beyond 3 dimensions (most of the matrix/vector operations seem to be contained in math3d.h). As such I wanted to ask why something like BLAS, LAPACK or ATLAS hasn't been included in the default firmware in order to allow developers to perform linear algebra on matrices/vectors of arbitrary size. Is it due to memory limitations on the Crazyflie, or maybe because such libraries are overkill for what should be performed on the Crazyflie, or are there more nuanced reasons for opting to not use such libraries? Thanks!

Posts: 456
Joined: Fri Jul 06, 2018 11:13 am

Re: Use of BLAS, LAPACK, ATLAS in Crazyflie Firmware?

Post by kimberly » Mon Jul 06, 2020 8:17 am


That is a good question though... currently there are not a lot of people at the bitcraze office due to holidays so I will try to get the discussion going.

I guess in general it was easier to just have an handmade matrix functions included in terms of compiling, and there is indeed a limit in the memory that we have to be careful with. On the other hand, there is a bit of a need to more harmonize all the functionalities for instances in the control and estimator framework (there are a bit 'calculation libraries' all over the place there). Either we write crazyflie lin alg/math library ourselves or we can use one of these libraries.

With the libraries I can imagine that they might be overkill or are not optimized for ARM, which is definitely a reason not to use it. But to be honest I'm not sure if anybody tried or did proper research on this. It might be a nice github issue to consider.

Post Reply