Commit Graph

3024 Commits

Author SHA1 Message Date
Josh Stewart fedd32e43c Fix build failure when ANALOG_ISR is set 2023-12-01 14:56:14 +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 963f6317ba
Save 600+ bytes RAM (step 5 of 9) - De-duplicate setSchedule functions (#1111)
* initialiseSchedulers: factor out shared code.

* Proxy setFuelSchedule\d through generic
setFuelSchedule() function

* Directly call setFuelSchedule

* Simplify unit tests

* Proxy setIgnitionSchedule\d through generic
setIgnitionSchedule() function

* Directly call setIgnitionSchedule

* Simplify unit tests

* Optimize by partially inlining
the set[Fuel|Ignition]Schedule funcs

* Use the embedded schedule compare
& counter members instead of using
hardcoded individual channel macros.

* Unit test adjustCrankAngle
2023-11-24 09:35:43 +11:00
tx_haggis 1c9122ded3
No need for bit masks on bit fields. (#1139) 2023-11-24 08:07:47 +11:00
Josh Stewart 0dd42a2303 Fix build on mega2560 2023-11-21 17:05: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 011a2ed906 Remove warning about sprintf potential overflow 2023-11-15 08:24:58 +11:00
Josh Stewart 3f32fb48af Correct idle frequency check for Teensy41 2023-11-15 07:26:34 +11:00
155ac 8e1e3296e8
Adds even more info in TunerStudio help bubbles (#1089)
* Adds more info in tunerstudio help

* Wording/formatting changes

---------

Co-authored-by: Josh Stewart <josh@noisymime.org>
2023-11-12 09:08:37 +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
tx_haggis 53d18accf8
Use portable paths (that work on Win & Linux) (#1131) 2023-11-06 18:50:21 +11:00
tx_haggis 9bbd16c81b
Performance: optimize division (#1082)
* Add udiv_32_16

* Apply udiv_32_16() where possible

* Convert udiv_32_16 to assembler
It's worth 20 loop/s

* Remove unused functions

* Remove degreesPeruSx2048 - unused

* Remove angleToTime - replace with direct calls
1. Drop angleToTime()
It's slow, only partially implemented and adds zero value
(and has MISRA violations)
2. Consistent function naming
3. Doxygen

* triggerPri_Nissan360 shouldn't set timePerDegree.
It will be overwritten every loop by doCrankSpeedCalcs()

* Use angleToTimeMicroSecPerDegree() instead of timePerDegree
No loss in performance
Increased injection open/close time accuracy (so unit test values must change)
Can remove timePerDegree global.

* Hide (encapsulate) crank math globals.

* Base all angle to time conversions on decoder computed variables.
This is within 2us of the revolution based method
and is much faster - which is essentially zero percent change.

* Performance: move calculation of degreesPeruSx32768
into decoders.
Remove doCrankSpeedCalcs() - it's doing nothing
at the moment.

* Apply libdivide to triggerSetEndTeeth functions.
Since triggerToothAngle is set once at initialization
time, we can generate the libdivide struct
once and reuse it many times.

* Remove lastToothCalcAdvance - unused

* Replace 16-bit division with shift

* Replace 32-bit divison with 16-bit division

* Avoid 32-bit division; use div100()

* inline percentage()

* Optimize div100()

* MISRA fixes

* Replace magic numbers with #defs

* Replace libdivide structs with inline constants
No perf or memory changes

* Use fixed types for PWM max count variables

* Accurate rounded integer division
* Formalise rounding behavior (DIV_ROUND_CORRECT)
* Apply DIV_ROUND_CORRECT to DIV_ROUND_CLOSEST(),
UDIV_ROUND_CLOSEST(), div100(), div360(),
percentage() & halfPercentage()
* Add, fix & improve unit tests

* Add udiv_32_16_closest()

* Perf: Limit percentage calculations to 16-bits

* MISRA fixes

* Add compare_executiontime() to encapsulate common perf testing code

* Signed to unsigned division

* Convert ignitionLimits() to an inline function.
Slight speed up, probably due to removing
multiple evaluations of macro arguments.

* Split unit tests up.

* udiv_32_16 - check for valid parameters
2023-11-06 09:10:08 +11:00
Josh Stewart 5ad8784976 Add missing include from last commit 2023-11-03 15:37:29 +11:00
Josh Stewart 00f15a6336 Fix misalignment of CAN address and start bytes 2023-11-03 15:23:55 +11:00
Josh Stewart 329a5278a7 Move CAN buffers into the relevant comms files rather than boards
This should resolve #1116
2023-11-03 15:22:11 +11:00
tx_haggis cd3b4dfeaa
Simplify 3D table I/O conversions - save 12 bytes RAM (#1107)
* Simplify 3d table I/O conversions
Saves 10 bytes RAM

* MISRA fix: remove abort() from CONCRETE_TABLE_ACTION

* CppCheck fix (pointer past end of array warning)

* MISRA fixes
2023-11-02 09:08:31 +11:00
Josh Stewart 41eb7b3b85
Initial work on pulsed HW test outputs (#1120) 2023-10-27 10:07:05 +11:00
Vitor Moreno B. Sales f8ffbb13da
Added taper entering DFCO (#1118)
* Added taper for DFCO for ignition and fuel

Used 1 byte of RAM and 4 on page 9

* Moved data to be compatible with DFCO map thres

* Added taper for DFCO for ignition and fuel

Used 1 byte of RAM and 4 on page 9

* Moved data to be compatible with DFCO map thres

* Fixed potential overflow and DFCO tests

* Moved math into functions and added tests

---------

Co-authored-by: Josh Stewart <josh@noisymime.org>
2023-10-25 10:09:57 +11:00
155ac 602203d3e0
MAP Limits for EGO (#1124)
* Map Limits for EGO

* Better update value for not breaking old tunes

my guess is that 300 kpa max will be good for not disabling EGO when using boost now but you can change for what value you think is the best

* Atualizar o updates.cpp

fix my dumbo mistake

* Prevent signed vs unsigned warning

---------

Co-authored-by: Josh Stewart <josh@noisymime.org>
2023-10-24 22:06:53 +11:00
Josh Stewart 00c558ff39 Add chunkWrite command handler for secondary serial (Allows for writes over secondary) 2023-10-24 12:18:00 +11:00
dependabot[bot] 8fa408c598
Bump schneegans/dynamic-badges-action from 1.6.0 to 1.7.0 (#1121)
Bumps [schneegans/dynamic-badges-action](https://github.com/schneegans/dynamic-badges-action) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/schneegans/dynamic-badges-action/releases)
- [Changelog](https://github.com/Schneegans/dynamic-badges-action/blob/master/changelog.md)
- [Commits](https://github.com/schneegans/dynamic-badges-action/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: schneegans/dynamic-badges-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-19 22:45:48 +11:00
Josh Stewart 7cca27ee28 Fix incorrect check from last commit on stm32F11 2023-10-13 14:01:17 +11:00
Josh Stewart 059f4b3adf Restructure CAN code into comms_CAN 2023-10-13 12:25:05 +11:00
Josh Stewart f9d0f0fce2 Add compile warnings for stm32 if arguments have not been configured in boards.txt 2023-10-13 12:21:58 +11:00
155ac 2f711ffdb4
Fix logs not opening in msdroid (#1114)
* Update speeduino.ini

this fix parse problem in the msdroid debuglogs

* fix logs not opening in msdroid

this fix a problem that the logs the msdroid created cannot be open in msdroid itself
2023-10-11 12:26:08 +11:00
Vitor Moreno B. Sales f133b0f613
Moved STM32 definitions from globals to board file (#1117)
* Moved STM32 definitions from globals to board file

Moved definitions from globals.h

Removed old STM32 generic library as this is very old and unused for almost 5 years.

* Remove old stm32_generic build environment from platformio.ini

---------

Co-authored-by: Josh Stewart <josh@noisymime.org>
2023-10-11 12:24:46 +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
Josh Stewart f657fc6293 Add option on secondary serial to use previous generic data list 2023-10-10 15:49:36 +11:00
155ac 279fa09788
Update speeduino.ini (#1113)
this fix parse problem in the msdroid debuglogs
2023-10-09 09:05: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
tx_haggis 977ffa3119
MISRA: clean up logger header (#1108)
* Move log header definitions inside sd_logger.ino
It's the only place they are used.

* Convert to CPP - fixes build error

* Encapsulate fsIntIndex

* MISRA fixes

* Convert logger.ino -> cpp

* Conditonal compile - reclaim memory
2023-10-06 15:07:12 +11:00
Josh Stewart 650efeb6c4 202311-dev signatures and updates file 2023-10-06 15:01:23 +11:00
Josh Stewart 70d3f61573 Signatures for 202310 release 2023-10-06 12:09:43 +11:00
Josh Stewart 484e3916e3 Further cleanup work on secondary comms. Slight RAM free up. 2023-10-06 11:48:05 +11:00
Jon Billings 60c53b8887
fix-eng-protect-min-tooltip (#1020)
The original tool tip says that engine protections won't be active below min rpm.
the code implementation is actually that they won't be active until above the min rpm.
2023-10-06 11:23:12 +11:00
Teemo Vaas a1176742ea
Add initialisation for function pointers. (#1062)
This is just a safety change.
Provides safe initial functions for decoder related function pointers.
Prevents possibly hard to track board reset issues in case some future decoder accidentally leaves any of the functions uninitialised. Or when those pointers accidentally are used before proper values are assigned.

Flash usage 18bytes for atmega2560
Ram usage unaffected.
2023-10-06 11:13:27 +11:00
tx_haggis c0fe20d173
Add missing braces around expressions (#1103) 2023-10-06 10:39:10 +11:00
Josh Stewart f0b6ba030d Increase DFCO Hyster range to 0-500.
Fixes #1100
2023-10-05 23:02:15 +11:00
Josh Stewart 6c16f552a5 Fix for build failure on mega2561 with last commit 2023-10-05 22:38:57 +11:00
Josh Stewart 5140b31829 Initial work cleaning up Secondary Serial incl msDroid compat option
Fixes #1106
2023-10-05 22:24:13 +11:00
Josh Stewart 441b24bc84 Consolidate Secondary Serial live values command. Fixes Real Dash over Secondary Serial 2023-10-05 12:54:22 +11:00
Josh Stewart 94e90c5f63 Temporary workaround for RealDash communication using legacy interface 2023-09-18 16:07:07 +10:00
Josh Stewart 0c6a89b00d Correct mismatching serial block sizes 2023-09-18 16:02:45 +10:00
tx_haggis 294f537cd2
Fix command line for cppcheck v11 (#1099) 2023-09-18 15:39:20 +10:00
Josh Stewart d2c7a19ac1 Allow SD card formatting through TS Native interface 2023-09-18 10:12:02 +10:00
155ac a92ca8d191
Fix TS default values when no base tune is loaded, Fix Issue ( #1080 ) (#1092)
* Fix tunerstudio idle home loop error when no base tune is loaded
Fixes #1080
2023-09-13 09:15:07 +10:00
dependabot[bot] 1c5588ec97
Bump actions/checkout from 3 to 4 (#1090)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-06 09:56:41 +10:00
155ac d2aacf2933
Add More 3D Maps to the TunerStudio and Fixing some Formatting Errors in Some IDEs (#1087)
* add more 3d maps

* fix air con spacing

* convert tab spacing to normal spacing to fix IDE's text formating errors

* some more formating fixes
2023-09-04 10:43:41 +10:00