* Add unit tests for correctionCranking
* Unit test correctionASE
* Add test_maths_div10_s16_perf
* Make TPS AE tests independent
* Add test_corrections_MAE
* Use RUN_TEST_P to reduce test RAM usage
* Unit test correctionFloodClear
* Unit test battery correction
* Add unit tests for correctionLaunch
* Test repetability - initialiseAll at the start of every test
* Unit test flex & fuel temp corrections, plus minor cleanup
* Unit tests - avoid forward declarations
* Separate out populate_table() from 3D table tests
* Separate calculation of AFR target from correction (and unit test the calculation).
Separation of concerns and will make unit test AFR correction easier.
* Unit test correctionAFRClosedLoop
* Unit test correctionsFuel
* Add populate_2dtable_P test utility function
* Unit test all ignition corrections
* Add compile time buffer overflow check to RUN_TEST_P
* DFCO - test behavior not implementation
* Tweak tests to pass on Teensy 3.5
* Shrink unit test for faster build/upload/execute
We just need the 2D tables wired up, not the whole system initialized.
1. Factor out construct2dTables() from initialiseAll()
2. In the unit tests, call construct2dTables() instead of initialiseAll()
Linker then does the heavy lifting of removing unused symbols
* Add test_correctionsDwell_uses_batvcorrection
* Use TEST_ASSERT_BIT_[HIGH_LOW] instead of TEST_ASSERT_[TRUE|FALSE]
Better failure messages, declares intent
* Igniton corrction test: expand assertions: make sure all corrections test both positive an negative advance values.
* Add AE test assertion: especially for MAE
* Add AE timeout unit tests
* Convert copy/paste 2D table construction code into shared functions
* Disbale knock unit tests until knock implementation is stable.
Add check for running schedules. So that switching from half to full sync only happens when there is no schedules currently running.
This prevents possibility of some outputs sticking open for whole engine cycle immediately after switching.
* Disable SD on T4.1 temporarily to prevent lockups. See #847
* Fix unit test value
* Improve closedloop boost control (#736)
* First try on updating closedloop boost control
* added eeprom updates for backward comp[atibility
* fix merge conflict
* Change updates to next release EEPROM version.
* Fix some issues after merging master
* some cleanup to minimize changes and speedup review
* cleanup updates
* chances on updates to alaign with new table format
* move LUT to new config page in eeprom
* little cleanup
* Update storage.h comments
* fix some ini warnings
Co-authored-by: Tjeerd <tjeerdie@users.noreply.github.com>
* Minor cleanup of boost dialog from previous PR
* Add dynamic EEPROM block write limit based on RPM. Should fix#859
* Only set the idle up pin state on init if it's enabled
* AFR protection function (#861)
* Implementing AFR protection
* Update globals.h
* Bug fixes and code refactoring
* Moved variables to prevent ODR
* Dialog for AFR protection
* Data size and math corrections
* Possibility to use either AFR or lambda
* Updated default AFR protection values
* No need to do multiplications due to existing RPMdiv100 variable
* The X100 multiplier was wrongfully removed
* Add defaults in updates.ino, minor formatting cleanups
Co-authored-by: Josh Stewart <josh@noisymime.org>
* Prevent cranking and ASE corrections running at once. Alternative fix to #868
* Corrected RPM to TPS (#878). Fixes#874
* Fixed value mode for AFR protection (#877)
* bug fix. A workaround for failing emulated on internal flash writes + a root cause fix (#876)
* workaround for failing flash writes
* Root cause fix for EEPROM emulation on STM32
* Oops, remove some debugging functions.
Co-authored-by: Tjeerd <tjeerdie@users.noreply.github.com>
* Correct typos found by codespell (#880)
* Fix broken build on Teensy from #880
* Narrow scope of EEPROM_MAX_WRITE_BLOCK to writeConfig (#881)
* EEPROM_MAX_WRITE_BLOCK can be local to writeConfig()
This saves a byte of memory ;-)
* Fix MISRA/lint warnings
Correctly cast address parameter of eeprom_read_block
Statically access table 3d type_key member
* Remove force burn code - unused
* Replace eepromWritesPending with bit set/check
* Refactor: chain write_location instances.
Clearer code.
* Fix hanging on boot (#858)
* Further fixes to the ASE correction
* Enable use of disabled functions pins (#549)
* Enable use pins of disabled functions or unused ign channels
* Added new pins and functions to check
* Fix for semi-seq inj after #478 (#883)
* Don't try to run inappropriate CI on forked repositories (#871)
* Remove old unused corrections code
* Remove controller priority on trigger edge. Fixes#860
This was added for a specific FW update in 2018 and no longer needed.
* Add engine protection flags to datalog
* Add option for SD logging with external switch
* TS option to display pressure in bar #842 (#864)
Adds options in TunerStudio project settings to have default units
for fuel and oil pressure in bar. Adds gauge in kPa. This only
adds convertion from psi to bar, not affecting firmware.
Co-authored-by: Min <min@infcof.com>
* Fix typo from last commit
* Missing commas in ini
* bug fix EGO PID controller + some improvements. (#879)
* Fix for EGO pid
* Further improvements on ego PID
* Stop EGO controllers from calculating while DFCO is active. To prevent integrator windup.
* Fix bug in DFCO enable/disable of the controller
Co-authored-by: Tjeerd <tjeerdie@users.noreply.github.com>
* Add necessary pin translations (#887). Fixes#867
* Signatures for 202207
* Update README.md
* Update signatures for 202207 in legacy comms
* Dev signatures for 202210-dev
* Volatile decoder variables (#902)
* triggerToothAngle is modified by interrupts
* triggerActualTeeth is never modified in interrupts
* fix check for DFCO off in correctionAFRclosedLoop() (#899)
line 608 has bit-and of configpage6.egotype > 0 & DFCO off.
it should be logical and &&
* cl boost control above baro should use logical and/or (#901)
* libdivide structs can be const - saves a few bytes (#886)
* Add OLCL mode to initBoard() for teensy (#903)
Co-authored-by: csmergs <christopher@smeraglinolo.com>
* Fix for idle PWM on STM32. Enable idle timer when idle pwm is enabled. Fixes#907
Co-authored-by: Tjeerd <tjeerdie@users.noreply.github.com>
* Disable automatic retransmission (#910)
* Allow for float values in SD log where supported with FPU
* Increase most F temp field max values to 419F
* Revert "Merge branch 'master' into DoubleMissing"
This reverts commit bda3d89bf553df40951167870c826792ba92a715.
* recover missing files
* add vvt
* missing files
* fix stall time from debug version
* Revert "Merge remote-tracking branch 'noisymime/master'"
This reverts commit 58e6e283e6c264590b475f7db466fcbfeb86894c.
* initial version
* added speeduino.ini so can select pattern
* fixes to pattern detection and crank angle calcs
* temp fix low speed cranking
* comments on tooth sizes
* fix filters
* update - per tooth ignition doesn't work
* remove debug for decoder & fix spark1 dwell
* Fix merge error with decoders.h
K6A definitions missed on the merge, now added back in
* Change default case for decoder back to RISING/FALLING edge
---------
Co-authored-by: Josh Stewart <josh@noisymime.org>
Co-authored-by: Tjeerd <33102280+Tjeerdie@users.noreply.github.com>
Co-authored-by: Tjeerd <tjeerdie@users.noreply.github.com>
Co-authored-by: larmicfre <49905831+larmicfre@users.noreply.github.com>
Co-authored-by: Daniel Tobias <dantob@users.noreply.github.com>
Co-authored-by: tx_haggis <13982343+adbancroft@users.noreply.github.com>
Co-authored-by: Pasi Kemppainen <48950874+pazi88@users.noreply.github.com>
Co-authored-by: Vitor Moreno B. Sales <vitor.m.benevides@outlook.com>
Co-authored-by: Min <72794870+zceemja@users.noreply.github.com>
Co-authored-by: Min <min@infcof.com>
Co-authored-by: Afroboltski <70011435+Afroboltski@users.noreply.github.com>
Co-authored-by: DeionSi <DeionSi@users.noreply.github.com>
Co-authored-by: Jon Billings <jon.billings@bbc.co.uk>
Co-authored-by: a32guy <turboe30@gmail.com>
Co-authored-by: csmergs <christopher@smeraglinolo.com>
* Add support for BlitzBox in init.cpp
added case 42 for BlitzBox support
* Added support for Blitzbox to speeduino.ini
Added support for Blitzbox to speeduino.ini to get an ECU entry in Tunerstudio
* Enabled spare pins in pin layout
* Reset control pin: don't over-writie the board default with zero.
The added unit tests interfered with each other & hung -
solution is to reinitialize the global context at the start of
each test.
* Additional pin init tests