Commit Graph

443 Commits

Author SHA1 Message Date
rusefi 3f914bf3ed trigger and VVT duty cycle integration into limp manager #2523 2021-04-07 15:17:01 -04:00
Matthew Kennedy 5e88376e2c
barra vvt cam pattern (#2483)
* barra vvt cam pattern

* two tooth sync

* I think this needs to be here too
2021-03-22 07:48:29 -04:00
Matthew Kennedy 95b08c433f
Implement nonlinear fuel level sender (#2473)
* table function

* config fields

* sensor type

* switch consumers

* init the sensor

* ui

* 1mv resolution

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-19 08:39:08 -04:00
Matthew Kennedy 3072d54717
dead code, warnings (#2461) 2021-03-15 10:23:19 -04:00
rusefillc 16b8fb64ca vBatt -> SensorType::vBatt fix #2260 2021-03-11 23:07:18 -05:00
rusefillc d650271077 vBatt -> SensorType::vBatt #2260 2021-03-11 22:52:34 -05:00
rusefillc c7d8997a3a vBatt -> SensorType::vBatt #2260 2021-03-11 22:44:59 -05:00
Matthew Kennedy 7b4ba0c836
remove lastTriggerToothEventTimeNt (#2430)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-07 17:11:50 -05:00
Matthew Kennedy 6aaf02be15
hook up lps25 on proteus (#2418)
* hook up lps25

* it would help to include all the files

* unguard some stuff

* unguard more

* guarding

* s

* guard

* only register if init worked

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-04 22:39:20 -05:00
Matthew Kennedy 39884f8934
use DECLARE_ENGINE_PTR for Engine class (#2365)
* engine cleanup

* do the cleanup

* one last spot

* expand_engine noop for firmware

* simulator
2021-02-16 16:58:54 -05:00
rusefillc ce78123eb0 M62T vanos support #2243 2021-02-08 22:21:02 -05:00
rusefillc 081357ca5e M62T vanos support #2243 2021-02-08 22:07:14 -05:00
rusefillc 2d99e77c95 M62T vanos support #2243 2021-02-08 21:50:31 -05:00
rusefi 0d6dfbb501 M62T vanos support #2243 2021-02-08 21:28:57 -05:00
rusefi 6b10de5616 refactoring: naming consistency 2021-02-08 18:20:53 -05:00
Matthew Kennedy 5ceeac93e9
put vbatt in sensor model (#2261)
* vbatt in sensor model

* sensor name

* vbatt

* s

* oy vei

* a little bit of cleanup

* memory apparently

* cj125 test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-02-03 07:55:40 -06:00
rusefillc 5e50b542a8 typo 2021-01-31 12:27:26 -05: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
rusefillc 4416d1c7dc cmd_test_main_relay 2021-01-10 23:46:50 -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
Andrey G b92e3086d0
Adc isAdcChannelValid helper (#2188)
* Guard define argument

* ADC: isAdcChannelValid

Check for both <= EFI_ADC_NONE and >= EFI_ADC_LAST_CHANNEL
Also check for value out of enum range (corrupted settings)

* Fix unit tests
2021-01-05 16:02:20 -05:00
rusefillc f28f1e0f90 fine-grained check modes 2020-12-27 17:41:28 -05:00
Matthew Kennedy 898b7a82e0
move swtiches out of idle (#2148) 2020-12-26 21:31:41 -05:00
Matthew Kennedy ff4ce2fb1f
create limp manager (#2142)
* move rev limit to limp manager

* call fatal error

* include order

* fix bug

* tests

* comment

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-26 17:30:46 -05:00
rusefillc 0899102b05 returning AT validation into QC 2020-12-15 15:43:36 -05:00
rusefillc f2bb2ce0c6 MRE issue with tle8888 - GP3 does not work? #2065 2020-12-13 11:29:19 -05:00
shadowm60 864bd7fa73
Dyno view proposal (#1999)
* DynoView creation

module implementation and unit_tests

* update acc algo

we only calcualte new acceleration value if speed has changed, not on every callback.

* added acceleration ts_channel

* fixed broken unit tests

* fixed accel sign

* review updates

* Update test_dynoview.cpp

fix unit_tests

* Update engine_controller.cpp

Fix .ram4 unused size

* Update test_dynoview.cpp
2020-12-04 20:28:48 -05:00
rusefillc 4c3eae5676 FORD ST170 CAM TRIGGER PATTERN fix #2009 2020-12-03 23:54:08 -05:00
Matthew Kennedy f3b7a1d9da
Remove lockAnyContext, replace with CriticalSectionLocker (#1938)
* switch to CriticalSectionLocker

* that's just about all

* clean up last usage

* include hpp for sim

* need the cpp wrappers in the makefile too

* include dir

* include
2020-11-19 06:56:02 -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 3241a43a2d
extract idle hardware to its own file (#1923)
* extract idle hardware

* should fix the build
2020-11-03 18:06:32 -05:00
Matthew Kennedy 10c1ad7698
use fuel model (#1901)
* use fuel model

* spit'n'polish
2020-10-23 20:25:47 -04:00
Andrey G 8e11675afd
Tle8888 big update 1 (#1892)
* smart gpio: fix tle8888 direct pin mapping for MRE

* MRE: use TLE8888 pins instead of MCU gpios that drives TLE8888

* TLE8888: cleanup

* TLE8888: do not reset driver private data on WD/undervoltage reset

* TLE8888: diagnostic updates

* TLE8888 driver: BIG driver rework

* TLE8888: check SPI answers for abnormal states

Reply with other than requested register can be a sign of:
-Power-On-Reset, then OpStat0 will be replyed
-WatchDog reset, then FWDStat1 will be replyed
-Invalid communication frame, then Diag0 will be replyed

Keep tracking last accessed register and check with the next reply.

* TLE8888: debug clean-up

* TLE8888: implement spi array write

This reduce CS inactive state time between two consequent accesses
from 8.8 uS to 1.4 uS

* TLE8888: fix PP outputs in OD mode

* TLE8888: cleanup register definitions

* TLE8888: run separate driver thread for each chip instance

Calculating poll interval for few chips become more complex, avoid
this running thread for each device.

* TLE8888: fix cypress and kinetic compilation

Both platforms define its own MAX and cause redifination error if
common.h is included in driver.

* MRE: update mapping.yaml and fix direct pin mapping for TLE8888

* TLE8888: diagnnostic: disable switch off in case of overcurrent

For all output, use current limiting instead

* TLE8888: check for overvoltage on OUT8..OUT13

* TLE8888: add TODO note about how to recover from failure condition

Currently TLE8888 automaticly recovers only from overcurrent and
(may be) overtemperature conditions.
Short to bat cause output disable (bit in OECONFIG is reset) and
needs driver/host intervention.

* TLE8888: save few bytes of RAM

* TLE8888: Lada Kalina is test mule for IDLE stepper on TLE8888

Don't forget to enable PP mode for TLE8888 outputs 21..24:
uncomment line 1087 in tle8888.c

* TLE8888: reorder code, cleanup

* TLE8888: mode all debug/statisctic to per-chip struct

* TLE8888: rework poll interval calculation

* MRE: use TLE8888 pins instead of MCU gpios that drives TLE8888 #2
2020-10-23 12:25:30 -04:00
rusefi e0a5c3dc12 GDI Epic #1448 2020-10-19 22:04:06 -04:00
rusefi 12a720dde2 QC control mode to crash if RPM = 0 and to mark successful 3 minute test with self-stimulation RPM increase #1871 2020-10-11 22:57:31 -04:00
rusefi b77c4ab55a QC control mode to crash if RPM = 0 and to mark successful 3 minute test with self-stimulation RPM increase fix #1871 2020-10-11 22:46:08 -04:00
rusefi 94a6399e56 QC control mode to crash if RPM = 0 and to mark successful 3 minute test with self-stimulation RPM increase #1871 2020-10-11 19:05:56 -04:00
Matthew Kennedy c9fdde4472
remove virtual calls from hot path (#1857)
* const ref-ify

* no virtual 

* even more const

* tests

* fix tests
2020-10-05 16:42:50 -04:00
Matthew Kennedy 5925a5f4bd
const ref-ify trigger (#1856)
* const ref-ify

* tests
2020-10-05 14:22:59 -04:00
Matthew Kennedy 3aa4f2bd97
trigger decode cleanup and perf (#1853)
* trigger decode cleanup

* test config ptr patchup

* disable CDM by default
2020-10-04 19:29:26 -04:00
rusefillc e5b8e0e515 new VVT trigger shape? #1847 2020-10-03 10:39:43 -04:00
Matthew Kennedy c8b4fac456
move scheduling to its own file (#1842)
* move scheduling to its own file

* header

* protip don't include a cpp file
2020-10-01 17:55:03 -04:00
rusefi 5515dc1abe better QC procedure 2020-09-19 16:07:09 -04:00
rusefi 9903b0a1c5 Hellen says merge #1772 Kinetis needs more help 2020-09-10 22:02:02 -04:00
rusefi 370c107793 Hellen says merge #1772 progress 2020-09-10 21:26:21 -04:00
rusefi ec366b68ee Hellen says merge #1772 main relay progress 2020-09-10 21:11:02 -04:00
rusefi a6aa2e9997 Hellen says merge #1772 import idle 2020-09-07 15:08:54 -04:00
rusefi a2f26ac99b Hellen says merge #1772
Hellen says stepper
2020-09-07 14:41:04 -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 ca21d5b4c2 refactoring 2020-09-03 19:29:15 -04:00
Matthew Kennedy 5fc1b6902c
fix #1740 the right way (#1741)
* fix

* put that back
2020-08-31 21:05:04 -04:00
rusefi 5058ffa9cc Default Biquad settings broke MRE QC configuration #1740 2020-08-31 13:07:49 -04:00
rusefi 47b980d4b9 Default Biquad settings broke MRE QC configuration #1740 2020-08-31 12:36:28 -04:00
rusefi 5f125f3db0 this does not go as planned :( 2020-08-31 07:45:52 -04:00
rusefi 86438eab98 HW_CHECK_MODE is not well? 2020-08-31 06:43:47 -04:00
rusefi 77027ec981 VVT support for VAG trigger #883 2020-08-27 00:43:23 -04:00
rusefi 2b77901e53 VVT support for VAG trigger #883 2020-08-27 00:06:10 -04:00
rusefi 10a6661fa5 VVT support for VAG trigger #883 2020-08-26 23:35:11 -04:00
rusefi 70cdbc51b7 VVT support for VAG trigger #883 2020-08-26 13:30:55 -04:00
rusefi ce01c1bfaa VVT support for VAG trigger #883 2020-08-25 13:14:46 -04:00
rusefi c7b73446e2 VVT support for VAG trigger #883 2020-08-25 12:45:25 -04:00
rusefi 540eef5e0d VVT support for VAG trigger #883 2020-08-25 00:59:07 -04:00
rusefi 95bd50da94 VVT support for VAG trigger #883 2020-08-24 01:21:42 -04:00
Matthew Kennedy 184dee68e8
don't call tach from trigger, call from periodic fast (#1704)
* tacho

* fix tests
2020-08-21 15:36:43 -04:00
rusefi 1238dfb837 trigger and VSS hw integrated testing #1668 2020-08-08 11:25:17 -04:00
rusefi a4155bc554 analog temperature inputs validation for quality control 2020-07-27 22:49:59 -04:00
Matthew Kennedy a34201d1d1
fuel math simplifications (#1485)
* simplify

* fix

* tweak

* cleaning

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-06-17 17:15:04 -04:00
rusefi 8e3ea302d0 better solution 2020-06-05 00:43:05 -04:00
rusefi d1a30f362c tuneCrc16 - we use it to match logs to tunes 2020-06-04 20:43:52 -04:00
rusefi 0b5bb7c0cf useFSIO6ForRevLimiter 2020-06-01 09:09:55 -04:00
rusefi a4329169e9 better file name 2020-05-25 13:02:05 -04:00
dron0gus e3fd0a186a
Minor fixes (#1437)
* cmpilation warning cleanup

* exti trigger: mark pins used, handle errors
2020-05-15 18:03:18 -04:00
rusefi ac9faf6646 docs & clean-up 2020-05-10 00:59:32 -04:00
rusefi fcbba66e89 rusEFI online engine crc 2020-05-09 22:43:39 -04:00
Matthew Kennedy 745b0c04ac
pull out std air charge math (#1397) 2020-05-05 08:01:40 -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
rusefi 63403ab741 better error message 2020-04-12 23:24:46 -04:00
rusefi fb06813e12 DBG_TRIGGER_SYNC merged into DBG_TRIGGER_COUNTERS 2020-04-10 13:19:54 -04:00
Matthew Kennedy bc3f0c6b27
More TPS consumers: VE lookup (#1256)
* 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

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-04 08:41:09 -04:00
Matthew Kennedy 8fd9842310
cleanup extern mess (#1237)
* cleanup

* move outside define
2020-03-29 19:06:03 -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 2c809e4475
Remove old monitoring timestamps (#1217)
* remove monitoring timestamps

* adv map

* fuel calc

* map avg

* printing

* spark logic

* hip 9011

* new traces

* s

* missed a few
2020-03-24 20:19:19 -04:00
rusefi 165160bb40 random header clean-up 2020-03-23 09:00:57 -04:00
Matthew Kennedy 397907a06f
Support disabling most/all features (#1162)
* this flag did nothing

* guard features properly
2020-02-26 18:16:35 -05:00
rusefi 241d491625 trigger refactoring 2020-01-26 12:02:54 -05:00
rusefi 51ab9f5b57 reducing code duplication 2020-01-26 06:28:33 -05:00
rusefi 080e7e12db trigger refactoring 2020-01-26 06:12:01 -05:00
rusefi 154b679491 refactoring: de-coupling trigger decoder and engine 2020-01-26 03:48:25 -05:00
rusefi db2ab72d12 refactoring trigger 2020-01-26 03:33:45 -05:00
rusefi 0f23faba28 trigger refactoring 2020-01-25 02:00:33 -05:00
rusefi 3056154fe6 refactoring trigger 2020-01-23 13:39:50 -05:00
rusefi cc1c4c9dcb refactoring - de-coupling trigger 2020-01-22 13:25:35 -05:00
Matthew Kennedy ba0c48e0ac use NT_PER_SECOND instead of convert from microseconds (#1107)
* add NT_PER_SECOND

* missed a few

* inject tooth logger timestamp

* inject
2020-01-19 22:23:41 -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 73a4a92891 functional testing should not be that darn slow #1076
hopefully progress?
2019-12-21 23:27:54 -05:00
rusefi fde9a449cf random refactoring: hopefully not changing byte size of any variables but clarifying/fixing type between ticks, US and MS 2019-12-21 21:11:09 -05:00
rusefi 6ca549ca34 refactoring & fixing build 2019-12-21 20:43:11 -05:00
rusefi af4f20551b getting rid of boardConfiguration / binary compatible change 2019-12-11 17:48:55 -05:00
rusefi c5cfd21a70 just a trivial massive rename: TriggerState > TriggerWaveform 2019-12-08 01:09:39 -05:00
rusefi d6471a84bc Refactor Trigger System #635
injecting callback via parameters instead of nasty "bool isInitializingTrigger" field
2019-12-06 01:57:11 -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
rusefi af60a46229 making progres on angle-based scheduling 2019-11-23 20:36:40 -05:00
rusefi 7b7b46a2a2 refactoring 2019-11-23 18:38:16 -05:00
Matthew Kennedy 93d24dfc0b Merge remote-tracking branch 'origin/master' into perf-tracing 2019-11-19 16:28:58 -08:00
rusefi 5f9fdfe9a6 Revert "Revert "Performance improvement: call GetBaseFuel less (#979)""
This reverts commit 7eb9947fd4.
2019-10-16 23:02:24 -04:00
rusefi 7eb9947fd4 Revert "Performance improvement: call GetBaseFuel less (#979)"
This reverts commit 95e51f13
2019-10-16 22:29:19 -04:00
Matthew Kennedy 95e51f1399 Performance improvement: call GetBaseFuel less (#979)
* Remove extra calls to getInjectionDuration

* increase callback frequency
2019-10-16 22:13:10 -04:00
Matthew Kennedy d6e065f99e Merge remote-tracking branch 'upstream/master' into perf-tracing 2019-10-14 23:45:39 -07:00
rusefi 5a4c7b38cd preparing for #974
code comments & refactoring
2019-10-14 16:04:28 -04:00
Matthew Kennedy 763b17fb50 experiment 2019-10-11 17:43:21 -07:00
Matthew Kennedy 29804cbc8a move tsOutputChannels to header (#970) 2019-10-08 21:02:51 -04:00
rusefi 533087f475 ETB target is using integer values #945
refactoring - ADC mocking is a mess
2019-09-22 09:56:06 -04:00
rusefi e77b703beb Reinitialize TLE8888 if it resets #904
nasty "solution"
2019-09-06 20:30:27 -04:00
rusefi 2804b31e7e cranking fuel live data #911 2019-08-26 23:41:04 -04:00
rusefi 70c74bec0d WTF is wrong with MRE_miata_na6 config? operationMode complexity #898
actually ignoring setting for well known triggers
2019-08-17 22:00:01 -04:00
rusefi f858b26a50 TLE8888 should be re-initialized every time we get +12 volts #901
extremely ugly solution but it it works at least with LED blinking test
2019-08-16 23:00:28 -04:00
rusefi e0acec2a63 WTF is wrong with MRE_miata_na6 config? operationMode complexity #898
fatal error is the best I can come up with quickly
2019-08-08 22:57:22 -04:00
rusefi 539cd8b1c7 current toolchain does not work great with current rusEfi code, two methods with same name are hard for full text search :( 2019-08-08 22:33:52 -04:00
rusefi 643cc24931 WFT is wrong with MRE_miata_na6 config? operationMode complexity #898
more refactoring
2019-08-08 00:32:31 -04:00
rusefi 51110b33ad WFT is wrong with MRE_miata_na6 config? operationMode complexity #898
refactoring to begin with, zero logic change
2019-08-08 00:19:09 -04:00
Matthew Kennedy 21d1b25c5e Remove warmup afr pid (#879)
* config changes

* actually remove from config

* rip out implementation
2019-07-18 18:26:18 -04:00
rusefi 85e5a7b1e7 one dead line 2019-07-13 09:18:09 -04:00
Matthew Kennedy 77075fce3d Fix some maf logic (#880)
* fix maf

* thank you vscode for mangling ANSI -> utf8
2019-07-10 09:14:47 +03:00
Matthew Kennedy e0db83e027 Template-ize bin/value length for interpolation (#878)
* update consumers

* tests

* whitespace

* format
2019-07-09 21:16:36 +03:00
rusefi cdac02429c refactoring: better file name 2019-07-06 20:15:49 -04:00
rusefi 4f939bbe4a refactoring 2019-06-10 11:17:36 -04:00
Matthew Kennedy 95003e9a7b const, explicit, and override (#831)
* const, explicit, and override

* more const

* more const

* missed a spot
2019-06-08 09:51:36 -04:00
rusefi 2ac7d748ac refactoring 2019-05-27 18:58:43 -04:00
rusefi d7fd0ce6c1 refactoring: better method name 2019-05-07 19:32:08 -04:00
rusefi 541c445a2d defined(__DOXYGEN__) ? #748 2019-04-12 22:07:03 -04:00
rusefi be9651cb95 The Big Refactoring of 2019: folder structure #723 2019-03-31 17:44:34 -04:00
rusefi bd2b992918 unifying_file_naming 2019-03-29 09:11:13 -04:00
rusefi a6fe81d07f docs 2019-03-23 08:55:33 -04:00
rusefi 7c1020b17c random progress 2019-03-14 13:28:51 -04:00
rusefi da4fb3a19f better conditional compilation 2019-01-31 17:55:23 -05:00
rusefi ed4fed57fb better conditional compilation 2019-01-31 11:57:15 -05:00
rusefi 1d15885448 C++11 and unique method name 2019-01-22 19:07:36 -05:00
rusefi 53b5c08c0a refactoring around GET_RPM 2019-01-21 21:48:58 -05:00
rusefi 8b0f885a84 I like C++11 :) 2019-01-19 22:31:55 -05:00
rusefi 5b18f9f360 FSIO testability and test-driven development 2019-01-19 22:09:37 -05:00
rusefi 1b0c46aaa7 better fields location, better initialization logic 2019-01-19 21:10:58 -05:00
rusefi 8539ba3271 The Big Refactoring of 2019: configuration version should not be a global variable #656 2019-01-15 21:51:09 -05:00
rusefi 7ad94ccdc1 Trigger: Question: something strange trigger errors #662
second attempt for CUSTOM_ERR_6696 implementation
2019-01-14 11:30:41 -05:00
rusefi 756ad521aa Trigger: Question: something strange trigger errors #662
refactoring towards an improvement
2019-01-14 10:58:38 -05:00
rusefi 5f8d8bd8da The Big Refactoring of 2019: DECLARE_ENGINE_PARAMETER_SUFFIX consistency and simplification #657 2019-01-09 21:31:59 -05:00
rusefi 90baa5ab73 FSIO to stop engine if things are REALLY bad - user-configurable and disabled by default obviously 2019-01-05 23:48:37 -05:00
rusefi 5b74163136 refactoring around "stopEngine" logic 2019-01-05 23:33:04 -05:00
rusefi 0c6f361181 refacoting: making code more consistent 2019-01-05 00:57:09 -05:00