Page 1 of 1

build new firmware

Posted: Tue Dec 16, 2014 4:57 am
by jsmartins
Hi,
I'm trying to change the control code of the quadricopter using C programming. After finish the changes in the firmware files how can i build a new firmware file (.bin) to download to the quadcopter? Or maybe other easiest way to do it. Sorry my lack of knowledge, I just started to work with programming.
There is some tutoria explaining step-by-step how to do these things?

Re: build new firmware

Posted: Tue Dec 16, 2014 5:07 am
by chad
You have to compile it with an ARM toolchain. Getting the toolchain installed varies depending on the system you're building the Crazyflie firmware on... Are you on Linux, Mac, or Windows. Also, are you compiling for Crazyflie 1.0 or Crazyflie 2.0?

Re: build new firmware

Posted: Tue Dec 16, 2014 5:16 am
by jsmartins
I', compiling for an Crazyflie 1.0. For while I'm using the VM 0.5 (Linux) but I'm installing a real machine using Linux, and this one will be dedicated to work with the quadcopter.
Thanks.

Re: build new firmware

Posted: Tue Dec 16, 2014 6:05 am
by chad
You will need to download the Linux tarball for gcc-arm-none-eabi toolchain. Specifically gcc-arm-none-eabi-4_7-2013q1-20130313-linux.tar.bz2. Expand the tarball and add the absolute path of the folder 'gcc-arm-none-eabi-4_7-2013q1/bin' to your PATH environment variable. I recommend removing everything else except for the essentials (/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin) from your PATH variable and only adding the full path to gcc-arm-none-eabi-4_7-2013q1/bin in my blog post on how to build on Mac OS X. So just do

Code: Select all

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/PATH/TO/gcc-arm-none-eabi-4_7-2013q1/bin
where '/PATH/TO' is whatever folder you exploded the gcc-arm-none-eabi-4_7-2013q1 tarball into.

Then it should just be a matter of changing into the Crazyflie firmware directory (which you cloned from GitHub) and running:

Code: Select all

make
I believe this should work on Linux the same as it does on Mac OS X...