Commit Graph

197 Commits

Author SHA1 Message Date
Mitch Lustig 3c31d264fd Add high voltage tiltback 2019-09-12 00:07:26 -07:00
Mitch Lustig 9f263b8c1a Reorder app_use enum 2019-09-11 23:18:12 -07:00
Mitch Lustig 518776d04e Add basic low voltage tiltback 2019-09-10 19:29:44 -07:00
Mitch Lustig 67a4653bd8 Add support for dual fault switches 2019-09-10 01:07:05 -07:00
Benjamin Vedder eb6f5945ce FW 3.61: Added smart reverse mode to PPM app, and some fixes 2019-09-09 19:34:26 +02:00
Mitch Lustig a4de5eb2b5 Cleanup 2019-09-08 22:23:31 -07:00
Mitch Lustig 72e9c24bd7 Make axes configurable, remove offset management 2019-09-08 18:32:53 -07:00
Mitch Lustig 011d3055f6 Merge branch 'master' into merge_new_master 2019-09-08 15:05:54 -07:00
Mitch Lustig 98652977a2 Merge master 2019-09-08 11:42:28 -07:00
Benjamin Vedder a233367be8 MPU9x50 fix, experiment plots, DQ voltage RT data, smart reverse for nunchuk app 2019-09-08 18:25:38 +02:00
Benjamin Vedder 602db7435b FW3.59. Many updates, see changelog for details 2019-09-03 20:39:05 +02:00
Mitch Lustig 7a47053ca6 Add startup calibration sequence 2019-08-27 19:57:35 -07:00
Mitch Lustig a2231593b2 Start on better gyro config 2019-08-25 23:49:33 -07:00
Mitch Lustig 62da9e5b83 Better peripheral gyro management 2019-08-09 23:16:20 -07:00
Mitch Lustig 14faa2e593 Make all features configurable 2019-08-07 00:22:51 -07:00
Mitch Lustig 15703429f5 Add gyro tuning functionality & state machine logic 2019-08-04 11:47:23 -07:00
Mitch Lustig 800115f683 Implement more data to help debug 2019-07-30 00:27:23 -07:00
Mitch Lustig bbba718140 Work to get GUI going 2019-07-29 00:31:48 -07:00
Mitch Lustig fccb59b2ef Merge branch 'master' into balance 2019-07-27 21:28:02 -07:00
Mitch Lustig 271dd21dab start in balanace app 2019-07-27 21:25:56 -07:00
Davide D'Agostino 19fb5e04c6 Rebuild the firmwares 2019-06-29 19:59:02 -07:00
Davide D'Agostino ce802e3547 Move the new smart revers funcion as separate control type
Removed unnecessary ADC fields from its config.
2019-06-24 13:36:55 -07:00
Davide D'Agostino 05b0f0dd9f Port Ackmaniac smart reverse 2019-06-19 19:00:46 -07:00
Benjamin Vedder a141e750bb Added CAN status msg 5, fixed issue 94, use defaul HW parameters after autodetect 2019-05-16 23:30:40 +02:00
Marcos Chaparro 6d758b38f2 Detect current sensor failures
2 failure modes added:
* On boot, when calculating DC offsets generate a fault if the offset is beyond
HW_MAX_CURRENT_OFFSET. Fault code reports which sensor is having issues (1, 2 or 3).
Most likely cause is a disconnected sensor, if hw has fault-detecting pullups.

* On runtime, in setups with 3 in-line phase current sensors, checks that the sum
of the currents is below MCCONF_MAX_CURRENT_UNBALANCE, with a configurable low pass
filter. If unbalanced current is high, it means a fault to ground, or a disconnected
sensor (this works at 0 Amp if hw has pullups in the sensor input to detect the
failure).

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-04-20 09:43:08 -03:00
Benjamin Vedder 4a9fe93f41 Added support for storing hw-specific and custom variables in EEPROM 2019-04-19 10:42:43 +02: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 025334c141
Merge pull request #85 from tipsmiller/master
Add new control type to ADC application
2019-04-14 07:22:56 +02:00
Marcos Chaparro d80227b9b4 Rename sin/cos m_conf structure fields
Use m_foc prefix so in VESC Tool they are edited in
FOC->Encoder.
Generate confgenerator.c and .h using VESC Tool.

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-04-08 21:05:46 -03:00
tipsmiller 3639c6c5f8 Remove custom app. Add new entry for adc ctrl type 2019-04-08 17:45:46 -06:00
Marcos Chaparro de707e0975 Add SinCos encoder checks and fault management
Sin/Cos signals are checked to make sure the module of the vector
is larger than 1V and smaller than 1.65V. A working encoder will
never have both sin and cos signals at 0V (zero amplitude module).
Both sin and cos at 3.3V is also not a possible value.

Errors are logged independently for signals too large and for
signals too small, provinding the user more insight when an encoder
fault happens. In the terminal, the 'encoder' command will show
the error counts and error rates of the encoder being used.

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-04-02 10:37:15 -03:00
Marcos Chaparro 153deef9af Add configurable low pass filtering to SinCos encoder analog signals
Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-04-01 08:35:22 -03:00
Marcos Chaparro b155d5219a Basic SinCos encoder support
Reads sine and cosine on ADC_IND_EXT and ADC_IND_EXT2, usually
used for ACCEL and REGEN inputs. Provides offset and gain
compensation and is implemented using floating point math.

Note it includes the full mc_interface.h into encoder.c only
to access the ADC readings, and no filtering is performed on
the signals.

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2019-04-01 08:35:22 -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 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
vadim f668b89db5 trigger a fault when AS5047 encoder SPI communication is broken 2019-02-25 14:43:02 +02: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 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
Marcos Chaparro f1978ac5b4 Stronger filtering on gate driver supply voltage sensing. Add that voltage to fault logs
Signed-off-by: Marcos Chaparro <mchaparro@paltatech.com>
2019-01-18 19:03:53 -03:00
Marcos Chaparro 34bacefe99 Configure Brown Out Reset to keep mcu under reset until VDD reaches 2.7V. Configure Programmable Voltage Detector to interrupt and log a fault when mcu VDD drops below 2.9V.
Signed-off-by: Marcos Chaparro <mchaparro@paltatech.com>
2019-01-08 11:36:42 -03:00
Marcos Chaparro 89e6022698 Gate driver supply voltage monitoring
Signed-off-by: Marcos Chaparro <mchaparro@paltatech.com>
2018-12-12 20:03:12 -03:00
Benjamin Vedder a20c35b338 FW 3.39: AUX pin support, some refactoring 2018-07-06 21:20:54 +02:00
Benjamin Vedder 22dc2ce33c FW 3.37: FOC KI temp comp, configurable foc current filter 2018-03-24 22:32:58 +01:00
Benjamin Vedder f7d0897c73 Added handbrake function to the simple CAN interface 2018-03-02 11:48:49 +01:00
Peemouse 29c771d7c5 v3.35 - Add option to power NRF module off 2018-02-17 17:59:21 +01:00
Benjamin Vedder 5348662197 FW 3.32: Configurable CAN baud rate 2017-11-08 14:07:35 +01:00
Benjamin Vedder 6277cf74ca FW 3.31: Acc temp dec option, PID for APP_ADC 2017-10-27 21:29:12 +02:00
Benjamin Vedder 79bfbe6234 FW3.28: dual throttle curves, ntc beta factor config, board file added 2017-09-06 21:13:28 +02:00
Benjamin Vedder f141157358 First official commit after the VESC Project release 2017-09-04 21:12:43 +02:00
Benjamin Vedder bb2bfa3b9c FW 3.9: Final float serialization update, new option to invert motor direction, UUID readout 2016-11-06 18:14:06 +01:00
Benjamin Vedder 5dbc94c525 FW 3.7 2016-11-04 15:18:34 +01: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 d52906fbe8 FW 2.15: NRF configuration, PPM and ADC app duty mode scaling to max duty 2016-02-09 12:25:13 +01:00
Lucas Pleß 294d80b777 added ADC2 analog brake option 2016-02-02 16:28:55 +01:00
Benjamin Vedder e6ea308a48 FW 2.10: FOC hybrid hall sensor support with interpolation 2016-01-27 23:57:23 +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 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 06129bb66c FW 1.13: Hw 4.8 support, new CC implementation for nunchuk, refactoring, custom app and hw config support 2015-09-17 23:24:55 +02:00
Benjamin Vedder c3e82f7651 Soft battery cutoff, more BLDC Tool parameters 2015-08-26 23:12:39 +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 24380c3fc0 New hall sensor implementation with hybrid mode and connection/order auto detection 2015-06-19 23:38:46 +02:00
Benjamin Vedder 87932662b7 Long packet support, configurable min and max duty, longer CAN buffer, default parameter changes, appconf ack fix, refactoring 2015-05-20 16:13:48 +02:00
Benjamin Vedder bc7a779632 Bootloader support, CAN fixes 2015-05-08 22:53:59 +02:00
Benjamin Vedder 5a5ccfb4c3 ADC app added, nunchuk RPM filter, FW version added, feedback on appconf and mcconf set 2015-05-04 23:25:43 +02:00
Benjamin Vedder 85f0073105 PPM updates and safe start implementation 2015-05-01 01:57:55 +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 1ee40ce5ba Median filter option for PPM input 2015-04-20 22:09:53 +02:00
Benjamin Vedder bc0415c1bb First implementation of DC motor support 2015-04-12 18:23:17 +02:00
Benjamin Vedder 2ccb52514e Encoder support, NRF nunchuk support 2015-04-11 10:07:36 +02:00
Benjamin Vedder 3b43648803 Show battery level on ws2812 LEDs 2015-03-07 14:56:25 +01:00
Benjamin Vedder 828cdd92f8 Chuk and PPM config structs, phase advance fixes and implementation for delay comm mode, CAN fixes and status message implementation, multi-esc mode for PPM and Chuk, traction control for PPM and chuk, CAN id config, multi-esc and traction control config, ADC sampling change, hall-sensor read bug fix for HW45+ 2015-02-19 21:20:07 +01:00
Benjamin Vedder b7e5692cc1 Over temp fault code 2015-01-23 00:40:09 +01:00
Benjamin Vedder 8dc8ffe2c7 Nunchuk ramping, ws2811 configurable pin (Requieres latest BLDC_Tool) 2014-12-20 12:52:38 +01:00
Benjamin Vedder 434cd04b86 Added max ERPM in CC mode parameter (NOTE: Requires latest BLDC_Tool) 2014-12-13 11:46:26 +01:00
Benjamin Vedder bc4409ba14 Full brake current estimation (NOTE: Extra parameter added, so update BLDC_Tool) 2014-12-13 01:31:54 +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 42cab4c18d Added voltage to fault log 2014-11-27 20:56:17 +01:00
Benjamin Vedder 33c81db930 Deadband fix, configurable temperature limit 2014-11-25 21:05:46 +01:00
Benjamin Vedder f7cda79d1b HW45-implementation, temp-protection, nunchuk-fix, i2c-fixes 2014-10-19 19:31:06 +02:00
Benjamin Vedder 81a6d84113 Nunchuk implementation (Nyko Kama tested), mah and wh counting 2014-10-19 01:00:53 +02:00
Benjamin Vedder 2119242b43 Soft RPM limit for current mode in ppm app 2014-09-21 19:29:26 +02:00
Benjamin Vedder e27df0235f Command to get decoded servo value 2014-09-20 15:23:36 +02:00
Benjamin Vedder 10bbe73206 Global timeout implementation 2014-09-20 13:41:18 +02:00
Benjamin Vedder 1d04f0314b Added gpl to some files 2014-09-20 03:27:06 +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 2e723ece6f App configuration, eeprom emu fix, reboot command 2014-09-18 23:00:14 +02:00
Benjamin Vedder 6d4e55051c Prepared applications for runtime configuration 2014-09-17 21:05:57 +02:00
Benjamin Vedder e4c7fca84d Tachometer improvement and rpm-dep bug fix 2014-09-16 10:44:56 +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