Commit Graph

342 Commits

Author SHA1 Message Date
Matthew Kennedy cca175c6ea Etb function cfg, try again (#1860)
* two throttles one thread

* look at all this RAM!

* add enum

* switch from index to function

* test fixup

* improve init logic

* remove old vw idle mode bit

* add config

* better spot for it

* use config init values

* handle null controller array

* fatal error testability

* test new init config

* defaults

* fix for default config
2020-10-08 14:12:03 -04:00
rusefillc aee984d0c2 HW CI has failed 11 times since Oct 2 #1849
Revert "ETB function config (#1831)"

This reverts commit fd7dae8a
2020-10-03 22:00:00 -04:00
Matthew Kennedy fd7dae8ab8 ETB function config (#1831)
* two throttles one thread

* look at all this RAM!

* add enum

* switch from index to function

* test fixup

* improve init logic

* remove old vw idle mode bit

* add config

* better spot for it

* use config init values

* handle null controller array

* fatal error testability

* test new init config

* defaults

* fix for default config
2020-10-02 20:51:02 -04:00
Matthew Kennedy b79c0fefe5 replace ETB index with function enum (#1807)
* two throttles one thread

* look at all this RAM!

* add enum

* switch from index to function

* test fixup

* improve init logic

* remove old vw idle mode bit
2020-09-28 16:33:07 -04:00
Matthew Kennedy 85304392dd two throttles one thread (#1806)
* two throttles one thread

* look at all this RAM!
2020-09-18 13:47:49 -04:00
Matthew Kennedy 8079e5f292 scale tables using type system (#1776)
* store scale in the type

* efi ratio

* boost control scaling

* fix boost tests
2020-09-10 18:44:10 -04:00
Matthew Kennedy a2e53e8d35 guard (#1726)
* implement

* add bench mode

* add ts cal mode

* TS impl

* include guard

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-08-23 23:46:33 -04:00
Matthew Kennedy cc25333fae Auto cal dual etb (#1725)
* implement

* add bench mode

* add ts cal mode

* TS impl

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-08-23 23:41:35 -04:00
Matthew Kennedy 275def10fe parameter names 2020-07-29 02:22:31 -07:00
rusefi 2218be0d72 Weird VAG: DC motor idle valve not ETB #1637
etbTarget gauge in DC idle mode
2020-07-26 15:07:45 -04:00
rusefi 0302be40ed Weird VAG: DC motor idle valve not ETB #1637 2020-07-26 10:54:51 -04:00
Matthew Kennedy e1c23e0e99 make reality match the test 2020-07-26 03:15:17 -07:00
Matthew Kennedy ab64d78eec clamp idle in VW mode 2020-07-26 03:05:59 -07:00
Matthew Kennedy 79b82da94d implement 2020-07-26 02:55:35 -07:00
rusefi 2c83db49fb restoring ldmp 2020-06-17 19:03:10 -04:00
Matthew Kennedy c46a6e5c0e only setup etb if primary sensor configured instead of proxy (#1489)
* only setup etb if primary sensor configured instead of proxy

* fix test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-06-16 21:38:09 -04:00
rusefi ad0c6355bb docs 2020-06-01 08:50:54 -04:00
Matthew Kennedy 441fe43dab warnings (#1462)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-21 01:08:07 -04:00
Matthew Kennedy ce2beafb5f Redundant tps (#1427)
* add redundant sensor

* add tests

* add configure, info printing

* tests

* tests

* partial hookup

* fix

* fix

* bad makefile merge

* use second TPS config

* update test

* update test

* sensor names

* set second pin by default

* fix auto cal

* auto cal both sensors

* add reconfigure of secondary sensors

* gobblin' up your ram

* slow down write a little bit

* put split in debug gauge

* s

Co-authored-by: Matthew Kennedy <matthew@mck-mbp-15.local>
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-18 14:32:00 -04:00
dron0gus 7007627b70 [SAFE] Debug cleanups (#1403)
* electronic throttle: inprove debug

* idle thread: show debug info for configured idle driver

* gpio-chips: make private functions static
2020-05-06 20:06:50 -04:00
Matthew Kennedy 950ff9cb80 ETB auto-PID: auto set values in TS (#1400)
* switch to thread

* actually use default frequency define

* crank ADC too

* make space in RAM

* remove TS field

* this should work for test

* auto cal

* wire up bench testing

* auto gains too

* s

* fix

* rearrange a bit

* inject

* remove unused bit

* mock repair

* move

* add maintainconstantvalue

* add disable button

* cleaning

* move state inside

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-06 08:39:02 -04:00
Matthew Kennedy 5ac535c5e5 Support 4 h-bridges (#1392)
* update dc motor api

* add more etbio

* get out of two arrays

* hand generate enough

* forgot engine param

* ram

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-02 17:54:28 -04:00
rusefi 93ee6c36e3 https://github.com/rusefi/rusefi_documentation/issues/37 2020-04-29 18:41:40 -04:00
Matthew Kennedy fefafd61b8 TPS Auto Calibration with ETB (#1382)
* switch to thread

* actually use default frequency define

* crank ADC too

* make space in RAM

* remove TS field

* this should work for test

* auto cal

* wire up bench testing

* s

* fix

* rearrange a bit

* inject

* remove unused bit

* mock repair

* guard for ECUs without ETB
2020-04-28 19:31:41 -04:00
Matthew Kennedy dee2568fd5 Minor ETB improvements (#1381)
* fix pid reset and pedal failure

* pause control later

* test pauseEtbControl

* update tooltip + field name

* update test
2020-04-28 16:52:40 -04:00
rusefi 4460d92a30 useful content from Move ETB control to a thread #1374 2020-04-28 08:05:18 -04:00
Matthew Kennedy 7e067eb0b5 Move ETB control to a thread (#1374)
* switch to thread

* actually use default frequency define

* crank ADC too

* make space in RAM

* remove TS field

* this should work for test

* fix dt

* re-resize ram
2020-04-28 07:22:31 -04:00
Matthew Kennedy 2fbedc000f ETB autotune in its own function (#1350)
* pull out autotune

* oops
2020-04-22 22:22:28 -04:00
Matthew Kennedy b1741bdd6e Improve ETB idle control (#1319)
* compress idle pos

* fix tests for new behavior
2020-04-20 17:29:03 -04:00
Matthew Kennedy ce08650f65 Inject idle to ETB (#1335)
* inject idle position

* pointer

* etb idle tests

* extract mocks

* ops

* test negative case too

* don't convert for etb

* guard
2020-04-20 16:26:35 -04:00
Matthew Kennedy 3418356b6b ETB: inject pedal map (#1334)
* add clampf

* more tests

* public

* missed a mock

* fix output duty clamping

* do it that way

* more

* ah ha!

* test negative too

* clamp pedal

* inject pedal map

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-20 14:34:45 -04:00
Matthew Kennedy d17afd3a63 ETB testing: output, position clamping (#1333)
* add clampf

* more tests

* public

* missed a mock

* fix output duty clamping

* do it that way

* more

* ah ha!

* test negative too

* clamp pedal

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-20 13:52:20 -04:00
Matthew Kennedy 830f03c003 Closed loop controller base & ETB testing (#1322)
* closed loop controller base

* etb tps test

* closed loop controller tests

* test support

* update gtest

* fix for change

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-19 17:18:47 -04:00
Matthew Kennedy d666743ab5 filter ETB autotune results (#1281)
* Astrom-Hagglund

* enums

* comments

* dead

* fix

* changed enum

* ts guard

* safety

* etb autotune debug channels

* filter results

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-11 22:28:50 -04:00
Matthew Kennedy 9bbb7bc497 etb autotune (#1274)
* Astrom-Hagglund

* enums

* comments

* dead

* fix

* changed enum

* ts guard

* safety

* etb autotune debug channels

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-11 22:15:49 -04:00
Matthew Kennedy 1a59950240 support ETB disable pin (#1273)
* config & hand gen

* board configs

* add dc motor support

* initialization

* also set duty to zero

* use disable in etb

* fix proteus default

* add TS fields

* I guess we needed 8 bytes

* :D

* comment

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-10 17:27:13 -04:00
Matthew Kennedy b934cb666b simplify (#1275) 2020-04-10 08:12:16 -04:00
Matthew Kennedy 44bb09d1a4 yet more tps consumers (#1258)
* advance_map

* tests

* unneeded

* idle

* use driver intent instead

* and obd and lcd

* engine load

* ve lookup

* unused

* oops we needed that

* oops needed that too

* mocking

* test mocks

* oops

* helps to use the right sensor

* and cylinder cleanup

* fuel math

* typo

* old tests

* kill dead stuff

* cleanup

* more

* fix

* test

* s

* fix signature

* fix test

* comment

* priming pulse

* remove mock tps

* remove more dead

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-05 09:11:25 -04:00
Matthew Kennedy cd3dc7f91b fix (#1251) 2020-04-03 07:48:12 -04:00
Matthew Kennedy d16ff88e30 run ETB on new TPS (#1248)
* run ETB on new TPS

* why did we include all those...?

* init tps for etb test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-02 21:33:49 -04:00
Matthew Kennedy 7e4f4ca97e Replace hasPedalPositionSensor (#1245)
* remove

* add Sensor::hasSensor

* consume in etb

* remove unused state

* don't use it there either

* format

* fix up tests

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-02 08:04:12 -04:00
rusefi 48baff1789 partial revert 2020-04-02 00:37:02 -04:00
rusefi be5b4fb3c6 less ETB in case of critical 2020-04-02 00:32:03 -04:00
Matthew Kennedy 8235d8d765 Fully switch acc pedal to new sensors (#1212)
* proxy sensor

* header

* idle

* can

* settings

* remove old mocking

* remove old impl

* etb

* oops, gotta actually register it

* fix test

* structured bindings ftw!

* driver intent for stepper

* tear out old

* oops too much
2020-04-01 20:21:03 -04:00
rusefi c6ac5ed888 progress 2020-03-28 20:56:58 -04:00
Matthew Kennedy 6d8eedf9ca Split out EtbHardware (#1168)
* start tear out motor

* fix

* nuke reconfig

* guard for test

* test fixing

* format, condense headers

* fix todos

* undo todo

* format
2020-03-03 17:56:50 -05:00
rusefi 923daaa3a1 ETB: expand automated testing #115 2020-02-22 23:18:02 -05:00
rusefi a222ecdfe1 happy new year unification 2020-01-13 21:57:43 -05:00
rusefi 20a6cf130f better method name 2020-01-10 02:02:22 -05:00
rusefi afa5de2655 ETB documentation improvement? 2019-12-30 10:25:52 -05:00
rusefi 7577d81689 typo 2019-12-14 18:33:08 -05:00
rusefi 27f617686b progress towards ETB controller mocking 2019-12-13 13:52:34 -05:00
rusefi 2c296c0f18 etbActualCount logic to handle the scenario where only one ETB is present 2019-12-13 12:50:34 -05:00
rusefi f47a1a16d1 getting rid of boardConfiguration / binary compatible change 2019-12-11 17:48:55 -05:00
Matthew Kennedy 87ec74119d ETB Encapsulation & C++ Conventions (#1049)
* encapsulate etb stuff, c++ conventions

* remove DECLARE_ENGINE_PTR/INJECT_ENGINE_REFERENCE

* reduce include dependencies

* Revert "reduce include dependencies"

This reverts commit c529bbbf757cd9070f6e00616f84b1229eeb768e.

* Revert "remove DECLARE_ENGINE_PTR/INJECT_ENGINE_REFERENCE"

This reverts commit ca98b18cd4dae24b993d1263a18daf509dcd54b9.
2019-12-10 19:37:04 -05:00
rusefi 07b7b62bca refactoring 2019-12-02 23:08:18 -05:00
rusefi ed9bae63af dual throttle re-init bugfix thank you andreika! 2019-12-01 09:39:34 -05:00
rusefi 34f53bd102 making things nicer with dual ETB settings 2019-11-30 17:38:33 -05:00
rusefi fd5c45ba46 all ETBs to run in same HW mode 2019-11-30 01:00:54 -05:00
rusefi 75b1a9e52c all ETBs to run in same HW mode
taking a step back and going to bed :(
2019-11-30 00:39:00 -05:00
rusefi 02f4e847f4 all ETBs to run in same HW mode 2019-11-30 00:25:33 -05:00
rusefi 349eac34de better state validation, better error codes 2019-11-29 23:41:26 -05:00
rusefi 4d6052c9f3 dual ETB seems to work! 2019-11-29 20:15:29 -05:00
rusEfi 13d4ae2169 dual ETB seems to work! 2019-11-29 19:06:50 -05:00
rusefi 73b3150d0f all ETBs to run in same HW mode 2019-11-29 19:02:12 -05:00
rusEfi 980a3d7086 all ETBs to run in same HW mode 2019-11-29 16:51:51 -05:00
rusefi 002a08316c steps towards dual ETB 2019-11-28 15:24:30 -05:00
rusefi 265727b7db steps towards dual ETB 2019-11-27 22:07:36 -05:00
Matthew Kennedy 0a7535fb1f Use templated array references (#1027)
* update defs

* consumers, use default params

* setArrayValues in tests

* floats

* test fixing
2019-11-22 23:27:24 -05:00
rusEfi c141d42a87 v12 and minor ETB 2019-11-22 23:27:03 -05:00
Matthew Kennedy 783ed572a9 inject interfaces to ETB, renaming (#1026)
* inject interfaces, renaming

* format

* null check

* that was a dumb typo

* fix indent
2019-11-22 20:53:54 -05:00
Matthew Kennedy 10a6f652d3 DC motor improvements (#1025)
* extract interface, comments, conform names

* fwd declare
2019-11-22 16:30:44 -05:00
rusefi 96443d079d following the pattern 2019-11-21 13:35:57 -05:00
rusEfi 7e78f077bc steps towards dual ETB 2019-11-21 00:49:38 -05:00
rusefi fb66dd1e7d making more code testable 2019-11-20 08:46:54 -05:00
rusefi 76a4e37c66 making more code testable 2019-11-20 02:18:17 -05:00
rusEfi 71511441c9 ETB docs 2019-11-18 22:25:07 -05:00
rusefi 30cfb96619 evil manual merge of https://github.com/DonaldBecker/rusefi 2019-11-05 20:07:55 -05:00
rusefi eff84bcfeb steps towards #975 2019-10-18 18:54:32 -04:00
Matthew Kennedy 821ca6156f move tsOutputChannels to header (#970) 2019-10-08 21:02:51 -04:00
rusefi 5a59f1b232 fixing build 2019-09-29 14:22:51 -04:00
rusEfi 313e1da631 etbCalibrationOnStart 2019-09-29 14:00:04 -04:00
rusefi e6cc663e96 docs 2019-09-28 09:59:40 -04:00
rusEfi d73d668a9e new command 'etb_freq X' 2019-09-27 23:37:40 -04:00
rusEfi 80d222fc55 it's a cruel world 2019-09-27 23:01:47 -04:00
rusefi 3b44a70501 fixing build 2019-09-25 08:46:26 -04:00
rusefi 0d35b1ebba reducing hell in unit tests 2019-09-25 08:40:33 -04:00
rusefi cb02926c89 ETB is sticky around zero and does not want to close all the way #943
fixing build
2019-09-23 00:41:35 -04:00
rusEfi 97e0270b1c ETB is sticky around zero and does not want to close all the way #943 2019-09-22 23:28:11 -04:00
rusefi 42f085a4a0 ETB target is using integer values #945
now we have a unit test! now we can fix the issue :)
2019-09-22 17:58:27 -04:00
rusefi 3a30e9194c ETB target is using integer values #945
refactoring
2019-09-22 08:51:02 -04:00
rusefi 7710df4fed ETB target is using integer values #945
refactoring
2019-09-22 08:44:51 -04:00
rusEfi b46c5b4960 ETB target is using integer values #945
first we will write a unit test
2019-09-22 07:58:03 -04:00
rusEfi 0fd1f27e1b ETB target is using integer values #945
first we will write a unit test
2019-09-22 00:36:13 -04:00
rusEfi 53ae54e8cc ETB target is using integer values #945
first we will write a unit test
2019-09-22 00:16:46 -04:00
rusefi c44f76f2ed "set_etb" is now "set_etb_duty" 2019-09-21 22:15:34 -04:00
rusefi fdea935fc0 ETB idle bugfix: do not use once turned off 2019-09-21 01:22:21 -04:00
rusefi 757f8eb690 NB2 miata on Frankenso with ETB 2019-09-21 01:21:53 -04:00
rusefi 282cc41980 ETB pinEnableMode 2019-09-20 22:16:54 -04:00
rusefi 02fb27440e ETB to SD logs 2019-09-20 20:41:45 -04:00
rusefi ecd0fe6ab6 docs 2019-09-07 22:16:56 -04:00
rusEfi d5dfc3e658 NB2 progress, ETB Live Docs progress 2019-09-01 19:37:58 -04:00
rusEfi 8f10e85d03 mock PPS voltage command in addition to mock PPS position
ETB pane progress
2019-09-01 17:35:43 -04:00
rusefi 6318f2ac38 Live Data: more Idle & ETB data points! 2019-09-01 15:46:40 -04:00
rusefi 2a8998f548 Live Data progress: using field's context 2019-09-01 15:01:57 -04:00
rusefi 8be592f3d4 Live Data progress 2019-09-01 13:56:46 -04:00
rusefi 9bbfc6de36 typo 2019-09-01 11:39:09 -04:00
rusEfi 3970881a09 ETB progress 2019-08-31 20:17:17 -04:00
rusEfi d696412312 reducing dead code 2019-08-31 17:59:18 -04:00
rusefi f533617b29 LiveData progress: isChanking & hasEtbPedalPositionSensor 2019-08-31 17:07:21 -04:00
rusefi fe43256c91 ETB live docs 2019-08-15 21:01:04 -04:00
rusefi ffdd37021f setDefaultBoardConfiguration shouldn't have Frankenso pinout #852 2019-07-24 21:15:18 -04:00
rusefi 4633f032ed refactoring - type/macro name/docs 2019-07-12 07:48:28 -04:00
rusefi f8bc3baa91 refactoring: wider usage of new periodic task 2019-07-09 16:08:49 -04:00
Matthew Kennedy 0b52f5b542 Template-ize bin/value length for interpolation (#878)
* update consumers

* tests

* whitespace

* format
2019-07-09 21:16:36 +03:00
rusefi 9d004635e4 More than one aux pid #866
renaming this class since we will probably have two different implementations for two different cases
2019-07-08 03:35:41 -04:00
rusefi 1e80772904 Refactoring: OS access should be explicit #867 2019-07-05 19:00:44 -04:00
Matthew Kennedy 5054da67b7 Add ETB status gauges, fix gauge menus (#863)
* testing

* fix offsets

* consolidate ts config

* cleanup

* typo

* unwind some

* fix etb idle range setting

* unwind
2019-06-26 19:24:32 -04:00
rusefi a86a2b0b53 ETB: TPS should be f(RPM, pedal) - target table fix #835
oooooops
2019-06-16 09:08:01 -04:00
rusefi f859079022 ETB: TPS should be f(RPM, pedal) - target table fix #835 2019-06-15 14:33:41 -04:00
rusefi 8ea5d687aa idle using ETB #783 2019-06-15 13:33:14 -04:00
rusefi e4231b0819 refactoring: extracting constant 2019-06-11 21:44:16 -04:00
rusefi 48796a6763 ETB: TPS should be f(RPM, pedal) #835 2019-06-10 23:57:35 -04:00
rusefi 2639214285 ETB: TPS should be f(RPM, pedal) #835 2019-06-10 23:38:44 -04:00
rusefi 77b9685deb docs 2019-05-05 18:09:52 -04:00
rusefi 8c7d758b34 8888 usability 2019-05-05 12:48:04 -04:00
Matthew Kennedy ff5cdc05b6 rename enum (#791) 2019-05-05 00:53:24 -04:00
Matthew Kennedy bdae379c1b fix etb (#789) 2019-05-05 00:42:50 -04:00
rusefi f9802b8542 ETB pause feature - useful while playing on the bench 2019-04-26 13:46:58 -04:00
rusefi ea86d987c8 PID - fix dTime usages #776 2019-04-25 21:31:33 -04:00
rusefi 0a3a75ae79 PID - fix dTime usages #776 2019-04-25 18:49:16 -04:00
rusefi 0b0ef9e094 ETB progress 2019-04-24 23:46:49 -04:00
rusefi ea9624b472 docs 2019-04-24 20:47:38 -04:00
rusefi dacf305011 docs 2019-04-24 17:00:05 -04:00
rusefi f100a701a1 ETB progress 2019-04-23 23:18:48 -04:00
rusefi 14bee909bc docs 2019-04-21 12:24:31 -04:00
rusefi c018341591 ETB using tle7209 fix #746 2019-04-13 01:03:12 -04:00
rusefi 884c54a185 defined(__DOXYGEN__) ? #748 2019-04-12 22:07:03 -04:00
rusefi 54f83a431e smarter PWM API - need to pass arbitrary pointer 2019-04-12 20:11:27 -04:00
rusefi 757832c91b The Big Refactoring of 2019: folder structure #723 2019-04-09 22:52:03 -04:00
dron0gus 69df5d4b50 gpios rework (#739)
* Some more include fixes for linux

* Pass cross-compile path through CROSS_COMPILE

* Lower-upper case conversion fixes for linux

* Rename unmarkPin to brain_pin_markUnused

This is part of external gpiochip integration

* Add gpio_pin prefix to markUsed and markUnused

To distinguish from similar functions using brain_pin

* pin_repository: add helpers

this is part of gpio chips integration

* efi_gpio: simplify getHwPin using brain_pin_is_onchip
2019-04-10 01:31:10 +02:00
rusefi c993e1f429 The Big Refactoring of 2019: folder structure #723 2019-04-05 01:02:34 -04:00