Commit Graph

32 Commits

Author SHA1 Message Date
Josh Stewart a9642f461a Add option for TunerStudio protocol on secondary serial 2024-08-23 23:21:54 +10:00
Josh Stewart 784cdfac62 Typo fixes 2024-08-13 17:16:33 +10:00
chaoschris 799825ff27
Update init.cpp (#1231)
fixed boost pin definition for BlitzBox pin mapping
2024-08-08 15:00:54 +10:00
tx_haggis 7c14269fc3
Tweak unit tests so they pass on Teensy 3.5 (#1233) 2024-08-02 15:51:23 +10:00
tx_haggis 96dce4429c
Unit test all corrections (#1207)
* 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.
2024-07-30 14:35:20 +10:00
Josh Stewart 3921610a46 Initial knock control for analog external controller input 2024-07-12 08:16:37 +10:00
Josh Stewart 003b1f0631 Initial knock control for use with external controller. Digital mode only supported 2024-07-11 16:14:09 +10:00
Josh Stewart 1d6391a05e Prevent potential divide by 0 on init 2024-06-21 19:41:35 +10:00
nickamuch 40463c51d6
Adding functionality for Honda J series crank decoder. (#1202)
Changes have been tested and are running well on a J32.

Co-authored-by: Nick Amuchastegui <nick@watttime.org>
2024-05-29 14:41:51 +10:00
Vitor Moreno B. Sales 84e63d867e
Fix coil 6 declaration for STM32F407 SPECTRE board (#1215) 2024-05-27 08:15:40 +10:00
Josh Stewart e2f1c67c78 Fix regression that broke tacho sweep function. Fixes #1195 2024-04-03 14:57:47 +11:00
Josh Stewart 9474f659b0 Disable automatic pulldown on Teensy 4.1 analog pins 2024-04-01 15:57:35 +11:00
Daniel Tobias 3a712baf23
Comment typos correction (#1189)
* basic spelling fixes

* basic spelling fixes, external libs
2024-03-21 11:37:45 +11:00
Josh Stewart 6f9348a282 Fixes for CAN init on T41 2024-03-15 16:07:47 +11:00
Teemo Vaas 9c663a75b9
Add check for running schedules (#1134)
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.
2024-02-03 17:25:20 +11:00
Vitor Moreno B. Sales 7c26de6333
Fix eeprom init. and div by 0 on new board (#1170) 2024-02-03 16:55:19 +11:00
mike501 ec54ea8c7d
Suzuki K6A Decoder (#1109)
* 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>
2024-02-02 15:35:30 +11:00
Josh Stewart f49d6ca5d8 Fix erratic pulse issue with 3 and 5 squirt configurations 2024-01-22 17:20:06 +11:00
Josh Stewart 9acfacba5c Fix regression on MC33810 units from af2815d818 2023-12-22 15:06:35 +11:00
Josh Stewart 7d817e3cde Resolve issue with Teensy not sending CAN msgs 2023-12-21 13:40:36 +11:00
Josh Stewart 5d6440f00d Merge branch 'master' of https://github.com/noisymime/speeduino 2023-12-21 08:27:44 +11:00
chaoschris 4b7948e22c
Add support for BlitzBox hardware in speeduino firmware (#1148)
* 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
2023-12-15 14:09:24 +11:00
Josh Stewart af2815d818 Fix issue with LED indicator not working when MC33810 was in use 2023-12-12 10:00:47 +11:00
Josh Stewart 4d4486df4f Minor memory optimisation 2023-12-06 14:47:13 +11:00
tx_haggis d5d4274054
Bug fix: reset control can be enabled but pin can be set to zero (#1142)
* 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
2023-11-28 10:13:00 +11:00
tx_haggis 1c9122ded3
No need for bit masks on bit fields. (#1139) 2023-11-24 08:07:47 +11:00
Josh Stewart 36d22b4832 Allow secondary serial interface to be set on a per board basis rather than MCU only
Fixes #1135
2023-11-21 16:47:24 +11:00
Josh Stewart dd76cfa0e0 Change init for <=3 cylinder Wasted COP to match standard wasted spark
Fixes #1132
2023-11-07 08:51:55 +11:00
Josh Stewart 4cf7141b0b Add environment builds for mega2560 6/3 and 8/1 channel configurations. Add these builds to unit tests 2023-10-11 08:21:47 +11:00
tx_haggis b03db96ad7
Save 600+ bytes RAM (step 4 of 9) - deduplicate scheduler ISR functions (#1063) 2023-10-07 08:25:26 +11:00
Josh Stewart 55c98cab22 Allow mega2560 builds with non-standard _CHANNELS values 2023-10-06 20:43:15 +11:00
Josh Stewart fc536d15f0 Rename all ino files to cpp (Excluding speeduino.ino).
Confirmed this compiles OK in Arduino IDE 2.x
Frees up 8 bytes of RAM
2023-10-06 18:10:20 +11:00