Go to file
Benjamin Vedder b2816ef596
Merge pull request #87 from paltatech/flash-memory-crc-integrity-check
Flash memory CRC integrity check
2019-04-18 20:02:56 +02:00
ChibiOS_3.0.2 Remove ST CRC library but keep using hardware-accelerated CRC32. 2019-04-16 19:13:01 -03:00
appconf FW 3.53: Limit foc_current_filter_const range, 1Mbit/de NRF speed, lower detect f_sw for resistance, no temp_comp by default 2019-03-20 22:46:36 +01:00
applications Chuk stop PID on dropout, ppm multi vesc duty fix 2019-04-18 20:00:26 +02:00
blackmagic Made build script non-verbose and removed some codacy warnings 2019-03-31 11:21:28 +02:00
build_all Made build script non-verbose and removed some codacy warnings 2019-03-31 11:21:28 +02:00
hwconf Merge pull request #82 from paltatech/virtual-motor 2019-04-14 07:24:23 +02:00
imu Fixed codacy warnings 2019-03-10 15:19:05 +01:00
libcanard Major 2019 update 2019-02-18 19:30:19 +01:00
mcconf Rename sin/cos m_conf structure fields 2019-04-08 21:05:46 -03:00
nrf FW 3.53: Limit foc_current_filter_const range, 1Mbit/de NRF speed, lower detect f_sw for resistance, no temp_comp by default 2019-03-20 22:46:36 +01:00
tests/packet_recovery Major 2019 update 2019-02-18 19:30:19 +01:00
.gitignore Add gitigore 2015-10-08 17:51:21 +02:00
.travis.yml Increase traveis build coverage to most hardware versions 2019-01-31 20:59:10 -03:00
CHANGELOG Chuk stop PID on dropout, ppm multi vesc duty fix 2019-04-18 20:00:26 +02:00
CONTRIBUTING Major 2019 update 2019-02-18 19:30:19 +01:00
Makefile Add command to connect a virtual motor with configurable parameters 2019-04-06 10:36:00 -03:00
README.md Update README.md 2019-02-20 09:46:50 +01:00
board.c FW3.28: dual throttle curves, ntc beta factor config, board file added 2017-09-06 21:13:28 +02:00
board.h FW3.28: dual throttle curves, ntc beta factor config, board file added 2017-09-06 21:13:28 +02:00
buffer.c Shifting signed 32-bit value by 31 bits is undefined behaviour 2019-01-25 00:09:08 -03:00
buffer.h FW 3.7 2016-11-04 15:18:34 +01:00
chconf.h FW 2.3: MAJOR UPDATE: FOC!! 2015-12-08 21:01:23 +01:00
comm_can.c Added SWD programming support (based on Black Magic Probe) and open loop duty cycle control 2019-03-31 10:49:18 +02:00
comm_can.h Major 2019 update 2019-02-18 19:30:19 +01:00
comm_usb.c Commands restructuring for thread safety, 75/300 vreg fix, fixed relative current commands 2019-03-04 19:23:38 +01:00
comm_usb.h Major 2019 update 2019-02-18 19:30:19 +01:00
comm_usb_serial.c FW3.28: dual throttle curves, ntc beta factor config, board file added 2017-09-06 21:13:28 +02:00
comm_usb_serial.h FW 3.7 2016-11-04 15:18:34 +01:00
commands.c Added SWD programming support (based on Black Magic Probe) and open loop duty cycle control 2019-03-31 10:49:18 +02:00
commands.h Commands restructuring for thread safety, 75/300 vreg fix, fixed relative current commands 2019-03-04 19:23:38 +01:00
conf_general.c Keep the flash memory locked during normal operation 2019-04-16 00:33:22 -03:00
conf_general.h Increased version number and updated configuration signatures 2019-04-14 07:44:55 +02:00
conf_mc_app_default.h Autogenerated config parsing with signatures, fixed previous PRs 2019-03-01 21:36:58 +01:00
confgenerator.c Rename sin/cos m_conf structure fields 2019-04-08 21:05:46 -03:00
confgenerator.h Increased version number and updated configuration signatures 2019-04-14 07:44:55 +02:00
crc.c Remove ST CRC library but keep using hardware-accelerated CRC32. 2019-04-16 19:13:01 -03:00
crc.h Remove ST CRC library but keep using hardware-accelerated CRC32. 2019-04-16 19:13:01 -03:00
datatypes.h CRC integrity check of flash memory 2019-04-15 20:56:42 -03:00
digital_filter.c FW 3.7 2016-11-04 15:18:34 +01:00
digital_filter.h FW 3.7 2016-11-04 15:18:34 +01:00
eeprom.c Do not write flash memory if MCU VDD is below 2.9V 2019-01-10 11:14:00 -03:00
eeprom.h FW 3.7 2016-11-04 15:18:34 +01:00
encoder.c Move sin/cos signal pin definitions to hwconf/ 2019-04-08 18:59:07 -03:00
encoder.h Add SinCos encoder checks and fault management 2019-04-02 10:37:15 -03:00
flash_helper.c Set crc and flag for memory checks to '1' at build time 2019-04-17 21:27:43 -03:00
flash_helper.h Continuous flash memory integrity check running on background 2019-04-17 20:54:08 -03:00
gpdrive.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
gpdrive.h Major 2019 update 2019-02-18 19:30:19 +01:00
halconf.h Major 2019 update 2019-02-18 19:30:19 +01:00
i2c_bb.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
i2c_bb.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
irq_handlers.c Some fixes after the merge 2019-02-19 18:55:18 +01:00
isr_vector_table.h Ported to ChibiOS 3, refactoring, cleanup, added safe start delay after fault for PPM app, removed unused ST libraries 2015-10-08 23:09:39 +02:00
ld_eeprom_emu.ld Set crc and flag for memory checks to '1' at build time 2019-04-17 21:27:43 -03:00
led_external.c Fix shadowed variables. Add -Wshadow. 2019-01-28 16:52:02 -03:00
led_external.h FW 3.7 2016-11-04 15:18:34 +01:00
ledpwm.c FW 3.7 2016-11-04 15:18:34 +01:00
ledpwm.h FW 3.7 2016-11-04 15:18:34 +01:00
main.c Continuous flash memory integrity check running on background 2019-04-17 20:54:08 -03:00
mc_interface.c Rename sin/cos m_conf structure fields 2019-04-08 21:05:46 -03:00
mc_interface.h Resolve merge conficts with major 2019 release 2019-02-18 20:25:52 -03:00
mcpwm.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
mcpwm.h Major 2019 update 2019-02-18 19:30:19 +01:00
mcpwm_foc.c Add command to connect a virtual motor with configurable parameters 2019-04-06 10:36:00 -03:00
mcpwm_foc.h Add command to connect a virtual motor with configurable parameters 2019-04-06 10:36:00 -03:00
mcuconf.h Resolve merge conficts with major 2019 release 2019-02-18 20:25:52 -03: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 Removed software servo driver, fixed hw servo driver to work with all hardwares 2018-02-28 10:22:25 +01:00
servo_dec.c FW 3.7 2016-11-04 15:18:34 +01:00
servo_dec.h FW 3.7 2016-11-04 15:18:34 +01:00
servo_simple.c Removed software servo driver, fixed hw servo driver to work with all hardwares 2018-02-28 10:22:25 +01:00
servo_simple.h FW 3.7 2016-11-04 15:18:34 +01:00
stm32-bv_openocd.cfg first commit 2014-01-09 15:20:26 +01:00
stm32f4xx_conf.h Restore capability of enabling parameter assertion of peripheral libraries 2019-01-28 16:47:10 -03:00
terminal.c Add SinCos encoder checks and fault management 2019-04-02 10:37:15 -03:00
terminal.h First official commit after the VESC Project release 2017-09-04 21:12:43 +02:00
timeout.c Autogenerated config parsing with signatures, fixed previous PRs 2019-03-01 21:36:58 +01:00
timeout.h Extend watchdog coverage with IWDG, a watchdog running from an independent LF oscillator. If any of the threads being monitored does not report for more than 12ms, a reset will be asserted. When a WDG reset happens, the user can see it in the fault logs from vesc tool 2019-01-24 12:19:44 -03:00
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 2019 update 2019-02-18 19:30:19 +01:00
utils.h Resolve merge conficts with major 2019 release 2019-02-18 20:25:52 -03:00
virtual_motor.c Fix codacy warning 2019-04-06 10:46:34 -03:00
virtual_motor.h Add command to connect a virtual motor with configurable parameters 2019-04-06 10:36:00 -03:00
ws2811.c Fix shadowed variables. Add -Wshadow. 2019-01-28 16:52:02 -03:00
ws2811.h FW 3.7 2016-11-04 15:18:34 +01:00

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_palta.c"
//#define HW_HEADER "hw_palta.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 an Ubuntu machine, 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

Build and flash the bootloader

Build

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