Commit Graph

678 Commits

Author SHA1 Message Date
rusefillc 26997ab9e3 why so many channels are hidden in debug ? #3614 2021-11-29 01:02:40 -05:00
GitHub build-firmware Action 2e97642dae Auto-generated configs and docs 2021-11-28 05:54:31 +00:00
Matthew Kennedy b8660db35e
make fan control live-data-friendly (#3626)
* make fan live-data-friendly

* script

* generated for happy simulator
2021-11-28 00:40:12 -05:00
Matthew Kennedy 71aff73081
not industrial (#3627) 2021-11-27 19:27:57 -05:00
rusefillc 6ff42cc031 automation around outputs section #197 2021-11-26 20:46:42 -05:00
Matthew Kennedy 0badb6b2ff
AC is EngineModule (#3604)
* AC is engine module

* missed a spot with main relay while we're at it

* TS
2021-11-25 07:59:31 -05:00
rusefi 8ed3020c07 live data for wastegate #3588 2021-11-24 15:07:48 -05:00
GitHub build-firmware Action c46cf51dc5 Auto-generated configs and docs 2021-11-24 19:10:22 +00:00
rusefillc 284fea286b live data for wastegate #3588 2021-11-24 13:20:47 -05:00
rusefillc 3ac46c98f2 live data for wastegate #3588 2021-11-24 13:18:07 -05:00
rusefillc 3077f795c4 live data for wastegate #3588 2021-11-24 12:59:57 -05:00
GitHub build-firmware Action bfdbf70c07 Auto-generated configs and docs 2021-11-24 13:02:01 +00:00
Matthew Kennedy 81fffe87b7
main relay doesn't use fsio (#3580)
* fuel pump

* s

* call correct callback

* more dead

* test adjustment

* don't overflow

* don't need separate function

* java

* give it a name

* generated

* generated

* add to generate script

* import *

* this is so cheap we don't need a flag

* main relay

* plumbing

* dead fsio stuff

* test it

* by 100%, we mean 99.98%
2021-11-24 07:47:51 -05:00
GitHub build-firmware Action 7287d41467 Auto-generated configs and docs 2021-11-23 21:00:29 +00:00
rusefillc c75291f415 live data for wastegate #3588
i want to persist state so no 'const' sorry
2021-11-23 15:52:43 -05:00
rusefillc ca1e420073 live data for wastegate #3588 2021-11-23 15:51:30 -05:00
GitHub build-firmware Action a4557c969f Auto-generated configs and docs 2021-11-23 20:06:24 +00:00
rusefillc d21541934d live data for wastegate #3588 2021-11-23 15:02:03 -05:00
rusefillc ead3853f9a live data for wastegate #3588 2021-11-23 15:00:47 -05:00
GitHub build-firmware Action f8f52c4c1f Auto-generated configs and docs 2021-11-20 03:34:23 +00:00
Matthew Kennedy d40ca0f581
fuel pump doesn't use fsio (#3576)
* fuel pump

* s

* call correct callback

* more dead

* test adjustment

* don't overflow

* don't need separate function

* java

* give it a name

* generated

* generated

* add to generate script

* import *

* this is so cheap we don't need a flag
2021-11-19 22:23:12 -05:00
Scott Smith 98040ad9af
Make the module API more concise. (#3571)
engineModules.get<FOO>(). becomes modules<FOO>()->

I believe the new API is more conducive to supporting arrays, by doing std::array<T, N> or
std::array<Mockable<T>, N>, with the support of a helper class.
2021-11-17 21:50:00 -05:00
Scott Smith 69d36dad6e
Final cleanup of ENGINE macros (#3567)
Fix some uses of ENGINE() not detected by regex due to parenthesis.
Remove now empty engine_ptr.h
Don't worry about EFI_* not being defined, the compiler defaults to 0 if they aren't.
2021-11-17 13:45:10 -05:00
Scott Smith 988aacdd91
Create a base class EngineModule for that contains various useful callbacks. (#3548)
* Create a base class EngineModule for that contains various useful callbacks.

This cleans up the API by not requiring the notifiers to know about who wants callbacks.  The only
place you need to update to add a module is in one place.

* Add mockability.

* Convert InjectorModel to a Mockable EngineModule
2021-11-17 20:13:19 +03:00
Scott Smith 823d9a07e0
Programmatically replace ENGINE() and CONFIG() with engine-> etc (#3565)
git grep -l -w ENGINE | xargs sed -i -r "s/ENGINE\(([]a-zA-Z_0-9.[]+)\)/engine->\1/g"

git grep -l -w CONFIG | xargs sed -i -r "s/([^a-zA-Z_])CONFIG\(([]a-zA-Z_0-9.[]+)\)/\1engineConfiguration->\2/g"
2021-11-17 03:54:21 -05:00
Scott Smith cc95bd6c8e
Programmatically remove EnginePtr/inject, EXPAND_Engine, and WITH_ENGINE_TEST_HELPER* (#3560)
* Programmatically remove EnginePtr/inject, EXPAND_Engine, and WITH_ENGINE_TEST_HELPER*

for i in ": public EnginePtr " ", public EnginePtr" "EXPAND_Engine;" "EXPAND_Engine"; do
    git grep -l "$i" | xargs sed -i "s/$i//g"
done

git grep -l "inject" | xargs sed -i "/inject[(][)]/d"

for i in WITH_ENGINE_TEST_HELPER_SENS WITH_ENGINE_TEST_HELPER_BOARD_CALLBACK WITH_ENGINE_TEST_HELPER; do
    git grep -l "$i" | xargs sed -i "s/$i/EngineTestHelper eth/g"
done

git checkout firmware/controllers/core/engine_ptr.h
git checkout unit_tests/global.h

* Review fixups.
2021-11-16 16:52:11 -05:00
Matthew Kennedy 8cdac4cac0
remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
Scott Smith 62daac73c7
Use Valgrind to detect unitialized variable references. (#3555)
* Use Valgrind to detect unitialized variable references.

Fix the edge cases that pop up

* Comment and disable Mac run
2021-11-15 23:42:23 -05:00
Matthew Kennedy cb032fb1ea
(void) -> () (#3550)
* static functions with (void)

* more

* Revert "more"

This reverts commit 246e53441f935451437df186ac92d7df26b62fb6.

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-15 13:02:34 +01:00
Matthew Kennedy 145316c497
less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
Andrey 2c715be4b7 ETB: do not touch HW pins if function not selected, this way Lua can use DC motor hardware pins directly 2021-11-08 12:44:37 -05:00
Matthew Kennedy 3348c0404b
configurable etb maximum (#3469)
* etb maximum

* update tests and test new behavior
2021-11-05 18:16:19 -04:00
Matthew Kennedy 5b35aa8f21
log vvt targets (#3417)
* log vvt target

* java

* make java happy probably

* sensorlogger
2021-11-02 15:03:57 -04:00
GitHub build-firmware Action 8ac4341cfa Auto-generated configs and docs 2021-10-31 01:38:27 +00:00
Andrey 75ab0040a1 looks like value is never assigned 2021-10-30 21:28:55 -04:00
rusefillc 5f4fa50682 VVT is no longer aux pid 2021-10-28 23:51:46 -04:00
Matthew Kennedy 558a6d01fc
etb pwm limit (#3408)
* etb pwm limit

* missed an arg

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-10-25 15:35:23 -04:00
GitHub build-firmware Action 679239c7f8 Auto-generated configs and docs 2021-10-17 04:35:27 +00:00
rusefillc 2431fa79b3 refactoring - extracting idle state 2021-10-17 00:30:26 -04:00
GitHub build-firmware Action 25ff3fe2d7 Auto-generated configs and docs 2021-10-17 03:59:20 +00:00
rusefillc 4533ce4764 refactoring - extracting idle state 2021-10-16 23:55:29 -04:00
rusefillc 5f7ffd32a1 refactoring 2021-10-16 23:40:02 -04:00
GitHub build-firmware Action 981fc58297 Auto-generated configs and docs 2021-10-17 01:13:47 +00:00
rusefillc 4cc1c352c2 better file locations 2021-10-16 20:17:01 -04:00
rusefillc 3162d9cc56 let's see if CI would fail, i.e. let's see if this logic was covered 2021-10-16 19:03:36 -04:00
rusefillc 01d4b7ef7a Whatever we call it, no matter how we do it - we need live data / remote view into rusEFI actual state #3353
progress
2021-10-14 15:18:13 -04:00
rusefillc ea87d9c9be Whatever we call it, no matter how we do it - we need live data / remote view into rusEFI actual state #3353
dead code
2021-10-14 15:17:09 -04:00
rusefillc ff864ec0bf Whatever we call it, how ever we implement it - we need live data / remote view into rusEFI actual state #3353 2021-10-14 00:47:26 -04:00
rusefi 7c378c7c6c VAG ETB calibration is a mess? 2021-10-10 22:23:33 -04:00
rusefi 9b140e57a1 etb_test_hw 2021-10-10 17:10:04 -04:00
rusefi fe69616859 etb_test_hw 2021-10-10 16:29:45 -04:00
Andreika bc4a068c9c
[DRAFT] IAC H-Bridge Microstepping (#3213)
* fix for stepperHbridgeHardware

* new config fields for microstepping

* add stepper dir pin mode to the dialog

* refactor stepper hw dialog & add microstepping panel

* microstepper modes enum

* stepperDcInvertedPins needed by Hellen

* add sleep() for stepper and divisor for pause()

* microstepping impl.

* make unit-tests more happy

* small progress

* fix etb-stepper dlg conflict

Co-authored-by: Andrei <andreikagit@users.noreply.github.com>
2021-10-06 13:57:04 -04:00
Andreika d917cc8cc2
[DRAFT] Fix cranking->idling taper phase for useSeparate*ForIdle tables (#3168)
* Rename Phase::CrankToRunTaper -> CrankToIdleTaper

* Change isIdling() to isIdlingOrTaper()

* test_idle_controller.cpp

* useSeparateIdleTablesForCrankingTaper setting

Co-authored-by: Andrei <andreikagit@users.noreply.github.com>
2021-10-06 12:05:20 -04:00
Matthew Kennedy 9797d25b7c
getOrZero (#3319) 2021-10-05 19:59:07 -04:00
rusefillc 16049a07e8 https://rusefi.com/forum/viewtopic.php?p=42468#p42468 2021-10-04 19:10:31 -04:00
rusefillc 4901a69d17 https://rusefi.com/forum/viewtopic.php?p=42468#p42468 2021-10-04 18:43:37 -04:00
rusefillc 8fabcd15ab wow that was a bad setting name 2021-09-26 18:07:49 -04:00
rusefi 235c932c71 Revert "Hellen Nissan defaults are no longer valid fix #3143"
This reverts commit 6ac7fc39
2021-09-14 15:51:58 -04:00
rusefi 6ac7fc3940 Hellen Nissan defaults are no longer valid fix #3143 2021-09-14 15:46:21 -04:00
Matthew Kennedy 884532cb6f
boost debug fields (#3228) 2021-09-07 14:07:47 -04:00
rusefillc 8c9ff949fe thank you Nik - dealing with false positive CUSTOM_OBD_LOW_FREQUENCY 2021-09-06 08:09:14 -04:00
rusefillc 0bdf334a8a hysteresis for GPPWM #3222 2021-09-06 07:58:17 -04:00
rusefillc 43bdabeb0c hysteresis for GPPWM #3222 2021-09-06 07:21:17 -04:00
rusefillc 36792f55b5 hysteresis for GPPWM #3222 2021-09-05 20:18:14 -04:00
rusefillc 58c2bf8930 hysteresis for GPPWM #3222 2021-09-05 20:16:57 -04:00
Andrey 3ed50dbea7 SD-card log fields improvement (warning counter & last code) #3162 2021-09-05 14:43:35 -04:00
Matthew Kennedy 730b26d034
remove old vss implementation (#3208)
* dead vss

* remove
2021-08-28 01:39:55 -04:00
Matthew Kennedy 6407e74ae2
disable closed loop boost below MAP threshold (#3206)
* boost minimum map

* changelog
2021-08-27 17:54:08 -04:00
rusefillc 48a009fc33 Revert "Revert "memory savings (#3195)""
This reverts commit 0b3ef5f5
2021-08-27 06:18:05 -04:00
rusefillc 0b3ef5f553 Revert "memory savings (#3195)"
This reverts commit 52a24ee7
2021-08-27 02:32:31 -04:00
Matthew Kennedy 52a24ee773
memory savings (#3195)
* d

* dead code

* all your ram are belong to me

* turn off gpiochips we don't need

* save

* save by using the same file handle

* smaller stack ok

* these can be on the stack

* this is closer

* what about ccm?

* probing available

* now probe ccm

* ccm

* put stuff in ccm

* fsio

* memory usage

* memory
2021-08-26 23:05:31 +03:00
Matthew Kennedy 50889671c0
fix ETB PWM (#2870)
* iwpm

* dc motor has configure

* consume

* format

* use fake PWM to save one SimplePwm instance

* comments

* not sure why I changed that

* init the pins otherwise

* typo

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-19 08:33:33 +03:00
Matthew Kennedy 68e2b93dff
don't print the wrong number (#3158)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-15 02:10:28 -04:00
Matthew Kennedy 2ad4a9df1e
actually remove FSIO idle stuff (#3150)
* debug mode

* pid cleanup

* more dead

* more dead

* wow more dead

* much dead many death wow
2021-08-14 09:48:45 +03:00
rusefillc e445d9724e dead idle FSIO 2021-08-14 01:48:03 -04:00
alxrMironov 7ebebd6922
Begin "vehicleSpeed" refactoring. Module switched to "FunctionalPointerSensor" class. #3106 #3107 #3108. (#3132)
* Add new sensor type "VehicleSpeed"

* Add "Vehicle speed" sensor to name list

* Add Vehicle speed sensor initialization with function pointer sensor.

* Add init_vehicle_speed_sensor.cpp to Makefile

* Replace dependencies from "getVehicleSpeed" to OOP-like "Sensor::get()"

* Add warning and TODO to "mock vehicle speed" call

* Replace get & mock "VehicleSpeed" methods in tests

* Remove #warning directive (cause error by current settings)

* Remove stray tab

* Remove explicitly type casting.

* Add "InitVehicleSpeedSensor" function declaration to init.h

* Add "VehicleSpeedSensor" initialization call into "InitNewSensors"

Co-authored-by: alxrMironov <330OMcorporative>
2021-08-12 22:16:51 +03:00
Matthew Kennedy 90a0e47b04
skip etb init if no primary sensor (#3136)
* skip init if no primary sensor

* specific test
2021-08-12 00:45:44 +03:00
Matthew Kennedy d24f1462e2
even more pch (#3112)
* s

* more

* s

* f7
2021-08-04 19:30:52 -04:00
Matthew Kennedy 25414ebdad
yet more pch (#3068)
* big pch energy

* put back ramdisk stub

* tests are happy

* h743 nucleo

* kinetis

* I love deleting code!

* make stepper happy

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-03 22:05:01 -04:00
Matthew Kennedy a8eddbccf6
perform extra-step-prevention in the stepper driver itself (#3038)
* perform extra-step-prevention in the stepper driver itself

* isBusy flag

* I am unable to type

* the court of public opinion has decided that greater-equal is correct

* that sets target in steps, not percent

* correct var name

* mock stepper motor

* testable stepper

* build is happy

* helping build
2021-08-02 07:03:57 -04:00
Andrey 511b5c22dd unit test for vehicle_speed.cpp #3081 2021-08-01 12:09:53 -04:00
Matthew Kennedy ab49f61a83
gppwm vbatt axis (#3088) 2021-07-31 21:20:19 -04:00
rusefillc c6dbd9caf7 121 vag defaults have fatal error fix #3059 2021-07-26 16:40:11 -04:00
Matthew Kennedy b52d50bbf2
Use pch in lots of files (#3066)
* most engine.h

* most engine_configuration

* more

* more

* more

* more

* more

* moooooore

* ok I'm done for now

* oops
2021-07-26 01:05:17 -04:00
Andrey eaeade5305 Clutch switch inverted options do not invert detected pedal position
#3044
2021-07-24 18:59:00 -04:00
Andrey 37247db383 Clutch switch inverted options do not invert detected pedal position
#3044
2021-07-24 18:44:13 -04:00
Matthew Kennedy 617c2886d9
adjust taper behavior (#3051)
* adjust taper behavior

* check that taper works in running state too
2021-07-24 16:12:07 -04:00
rusefillc ca34562d5d Clutch switch inverted options do not invert detected pedal position #3044 2021-07-24 15:54:51 -04:00
rusefillc 9c166d86fe Clutch switch inverted options do not invert detected pedal position #3044 2021-07-24 15:36:03 -04:00
rusefillc 4ae72f43f6 "prettyClose": some strange code inside idle controller? #3030 2021-07-22 15:30:32 -04:00
Matthew Kennedy 2ce7777865
don't require EXTERN_ENGINE in every file (#2969)
* move enginePins

* no more extern engine

* uses

* more

* extern config too

* put this where it belongs

* include correct header

* merge
2021-07-16 18:13:33 -04:00
Andrey a926357a01 making code more testable 2021-07-14 22:37:05 -04:00
Matthew Kennedy 5e08907590
knock sensing peak detect (#2910)
* knock peak detect

* comments

* comment

* initialize

* test

* fix warnings while we're here

* those are functions, not values

* ram
2021-07-06 21:44:59 -04:00
Andrey aabdea4140 Option to log VVT target #2913 2021-07-06 20:00:53 -04:00
Matthew Kennedy 5bd3ae3aaa
Disable closed loop idle during cranking->running taper (#2900)
* implement

* dead file?

* implement tests

* new phase
2021-07-06 08:47:06 -04:00
Matthew Kennedy 007a390f2b
Gate closed loop idle on road speed (#2901)
* implement

* test

* b

* config
2021-07-04 09:35:12 -04:00
Matthew Kennedy 1bca4843fe
test dc_motor.cpp (#2890)
* use ipwm where possible

* mock ipwm

* initialize

* test
2021-07-01 09:21:18 -04:00
Matthew Kennedy 32f5ce6fb4
no fan if stopped engine (#2822)
* no fan if stopped engine

* config

* use config

* more tests

* merge

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-28 08:52:54 -04:00
Matthew Kennedy cd5eb6a77c
Move AC logic out of FSIO (#2872)
* new impl

* remove fsio

* inject "is ac active" to fan

* include the correct code

* include

* test

* more AC features

* AC switch vs. actual AC indicators

* include

* duh
2021-06-27 18:51:34 -04:00
Matthew Kennedy cd055a687d
dc motor api (#2869)
* iwpm

* dc motor has configure

* consume

* format

* spelling
2021-06-26 21:42:40 -04:00
Matthew Kennedy 2475cb283b
warnings (#2862)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-25 20:58:38 -04:00
Matthew Kennedy 93adb8ea76
Etb rev limit (#2820)
* cfg

* impl

* a test

* don't break the ts channel

* text
2021-06-16 08:44:48 -04:00
Matthew Kennedy a4973a6f3d
fan/AC idle improvements (#2818)
* fan 2 open loop bump

* we had an AC target bump all this time?!

* format

* enable test

* I can't type
2021-06-15 17:30:35 -04:00
Matthew Kennedy 097bf85faf
dual fans (#2806)
* remove fsio

* hard code impl

* test it

* enable fan with AC

* make commented stuff match

* second fan config

* second fan ui

* defaults

* impl
2021-06-13 08:06:45 -04:00
Matthew Kennedy 15d172ab08
apply open loop idle when in automatic mode (#2745)
* always apply open loop in closed loop

* simplify flags

* comment

* move

* comment

* missed one

* config for fan bump

* adjust miata defaults

* test fan/ac open loop

* idle CL tests

* test coasting

* test integration case

* fix merge

* put back reset logic for now

* s

* don't need that part

* I guess use OL as baseIdlePosition

* reset condition
2021-06-12 14:21:11 -04:00
Matthew Kennedy c27549b2e8
hard coded fan logic (#2805)
* remove fsio

* hard code impl

* test it

* enable fan with AC

* make commented stuff match
2021-06-11 06:25:12 -04:00
Andrey 24131cdc0e s/controlPin1/controlPin/ 2021-06-05 16:19:01 -04:00
Matthew Kennedy 3ef969d743
warnings & assorted cleanup (#2793)
* lua hook

* validateBuffer

* tables

* simplify fsio table

* test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-03 14:30:25 -04:00
Matthew Kennedy 981e8f5047
defaults cleanup: base engine & fuel (#2790)
* build

* fuel and base

* fix build

* cleanup

* extern

* tps/tps

* alternator

* tps

* iat timing

* cranking RPM

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-03 00:50:07 +03:00
Matthew Kennedy f3c5ff6d54
idle fan/AC open loop bump (#2785)
* idle open loop ui section

* idle bump logic

* test fan/ac bump
2021-06-01 00:45:04 +03:00
Matthew Kennedy 39e4f70405
iac coast table (#2784) 2021-06-01 00:43:58 +03:00
Matthew Kennedy 7d773bfb1d
make the implementation match what the UI claims (#2779) 2021-05-31 07:37:02 -04:00
Matthew Kennedy a50f8e0077
Idle test that fails (#2781)
* make member func

* failing test
2021-05-31 06:18:15 -04:00
Matthew Kennedy d2f7e96747
code style (#2780) 2021-05-31 06:01:57 -04:00
Matthew Kennedy ec8e1eee69
require redundant pedal (#2758)
* require redundant pedal

* return false

* I don't typing good

* tests

* tests
2021-05-30 19:19:57 -04:00
Matthew Kennedy 58b274c80c
safe boost duty (#2764) 2021-05-30 14:04:04 +03:00
Matthew Kennedy 2667810942
add pedal to gppwm (#2748)
* add pedal to gppwm

* string
2021-05-28 03:38:45 -04:00
Matthew Kennedy 13d2ee03bc
idle indicators (#2692)
* add coasting bit

* remove useless bit
2021-05-13 17:35:00 -04:00
Matthew Kennedy dd6105cfa3
shrink canned tables (#2651)
* helper

* use it miata

* do type safe copy

* miata vvt

* etb

* default iat correction

* magic is afoot here

* hunchback

* misc

* neon

* neon

* aspire

* citroen

* neon

* missed one

* dead

* festiva

* remove andreyism

* very dead

* no need for copy of that function

* cleanup
2021-05-09 14:37:16 -04:00
Matthew Kennedy 8b30776016
remove stateChangeCallback from simplepwm (#2644)
* remove callback parameter from cj125

* remove from ext

* remove stateChangeCallback

* alt doesn't need that

* demorgan

* remove call

* bad cut/paste

* check the actual pin in the test
2021-05-07 09:38:41 -04:00
Matthew Kennedy ca7308e910
move some stuff in to ccm (#2645)
* stuff in ccm

* used memory
2021-05-07 09:35:57 -04:00
Matthew Kennedy c26987b96b
Destroy all shared logger (#2574)
* most of shared logger

* a few more

* one more

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 14:28:48 -04:00
Matthew Kennedy ad71016862
rip the bandaid: find-replace most of scheduleMsg (#2572)
* biiiig find replace

* more trivial find replace

* pwm

* almost all of them

* few more

* gpio

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 12:53:13 -04:00
Matthew Kennedy bd1c84fa62
Logging remove 3 (#2568)
* ts logger

* sensors

* wideband too

* missed one

* init

* motors, pid, etc

* vvt

* more

* idle

* missed one

* dynoview

* launch

* can

* console IO

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-20 14:09:41 -04:00
Matthew Kennedy 5145ee4b62
logging cleanup 2: sensors, pid, etb, etc (#2567)
* ts logger

* sensors

* wideband too

* missed one

* init

* motors, pid, etc

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-18 20:02:32 -04:00
Matthew Kennedy 15a8dab795
gppwm zero option (#2557)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-15 01:08:34 -04:00
Matthew Kennedy f05b8ba675
More gppwm and fsio (#2509)
* gppwm aux temp

* fsio fuel flow rate and oil pressure

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-29 08:57:37 -04:00
Matthew Kennedy 1c473934b9
plumbing for multiple vvt (#2488)
* plumb multiple vvt

* fix test

* s

* fix barra while we're at it

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-25 07:39:23 -04:00
Matthew Kennedy 3072d54717
dead code, warnings (#2461) 2021-03-15 10:23:19 -04:00
Matthew Kennedy a9c8b39dac
set 50% target for ETB autotune (#2459)
* 50% target for autotne

* pass target in

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-15 08:54:55 -04:00
Matthew Kennedy 1dd2180f76
VVT uses closed loop controller framework (#2453)
* vvt uses framework

* builds

* rename, update headers

* s

* testable

* write some basic tests

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-14 19:31:46 -04:00
Matthew Kennedy 428aaca5c5
ETB uses error accumulator (#2435)
* error accumulator

* makefile

* accumulate ETB error

* comment

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-08 19:18:35 -05:00
Matthew Kennedy 3d17e62d65
finish off vbatt -> sensor model (#2433)
* more vbatt

* s

* goodbye voltage

* makefile

* apparently that part was in use

* include

* mocking
2021-03-07 20:18:32 -05:00
Matthew Kennedy b1873b3d8b
set all thread priorities in the same place (#2412)
* unify thread priority

* header

* mmc
2021-02-28 07:30:45 -05:00
rusefillc 02a49de390 aux to vvt rename 2021-02-17 08:53:39 -05:00
Matthew Kennedy 4a1d3de9a6
remove unused msg parameter (#2360)
* dead parameter

* last few
2021-02-16 09:32:16 -05:00
rusefillc d87a38541e M62T vanos support #2243 2021-02-10 21:44:21 -05:00
rusefillc 6416929fbd M62T vanos support #2243 2021-02-10 19:51:14 -05:00
rusefi 6f065274e4 aux pid is now VVT 2021-02-10 12:41:38 -05:00
Matthew Kennedy 870857df36
add option to disable ETB if engine not spinning (#2280)
* config/ui

* trigger central mods

* implement
2021-02-05 17:19:57 -06:00
Matthew Kennedy 7bd3979595
eliminate idle's custom applyPinState (#2273)
* remove

* not static
2021-02-04 17:04:37 -05:00
Matthew Kennedy 9f0ebaac49
Proteus analog input ci (#2271)
* test vbatt

* test proteus vbatt

* tolerance

* these don't work on proteus

* new engine type

* test analog input

* more test points, less tolerance

* console build needs this file generated

* only include for hw ci builds

* wiring info

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-02-03 13:34:48 -06:00
rusefillc 449ff446e2 https://github.com/rusefi/rusefi/issues/2274 2021-02-03 11:37:47 -05:00
Matthew Kennedy 9151b0c6c1
fix #2269 (#2272)
* fix #2269

* cleanup
2021-02-03 08:04:22 -06:00
Matthew Kennedy fa30efbc94
boost fixes (#2230)
* fix boost pin reinit

* call boost from periodic slow

* ui

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-01-18 07:04:14 -05:00
Matthew Kennedy bdacda558c
fix instant rpm (#2180)
* consumers

* impl

* instant rpm in idle timing
2021-01-14 20:45:55 -05:00
Matthew Kennedy 868f0d47ac
Enable idle timing/ve tables based on idle phase logic (#2213)
* add helper

* advance

* ve

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-01-11 00:54:37 -05:00
Andrey G 2af32084f4
gpio helper (#2195)
* gpios: isBrainPinValid helper

* LCD HD44780: do not touch pins if DM_NONE or invalid gpio

* Fix isEnabled checks for GPS and Joystick

* LCD HD44780: writePad use this method wider
2021-01-08 20:01:26 -05:00
Matthew Kennedy 7a90692187
Idle timing uses phase logic, remove falloff (#2169)
* use phase computation

* move & simplify implementation

* test

* bad merge

* initialize

* wonderful changelog

* now unused parameter

* put back deadzone

* ui

* test deadzone

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-01-07 08:06:36 -05:00
rusefillc 46583b2a19 Revert "Idle timing PID uses phase logic (#2156)"
This reverts commit 9634a803
2020-12-31 12:22:54 -05:00
Matthew Kennedy acdf6fdc85
Put map in the sensor model (#2161)
* hook up map

* check for init

* switch some consumers

* don't do limp for now

* oops

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-30 08:43:49 -05:00
Matthew Kennedy 342414a5f7
show when idle is closed loop (#2160)
* show when idle is closed loop

* semicolon

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-30 08:42:40 -05:00
Matthew Kennedy 9634a803f1
Idle timing PID uses phase logic (#2156)
* use phase computation

* move & simplify implementation

* test

* bad merge

* initialize

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-29 23:50:56 -05:00
Matthew Kennedy c8ee9fcf3f
use phase computation (#2152) 2020-12-29 07:49:10 -05:00
Matthew Kennedy 1d4ccfff3f
add idle timing defaults (#2155)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-29 07:47:18 -05:00
Matthew Kennedy ec508d8f9d
don't write settings if cal didn't work (#2154)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-28 08:03:10 -05:00
Matthew Kennedy 64d9b4b71a
limp manager can disable etb (#2143)
* move rev limit to limp manager

* call fatal error

* include order

* fix bug

* tests

* limp can disable etb

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-26 21:47:27 -05:00
Matthew Kennedy 898b7a82e0
move swtiches out of idle (#2148) 2020-12-26 21:31:41 -05:00
Matthew Kennedy 4961a25ab4
start integratig (#2147) 2020-12-26 19:44:40 -05:00
Matthew Kennedy b9e96322c5
Idle refactor open loop (#2146)
* impl

* typo

* tests
2020-12-26 19:34:42 -05:00
Matthew Kennedy 542cb6a420
more testable idle logic (#2140)
* header

* test

* impl
2020-12-26 08:32:01 -05:00
rusefi af6ad0757e PROTEUS_QC_TEST_BOARD 2020-12-26 00:57:23 -05:00
Matthew Kennedy 6168bcea80
Fix gpio reinit race condition (#2098)
* fix unregister api for gpio

* consumers

* guard with a critical section

* index

* guard less

* unregister under lock

* fix reinit

* dead flag

* fix most tests

* initialize properly

* initialize properly

* assertions in tests

* fix message

* we must lock earlier to be truly safe

* this was using huge memory

* devirtualize
2020-12-18 17:18:12 -05:00
Matthew Kennedy aeea50ada2
move target computation (#2091) 2020-12-17 17:46:51 -05:00
rusefi eb8b1ba325 docs 2020-12-17 16:59:02 -05:00
rusefi b3b5dfc398 fail fast! 2020-12-13 19:23:26 -05:00
Matthew Kennedy bad0e6b949
require redundant TPS for ETB (#2041)
* Require redundant tps for ETB (#2037)

* mod sensor api

* require redundancy

* fix tests

* check that it fails

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>

* add a test that fails but should not

* fix the bug

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-08 06:24:20 -05:00
rusefi 2a1b585bfe Revert "Revert "Split ETB in to interface + implementation headers (#2040)""
This reverts commit 4f4bb957
2020-12-07 01:27:27 -05:00
rusefi bb3cb0ba22 Revert "Require redundant tps for ETB (#2037)"
This reverts commit 4f1085a8
2020-12-07 01:11:32 -05:00
rusefi 4f4bb95770 Revert "Split ETB in to interface + implementation headers (#2040)"
This reverts commit d9a82c09
2020-12-07 01:11:19 -05:00
Matthew Kennedy d9a82c09af
Split ETB in to interface + implementation headers (#2040)
* split etb interface

* mocks

* fix master while we're at it

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-07 00:29:09 -05:00
Matthew Kennedy 4f1085a87a
Require redundant tps for ETB (#2037)
* mod sensor api

* require redundancy

* fix tests

* check that it fails

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-07 00:05:06 -05:00
rusefillc 2e8ae3ca94 refactoring 2020-12-06 19:04:23 -05:00
rusefillc 8739e192f5 basic hw in the loop - pwm self validation #2028 2020-12-06 18:39:50 -05:00
Matthew Kennedy a5ba9d54dc
fix etb unit test idle hardware (#1991)
* move check to etb

* give it a sensor to read
2020-11-26 19:21:42 -05:00
rusefillc d4d7e7583b Starter is engaged on start-up in pull-up configuration #1969 2020-11-26 10:41:22 -05:00
Matthew Kennedy 750070a496
fix etb wastegate percent output (#1988)
* wastegate etb should use percent

* percent_t

* fix test
2020-11-25 21:14:06 -05:00
Matthew Kennedy 492498f8d0
Boost tolerance (#1986)
* tolerate invalid closed loop config when in open loop mode

* fix test
2020-11-25 07:27:24 -05:00
Matthew Kennedy 866038900f
adjust boost (#1975) 2020-11-22 18:30:19 -05:00
Matthew Kennedy 66687158c5
no feed forward for wastegate (#1971)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-11-19 20:51:30 -05:00
rusefillc ee7e1880a2 Something something unit test ETB does not work #1966 2020-11-18 20:12:58 -05:00
rusefillc e29911114a Starter seems to be engaged forever #1965 2020-11-18 20:01:02 -05:00
rusefillc 4c9c8d42bf Starter seems to be engaged forever #1965 2020-11-18 19:51:51 -05:00
Matthew Kennedy 774de10f40
undo 1946 (#1957) 2020-11-17 17:07:56 -05:00
rusefillc 014cae25db DC not ETB refactoring 2020-11-16 20:07:12 -05:00
rusefillc cd7cefb669 DC not ETB refactoring 2020-11-16 20:05:35 -05:00
rusefillc 5ad36e655f DC not ETB refactoring 2020-11-16 19:51:36 -05:00
rusefillc 2a3a2d7191 DC not ETB refactoring 2020-11-16 19:43:00 -05:00
rusefillc 724abc68f5 DC not ETB refactoring 2020-11-16 19:28:30 -05:00
Matthew Kennedy 2f4294ac4d
minor perf tweaks (#1946)
* only start PWM if needed

* put important stuff first

* use conversion

* this broke the logic
2020-11-16 00:06:11 -05:00
Matthew Kennedy 0e3673e78c
remove idle thread; just call from periodicSlowCallback (#1924)
* remove thread

* remove ui
2020-11-11 21:47:19 -05:00
Matthew Kennedy d992bab241
Move all DECLARE_ENGINE_PTR etc to one place (#1937)
* restructure

* guard c++

* idle too

* status_loop.h
2020-11-11 19:06:04 -05:00
Matthew Kennedy 3241a43a2d
extract idle hardware to its own file (#1923)
* extract idle hardware

* should fix the build
2020-11-03 18:06:32 -05:00
rusefi 2c322006d8 Output pin init/deinit needs a linked list #1803 2020-11-03 00:09:42 -05:00
Matthew Kennedy 6605877326
gppwm debug (#1895)
* dbg gppwm

* fix channel

* TS guard
2020-10-21 22:49:38 -04:00
rusefi 9060aff46c code style 2020-10-21 22:13:18 -04:00
rusefi 2ce0bef9b9 refactoring 2020-10-19 22:44:44 -04:00
Matthew Kennedy 06f92807cc
second PID config for wastegate (#1889)
* remove

* cleanup

* implement ETB parts

* hook up to boost controller

* tests

* consume

* add cfg field

* ui maybe

* fix

* fix

* add wastegate config test
2020-10-19 08:04:27 -04:00
Matthew Kennedy 42bfad807b
Etb wastegate hookup (#1888)
* remove

* cleanup

* implement ETB parts

* hook up to boost controller

* tests
2020-10-18 21:57:04 -04:00
Matthew Kennedy ee5d0bf07b
remove (#1887) 2020-10-18 20:49:42 -04:00
Matthew Kennedy 44653da2e5
Etb function cfg: actually read config (#1884)
* 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-18 17:26:38 -04:00
Matthew Kennedy 749282c807
more safe parts probably (#1883) 2020-10-15 22:04:42 -04:00
Matthew Kennedy 299a345c1c
etb function config 1 (#1881)
* this should all be safe...

* test fix
2020-10-14 22:02:09 -04:00
rusefillc 07a905b1fe revering functional part of
Etb function cfg, try again #1860
try again from #1831
2020-10-08 17:09:00 -04:00
Matthew Kennedy 1bce3aa4c0
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 367436454d HW CI has failed 11 times since Oct 2 #1849
Revert "ETB function config (#1831)"

This reverts commit af59c45a
2020-10-03 22:00:00 -04:00
Matthew Kennedy af59c45adb
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 f1c04efefa
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 1fc55da3ca
two throttles one thread (#1806)
* two throttles one thread

* look at all this RAM!
2020-09-18 13:47:49 -04:00
Matthew Kennedy eebded8caa
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
rusefi cb2173aad2 merge got confused 2020-09-07 15:05:47 -04:00
rusefi f33b3eda8a Merge remote-tracking branch 'origin/Hellen_fork_point' into master
# Conflicts:
#	firmware/controllers/algo/engine.h
#	firmware/hw_layer/drivers/drivers.mk
#	firmware/hw_layer/stepper.h
#	firmware/integration/rusefi_config.txt
#	firmware/tunerstudio/rusefi.input
#	simulator/simulator/efifeatures.h
2020-09-07 15:02:11 -04:00
rusefi ec0d3a8eb2 Hellen says isIdleMotorBusy
(cherry picked from commit b24246791e)
2020-09-07 14:43:29 -04:00
rusefi b24246791e Hellen says isIdleMotorBusy 2020-09-07 14:12:21 -04:00
Matthew Kennedy 95798a5246
fix broken master, inject engine ptr to rpmcalculator (#1759)
* fix

* oops
2020-09-05 18:49:42 -04:00
rusefi 675cce3854 less hacky testing implementation 2020-09-03 22:52:29 -04:00
rusefi ca21d5b4c2 refactoring 2020-09-03 19:29:15 -04:00
rusefi 540eef5e0d VVT support for VAG trigger #883 2020-08-25 00:59:07 -04:00
Matthew Kennedy 7a3b87656f
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 12bc5eb28b
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 225e403973 parameter names 2020-07-29 02:22:31 -07:00
rusefi b2db6b604d Weird VAG: DC motor idle valve not ETB #1637
misc progress
2020-07-26 15:22:14 -04:00
rusefi a8f45d960a Weird VAG: DC motor idle valve not ETB #1637
etbTarget gauge in DC idle mode
2020-07-26 15:07:45 -04:00
rusefi c649b05ebd Weird VAG: DC motor idle valve not ETB #1637
should be better this way
2020-07-26 12:19:30 -04:00
rusefi 3857607fc2 Weird VAG: DC motor idle valve not ETB
#1637
Seattle we might have a problem!
2020-07-26 12:03:36 -04:00
rusefi d5739815b4 Weird VAG: DC motor idle valve not ETB #1637 2020-07-26 10:54:51 -04:00
Matthew Kennedy d1fde4fe93 make reality match the test 2020-07-26 03:15:17 -07:00
Matthew Kennedy 51a69c7478 clamp idle in VW mode 2020-07-26 03:05:59 -07:00
Matthew Kennedy 7003d6c7ba implement 2020-07-26 02:55:35 -07:00
Matthew Kennedy 5e681cac1a add new options 2020-07-23 02:51:08 -07:00
Andrei b7b50e5cb3 Idle PID improvements 2020-07-22 18:39:09 +03:00
rusefi 5feb91dc8f EFI_IDLE_INCREMENTAL_PID_CIC should be a runtime parameter #806 2020-07-12 21:35:01 -04:00
rusefi f7da86983a EFI_IDLE_INCREMENTAL_PID_CIC should be a runtime parameter #806 2020-07-12 21:13:04 -04:00
rusefi 0079e8d3f0 EFI_IDLE_INCREMENTAL_PID_CIC should be a runtime parameter #806 2020-07-12 19:06:26 -04:00
rusefi 13aef2dd77 EFI_IDLE_INCREMENTAL_PID_CIC should be a runtime parameter #806 2020-07-12 18:25:48 -04:00
rusefi 677d5888ed EFI_IDLE_INCREMENTAL_PID_CIC should be a runtime parameter #806 2020-07-12 18:11:10 -04:00
rusefi 8f4dd3e175 https://rusefi.com/forum/viewtopic.php?p=37401#p37401 2020-07-10 15:06:55 -04:00
rusefi 29e3c71df4 https://rusefi.com/forum/viewtopic.php?p=37401#p37401 2020-07-10 14:19:51 -04:00
rusefi 1f4c632cf2 https://rusefi.com/forum/viewtopic.php?p=37401#p37401 2020-07-10 14:03:07 -04:00
rusefi 720ade2319 migrate amazing idle from FSIO to less opaque TS #1581 2020-07-08 01:12:08 -04:00
rusefi b1ab455f31 idle_min through FSIO not working as intended
#1553

we now re-activated idle PID even in deadzone for half a second after A/C toggle
2020-07-06 16:40:16 -04:00
Matthew Kennedy 26478ec394
Switch fueling to new axes (#1574)
* switch tables

* missed one
2020-07-05 18:14:55 -04:00
rusefi 23e6ea5475 idle_min through FSIO not working as intended #1553 2020-07-04 22:01:12 -04:00
rusefi e854410778 idle_min through FSIO not working as intended #1553
better idle state logging
2020-07-01 19:10:42 -04:00
rusefi 33eb2eab62 idle_min through FSIO not working as intended #1553
making logging less confusing
2020-07-01 16:37:25 -04:00
rusefi 127dd67838 restoring ldmp 2020-06-17 19:03:10 -04:00
Matthew Kennedy 65625deb32
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
Matthew Kennedy b906d12268
Fix gppwm properly (#1487)
* directly control output in onoff mode

* test fixing
2020-06-11 20:43:26 -04:00
rusefi 98e73987a3 docs 2020-06-01 08:50:54 -04:00
Matthew Kennedy 3a7c6f242b
Hardware pwm (#1283)
* hard pwm

* fix, comments

* PC6-9 and PD12-15

* PB6-9

* dynamic frequency

* f7 mcuconf

* format

* relocate to common, support variable frequency

* error handling

* oops

* fix test build

* noop kinetis

* better guards

* guard for bl

* guards don't work if they have typos

* more mapping

* oops

* don't use for slow pwm

* enable pwm

* guard properly

* save a little memory

* use less mem

* correct timers

* all your ram are belong to us

* update limit & comment

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-28 16:02:41 -04:00