Go to file
Jeffrey M. Friesen a52f8601cd Merge remote-tracking branch 'upstream/dev_fw_5_00' into dev_fw_5_00 2020-03-22 09:38:55 -07:00
ChibiOS_3.0.5 Updated ChibiOS to 3.0.5 2020-03-21 20:14:20 +01:00
appconf Balance sprint 3 2020-03-15 23:18:34 -07:00
applications Merge pull request #141 from Mitchlol/Balance_app_sprint_3 2020-03-16 20:35:26 +01:00
blackmagic Leave debug mode on NRF5x after SWD upload, more TS5700N8501 encoder features, more CAN baud rates 2020-02-01 00:37:25 +01:00
build_all Merge remote-tracking branch 'upstream/dev_fw_5_00' into dev_fw_5_00 2020-03-22 09:38:55 -07:00
compression Add miniLZO lossless compressor/decompressor source files 2019-10-25 17:37:35 -03:00
hwconf Merge remote-tracking branch 'upstream/dev_fw_5_00' into dev_fw_5_00 2020-03-21 07:09:04 -07:00
imu Enable Mahony IMU filter 2020-01-31 19:36:00 -08:00
libcanard FW4.00: HFI and many updates, see changelog 2020-01-28 19:46:19 +01:00
mcconf gpdrive fix, observer gain calc updates, added COMM_SET_BATTERY_CUT, added CAN_PACKET_SHUTDOWN, detect all fix 2020-03-20 17:35:25 +01:00
nrf FW upload compression support, TS5700N8501 support 2019-12-05 19:50:17 +01:00
tests/packet_recovery Major 2019 update 2019-02-18 19:30:19 +01:00
.gitignore ignore project config files 2020-03-16 14:58:23 -07:00
.travis.yml Increase traveis build coverage to most hardware versions 2019-01-31 20:59:10 -03:00
CHANGELOG Removed old chibios, recompiled FWs, updated changelog 2020-03-22 13:50:32 +01:00
CONTRIBUTING Major 2019 update 2019-02-18 19:30:19 +01:00
Makefile Updated ChibiOS to 3.0.5 2020-03-21 20:14:20 +01:00
README.md Add MacOS environment configuration guide 2019-09-21 23:16:50 +08:00
board.c
board.h
buffer.c Shifting signed 32-bit value by 31 bits is undefined behaviour 2019-01-25 00:09:08 -03:00
buffer.h
chconf.h Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
comm_can.c Updated observer gain scaling, and implemented CAN shutdown on unity hw config 2020-03-21 01:05:42 +01:00
comm_can.h Updated observer gain scaling, and implemented CAN shutdown on unity hw config 2020-03-21 01:05:42 +01:00
comm_usb.c fix USB freezing on windows bug 2020-03-22 09:36:14 -07:00
comm_usb.h FW 3.66: Many changes, see changelog 2020-01-12 21:25:21 +01:00
comm_usb_serial.c FW 3.66: Many changes, see changelog 2020-01-12 21:25:21 +01:00
comm_usb_serial.h FW 3.66: Many changes, see changelog 2020-01-12 21:25:21 +01:00
commands.c gpdrive fix, observer gain calc updates, added COMM_SET_BATTERY_CUT, added CAN_PACKET_SHUTDOWN, detect all fix 2020-03-20 17:35:25 +01:00
commands.h FW4.00: HFI and many updates, see changelog 2020-01-28 19:46:19 +01:00
conf_general.c Fixed memory leak 2020-03-20 20:40:41 +01:00
conf_general.h fix USB freezing on windows bug 2020-03-22 09:36:14 -07:00
confgenerator.c Balance sprint 3 2020-03-15 23:18:34 -07:00
confgenerator.h Updated appconf signature for balance app 2020-03-16 20:46:40 +01:00
crc.c Fixed flash CRC check 2019-04-18 22:30:01 +02:00
crc.h Remove ST CRC library but keep using hardware-accelerated CRC32. 2019-04-16 19:13:01 -03:00
datatypes.h gpdrive fix, observer gain calc updates, added COMM_SET_BATTERY_CUT, added CAN_PACKET_SHUTDOWN, detect all fix 2020-03-20 17:35:25 +01:00
digital_filter.c
digital_filter.h
eeprom.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
eeprom.h Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
encoder.c Pos PID fix, AS5047 fix, changed FOC time constant, updated conf generator 2020-02-27 17:49:35 +01:00
encoder.h Leave debug mode on NRF5x after SWD upload, more TS5700N8501 encoder features, more CAN baud rates 2020-02-01 00:37:25 +01:00
flash_helper.c FW3.59. Many updates, see changelog for details 2019-09-03 20:39:05 +02:00
flash_helper.h FW3.59. Many updates, see changelog for details 2019-09-03 20:39:05 +02:00
gpdrive.c gpdrive fix, observer gain calc updates, added COMM_SET_BATTERY_CUT, added CAN_PACKET_SHUTDOWN, detect all fix 2020-03-20 17:35:25 +01:00
gpdrive.h Major 2019 update 2019-02-18 19:30:19 +01:00
halconf.h FW 3.66: Many changes, see changelog 2020-01-12 21:25:21 +01:00
i2c_bb.c Fixed current offset fault bug, added support for multiple IMUs and ICM-20948 2019-05-03 19:55:36 +02:00
i2c_bb.h Fixed current offset fault bug, added support for multiple IMUs and ICM-20948 2019-05-03 19:55:36 +02:00
irq_handlers.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
isr_vector_table.h
ld_eeprom_emu.ld Fixed flash CRC check 2019-04-18 22:30:01 +02:00
led_external.c Fix shadowed variables. Add -Wshadow. 2019-01-28 16:52:02 -03:00
led_external.h
ledpwm.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
ledpwm.h Added unity to build script 2020-03-16 20:04:32 +01:00
main.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
mc_interface.c More refactoring 2020-03-21 12:04:20 +01:00
mc_interface.h Better thread/isr motor selection 2020-03-16 22:42:44 +01:00
mcpwm.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
mcpwm.h Set new tachometer value interface added. 2019-12-07 21:07:05 +05:00
mcpwm_foc.c Updated ChibiOS to 3.0.5 2020-03-21 20:14:20 +01:00
mcpwm_foc.h Some optimizations to make mc_interface timer ISR run faster 2020-03-20 21:48:21 +01:00
mcuconf.h fix USB freezing on windows bug 2020-03-22 09:36:14 -07:00
mempools.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
mempools.h Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
packet.c Major 2019 update 2019-02-18 19:30:19 +01:00
packet.h Major 2019 update 2019-02-18 19:30:19 +01:00
pi_stm32.cfg
servo_dec.c Detect FOC fix, adc brake multi fix, make ppm pulses invalid above 150 percent 2019-07-01 17:17:49 +02:00
servo_dec.h
servo_simple.c
servo_simple.h
shutdown.c Added support for HW60_MK3 and disable shutdown when watchdog runs slowly 2019-12-09 10:57:33 +01:00
shutdown.h Added support for HW60_MK3 and disable shutdown when watchdog runs slowly 2019-12-09 10:57:33 +01:00
stm32-bv_openocd.cfg
stm32f4xx_conf.h Restore capability of enabling parameter assertion of peripheral libraries 2019-01-28 16:47:10 -03:00
terminal.c Observer gain scaling update, print correct motor on faults, updated timer terminal command 2020-03-17 09:38:09 +01:00
terminal.h FW3.59. Many updates, see changelog for details 2019-09-03 20:39:05 +02:00
timeout.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
timeout.h
timer.c 75/300 R2 support, terminal sync cmd, IMU support, option to disable permanent UART, collected timer functions in one place 2019-03-10 14:57:42 +01:00
timer.h 75/300 R2 support, terminal sync cmd, IMU support, option to disable permanent UART, collected timer functions in one place 2019-03-10 14:57:42 +01:00
utils.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
utils.h Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
virtual_motor.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
virtual_motor.h Add command to connect a virtual motor with configurable parameters 2019-04-06 10:36:00 -03:00
worker.c Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
worker.h Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
ws2811.c Fix shadowed variables. Add -Wshadow. 2019-01-28 16:52:02 -03:00
ws2811.h

README.md

VESC firmware

License: GPL v3 Travis CI Status Codacy Badge Contributors Watchers Stars Forks

An open source motor controller firmware.

This is the source code for the VESC DC/BLDC/FOC controller. Read more at https://vesc-project.com/

Supported boards

All of them!

Make sure you select your board in conf_general.h

//#define HW_SOURCE "hw_40.c"
//#define HW_HEADER "hw_40.h"

//#define HW_SOURCE "hw_45.c"
//#define HW_HEADER "hw_45.h"

//#define HW_SOURCE "hw_46.c" // Also for 4.7
//#define HW_HEADER "hw_46.h" // Also for 4.7

//#define HW_SOURCE "hw_48.c"
//#define HW_HEADER "hw_48.h"

//#define HW_SOURCE "hw_49.c"
//#define HW_HEADER "hw_49.h"

//#define HW_SOURCE "hw_410.c" // Also for 4.11 and 4.12
//#define HW_HEADER "hw_410.h" // Also for 4.11 and 4.12

#define HW_SOURCE "hw_60.c"
#define HW_HEADER "hw_60.h"

//#define HW_SOURCE "hw_r2.c"
//#define HW_HEADER "hw_r2.h"

//#define HW_SOURCE "hw_victor_r1a.c"
//#define HW_HEADER "hw_victor_r1a.h"

//#define HW_SOURCE "hw_das_rs.c"
//#define HW_HEADER "hw_das_rs.h"

//#define HW_SOURCE "hw_axiom.c"
//#define HW_HEADER "hw_axiom.h"

//#define HW_SOURCE "hw_rh.c"
//#define HW_HEADER "hw_rh.h"

//#define HW_SOURCE "hw_tp.c"
//#define HW_HEADER "hw_tp.h"

//#define HW_SOURCE "hw_75_300.c"
//#define HW_HEADER "hw_75_300.h"

//#define HW_SOURCE "hw_mini4.c"
//#define HW_HEADER "hw_mini4.h"

//#define HW_SOURCE "hw_das_mini.c"
//#define HW_HEADER "hw_das_mini.h"

//#define HW_SOURCE "hw_uavc_qcube.c"
//#define HW_HEADER "hw_uavc_qcube.h"

//#define HW_SOURCE "hw_uavc_basic.c"
//#define HW_HEADER "hw_uavc_basic.h"

There are also many other options that can be changed in conf_general.h

Prerequisites

On Ubuntu

Install the gcc-arm-embedded toolchain

sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt update
sudo apt install gcc-arm-embedded

Add udev rules to use the stlink v2 programmer without being root

wget vedder.se/Temp/49-stlinkv2.rules
sudo mv 49-stlinkv2.rules /etc/udev/rules.d/
sudo udevadm trigger

On MacOS

Go to the GNU ARM embedded toolchain downloads Website and select the mac version, download it and extract it to your user directory.

Append the bin directory to your $PATH. For example:

export PATH="$PATH:/Users/your-name/gcc-arm-none-eabi-8-2019-q3-update/bin/"

Install stlink and openocd

brew install stlink
brew install openocd

Build

Build and flash the bootloader first

Clone and build the firmware

git clone https://github.com/vedderb/bldc.git vesc_firmware
cd vesc_firmware
make

Flash it using an STLink SWD debugger

make upload

Contribute

Head to the forums to get involved and improve this project.

License

The software is released under the GNU General Public License version 3.0