Commit Graph

69 Commits

Author SHA1 Message Date
Mitch Lustig e08d0e8b8c Only init IMU once so it doesn't override UART on reboot 2020-04-28 20:49:09 -07:00
Jeffrey M. Friesen f7964e20c2 Few small changes and fixed bug with duals
Added ramping to current measurement to avoid steps during current calibration with an un-tuned current controller.

Added terminal command for mapping to internal nrf pins, useful when you want to erase_mass a locked nrf chip and dont want to cycle between a bunch of windows to scan connect etc.

Made fault led on duals blink if motor 2 is faulting.

Added break on inductance measurement if motor faults.

Added placeholder commands for changing name and pin of BLE module.
2020-04-01 17:58:37 -07:00
Benjamin Vedder 52e17059e5 Major restructuring for dual motor support, and added unity hw files 2020-03-16 18:32:39 +01:00
Benjamin Vedder ceb8b7bf7d HW60_MK3 support, shutdown fix, added COMM_SET_CURRENT_REL, ramp fix, PPM timeout fix, IRQ prio fix 2019-12-19 16:55:38 +01:00
Benjamin Vedder dfc3ed2319 Final v3.62 2019-09-27 12:56:49 +02:00
Benjamin Vedder 602db7435b FW3.59. Many updates, see changelog for details 2019-09-03 20:39:05 +02:00
Benjamin Vedder 023d78679f Fixed flash CRC check 2019-04-18 22:30:01 +02:00
Marcos Chaparro 4fceb73db9 Continuous flash memory integrity check running on background
Create a new, low priority thread that checks that the CRC of the
flash memory matches the CRC stored in flash.

8kB chunks are computed every 50 milliseconds. A reset is invoked if
CRC does not match.

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-04-17 20:54:08 -03:00
Marcos Chaparro 1ae059349f CRC integrity check of flash memory
The check only covers address 0x08008000 to 0x805FFFF, where application
code is stored. It excludes virtual eeprom area (first 0x8000 bytes)
because it is modified on runtime with user configurations.

After a fresh flash programming the CRC is read as 0xFFFFFFFF and firmware
computes and stores the new CRC and a reset is invoked.
After reset the CRC will be available for checking code integrity.

Linker file had a wrong flash2 size, it was set to 480kB, thus allowing
the linking of binaries larger than 393216 (x3 128kB sectors).
The bootloader won't program binaries that span more than 3 sectors.

Now flash2 length is set as (393216 - 8) to ensure that the last 8 bytes
are left blank (0xFFFF) and  reserved for CRC information.

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-04-15 20:56:42 -03:00
Benjamin Vedder 1161f8417c Added SWD programming support (based on Black Magic Probe) and open loop duty cycle control 2019-03-31 10:49:18 +02:00
Benjamin Vedder 39bb8a6b09 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
Benjamin Vedder 65298263b6 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
Marcos Chaparro 32cf05629d Resolve merge conficts with major 2019 release
Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-02-18 20:25:52 -03:00
Benjamin Vedder 123bb00ab4 Major 2019 update 2019-02-18 19:30:19 +01:00
Marcos Chaparro c59dd2b2fc Fix shadowed variables. Add -Wshadow.
Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-01-28 16:52:02 -03:00
Marcos Chaparro 884f626e63 Restore capability of enabling parameter assertion of peripheral libraries
Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-01-28 16:47:10 -03:00
Marcos Chaparro 17f97763c0 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
Signed-off-by: Marcos Chaparro <mchaparro@paltatech.com>
2019-01-24 12:19:44 -03:00
Benjamin Vedder bf27cb673e Removed software servo driver, fixed hw servo driver to work with all hardwares 2018-02-28 10:22:25 +01:00
Benjamin Vedder 5348662197 FW 3.32: Configurable CAN baud rate 2017-11-08 14:07:35 +01:00
Benjamin Vedder f141157358 First official commit after the VESC Project release 2017-09-04 21:12:43 +02:00
Benjamin Vedder 5dbc94c525 FW 3.7 2016-11-04 15:18:34 +01:00
Benjamin Vedder d2f6d87560 FW 3.0: HW60 support, 3 low/high side shunt support, permanent NRF option 2016-06-27 17:29:09 +02:00
Benjamin Vedder cb2a205cb8 FW 2.17: as5047 support, change sensor port mode in conf, better encoder detection, FOC ah and wh counter fixes 2016-04-27 15:32:32 +02:00
Benjamin Vedder 08a27cfbbd FW 1.16: Hall sensor position control, brake at 0RPM setpoint in FOC, FOC parameter detection fix 2016-02-24 21:19:44 +01:00
Benjamin Vedder 02f140e335 FW 2.11: Refactoring, dead time comp fix for smoother braking when the speed is zero 2016-01-30 15:57:51 +01:00
Benjamin Vedder 90986c31de FW 2.9: NRF updates (nunchuk has to be updated too), nunchuk command, small can fix, custom app data command 2016-01-24 13:44:51 +01:00
Benjamin Vedder 42c1b79a08 FW 2.7: Better encoder support, small UART and CAN fixes, NRF commands preparation 2015-12-28 01:50:23 +01:00
Benjamin Vedder 59309d9772 FW 2.4: some nan fixes that shoud prevent FOC from stopping and needing a reboot in some cases 2015-12-10 23:21:04 +01:00
Benjamin Vedder ff090fd4e0 FW 2.3: MAJOR UPDATE: FOC!! 2015-12-08 21:01:23 +01:00
Benjamin Vedder c4ff81e849 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
Benjamin Vedder 984b846401 FW 1.14: configuration loss fix, HW49 support, mcpwm interfaces for apps 2015-10-04 01:43:26 +02:00
Benjamin Vedder 58d892935d PPM dec fix, current sampling updates, ADC cruise control, commutation fix, higher switching frequency, refactoring 2015-08-23 18:26:05 +02:00
Benjamin Vedder f032111b9b NRF updates, better servo output support 2015-07-31 23:26:50 +02:00
Benjamin Vedder d07d65a5ca USB send mutex fix and some detect experimentation 2015-06-26 21:45:28 +02:00
Benjamin Vedder bc7a779632 Bootloader support, CAN fixes 2015-05-08 22:53:59 +02:00
Benjamin Vedder d8830a2543 Option to switch CAN off, optimization to send short forwarded commands over CAN in just one frame 2015-04-27 20:43:02 +02:00
Benjamin Vedder 607e99d211 Configuration over CAN, first implementation of position control, more configuration options 2015-04-27 00:02:32 +02:00
Benjamin Vedder 2ccb52514e Encoder support, NRF nunchuk support 2015-04-11 10:07:36 +02:00
Benjamin Vedder 8dc8ffe2c7 Nunchuk ramping, ws2811 configurable pin (Requieres latest BLDC_Tool) 2014-12-20 12:52:38 +01:00
Benjamin Vedder 9ff0f99593 WS2811/WS2812 LED driver to use LEDs for turn and brake lights, etc 2014-12-09 00:11:29 +01:00
Benjamin Vedder 5675c4f485 First CAN implementation 2014-12-07 04:30:25 +01:00
Benjamin Vedder 7c7a315a81 Commutation fixes, timer update change, current measurement fix, fault logging in RAM, current limit fix 2014-10-24 23:04:10 +02:00
Benjamin Vedder 10bbe73206 Global timeout implementation 2014-09-20 13:41:18 +02:00
Benjamin Vedder d6beda7b47 Complete servo-decoding rewrite, common command module, full access to everything over uart, more ppm options 2014-09-20 03:22:38 +02:00
Benjamin Vedder 6d4e55051c Prepared applications for runtime configuration 2014-09-17 21:05:57 +02:00
Benjamin Vedder 58889d6543 Hall sensor fixes and sample send delay removal after fixing a bldc_tool problem 2014-09-15 20:48:46 +02:00
Benjamin Vedder 1f1a8af1d7 Full runtime configuration support with flash storage 2014-09-15 02:39:58 +02:00
Benjamin Vedder 2cc53de346 Major USB communication protocol re-write and beginning runtime motor parameter configuration 2014-09-14 23:08:22 +02:00
Benjamin Vedder b24da3b710 Send the time axis to the Qt program for plots as well 2014-08-05 22:24:13 +02:00
Benjamin Vedder 8627d1c8d1 Lots of updates and fixes after one week of testing on an electric longboard 2014-07-27 19:40:38 +02:00