Commit Graph

560 Commits

Author SHA1 Message Date
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
rusefi a4329169e9 better file name 2020-05-25 13:02:05 -04:00
Matthew Kennedy 4f334c91d5
warnings (#1462)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-21 01:08:07 -04:00
Matthew Kennedy 9dda1a21bc
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
rusefi 4364eea7a2 refactoring: extracting magic constant 2020-05-08 22:05:44 -04:00
rusefi b4f6c6488f helping build 2020-05-08 21:39:35 -04:00
dron0gus f78889c1b3
idle thread: debug output for bipolar stepper (#1409) 2020-05-08 20:05:05 -04:00
dron0gus 5987fb8b88
[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 74d13c391f
Rewrite boost control in new closed loop framework (#1342)
* rewrite boost

* test

* fix build

* tests

* open loop test

* test closed loop

* fix names

* typo

* tests

* mock boost setOutput

* needs more virtual

* fix boost logic

* switch to TPS based open loop

* fix test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-06 08:40:42 -04:00
Matthew Kennedy 20a95bdcf1
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 3052f2ab7b
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 965c06c079 https://github.com/rusefi/rusefi_documentation/issues/37 2020-04-29 18:41:40 -04:00
Matthew Kennedy ba6ec4ac51
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 d728b1ca48
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 44facf1140 useful content from Move ETB control to a thread #1374 2020-04-28 08:05:18 -04:00
Matthew Kennedy fe4b531aeb
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
rusefi 1b84406e77 dead code 2020-04-26 17:40:12 -04:00
Matthew Kennedy f128b33694
General purpose PWM: implementation & tests (#1366)
* config

* significant digits

* renumber enum, no need for a "none"

* ui

* impl base

* error handle MAP

* init & update

* don't need arg

* don't lie about sensor

* fix test build

* test stub

* initialize

* null check

* fix clamping

* test output

* types & enums

* don't need param

* test getOutput

* fix

* output pin instead of brain pin

* default config
2020-04-26 14:06:28 -04:00
Matthew Kennedy df2db7036d
ETB autotune in its own function (#1350)
* pull out autotune

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

* fix tests for new behavior
2020-04-20 17:29:03 -04:00
Matthew Kennedy 1a5e0a42f8
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
rusefi 656331ebe9 reducing code duplication 2020-04-20 15:57:03 -04:00
Matthew Kennedy e04008610a
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
rusefi 934898f903 idle duty cycle clamping 2020-04-20 14:11:40 -04:00
Matthew Kennedy 0619575716
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
rusefi ad7c4f23bc Better handling in case of ETB idle without ETB #1332 2020-04-19 23:55:27 -04:00
Matthew Kennedy 8aac233a5f
rewrite etb tests with gmock (#1330) 2020-04-19 20:32:41 -04:00
Matthew Kennedy 75b009bbae
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 044766ec70
New clt consumers part 1 (#1301)
* idle

* CLT test prep

* idle target

* header

* air interpolate

* ancient comment

* fuel cut

* fuel cut, idle tests

* cleanup
2020-04-15 09:48:17 -04:00
Matthew Kennedy 6481b9df0a
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 b526b43864
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 001ef27eb8
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 9831c8c874
simplify (#1275) 2020-04-10 08:12:16 -04:00
dron0gus 00417b1040
idle: add two coil idle valve support (#1271) 2020-04-06 17:55:41 -04:00
Matthew Kennedy 345bf61bd5
Goodbye, old TPS (#1266)
* clear out tps

* boost control

* aux valves

* launch, aux valves

* unused field
2020-04-05 19:33:33 -04:00
Matthew Kennedy 7d5df29fbd
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 36477d348d
remove ETB controlPinMode (#1260) 2020-04-04 08:41:45 -04:00
Matthew Kennedy 9f75c0cea6
TPS consumers: idle and ignition and obd2 and lcd (#1254)
* advance_map

* tests

* unneeded

* idle

* use driver intent instead

* and obd and lcd

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-03 19:59:08 -04:00
Matthew Kennedy 1fe39e81e0
fix (#1251) 2020-04-03 07:48:12 -04:00
Matthew Kennedy b197c6ff07
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 22267e5479
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 0edb791cff partial revert 2020-04-02 00:37:02 -04:00
rusefi e9665e1ddc less ETB in case of critical 2020-04-02 00:32:03 -04:00
Matthew Kennedy 50cd6549a2
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
Matthew Kennedy d541e04a7d
Friendlier pin names (#1233)
* enable TS error readout

* friendlier text for common errors

* improve comment

* friendlier ADC errors

* ign/inj names

* more pin names
2020-03-29 19:07:07 -04:00
Matthew Kennedy 8fd9842310
cleanup extern mess (#1237)
* cleanup

* move outside define
2020-03-29 19:06:03 -04:00
rusefi d1b5a51400 progress 2020-03-28 20:56:58 -04:00
rusefi c778a44c8f #203 2020-03-26 19:22:14 -04:00
Matthew Kennedy 53679fab54
Finally rename injector_central to bench_test (#1229)
* bench test rename

* rename consumers

* good lord what are all of these externs doing

* fix tests
2020-03-26 08:03:55 -04:00
Matthew Kennedy 2349d74f0b
Default to applyPinState (#1219)
* make applyPinState default

* consumers

* format
2020-03-25 18:14:09 -04:00
rusefi 1955af0b6c random code inspired by Ola 2020-03-24 19:50:04 -04:00
rusefi 391b0ec368 progress 2020-03-23 23:51:51 -04:00
rusefi dc769e7a2a progress 2020-03-23 23:15:44 -04:00
rusefi 0e6aacb3b8 progress 2020-03-23 23:06:52 -04:00
rusefi c0e141026c code style 2020-03-23 22:31:24 -04:00
rusefi 165160bb40 random header clean-up 2020-03-23 09:00:57 -04:00
Matthew Kennedy 4740f525ee
save some ram (#1211)
* remove dead stuff

* why store those pointers twice?
2020-03-22 19:06:29 -04:00
Matthew Kennedy c19f3e4caa
Control stepper with dual H-bridges (#1121)
* divorce stepper from hw

* oops

* ptr not ref

* hbridge stepper

* typo

* hook up twin h

* hook up hardware

* use config field

* hook up motor repo

* guard tests

* whoops

* ok fix for real

* ok that's the right thing

* do full stepping

Co-authored-by: Matthew Kennedy <matthew@mck-mbp-15.stagpad.local>
Co-authored-by: Matthew Kennedy <matthew@mck-mbp-15.local>
2020-03-10 15:18:29 -04:00
Matthew Kennedy 40b0783205
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 04a4e2bca3 ETB: expand automated testing #115 2020-02-22 23:18:02 -05:00
Matthew Kennedy 20465107ed
boost format & cleanup (#1126) 2020-02-05 06:47:31 +05:30
rusefi 6888b09c53 Three wire idle air valve #1122
ugly but should work to begin with
2020-02-04 01:22:04 -05:00
960 4b4e683957
Boost pr (#1114)
* boost control

* cleanup

* Delete rusefi_config.txt

* Add files via upload

* Delete rusefi_config.txt

* Add files via upload

* Update rusefi.input

* Update boost_control.cpp
2020-02-02 03:56:21 -05:00
rusefi 7c714e5727 opening the door to boost controller! 2020-01-31 14:29:52 -05:00
rusefi f6e7e8871a VVT refactoring & assertions for VVT test 2020-01-31 01:49:10 -05:00
Matthew Kennedy fa5b5b76fb Separate stepper control logic from hardware (#1101)
* divorce stepper from hw

* oops

* ptr not ref

* ptr not ref

* whitespace

* null check
2020-01-15 02:18:15 -05:00
rusefi bb217b01dd happy new year unification 2020-01-13 21:57:43 -05:00
rusefi 19df4661ab better method name 2020-01-10 02:02:22 -05:00
rusefi b83a5310be happy new year 2020-01-08 00:02:40 -05:00
Matthew Kennedy 5c85d53e16 Pass action_s instead of callback/param (#1084)
* change action

* consumers

* fix test

* didn't mean to add those

* simplify

* fix simulator

* fix sim for real

* oy

* maybe this time the simulator will actually be fixed, for real

* don't rely on undefined behavior
2020-01-07 00:41:18 -05:00
rusefi 0075f9492c ETB documentation improvement? 2019-12-30 10:25:52 -05:00
rusefi 1c7de824e2 typo 2019-12-14 18:33:08 -05:00
rusefi 236d952335 progress towards ETB controller mocking 2019-12-13 13:52:34 -05:00
rusefi e9e7a66cf8 etbActualCount logic to handle the scenario where only one ETB is present 2019-12-13 12:50:34 -05:00
rusefi af4f20551b getting rid of boardConfiguration / binary compatible change 2019-12-11 17:48:55 -05:00
Matthew Kennedy 0e674f7eca 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 813b6aa6ce The Big Refactoring of 2019: folder structure #723 2019-12-04 01:11:10 -05:00
andreika-git 2a39c69f51 iacPidMultTbl + EFI_IDLE_PID_CIC + kinetis_hysteresis (#1043)
* rename EFI_IDLE_INCREMENTAL_PID_CIC -> EFI_IDLE_PID_CIC

* Impl. IacPidMultTable

* Kinetis: Trigger Comparator Hysteresis settings (+adaptive mode)
2019-12-04 00:37:32 -05:00
rusefi de36f76882 The Big Refactoring of 2019: folder structure #723 2019-12-03 23:52:44 -05:00
rusefi 1c96d9541e refactoring 2019-12-02 23:08:18 -05:00
rusefi 1d817e9768 dual throttle re-init bugfix thank you andreika! 2019-12-01 09:39:34 -05:00
rusefi 3ed889486e making things nicer with dual ETB settings 2019-11-30 17:38:33 -05:00
rusefi b961edc654 refactoring 2019-11-30 16:49:40 -05:00
rusefi b04166d173 that's how we can move all fields one by one from boardConfiguration to engineConfiguration
my approach is to move fields from the bottom of BC struct
2019-11-30 10:24:37 -05:00
rusefi f80fe51092 all ETBs to run in same HW mode 2019-11-30 01:00:54 -05:00
rusefi 5fa7e082c8 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 2952cd923e all ETBs to run in same HW mode 2019-11-30 00:25:33 -05:00
rusefi a78dc22bf1 better state validation, better error codes 2019-11-29 23:41:26 -05:00
rusefi 73e3edc3d8 dual ETB seems to work! 2019-11-29 20:15:29 -05:00
rusEfi e2074388ff dual ETB seems to work! 2019-11-29 19:06:50 -05:00
rusefi 76ca1aacb7 all ETBs to run in same HW mode 2019-11-29 19:02:12 -05:00
rusEfi 799027c2e9 all ETBs to run in same HW mode 2019-11-29 16:51:51 -05:00
rusefi 07f71c8dfa steps towards dual ETB 2019-11-28 15:24:30 -05:00
rusefi 067aa0aeee steps towards dual ETB 2019-11-27 22:07:36 -05:00
andreika-git 1808642af1 Starter relay + Hardcoded 'FSIO' + simulator fix (#1032)
* Starter Relay: gui + built-in FSIO impl.

* Hardcoded 'FSIO' replacement for RAM-limited boards

* fix simulator
2019-11-25 20:08:01 -05:00
Matthew Kennedy 9ee8616cb0 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 547d9749df v12 and minor ETB 2019-11-22 23:27:03 -05:00
Matthew Kennedy 579219e8cc 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 bb22296f61 DC motor improvements (#1025)
* extract interface, comments, conform names

* fwd declare
2019-11-22 16:30:44 -05:00
rusefi 4faca85fdd following the pattern 2019-11-21 13:35:57 -05:00
rusEfi f9ccaf5f01 steps towards dual ETB 2019-11-21 00:49:38 -05:00
rusefi a5db4819ae making more code testable 2019-11-20 08:46:54 -05:00
rusefi a7b7fd1005 making more code testable 2019-11-20 02:18:17 -05:00
rusefi ad7e36c228 refactoring 2019-11-20 01:35:08 -05:00
rusEfi 36dba6274a ETB docs 2019-11-18 22:25:07 -05:00
rusefi 669c75d44f trying to fix integration tests
[java] 2019-11-10_13_31_42_194<EOT>: msg,FATAL error: PID::isSame invalid,
     [java] 2019-11-10_13_31_42_194<EOT>: postMessage EngineState: FATAL error: PID::isSame invalid
     [java] 2019-11-10_13_31_42_289<EOT>: Sending packet 4F 00 00 64 01
     [java] 2019-11-10_13_31_42_289<EOT>: output channels header: waiting for 2 byte(s)
     [java] 2019-11-10_13_31_42_290<EOT>: IncomingDataBuffer: 256 byte(s) arrived
     [java] 2019-11-10_13_31_42_290<EOT>: output channels body: waiting for 361 byte(s)
     [java] 2019-11-10_13_31_42_291<EOT>: IncomingDataBuffer: 107 byte(s) arrived
2019-11-10 16:07:13 -05:00
andreika-git b996190707 Industrial PID Controller (#1002)
* Implement Industrial PID controller

* Test-Use PidIndustrial in alternator

* Meaningful unit-tests for PidIndustrial
2019-11-10 13:04:27 -05:00
rusefi ae0456e5fb fine, taking care of more warnings 2019-11-06 19:53:09 -05:00
rusefi cc6381fe96 evil manual merge of https://github.com/DonaldBecker/rusefi 2019-11-05 20:07:55 -05:00
rusefi bab1744d1d progress towards #961 2019-11-04 22:44:52 -05:00
rusefi 4d095d4844 60/2 VW trigger has running issue on 19/10/19 snapshot fix #986 2019-10-30 20:51:20 -04:00
rusefi 627f73502b steps towards #975 2019-10-18 19:45:32 -04:00
rusefi d9401fbdbc steps towards #975 2019-10-18 19:39:06 -04:00
rusefi 0e01355c15 steps towards #975 2019-10-18 18:54:32 -04:00
rusefi 62577c47da preparation for #961
more unified access to pre-calculated value
2019-10-10 08:25:58 -04:00
rusefi 71e904e421 preparation for #961
more unified access to pre-calculated value
2019-10-10 08:16:21 -04:00
rusefi ca6e49dcbc preparation for #961
macro as a syntax sugar for method invocation
2019-10-10 07:28:52 -04:00
Matthew Kennedy 29804cbc8a move tsOutputChannels to header (#970) 2019-10-08 21:02:51 -04:00
rusefi 42dc9e3662 fancy C++ s/NULL/nullptr/ 2019-10-08 01:26:35 -04:00