--- title: Developing Firmware ---

# Developing Firmware

You'll need a toolchain that supports ARM Cortex-M3. The Makefiles in Project Ubertooth are designed for GCC and a Linux-based toolchain, specifically the free installation provided at https://launchpad.net/gcc-arm-embedded, but it should be possible to compile firmware with any development environment for the Cortex-M3. Just unpack the archive and add the bin directory to your PATH.

Prior to r518, we used the Codesourcery toolchain, but it has become harder to locate.

Although firmware source and binary images can be found in the release downloads, you will probably want fresh code from git.

Ubertooth Zero and Ubertooth One are not binary compatible. The default target is Ubertooth One. If you are compiling firmware for Ubertooth Zero, set the environment variable BOARD = UBERTOOTH_ZERO.