Commit Graph

2943 Commits

Author SHA1 Message Date
rusefillc 917c13ef50 docs 2021-12-26 13:41:10 -05:00
rusefillc 98423f2046 live data 2021-12-26 13:00:17 -05:00
rusefillc 4deb96fca6 live data 2021-12-26 13:00:17 -05:00
rusefillc c647dde007 docs & refactoring 2021-12-26 12:35:41 -05:00
rusefillc 8070da116b E65 2021-12-23 16:59:30 -05:00
GitHub build-firmware Action 251cfa8393 Auto-generated configs and docs 2021-12-23 21:46:59 +00:00
rusefillc 219cc92047 E65 2021-12-23 16:41:06 -05:00
Matthew Kennedy 5642ef07be Autoscale all the things! (#3713)
* Map3D accepts any scaled_channel type

* consistency

* reinstate test

* fix ratio

* throttle, boost, gppwm

* scale ignition and VE

* tests
2021-12-22 08:09:41 -05:00
Matthew Kennedy 2ba4c7844d simplify some table lookups (#3692)
* simplify

* expand interpolation test
2021-12-20 08:14:30 -05:00
Matthew Kennedy fae8b9ec06 clean up timing table defaults (#3705)
* less crazy configs

* cleanup

* make that test happy
2021-12-20 08:02:38 -05:00
rusefillc 7eca4d663b 2 byte table axis #3045 2021-12-19 22:43:10 -05:00
rusefillc c48c65cad1 https://github.com/rusefi/hellen154hyundai/issues/49 2021-12-17 16:39:12 -05:00
rusefillc b0c1a8fb2e MAP phase sensing fix #3544
removing dead implementation
2021-12-16 21:28:27 -05:00
rusefillc 02e31e1555 MAP phase sensing #3544
removing dead implementation
2021-12-16 21:13:55 -05:00
rusefillc 3e154d8549 dead code? 2021-12-16 21:06:23 -05:00
GitHub build-firmware Action 2ebaee92f8 Auto-generated configs and docs 2021-12-16 21:24:43 +00:00
rusefillc 5f3de0d69c live data for wastegate and launch control #3588 2021-12-16 16:19:33 -05:00
rusefillc 7684b66972 live data for wastegate and launch control #3588 2021-12-16 15:17:35 -05:00
rusefillc d84030ac0d live data for wastegate and launch control #3588 2021-12-16 14:47:00 -05:00
rusefillc 5afd6f070d live data for wastegate and launch control #3588 2021-12-16 14:29:39 -05:00
rusefillc f30d0950fd live data for wastegate and launch control #3588 2021-12-16 14:28:01 -05:00
rusefillc 15196828a4 clutch input via CAN #3605 2021-12-15 19:20:07 -05:00
rusefillc 1a3f8d8b32 clutch input via CAN #3605 2021-12-15 17:48:21 -05:00
Matthew Kennedy bdf6583306 smarter priming logic (#3674)
* ignition controller detects rising edge on voltage

* update test

* comment

* ignore negative transients

* tweak

* test

* priming happens on ignition-on

* priming has its own scheduling

* config & UI

* dead config

* implementation

* look, the test caught a bug

* keep the watchdog happy

* bad merge

* changelog

* easier to read the test

* test naming
2021-12-08 16:20:19 -05:00
Matthew Kennedy e80654511d prime upon ignition voltage, not on power on (#3662)
* ignition controller detects rising edge on voltage

* update test

* comment

* ignore negative transients

* tweak

* test

* priming happens on ignition-on

* priming has its own scheduling

* test

* dead adjacent line of code
2021-12-08 07:26:49 -05:00
GitHub build-firmware Action d0a8d9c17a Auto-generated configs and docs 2021-12-08 12:10:47 +00:00
Matthew Kennedy ba8ac5f595 AiM dash (#3673)
* aim dash

* enum
2021-12-08 07:04:59 -05:00
Matthew Kennedy 3d3bf5ea4b ignition controller detects rising edge on voltage (#3636)
* ignition controller detects rising edge on voltage

* update test

* comment

* ignore negative transients

* tweak

* test
2021-12-07 21:28:04 -05:00
Andrey d3afd617d2 MAP phase sensing #3544
new implementation seems complete?
2021-12-07 21:08:25 -05:00
Andrey d2c46b3310 Let's always have TS structure so that unit tests can check values in outputChannels, kind of making outputChannels a god dump for state but whatever since Live View is coming 2021-12-07 20:18:47 -05:00
Andrey c28a24c3d2 MAP phase sensing #3544
new implementation
2021-12-07 20:00:50 -05:00
Matthew Kennedy 3efb9443c3 consolidate tps accel (#3671) 2021-12-07 18:49:21 -05:00
rusefillc 359420e93d Pause CAN broadcast on engine stop #3665 2021-12-07 10:35:52 -05:00
rusefillc c38ae9f148 MAP phase sensing #3544 2021-12-07 08:57:23 -05:00
rusefillc ebc24cd71b https://rusefi.com/forum/viewtopic.php?f=18&t=2236 2021-12-06 21:31:49 -05:00
Matthew Kennedy aa8584d89a calculate per-cylinder ignition timing (#3652)
* simplify cylinder phasing

* per cylinder timing

* s

* s

* s

* why was there a divide by 2?
2021-12-06 21:19:37 -05:00
rusefillc ddbe875d98 MAP phase sensing #3544
trigger sync better gauges/logging
2021-12-06 17:04:05 -05:00
rusefillc 7c5940fcc2 tune via CAN #3361
pauseCANdueToSerial
2021-12-05 21:21:36 -05:00
Matthew Kennedy ba6eec22c8 Alternator controller is engine module (#3663)
* alternator is engine module

* user can't set pid period
2021-12-05 18:33:50 -05:00
Matthew Kennedy b2af3637a2 simplify cylinder phasing (#3650) 2021-12-05 10:46:35 -05:00
Andrei 22785078ef better ignition_voltage_detected message 2021-12-04 01:41:25 -05:00
rusefillc 37ed110750 how many more spelling mistakes?! 2021-12-02 01:06:40 -05:00
rusefillc 01153934f9 Requesting LUA Torque intervention #3638 2021-12-02 01:02:56 -05:00
GitHub build-firmware Action a9de68a552 Auto-generated configs and docs 2021-12-02 05:04:17 +00:00
rusefillc f6c5ac8ebb fix vBatt false-detection 2021-12-01 11:22:13 -05:00
Matthew Kennedy 565a94ea34 Remove the EFI_NO_CONFIG_WORKING_COPY option (#3630)
* no working copy

* oops
2021-11-29 16:44:45 -05:00
rusefillc 3cf4be3aa9 why so many channels are hidden in debug ? #3614 2021-11-29 14:11:19 -05:00
rusefillc 9cfd30a2b4 why so many channels are hidden in debug ? #3614 2021-11-29 11:54:55 -05:00
rusefillc 194cd8ea11 why so many channels are hidden in debug ? #3614 2021-11-29 10:44:41 -05:00
rusefillc ffb35aeff7 why so many channels are hidden in debug ? #3614 2021-11-29 10:16:45 -05:00
rusefillc c64fb3f595 why so many channels are hidden in debug ? #3614 2021-11-29 01:02:40 -05:00
Matthew Kennedy aed334f9ac better VSS configuration (#3542)
* vss uses real values

* some defaults

* test and correct math

* km, not miles!

* comment

* tooltip

* that macro went away

* 100hz and default settings gives 9kph

* changelog

* order of operations safety

* make the test like the pwm test

* housekeeping

* this is why we need sensor automation

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-27 08:49:07 -05:00
rusefillc d791ef5581 skipspark script kills ECU fix #3611 2021-11-25 22:40:19 -05:00
GitHub build-firmware Action ca5ba2f8e8 Auto-generated configs and docs 2021-11-26 02:06:11 +00:00
Andrey e3920a3159 reliable 32/2 trigger shape 2021-11-25 20:45:58 -05:00
Matthew Kennedy dad52dd75a wall fuel tweaks (#3617) 2021-11-25 18:45:44 -05:00
Matthew Kennedy 6e4759389a 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
Andrey 374b7223cd isCylinderCleanupEnabled would be nice by default 2021-11-24 23:32:55 -05:00
Andrey 695557f709 MAP phase sensing #3544 2021-11-24 22:36:36 -05:00
Andrey a42a52bb2e MAP phase sensing #3544 2021-11-24 22:35:56 -05:00
Matthew Kennedy 5752b4ba92 bye (#3609) 2021-11-24 22:03:17 -05:00
rusefillc 28c9d7555b live data for wastegate #3588 2021-11-24 12:59:57 -05:00
Matthew Kennedy 5274cffff3 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
rusefillc 09ed871dad well Lua wants to be BIG 2021-11-23 16:40:04 -05:00
GitHub build-firmware Action 191b76f4dd Auto-generated configs and docs 2021-11-22 23:12:52 +00:00
Matthew Kennedy 9bd8a19564 oh my god we've had no asserts (#3595) 2021-11-22 17:52:03 -05:00
rusefillc 5d55b8538f unusedLogFormat 2021-11-22 13:37:06 -05:00
Matthew Kennedy e2a4504728 rpm calculator refactoring, gm 24x test (#3585)
* data

* stub test

* use getTimeSinceSyncPoint

* s

* s

* no

* test

* stray ;

* those were 1/10 what they were supposed to be

* actually check something

* dead log line?
2021-11-20 14:59:02 +03:00
Scott Smith 04fa1fd410 Fix potential buffer overrun in cyclic_buffer. (#3583)
This exposed a buffer overrun, so double the size of the buffer (to account for 720 degree engine
cycle vs 360 degree crank events).

Also use proper numeric limits when computing min/max.
Finally, add a lock around the call to cyclic_buffer that actually caused the contention.
2021-11-20 03:01:11 -05:00
Matthew Kennedy 569415930c detect more overflows with asan (#3582)
* overflow detector

* type list dynamic allocate

* fix the buffer length

* comment

* pr fb

* sanitize sim

* fix sim sanitizer bug

* didn't mean to turn off optimization for sim

* asan can do that, if you turn it on!

* cleaning
2021-11-20 01:38:39 -05:00
Scott Smith 07d30285fc Basic framework for high pressure fuel pump control (#3476)
* Basic framework for high pressure fuel pump control

* Many changes

Move calculations to fast callback
Move main object into Engine
Respond to pin changes without requiring a reboot

* Use EngineModule for HpfpController
Schedule pin off after executing pin on so we are sure it ends, even if the motor stops.
Test scheduling.
Less RAM use by only having one event and reordering fields.

* Make scheduling test actually useful - need non-0 activation angle.

Co-authored-by: rusefillc <48498823+rusefillc@users.noreply.github.com>
2021-11-19 23:06:51 -05:00
Matthew Kennedy e7956a53f6 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
rusefillc c441d7dd89 debug mode for skipped count for 4 cylinders #3570 2021-11-19 07:02:21 -05:00
Matthew Kennedy a0a1b5e6a0 delimeter is not comma (#3533)
* delimeter is not comma

* do it in config txt

* use txt

* s

* string

* compat

* also, spelling is hard

* use new name

* use new name

* generate enough for happy console

* use an even less common character

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-19 12:01:45 +03:00
Scott Smith aba4e5167e Separate out scheduleOrQueue into it's own standalone scheduler. (#3573)
It's a large enough entity that it shouldn't be buried in ignition logic.
2021-11-18 14:27:21 -05:00
rusefillc 82ffcad01f proportional spark cut #3427 2021-11-17 23:35:26 -05:00
Scott Smith b3e0b28c75 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 659cc68be1 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 f9f13f0bad 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 80091498a6 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 19f7fa8f89 Make engine* and friends be const pointers in production. (#3564)
This allows the compiler to see through the pointer and make accesses faster.
It saves 1336 bytes of text.
2021-11-17 03:53:17 -05:00
Scott Smith dac2ae9b1d 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
rusefillc 774d96493e spelling 2021-11-16 16:46:54 -05:00
rusefillc 6fdb98e84f helping launch enter simulator 2021-11-16 16:45:14 -05:00
rusefillc ed1d24dbbe helping launch enter simulator 2021-11-16 16:31:35 -05:00
Andrey 1be12392c0 proportional spark cut #3427 2021-11-16 13:23:08 -05:00
Matthew Kennedy 7296593448 remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
Scott Smith 2cfc4af998 Start the process of using a global engine ptr for unit tests. (#3551)
* Start the process of using a global engine ptr for unit tests.

Passing around the engine, config, and persistent state wasn't buying anything.  Instead, use
EngineTestHelper(Base) to correctly set and clear the global variables.  Add a dummy check in
case some test tries to set them manually.

* Fix OSX build

* Adapt PR to recently added code.
2021-11-16 00:23:14 -05:00
Andrey b545743f7d Not all launch control options are used #3554 2021-11-15 21:13:01 -05:00
Andrey 349d224b5f technical debt: enableOverdwellProtection #3553
only documentation
2021-11-15 20:32:25 -05:00
Andrey 7b790d36f6 random refactoring: trigger central encapsulation 2021-11-15 20:22:05 -05:00
Andrey 4bc9343d0b refactoring launch 2021-11-15 20:09:03 -05:00
Andrey 837cdf2cfb refactoring launch 2021-11-15 19:55:04 -05:00
Andrey 0a956d96b4 refactoring launch 2021-11-15 19:55:04 -05:00
Andrey c8b733ea6e refactoring launch 2021-11-15 19:34:42 -05:00
Andrey c41dccb5ff refactoring launch 2021-11-15 19:24:00 -05:00
Andrey bc3befd0ac refactoring launch 2021-11-15 18:57:12 -05:00
Andrey bafd5e0e17 refactoring launch 2021-11-15 14:40:35 -05:00
Matthew Kennedy bd04dc8352 less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
GitHub build-firmware Action a29aa50cb0 Auto-generated configs and docs 2021-11-15 03:03:29 +00:00
rusefillc 8448b04078 MAP phase sensing #3544 2021-11-14 21:58:01 -05:00
rusefi 291f815b2d Something something Automatic Compression Release #3442 2021-11-14 15:04:10 -05:00
rusefi df4f122c0b Epic: Remove FSIO #2928 2021-11-14 14:14:43 -05:00
rusefillc 1a3fb4a0db Epic: Remove FSIO #2928 2021-11-14 11:04:51 -05:00
rusefillc 3327b0d4e7 Epic: Remove FSIO #2928 2021-11-14 10:57:19 -05:00
rusefillc 5f1aadf638 Epic: Remove FSIO #2928 2021-11-14 10:39:47 -05:00
rusefillc 0fc4096213 Epic: Remove FSIO #2928 2021-11-14 08:33:19 -05:00
rusefillc eab7f670a2 Epic: Remove FSIO #2928 2021-11-14 07:24:50 -05:00
rusefillc 29670184e2 script settings need names! 2021-11-13 22:47:46 -05:00
GitHub build-firmware Action 2762268d58 Auto-generated configs and docs 2021-11-14 03:02:10 +00:00
Matthew Kennedy 8edc91f657 mercedes two lobe trigger testing (#3543)
* mercedes

* config

* break;

* I did the gap ratio math wrong

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-13 21:50:04 -05:00
rusefillc 4803a6def5 Something something Automatic Compression Release #3442 2021-11-13 04:24:53 -05:00
GitHub build-firmware Action 015a07576d Auto-generated configs and docs 2021-11-13 03:01:55 +00:00
rusefillc d96755ec15 Proteus Harley 2021-11-12 21:56:07 -05:00
GitHub build-firmware Action cf7231a8a0 Auto-generated configs and docs 2021-11-12 01:54:56 +00:00
Andrey 37adc7e713 Bench Test IAC Valve fails #3534
that's not even funny
2021-11-11 20:39:01 -05:00
Andrey 06f7098cae Bench Test IAC Valve fails #3534 2021-11-11 20:31:46 -05:00
Andrey 5136d0b994 Bench Test IAC Valve fails #3534 2021-11-11 20:28:01 -05:00
Andrey 1aca049c47 Something something Automatic Compression Release #3442 2021-11-11 20:16:46 -05:00
Andrey 9aa98cd523 refactoring: less hacky implementation 2021-11-11 20:16:46 -05:00
rusefillc 371f0ca72c Idle valve outputs not available in TS #3523 2021-11-10 20:40:42 -05:00
rusefi 69a53c565f pid demo progress 2021-11-08 17:31:33 -05:00
Andrey 757cd10c1f docs 2021-11-08 12:23:00 -05:00
rusefillc fd28e82f73 refactoring - magic constant bad 2021-11-07 00:03:16 -04:00
GitHub build-firmware Action 2ee8ecb287 Auto-generated configs and docs 2021-11-07 03:59:47 +00:00
rusefillc eb4ef563dd a bit of dead code 2021-11-06 23:39:56 -04:00
rusefillc 3f278e989b a bit of dead code 2021-11-06 21:19:56 -04:00
GitHub build-firmware Action 4dca92f21e Auto-generated configs and docs 2021-11-07 01:05:29 +00:00
rusefillc 31347d66be a bit of dead code 2021-11-06 21:01:01 -04:00
Andrey e3355ab2d3 Remove Miata MX5 NB1 trigger #3488 2021-11-06 20:24:41 -04:00
GitHub build-firmware Action cab19aeba0 Auto-generated configs and docs 2021-11-06 23:15:42 +00:00
rusefillc faa8abf673 a bit of dead code 2021-11-06 18:43:19 -04:00
GitHub build-firmware Action beb2083509 Auto-generated configs and docs 2021-11-06 22:37:34 +00:00
rusefillc 4045893437 PROTEUS_LUA_DEMO 2021-11-06 18:24:59 -04:00
GitHub build-firmware Action b117f260c1 Auto-generated configs and docs 2021-11-06 03:28:22 +00:00
Scott Smith e350b0b6b4 Configuration for HPFP control algorithm. (#3475) 2021-11-05 23:15:35 -04:00
Scott Smith e8633a8cb4 Move fuel density to a header file so it can be accessed by other components. (#3474) 2021-11-05 22:29:56 -04:00
Scott Smith 61fd669add Convert existing tables to use the simpler 3d table definition style in rusefi_config.txt (#3473)
This fixes #3465.
2021-11-05 21:55:33 -04:00
Scott Smith fcac26c032 Allow scaled_channel to have both multiplier and divisor (#3468)
Disallow scaled_channel for float.  I can't think of a reason to allow it, and it gets in the way
of rounding.

Add separate template param to setTable; let the compiler sort out whether assignment can happen
between TElement and VElement without forcing them to be the same at function call time.
2021-11-05 17:34:22 -04:00
GitHub build-firmware Action f3e6b44f89 Auto-generated configs and docs 2021-11-05 19:42:05 +00:00
Matthew Kennedy b41dbe2ed1 nissan MR18DE VVT cam pattern (#3466)
* refactoring nissan trigger

* comments

* plumbing

* b

* enums

* image

* image

* implement decoder

* reshuffle

* don't case unused

* dead trigger enums
2021-11-05 15:33:22 -04:00
rusefillc 2bd0633ecb minor todo 2021-11-05 10:01:58 -04:00
GitHub build-firmware Action 6f2744a5c9 Auto-generated configs and docs 2021-11-05 11:19:56 +00:00
Matthew Kennedy 6b85313b04 nissan 4yl crank pattern (#3462)
* refactoring nissan trigger

* comments

* plumbing

* b
2021-11-05 07:15:03 -04:00
rusefillc 31a2218339 more curves! also names for curves 2021-11-04 23:59:04 -04:00
rusefillc b9861159a1 more curves! also names for curves 2021-11-04 23:19:44 -04:00
rusefi 365a1e13a8 turboSpeedSensorMultiplier 2021-11-04 19:35:58 -04:00
racer-coder 55ac8d56b8 Fix the types in various fuel functions that actually refer to grams, not ms. (#3458) 2021-11-04 11:50:19 -04:00
rusefillc 88d7046382 most dead miata config 2021-11-04 09:56:05 -04:00
Matthew Kennedy cadaf2a801 extract engine phase function (#3456)
* extract getCurrentEnginePhase

* inject engine ref

* never invalid RPM, use 0 instead

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-04 05:46:16 -04:00