Commit Graph

201 Commits

Author SHA1 Message Date
Andrey ef3248c245 Mitsubishi 3A92 Support - 3 cylinder #4011 2022-03-19 22:06:19 -04:00
Andrey d8ac904a28 Mitsubishi 3A92 Support - 3 cylinder #4011 2022-03-19 17:57:35 -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 b0c1a8fb2e MAP phase sensing fix #3544
removing dead implementation
2021-12-16 21:28:27 -05:00
rusefillc 9ce37314c0 Engine phase wrap around in log #3645
refactoring & docs
2021-12-02 17:06:20 -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
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
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
Matthew Kennedy 7296593448 remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
rusefillc 8cb1f2545c trigger refactoring & docs 2021-11-14 15:35:11 -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 fd28e82f73 refactoring - magic constant bad 2021-11-07 00:03:16 -04:00
Matthew Kennedy 2c47f603fc make master happy (#3467) 2021-11-05 16:01:13 -04: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
Matthew Kennedy 6b85313b04 nissan 4yl crank pattern (#3462)
* refactoring nissan trigger

* comments

* plumbing

* b
2021-11-05 07:15:03 -04:00
rusefillc 996a39ba6e generate java enum from C enum? generate both C and java from yaml? #2102 2021-10-25 11:05:45 -04:00
Andrey 98fe894ce1 Honda K cam wheels #3405 2021-10-24 17:12:19 -04:00
rusefillc 45e0a0403f very old very dead code 2021-10-20 12:57:07 -04:00
Andrey de5af3f4ca https://rusefi.com/forum/viewtopic.php?f=5&t=2143 Suzuki G13B tooth pattern 2021-10-04 19:29:58 -04:00
rusefillc 6350d0923a https://rusefi.com/forum/viewtopic.php?f=5&t=2143 Suzuki G13B tooth pattern 2021-10-04 11:25:27 -04:00
Andrey 60fdcbbd99 https://rusefi.com/forum/viewtopic.php?f=5&t=2117 2021-09-12 11:56:12 -04:00
rusefi fdab33d958 https://rusefi.com/forum/viewtopic.php?f=5&t=2117
Ford TFI PIP
2021-09-11 23:42:05 -04:00
Matthew Kennedy 98c4e71f03 enable address sanitizer (#3217)
* enable asan

* lua

* this is dead and leaky

* leaky nissan

* fix pwm generator use-after-stack

* initializers

* prevent problems in case of invalid trigger shape

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-09-05 05:56:59 -04:00
rusefillc 67eb6d9936 Subaru svx vvt #3210
helping or not
2021-08-31 06:05:57 -04:00
rusefillc dff71b0764 Subaru svx vvt #3210
helping or not
2021-08-31 05:54:04 -04:00
rusefillc 02bc451221 Pavel says there are issues 2021-08-11 04:16:51 -04:00
Andrey b5313d395e Nissan 4 cylinder QR trigger wheel #3118 2021-08-08 04:56:56 -04:00
Andrey bbd855d62b Nissan 4 cylinder QR trigger wheel #3118 2021-08-08 04:45:40 -04:00
Matthew Kennedy d3ec2b21d1 Use pch in lots of files (#3066)
* most engine.h

* most engine_configuration

* more

* more

* more

* more

* more

* moooooore

* ok I'm done for now

* oops
2021-07-26 01:05:17 -04:00
Matthew Kennedy 2a4dfd0bf8 Fix prepareEventAngles for symmetrical crank triggers (#2982)
* fix and make code legible

* update test to check every tooth

* symmetrical crank

* simplify findTriggerPosition

* make getAngle intelligable
2021-07-17 23:27:20 -04:00
Andrey c9360448cc NB2 trigger shape does not seem to match JimStim #2980
only first steps of unit test
2021-07-17 17:47:32 -04:00
Andrey 39364ced59 kaiju is asking for vq30de trigger wheel decoder #2974 2021-07-17 01:10:13 -04:00
Andrey d76132c206 refactoring 2021-07-17 00:46:39 -04:00
Andrey f69690a36a kaiju is asking for vq30de trigger wheel decoder #2974 2021-07-17 00:27:56 -04:00
Matthew Kennedy e3849b95d5 don't require EXTERN_ENGINE in every file (#2969)
* move enginePins

* no more extern engine

* uses

* more

* extern config too

* put this where it belongs

* include correct header

* merge
2021-07-16 18:13:33 -04:00
rusefillc 206bf7adc8 reducing warnings 2021-07-13 14:50:10 -04:00
Andrey 5416dd9906 refactoring - reusing magic constant 2021-07-05 23:07:36 -04:00
Andrey 2911e128d9 Nissan progress 2021-07-02 19:57:26 -04:00
Andrey 11def6d9e3 Nissan VVT trigger decoder #2887 2021-07-01 22:27:43 -04:00
Andrey fd3aa4ec18 Nissan VVT trigger decoder #2887 2021-07-01 21:48:47 -04:00
Andrey 6c7d2700b3 Nissan VVT trigger decoder #2887 2021-07-01 17:28:52 -04:00
Andrey eefba195d0 VW warnings on cranking #2861
same resilience for some other triggers
2021-06-27 13:29:09 -04:00
Andrey 4627707e1c refactoring - explicit read method 2021-06-26 22:17:07 -04:00
Andrey 25afc6e67c refactoring - explicit read method 2021-06-26 22:11:42 -04:00
Andrey 1003056f85 refactoring - explicit read method 2021-06-26 22:07:45 -04:00
Andrey 7e0d83d54b looks like this parameter is very well used now? 2021-06-21 02:12:14 -04:00
Andrey e4497358f5 Override trigger gaps feature #2734 2021-05-25 17:19:20 -04:00
Matthew Kennedy 5f0791f9fb 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 737ee444b8 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
rusefillc 2547283f45 Kawasaki KX450F trigger wheel #2538 2021-04-09 12:44:28 -04:00
rusefillc 06ada8562b Kawasaki KX450F trigger wheel #2538 2021-04-08 22:16:14 -04:00
Matthew Kennedy db7856523c 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
Andrey G aa05ff195d Hip9011 and cleanups (#2477)
* hip9011: move hipCs out of EnginePins to hip9011 driver

* hip9011: cleanup debug output, save few RAM bytes

* Supress few signed vs unsigned warnings
2021-03-20 08:40:36 -04:00
Matthew Kennedy 925a6ca086 harden against various no-boot scenarios (#2468)
* zero length trigger

* validate config

* validate cylinder count

* wrong type on cylinder count

* invalid comment

* invalid SPI
2021-03-17 09:24:13 -04:00
rusefillc c954803292 TDC Trigger Position #2428
any single-tooth primary trigger should automatically run with "useOnlyPrimaryForSync = true;"
2021-03-08 00:00:48 -05:00
rusefillc 11e8a35c15 Trigger pattern request Škoda Favorit fix #2302 2021-02-06 20:53:30 -05:00
rusefillc 4dc9c013c9 Trigger pattern request Škoda Favorit #2302 2021-02-06 20:12:58 -05:00
rusefillc 0f49d48a42 GM/Daewoo 60/2/2/2 Trigger Pattern #2264 2021-02-02 09:50:20 -05:00
rusefillc 6043d6d8f2 GM/Daewoo 60/2/2/2 Trigger Pattern #2264 2021-02-01 23:18:11 -05:00
Matthew Kennedy a294dfeadd save 1440 bytes (#2226) 2021-01-16 21:22:30 -05:00
Matthew Kennedy c870215c46 part of 2217 which may fix it alone (#2220) 2021-01-11 08:01:54 -05:00
rusefillc 3ed2cdcc72 RAM efficiency of VR crank trigger shapes #2182
Audi OEM 5-cyl trigger pattern aka "Tri-Tach" https://rusefi.com/forum/viewtopic.php?f=5&t=1912
2021-01-04 23:34:19 -05:00
rusefillc da8c1a3ed4 Audi OEM 5-cyl trigger pattern aka "Tri-Tach" https://rusefi.com/forum/viewtopic.php?f=5&t=1912 2021-01-04 21:05:16 -05:00
rusefillc 08e8764051 RAM efficiency of VR crank trigger shapes #2182 2021-01-04 00:26:05 -05:00
rusefillc 6eb11dc60a Audi OEM 5-cyl trigger pattern aka "Tri-Tach" https://rusefi.com/forum/viewtopic.php?f=5&t=1912 2021-01-03 13:52:53 -05:00
rusefillc 4c2ea35269 TT_SUBARU_7_WITHOUT_6 2020-12-13 17:46:48 -05:00
rusefi 1a205b9973 maybe this would just work? 2020-12-13 16:22:02 -05:00
rusefillc 9871d5b501 refactoring: magic constants 2020-12-04 16:24:19 -05:00
rusefillc 45e47220ab 6.1 Hemi V8 decoder #2010 2020-12-04 15:22:53 -05:00
rusefillc eb3dd94390 6.1 Hemi V8 decoder #2010 2020-12-04 00:30:22 -05:00
rusefillc 9a897007c4 FORD ST170 CAM TRIGGER PATTERN fix #2009 2020-12-03 23:54:08 -05:00
rusefillc c6d49e9621 DAIHATSU 3CYLINDER TRIGGER WHEEL SUPPORT fix #2008 2020-12-03 23:12:30 -05:00
rusefillc c9a5a41a2f DAIHATSU 3CYLINDER TRIGGER WHEEL SUPPORT #2008 2020-12-03 21:31:58 -05:00
rusefillc ba0503177c more dead code 2020-12-03 10:49:20 -05:00
rusefillc bcd5e029fa dead code matches Mazda SOHC 2020-12-03 01:36:43 -05:00
rusefillc 238e639c53 dead trigger, this would now be vvt+60/2 2020-12-03 01:22:57 -05:00
rusefillc 7327fd6e6c all triggers should be documented way nicer #2001 2020-12-02 22:17:38 -05:00
rusefillc 9808e675f5 Trigger performance: variable gapTrackingLength #1851
cool change but looks to have made zero difference
2020-10-04 13:05:49 -04:00
rusefi 2836954b9c adding 1+16 trigger 2020-09-28 21:18:47 -04:00
rusefi e46681f552 VVT support for VAG trigger #883 2020-08-26 23:35:11 -04:00
rusefi 22f6063d9f VVT support for VAG trigger #883 2020-08-25 16:19:23 -04:00
rusefi 5718d93c44 another attempt at dead code 2020-08-25 15:58:56 -04:00
rusefi 470a9f5a5a VVT support for VAG trigger #883 2020-08-25 12:45:18 -04:00
rusefi 536fb52365 oh, here it is 2020-08-25 01:38:56 -04:00
rusefi 1b49c57bc1 VVT support for VAG trigger #883 2020-08-25 01:24:15 -04:00
rusefi 7d53f5859d VVT support for VAG trigger #883 2020-08-25 00:59:07 -04:00