Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/vedderb/bldc/llms.txt

Use this file to discover all available pages before exploring further.

With prerequisites in place, you are ready to build firmware.

List supported targets

Running make with no arguments prints the full list of supported boards:
make
You will see output similar to:
   [Firmware]
     fw   - Build firmware for default target
                            supported boards are: 100_250 100_250_no_limits 100_500 ...
     fw_<board>           - Build firmware for target <board>
     PROJECT=<target> fw  - Build firmware for <target>
     fw_<board>_clean     - Remove firmware for <board>
     fw_<board>_flash     - Use OpenOCD + SWD/JTAG to write firmware to <target>
Identify the target name that matches your hardware. For example, a Trampa VESC 100/250 uses the target 100_250.

Build for a specific target

make 100_250
Replace 100_250 with the name of your board from the supported boards list.

Build output

Compiled firmware is placed in the build/<target>/ directory:
build/
└── 100_250/
    ├── 100_250.bin
    ├── 100_250.elf
    └── ...
The .bin file is used for USB upload via VESC Tool. The .elf file is used when flashing with a SWD debugger.

Additional make targets

TargetDescription
makePrint the help and supported board list
make <board>Build firmware for <board>
make <board>_flashBuild and flash to <board> via SWD/JTAG
make <board>_cleanRemove build artifacts for <board>
make all_fwBuild firmware for all supported boards
make arm_sdk_installInstall the ARM GCC toolchain
make qt_installInstall Qt Creator IDE
Add V=1 to any make command to see the full compiler invocation:
make 100_250 V=1

Custom hardware

To build firmware for a custom hardware configuration, supply the hardware source and header file paths directly:
make fw_custom HW_SRC=/path/to/hw_custom.c HW_HEADER=/path/to/hw_custom.h
Corresponding clean and flash targets are also available:
make fw_custom_clean
make fw_custom_flash

Build options in conf_general.h

Additional compile-time options are available in conf_general.h. Notable options include:
  • DISABLE_HW_LIMITS — disables hardware-enforced limits on configuration parameters (commented out by default)
  • USER_MC_CONF — path to a custom motor controller configuration header
  • USER_APP_CONF — path to a custom application configuration header
Uncomment or define these values before building to apply them.