Commit Graph

301 Commits

Author SHA1 Message Date
Benjamin Vedder 3a530ac3f7 App ADC abs min and max voltage limits 2022-04-01 18:43:03 +02:00
Benjamin Vedder a3401aae94 Added common utils header and made it possible to use more files in custom apps 2022-03-29 14:04:38 +02:00
Kenn Sebesta cf6f32332d [Utils] Update the header includes 2022-03-23 20:25:37 -04:00
Benjamin Vedder d00d1f6b6f Added lisp remote support 2022-03-13 10:15:24 +01:00
Jakub Tomczak 6a9bd07c72 Merge remote-tracking branch 'origin/master' 2022-01-27 10:28:16 +01:00
Jakub Tomczak da4b3e0edd Merge branch 'master' into dev_fw_5_03 2022-01-21 15:07:44 +01:00
CTSchorsch 786cf09889 update hwconf to new hardware version (hw7) 2022-01-20 13:22:39 +01:00
Benjamin Vedder 9c484d01e4 Decreased stack sizes to save ram 2022-01-16 21:57:12 +01:00
Benjamin Vedder 988c68b3a7
Merge pull request #395 from surfdado/speed_tb_bugfix
Balance App: bugfix for speed based variable tiltback config
2022-01-09 20:27:53 +01:00
Jakub Tomczak 2a120615be encoders to encoder refactor 2022-01-09 17:10:40 +01:00
Benjamin Vedder af55c79a2a Renamed foc_f_sw to foc_f_zv 2022-01-06 20:44:00 +01:00
Dado Mista 015dce3845 Balance App: bugfix for speed based variable tiltback config
Avoid division by 0 when variable tiltback is not set

Signed-off-by: Dado Mista <dadomista@gmail.com>
2022-01-06 10:32:35 -08:00
Marcos Chaparro 627c12b1ca bbshd: Ruggedize PAS against vibrations
Also includes an update to set power limits from other threads (like a display) and
prepares support for PAS torque sensors.

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2021-12-28 11:17:53 -03:00
Jakub Tomczak 4743194894 old encoder files deleted 2021-12-20 14:18:51 +01:00
Benjamin Vedder a8f989eb64 er updates 2021-12-08 12:04:19 +01:00
Benjamin Vedder b302c1a614 er update 2021-12-08 10:12:23 +01:00
Benjamin Vedder 4da6b603d4 er updates 2021-12-06 16:55:58 +01:00
Benjamin Vedder a4201139f2 Minor cleanup 2021-11-26 18:06:07 +01:00
Benjamin Vedder 8457331640 Fix vesc remote cruise control under erpm limit 2021-11-13 00:56:01 +01:00
Benjamin Vedder e9cf6eb4e8 Added fast moving average filter approximation, updated ADC app to use it 2021-10-31 13:40:43 +01:00
Kenn Sebesta bec06ac85a [Utils] Change convenience multiplication factors into convenience MACROs 2021-10-13 14:18:05 -04:00
Kenn Sebesta aeb5d74488 [Utils] Use convenience macros for deg/rad conversions 2021-10-13 11:52:04 -04:00
Afzal b1ec844b2f PAS: add constant torque control type
For gearless electric bicycles, riding up the slope and during start,
good torque support from the motor helps the rider ride with less
effort. Pedal assist based on cadence provides higher torque with higher
pedalling speed. In the situations mentioned above, where user naturally
pedals slow, aid from cadence based system is less. On a geared setup,
changing to low gear comes to the rider's help.

Here another control type is provided - Constant Torque, whenever the
rider pedals, motor would provide constant torque. The torque value can
be set using 'PAS max current' setting thus acting as fine PAS assist
level.

This type of control is similar to 'Basic PAS, constant throttle' of
'PAS Control Schemes' [1], with the difference that throttle setting
in that article corresponds to speed, while here torque.

Also riding experience on some of the popular (not high end) e-bicycles
having PAS indicates they might be having this kind of control
internally.

[1] https://ebikes.ca/learn/pedal-assist.html
2021-10-05 13:05:31 +05:30
Mark 2f26f3af37 fixes in traction control for scooters 2021-09-09 01:16:58 +03:00
Mitch Lustig f91872bf40 Merge branch 'dev_fw_5_03' into tiltback_config 2021-08-19 13:27:31 -07:00
Mitch Lustig fafe047730 Tiltback updates 2021-08-18 00:45:51 -07:00
Benjamin Vedder fc6825a1ae Added safe start modes 2021-08-16 17:48:06 +02:00
Dado Mista 848cb3165d Balance: configurable speed/angle for each tiltback type
Signed-off-by: Dado Mista <dadomista@gmail.com>
2021-08-15 16:30:11 -07:00
Dado Mista f46880d037 Balance: configurable speed/angle for each tiltback type
Signed-off-by: Dado Mista <dadomista@gmail.com>
2021-07-29 17:16:32 -07:00
Dado Mista 02caad398a Biquad filters: add config/reset functions
Also, swap bq_process arguments mimicking C++

Signed-off-by: Dado Mista <dadomista@gmail.com>
2021-07-06 11:25:23 -07:00
Davorin Mista ec4eb577be fixup! Balance App: introduce new speed based variable tiltback 2021-06-30 16:17:57 -07:00
Davorin Mista 9f086cfe6f fixup! Balance App: introduce new speed based variable tiltback 2021-06-30 12:50:43 -07:00
Dado Mista 813d5b15fa Balance App: introduce new speed based variable tiltback
Nose angle adjustment, similar in purpose as constant tiltback
but it is proportional to erpm aka speed.

Signed-off-by: Dado Mista <dadomista@gmail.com>
2021-06-25 21:42:37 -07:00
Benjamin Vedder 029bd88981 Make CAN-enum 32 bits 2021-06-19 19:40:07 +02:00
Benjamin Vedder 32af87b08a Added aux out modes 2021-06-19 17:50:44 +02:00
Benjamin Vedder 186e1ce40a Disable vesc remote control by default and enable it after pairing 2021-06-15 12:58:10 +02:00
Mitch Lustig d561c2669b Add balance loop time correction 2021-06-06 14:01:42 -07:00
Mitch Lustig e2fd6f4b67 Simplify balance app startup sleeps 2021-06-05 17:50:50 -07:00
Mitch Lustig 3e08ca00f2 Add support for debugging to the experiments tab 2021-06-05 17:14:23 -07:00
Mitch Lustig de9400e461 Add brake timeout 2021-06-05 16:05:19 -07:00
Mitch Lustig d68fc0ff4f Balance: Updates
-Fix D term to use angle rather than error (which includes tilt steps)
-Switch TT to Biquad (Clear z1 z2)
-Split TT Relax speed
-Add Biquad to D term
-Add console command to graph specific variables
-Add console command to dump realtime data from specific variables
2021-06-01 03:20:00 -07:00
Benjamin Vedder 007eb9bb92 Updated er qml 2021-05-29 14:35:54 +02:00
Benjamin Vedder 25be00df54 Updated er and finn apps 2021-05-29 14:09:26 +02:00
Benjamin Vedder 6dd35cbbc3 Updated er-app 2021-05-26 22:09:50 +02:00
Mitch Lustig 1711ff953a Balance app cleanup
Increase motor timeout to account for sleep inaccuracy and whatever else.

Set motor timeout to a variable, to reduce calculation repetition.

Only calculate motor timeout after config is set, so we never divide by 0.

Reorder functions so exposed functions are at the start.

Make app's internal functions static.
2021-05-23 14:58:47 -07:00
Benjamin Vedder e74eb17429 Simplified QML 2021-05-23 20:19:08 +02:00
Benjamin Vedder 3e7bd17d7d er updates 2021-05-23 15:42:30 +02:00
Benjamin Vedder eca6a233d5 er updates 2021-05-23 14:46:49 +02:00
Benjamin Vedder 19d2a4078c Added qmlui to conf 2021-05-22 21:40:19 +02:00
Benjamin Vedder 6d945cb4ab Added er qml config 2021-05-22 21:01:33 +02:00
Benjamin Vedder 1c83713540 Updated er app 2021-05-21 00:00:28 +02:00
Mitch Lustig b237cf4b9f Add High Pass FIlter, implement current off delay, refactor constanttilt 2021-05-16 14:53:03 -07:00
Benjamin Vedder 77af43935a Removed outdated LED-support 2021-05-11 09:57:27 +02:00
Benjamin Vedder 24b8a6f100 Change default DRV OC mode for HD60 and HD75 2021-05-07 09:49:01 +02:00
Benjamin Vedder f25144cc30 Removed iterative observer, added p_pid_gain_dec_angle 2021-04-26 23:14:05 +02:00
Benjamin Vedder 36d32ed96d
Merge pull request #291 from Mitchlol/balance_4.2
Balance 4.2
2021-04-20 15:53:12 +02:00
Marcos Chaparro d8d2088137 app adc: allow hardwares to override the brake input
With this hook the brake can be overriden from the hw_*.c file without
polluting the app configuration UI.

Some examples of commanded braking:
* Tilt/crash sensor
* Gear shift sensor
* Emergency stop
* Kill switch

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2021-04-19 11:33:57 -03:00
Mitch Lustig c9ed013f13 Fix low speed Full switch faults, Fix Booster, Improve turn/torque tilts 2021-04-17 18:05:24 -07:00
Benjamin Vedder 89d854f4c4 Added Finns app 2021-04-12 19:46:37 +02:00
Benjamin Vedder 998bc17ba7 Cleanup 2021-04-12 09:48:29 +02:00
Benjamin Vedder ca8e7b4f05
Merge pull request #271 from CTSchorsch/dev_05_03
- Add driver for SX1278 LoRa boards, eg. HopeRF RFM95W (driver by Woj…
2021-04-12 09:35:38 +02:00
Benjamin Vedder 1f1e1e99fb
Merge pull request #276 from Mitchlol/balance_4.1
Balance 4.1
2021-04-08 18:07:54 +02:00
Mitch Lustig 273f067db3 Code Cleanup 2021-04-07 22:42:21 -07:00
Mitch Lustig af941b3182 Little cleanup 2021-04-07 00:30:37 -07:00
Benjamin Vedder a9c2a4fcc9 Added ER application 2021-04-06 14:12:57 +02:00
Mitch Lustig 08f27f433c Add turn tilt 2021-04-06 02:18:32 -07:00
Mitch Lustig 175ed9e21c Merge branch 'dev_fw_5_03' into brc_mod_1 2021-04-01 20:57:44 -07:00
mattbutlar fae1466601 Add comment on value mapping 2021-04-01 14:35:57 -07:00
mattbutlar bb7b049d86 Remove loop timing test 2021-04-01 09:53:03 -07:00
CTSchorsch 4f048442d0 cleanup spaces 2021-03-31 19:46:31 +02:00
Benjamin Vedder fcb7e12158 Made servo output a config option 2021-03-31 16:28:46 +02:00
CTSchorsch 755ff98ec9 fix spaces, delete lines and default config 2021-03-31 14:10:27 +02:00
Benjamin Vedder 69d3a1ba33 Only change UART pin mode when needed 2021-03-31 09:54:59 +02:00
mattbutlar b61049b18e Change roll comp math to avoid external deps 2021-03-30 23:20:35 -07:00
mattbutlar 4f74c179a2 Simplify roll comp math 2021-03-29 14:42:30 -07:00
Mitch Lustig 9f41e4407f Fix compiler warning 2021-03-28 14:41:05 -07:00
Mitch Lustig decdc7e7d6 Add torquetilt 2021-03-27 20:13:22 -07:00
Mitch Lustig 3b9fe6ec67 Add Booster 2021-03-27 14:00:55 -07:00
CTSchorsch 331494291d - move lora files from hwconf/ to lora/
- modify Makefile and add lora/lora.mk
- hopefully have all idents fixed
- restore commands.c and add new function again
- fix memory leak bug in gesc.c
- rfm95w.c add delay in while loop
- add gesc to build_all / rebuild all works
2021-03-27 21:13:24 +01:00
Mitch Lustig 49e624ba3b Remove boring features 2021-03-27 12:17:10 -07:00
CTSchorsch cdb8e82c32 - Add driver for SX1278 LoRa boards, eg. HopeRF RFM95W (driver by Wojciech Domski, https://github.com/wdomski/SX1278)
- Add a simple bool isInitialized() to commands.c, to check if commands are initialzied
- Add hwconf for GESC, hobby open source ESC (https://github.com/CTSchorsch/gesc) including a simple double pulse test function
- Add app_dpv.c to read out a simple I2C magnetic field sensor and two hall sensors to control a underwater scooter
2021-03-27 14:15:22 +01:00
Benjamin Vedder 2133d21fbc Avoid numerical instability when utils_map is used over a range that approaches 0 2021-03-27 11:18:47 +01:00
mattbutlar 583e62933d Add roll compensation to the balance app 2021-03-14 22:57:47 -07:00
Benjamin Vedder 703f1ed9a3 Fixed RPM limit bug for curret hyst rev mode 2021-03-13 11:33:29 +01:00
Benjamin Vedder 9a0973cba1 Style fix 2021-01-15 14:01:16 +01:00
Benjamin Vedder ecb43e70bb Cleanup 2021-01-13 21:51:55 +01:00
Jeffrey M. Friesen 57a13ec2da cleanup merge 2021-01-13 09:05:16 -08:00
Jeffrey M. Friesen 6a3dfb8526 Patched bug with gpio AF in uart 2021-01-05 12:30:41 -08:00
Jeffrey M. Friesen e862f29298 Re-wrote uart driver a bit 2021-01-05 09:39:45 -08:00
Marcos Chaparro 33b5d5c1ba Pedal assist support (PAS)
This commit enables cadence-based pedal assist for ebikes using
quadrature-style pedal speed sensors.

There are 2 operation modes:
* PAS only: Motor current is based only on pedal feedback
* ADC + PAS: The code will use both ADC and pedal feedback and use
the strongest command to provide seamless overlap when the user is
pedalling and requests extra torque with the throttle.

Signed-off-by: Marcos Chaparro <mchaparro@powerdesigns.ca>
2020-12-07 17:06:36 -03:00
Till Rosenband 82e5bcd845 Verify FLASH integrity of MC and APP config with CRC.
* Currently the FW code has CRC checks, but configs are also important!
* This helps maintain FLASH integrity when the config pages are occasionally
  re-written due to odometer updates (later commit).
* If the config CRC checks fail, store the fault and fall back to default config.
* New 'crc' terminal command displays CRC values.
2020-10-04 00:31:31 -04:00
Mitch Lustig 52f8f2cf35 Merge remote-tracking branch 'vedderb/dev_fw_5_02' into balance_3 2020-07-09 01:06:02 -07:00
Mitch Lustig 27e1d11f4a Lil fixes 2020-07-04 03:35:19 -07:00
Mitch Lustig 0f5c6f5379 Add confgen and running states 2020-07-04 00:11:20 -07:00
Mitch Lustig 7db04df582 Add all the variables 2020-07-03 20:33:15 -07:00
Peemouse ca05c36c7f App PPM rework - fix previous commit
CHANGED : Master keeps the slave(s) running even if a local fault occurs
CHANGED : Master now sends relative value instead (%) instead of absolute value (A) (great for multiple VESC with different currents settings)
FIXED : Timeout current brake feature not working
FIXED : brake command sent over CANbus even if Multiple VESC over CAN disabled
FIXED : delay before switching slave off in case of RX timeout
ADDED : Traction control auto-disabling in case of fault on master, re-enable only if no effect on motors will happen (avoid weird behaviour exiting fault state on master).
2020-07-03 15:16:46 +02:00
Mitch Lustig 8299445c66 Basic feature set complte
Fix some bugs
Add D-Term PT1 Filter
Add all the fault delays
Setpoint clamp no longer breaks tiltback
Add configurable constant tiltback erpm
2020-07-02 01:07:54 -07:00
Peemouse 37e9c2143b CHANGED : Master keeps the slave(s) running even if a local fault occurs
CHANGED : Master now sends relative value instead (%) instead of absolute value (A) (great for multiple VESC with different currents settings)
FIXED : Timeout current brake feature not working
FIXED : brake command sent over CANbus even if Multiple VESC over CAN disabled
FIXED : delay before switching slave off in case of RX timeout
ADDED : Traction control auto-disabling in case of fault on master, re-enable only if no effect on motors will happen (avoid weird behaviour exiting fault state on master).
2020-07-01 14:39:31 +02:00
Mitch Lustig b61a0ea7be Add additional timer for switch half state 2020-06-19 01:28:52 -07:00
Mitch Lustig da7b3a0ffb Mix of stuff (Not a working state)
Organize vars
Hack in dterm PT1
Improve faults
Remove dead state
2020-06-19 01:00:37 -07:00