Commit Graph

1679 Commits

Author SHA1 Message Date
rusefillc b555d9e82b toothed previous time #4019 2022-03-21 20:41:09 -04:00
Matthew Kennedy f67f65d31d tweak sync parameters for mitsubishi (#4017) 2022-03-21 19:23:48 -04:00
Andrey ce45951f7a Mitsubishi 4B11 support #4013 2022-03-20 11:24:08 -04:00
Andrey fe790bee93 Mitsubishi 3A92 Support - 3 cylinder #4011 2022-03-19 22:24:50 -04:00
Andrey 8b5fdfa852 Mitsubishi 3A92 Support - 3 cylinder #4011 2022-03-19 22:11:51 -04:00
Andrey ef3248c245 Mitsubishi 3A92 Support - 3 cylinder #4011 2022-03-19 22:06:19 -04:00
Andrey 394deca94a Mitsubishi 3A92 Support - 3 cylinder #4011 2022-03-19 21:34:25 -04:00
Andrey 65fe21cf84 Refactoring, technical debt: export more of trigger attributes into triggers.txt file #2077 2022-03-19 20:34:51 -04:00
Andrey d8ac904a28 Mitsubishi 3A92 Support - 3 cylinder #4011 2022-03-19 17:57:35 -04:00
rusefillc 416f9a974d Mitsubishi 6G75 Support #4014 2022-03-19 16:34:40 -04:00
rusefillc faf84286f5 Mitsubishi 6G75 Support #4014 2022-03-19 16:28:06 -04:00
rusefillc 7548fe13f2 Mitsubishi 3A92 Support - 3 cylinder #4011 2022-03-19 15:54:43 -04:00
rusefillc c7cc88ccd0 Mitsubishi 4B11 support #4013 2022-03-19 15:52:42 -04:00
rusefillc d6b1c9faf2 Mitsubishi 3A92 Support (Issue #4011) 2022-03-19 12:01:57 -04:00
rusefillc 9d8c316aff Remove Miata MX5 NB1 trigger fix #3488 2022-01-31 18:20:43 -05:00
rusefillc a80b2dabd7 sporadic HighRevTest testV12 #3806
let's attempt to guess his intentions
2022-01-25 17:24:38 -05:00
rusefillc 22332a4dad sporadic HighRevTest testV12 #3806
is this bug here?
2022-01-25 10:28:35 -05:00
Matthew Kennedy 0dc5ff1941 fix (#3833) 2022-01-24 18:15:18 -05:00
Andrey e0258c4c8e migrating to SensorType::Rpm API 2022-01-20 23:36:09 -05:00
Andrey 5f3324cd6b migrating to SensorType::Rpm API 2022-01-20 23:32:59 -05:00
rusefillc 7b9816d137 Bosch Quick Start on B6 Passat is confused about phase #3812 2022-01-19 20:55:50 -05:00
rusefillc b40c898097 Bosch Quick Start on B6 Passat is confused about phase #3812 2022-01-19 16:42:05 -05:00
rusefillc accc0542b8 Bosch Quick Start on B6 Passat is confused about phase #3812 2022-01-19 16:42:05 -05:00
rusefillc 22f679870a Bosch Quick Start on B6 Passat is confused about phase #3812
running engine proved VVT_BOSCH_QUICK_START to match VVT_SECOND_HALF thus hard-coding phase choice
2022-01-19 01:30:16 -05:00
rusefillc a4479259cf Bosch Quick Start on B6 Passat is confused about phase #3812
OMG :( we were totally not using VVT info of VVT_BOSCH_QUICK_START and VVT_NISSAN_MR and etc etc
2022-01-19 00:48:39 -05:00
rusefillc a2c71f07c6 refactoring: reusing existing flag instead of switch which refers to same thing 2022-01-19 00:48:39 -05:00
Andrey 385f0cc991 Better handling of RPM during stop of cranking #3803 2022-01-17 21:27:10 -05:00
Andrey 19ff671aaf Better handling of RPM during stop of cranking #3803
reuse existing magic constant
2022-01-17 21:18:43 -05:00
rusefillc 2da6593305 Better handling of RPM during stop of cranking #3803
refactoring: reusing existing method
2022-01-17 21:00:49 -05:00
rusefillc ea534a9be1 mk files refactoring 2022-01-06 21:40:48 -05:00
GitHub build-firmware Action e4f828c0a1 Auto-generated configs and docs 2022-01-05 06:49:51 +00:00
GitHub build-firmware Action fd23938b2a Auto-generated configs and docs 2022-01-05 05:09:04 +00:00
Matthew Kennedy 4627bace31 Improve NA/NB miata sync parameters (#3730)
* NA sync parameters

* NB vvt pattern too

* zach's car says tighten the gap

* look at that, we sync one cycle sooner!
2022-01-01 21:39:04 -05:00
Matthew Kennedy c058698859 Nb2 crank sync special case (#3727)
* extract isSyncPoint

* test because why not

* check vvt resync nb2

* custom nb decoder

* test only resyncs once!

* good job valgrind, you found a bug!
2021-12-31 15:47:25 -05:00
Matthew Kennedy d90d6705cf adjustment to #3722 (#3723)
* s

* behold, another bug a test caught

* test

* test generates usable trigger pattern so it works correctly

* comment

* don't need that
2021-12-31 01:21:21 -05:00
Matthew Kennedy 041a3e12a3 extract isSyncPoint function (#3726)
* extract isSyncPoint

* test because why not

* check vvt resync nb2

* clean up noise from test case

* clarify and comment
2021-12-30 11:39:04 -05:00
rusefillc 107eae67e0 docs 2021-12-29 16:18:21 -05:00
Matthew Kennedy 513187decc remove vvtSyncTimeNt (#3722)
* s

* poke

* poke again for science

* kick for science

* kick

* kick

* comment kick

* s

* don't try to compare the array decay pointer to 0 (!)

* collateral damage

* adjust miata sync

* reset trigger states correctly on engine stop

* s

* check synchronized bit

* now we don't need it at all?!

* and *NOT* synced

* start VVT sync earlier
2021-12-28 00:00:26 -05:00
Matthew Kennedy b392a7120e improved noFiringUntilVvtSync logic (#3696)
* s

* poke

* poke again for science

* kick for science

* kick

* kick

* comment kick

* s

* don't try to compare the array decay pointer to 0 (!)

* collateral damage

* adjust miata sync

* reset trigger states correctly on engine stop

* s

* nissan MR too
2021-12-27 12:09:38 -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
Matthew Kennedy 8afee6c233 Honda K 12+1 decoder adjustment (#3694)
* adjust trigger

* real cranking

* mk
2021-12-14 21:10:01 -05:00
Matthew Kennedy 71514cb633 adjust mr18 vvt trigger (#3691)
* adjust mr18 trigger

* second gap, why not
2021-12-13 16:33:34 -04:00
Andrey f5ead049c3 MAP phase sensing #3544
limiting to below cranking RPM limit
2021-12-11 02:56:19 -05:00
Matthew Kennedy d6a0154f79 maybe more working MAP sampling (#3689)
* what if we do this

* cleanup

* s

* test
2021-12-11 03:01:28 -04:00
rusefillc e7dec2a4b9 MAP phase sensing #3544 2021-12-09 22:16:42 -05:00
rusefillc 71542ea6b9 live data this 2021-12-09 22:02:47 -05:00
rusefillc 80c62ce888 MAP phase sensing #3544
gauge name fix
2021-12-08 12:44:43 -05:00
Andrey b8a197d0f0 MAP phase sensing #3544
new implementation seems complete? 360 fix
2021-12-07 21:37:33 -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 0f6c9e15c3 MAP phase sensing #3544
new implementation
2021-12-07 20:00:04 -05:00
Andrey c793b19538 MAP phase sensing #3544
look new unit test!
2021-12-07 16:58:10 -05:00
rusefillc ddbe875d98 MAP phase sensing #3544
trigger sync better gauges/logging
2021-12-06 17:04:05 -05:00
rusefillc e0d5a5afac trigger sync better gauges/logging 2021-12-06 13:08:41 -05:00
rusefillc 2b465be253 MAP phase sensing #3544
option to look for high and low peaks
2021-12-05 14:25:26 -05:00
rusefillc 52d770c2bf MAP phase sensing #3544 2021-12-04 18:47:14 -05:00
rusefillc e0559a8548 MAP phase sensing #3544
taking a step back to happy place
2021-12-04 18:21:10 -05:00
rusefillc f3a3d96fa9 MAP phase sensing #3544
trying longer average
2021-12-04 17:06:59 -05:00
Matthew Kennedy 99367c8348 log actual tooth angle (#3646) 2021-12-02 19:22:33 -05:00
rusefillc 9ce37314c0 Engine phase wrap around in log #3645
refactoring & docs
2021-12-02 17:06:20 -05:00
rusefillc 2476fae92a Engine phase wrap around in log #3645
refactoring & docs
2021-12-02 17:06:20 -05:00
rusefillc 37ed110750 how many more spelling mistakes?! 2021-12-02 01:06:40 -05:00
GitHub build-firmware Action f6d6fab004 Auto-generated configs and docs 2021-12-01 00:36:32 +00:00
Matthew Kennedy faf4801175 remove define_constructor (#3640)
* no define_constructor

* jar

* sim needs live doc
2021-11-30 19:31:54 -05:00
rusefillc 631d71cea7 random note 2021-11-26 15:48:42 -05:00
Andrey e3920a3159 reliable 32/2 trigger shape 2021-11-25 20:45:58 -05:00
Andrey 7fa2fa5707 MAP phase sensing #3544 2021-11-24 23:06:52 -05:00
Andrey 670bd74376 MAP phase sensing #3544 2021-11-24 22:41:49 -05:00
Andrey 695557f709 MAP phase sensing #3544 2021-11-24 22:36:36 -05:00
Andrey 4e45297145 minor progress 2021-11-24 22:35:56 -05:00
Matthew Kennedy 9bd8a19564 oh my god we've had no asserts (#3595) 2021-11-22 17:52:03 -05:00
Scott Smith 9d61fb4cfd Drop SingleChannelStateSequence in favor of MultiChannelStateSequenceWithData (#3519)
* Drop SingleChannelStateSequence in favor of MultiChannelStateSequenceWithData

Most all the users were Multi* anyways, so just improve that:
1. Allow up to 8 waveforms to share one byte per timestamp.  It could be better but this is simple
   and gets most of the benefit.
2. Use a wrapper structure to handle reserving space for the arrays.  Makes the interface simpler
   and more rigid.  Also saves 4 bytes per Multi*.  Downside is access is now via -> and *,
   not . and (nothing).

Saves 224 bytes of BSS, 1832 bytes of RAM4/CCM, 952 bytes of TEXT, and 103 bytes of RODATA

* Instantiate a base_t to make debugging easier.
Also fixes crash on real firmware by using &m_base instead - LTO optimization issue?

* No magical templated StaticAlloc thingy.  Just virtual functions.
2021-11-21 04:56:07 -05:00
Matthew Kennedy b9f8409f59 correctly compute engine revolution number (#3586)
* add param

* first revolution is revolution 0, not revolution 1

* would you look at that, we sync one rev quicker!

* changelog

* rpm value
2021-11-21 09:01:27 +03: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
rusefillc a3fc6d3e80 brave refactoring 2021-11-19 23:56:52 -05:00
Matthew Kennedy 7dee1e42eb adjust miata sync conditions (#3577) 2021-11-19 02:30:05 -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 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 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
Matthew Kennedy 7296593448 remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
Andrey 7b790d36f6 random refactoring: trigger central encapsulation 2021-11-15 20:22:05 -05:00
Matthew Kennedy c1941f3a49 (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 bd04dc8352 less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
rusefillc 8cb1f2545c trigger refactoring & docs 2021-11-14 15:35:11 -05:00
Matthew Kennedy af78ab76cb math is fun (#3545)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-14 15:32:35 -05:00
rusefi 291f815b2d Something something Automatic Compression Release #3442 2021-11-14 15:04:10 -05:00
rusefillc 29670184e2 script settings need names! 2021-11-13 22:47:46 -05: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
Scott Smith 93d31c6c9b Convert TriggerWaveform::wave to a pointer in preparation for code-defined sequences. (#3528)
It will eventually be class to support dynamic universal patterns in addition to ROM-based
tables.
2021-11-11 13:19:25 -05:00
Scott Smith aec887efc8 Change users of MultiChannelStateSequence to use the API (#3524)
Better than reaching into members that should be private. I didn't feel like actually making
them private though, as one user validates pinStates isn't NULL.
2021-11-11 09:19:22 -05:00
Scott Smith 1a299a3221 Move phaseCount into MultiChannelStateSequence (#3520)
We can them drop the field from a bunch of callers, simplifying the code.
2021-11-10 19:47:27 -05:00
Scott Smith 5bd7d8e372 Don't keep a separate MultiChannelStateSequence for the trigger emulator, version 2. (#3517)
All it wants is to use the main trigger state, so don't bother copying it.  Instead, change
PwmConfig to take a const pointer to a Multi.*Sequence, then make all the users adapt.  Worse
fallout is that SimplePwm now has its own Multi.*Sequence, but PwmConfig is downgraded to a
pointer, so that's only a net +4 bytes.  And we can make the overhead of Multi.*Sequence much lower
using embedded arrays, which only the caller can do since it knows the maximum size... (for another
day...)

Also remove SimplePwm's 2nd copy of SingleChannelStateSequence.  It served no purpose.

Saves 1992 bytes of BSS and 24 bytes of RAM4 (latter probably due to SimplePwm change)
2021-11-10 07:01:20 -05:00
rusefillc 38ea0d1835 Revert "Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)"
This reverts commit 4e220dc163.
2021-11-09 20:42:23 -05:00
Scott Smith 4e220dc163 Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)
All it wants is to use the main trigger state, so don't bother copying it.  Instead, change
PwmConfig to take a const pointer to a Multi.*Sequence, then make all the users adapt.  Worse
fallout is that SimplePwm now has its own Multi.*Sequence, but PwmConfig is downgraded to a
pointer, so that's only a net +4 bytes.  And we can make the overhead of Multi.*Sequence much lower
using embedded arrays, which only the caller can do since it knows the maximum size... (for another
day...)

Also remove SimplePwm's 2nd copy of SingleChannelStateSequence.  It served no purpose.

Saves 1992 bytes of BSS and 24 bytes of RAM4 (latter probably due to SimplePwm change)
2021-11-09 14:35:07 -05:00
Scott Smith 9b40e68155 Save ~2800 bytes of RAM by not caching angle->trigger mapping (#3506)
Memory seems more valuable than CPU; use the O(lg n) lookup by angle.  A side effect is that it
seems to fix trigger lookup for the second phase of TRIGGERTYPE 53 544 TT_TRI _TACH 0.00
2021-11-09 07:03:27 -05:00
Andrey 94faa375e1 reducing complexity 2021-11-07 01:57:32 -05:00
rusefillc d0a8bbc974 typo 2021-11-07 01:51:05 -05:00
rusefillc 4f6dc57d31 refactoring - magic constant bad
cypress and kinetis both have this macro already
2021-11-07 01:34:16 -04:00
rusefillc 73fe152db2 refactoring - magic constant bad
cypress and kinetis both have this macro already
2021-11-07 01:28:28 -04:00