The following information will focus on the software development.
board
=====
The BusVoodoo uses a [custom board](https://bus.cuvoodoo.info/manual/index.html#_hardware_development) based on a [STM32F103RC](http://www.st.com/en/microcontrollers/stm32f103rc.html) micro-controller.
code
====
dependencies
------------
To develop the firmware, following Linux packages are required:
- _arm-none-eabi-gcc_ to compile the source code
- _arm-none-eabi-binutils_ to create the firmware binaries
- _arm-none-eabi-gdb_ to debug the firmware
- _rake_ automate development steps
- _openocd_ to flash and debug over SWD (when using an ST-Link V2 adapter)
- _doxygen_ to compile the documentation
The source code uses the [libopencm3](http://libopencm3.org/) library.
The projects is already a git submodules.
It will be initialized when compiling the firmware.
Alternatively you can run once: `git submodule init` and `git submodule update`.
*IMPORTANT*: to build the firmware for BusVoodoo hardware version 0, prepend `BUSVOODOO_HARDWARE_VERSION=0` before every `rake` command. This will make sure the few pin assignment differences are taken into account in the firmware.