* 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>
* Consistent set of div100 functions
* Add typedef for trimTable3d
* Performance: use div100() function
when applying fuel trim corrections
* Silly ARM compiler!
* Unit test fixes
* Fix tests: expected & actual parameters were swapped
* div100(): add 8-bit overloads for completeness
* Fix unit tests
1. Force call to correct div100() overload
2. Use appropriately typed assertion
* Restore use of USE_LIBDIVIDE preprocessor symbol
* Add div360() - encapsulate libdivide use
* Fix copy/paste issue.
* Coolant/RPM Protection
* removed test clear flash option
* Add new update section for coolantProtEnbl rather than using old area
Co-authored-by: Benas <bbrazdziunas@gavea.co.uk>
Co-authored-by: Josh Stewart <josh@noisymime.org>
* Added PWM Fan functionality
PWM Fan output for Teensy and STM32
* Teensy3.5 timer fix for PWM Fan.
* Fix the conflicts with incorporate AFR
* Possibility to use PWM fan on mega too
Not tested at this stage!! Do not merge yet.
* Fix log entry size
* Remove duplicate stuff and use same way off toggling fan
* Fix typo errors
* Move fan pin definitions to globals.h
* Fix problems related to PWM fan.
* Revert previous change.
* Fix problems with idle things
* fix idle duty getting stuck at 100%
* Revert "fix idle duty getting stuck at 100%"
This reverts commit 7e9779483b.
* Revert "Fix problems with idle things"
This reverts commit 8bccb56d9a.
* Revert "Revert previous change."
This reverts commit fcb962864a.
* Remove mega support
* fixes
* more fixes
* moar fixes
* Should be working now
* Update speeduino.ini
* Lots of tweaking
* Update to work better with current FW
* Fix compiler warnings and include update things.
* Minor fixes
* Update logger.ino
* Fan duty working on mega too and fan output will be on/off
Co-authored-by: Pasi Kemppainen <pazi88@users.noreply.github.com>
* Use table_row_iterator_t to adjust ignitionTable
* Separate 2d & 3d table code, abstract page to table iterator conversion.
This is just moving code around in preparation for future changes.
* Reduce table RAM (.bss) usage
Generate a separate type for each possible
3d axis & size combination.
This turns what was runtime information into
compile time data.
* Save 1 byte per table.
Use a flag value (INT16_MAX) instead of a separate boolean
flag
* File renaming
table_iterator -> table3d_iterator.h
table3d.h -> table3d_interpolate.h
table3d.cpp -> table3d_interpolate.cpp
table3d_types.h -> table3d.h
* Optimize page.cpp: reduce code clutter, maintain performance
* Reduce flash usage
* Encapsulate table metadata
* Performance - hoist if statement
* Replace function with macro
* Use a packed enum as a type identifier
Use a packed enum as a type identifier
Slimmer data types
* Use table iterators for random access to table
values and axis.
* Centralize write buffer check
* Encapsulate 16-bit reference concept
* Performance: make table iterators proper classes
This allows us to chain calls on temporaries - not possible
with regular function calls.
* Performance: encapsulate EEPROM update
& address increment
* Save flash - don't duplicate function
* Performance: directly invalidate table cache
* Separate out iterator reversal
* Separate out entity mapping & per-byte access
Much faster, smaller code footprint & easier to understand
* Code quality fixes
* Separate out axis metadata
* Doxygen comments
* Separate int16_ref into separate file
* Separate out table axies & values into separate types
No need for metadata types & more localised code.
E.g. creating iterators is now alongside the data over
which they iterate.
* Doxygen
* Enhanced programmable outputs
Added possibility to set minimum programmable output time.
Added names for the comparators to make it more user friendly, TS will complain about the change for existing tune.
Added more possibilities
Added possibility to set a minimum or a maximum output time
Added possibility to combine any number of rules or all of them
I got a lot of requests for this feature.
Keeps the RAM usage the same.
fix
* Fixed maximum timing
* Fix STM32 build
* Add Doxygen markup for grouping decoders. Tidy-up doucumentation just enough to make
Doxygen 'Modules' page neat / somewhat consistent (w/o stripping any info, on the contrary
some info is now added for few decoders that had only name present).
Add minimally modified Doxygen Doxyfile configuration.
* Document statuses and config* structure members in globals.h:
- Convert existing documentation to doxygen
- Document some of the undocumented members cross-referencing code files
where they are used (often containing good explanations in code comments) or
deriving meaning from code (leave question mark as marker of uncertainty
or need for clarification)
- Same activity in misc .h header files w. struct declarations.
Misc .ino files with code:
- Convert existing code documentation to doxygen
- Add documentation to undocumented functions (deriving idea from raw code and
code embedded comments)
- Some additions to existing documentation.
End sentences with period, as it has many iportant meanings for Doxygen
e.g. auto-brief ends at first-sentence period and in (doxygen generated)
HTML ascii newline does not break lines (or sentences).
Doxyfile: Add README.md file as INPUT from upper (codebase root) directory.
* fix!: fix ODR violations
* refactor: move page specific code into a separate CPP file
* refactor: page getter/setter share mapping logic
Extract common page-to-entity mapping logic from
getPageValue() & setPageValue() - place in map_page_offset_to_entity()
and share.
* performance: optimize CRC calc
Calculate page CRC by iterating over entities & tables.
* CRC table calculation - use table iterator
* refactor: use iterators for sendPage()
Re-implement sendPage() using page & table iterators
Future proof & fast
* refactor: sendPageASCII()
Pull put shared code into functions.
Use table iterator
* refactor: use shared axis factor
This puts the axis factor usage in one place
* refactor: encapsulate page size & count
Added getPageCount() & getPageSize()
* Added static_assert for all pages.
* Remove C++ language elements
namesapces, scope resolution, enum struct
* Rename comms.ino to comms.cpp
Provides better encapsulation of non-global
data & functions.
INO files are all mashed together by some
custom process. So everything becomes global and
static functions/variables aren't really private to
the translation unit. Thus breaking encapsulation :-(
* Added pinIsReserved macro
Function used to don't initialize reserved pins such as USB on ARM boards, each pin must be defined on board.h file
* Update board_teensy35.h
Include Serial and CAN0 pins
Implement functionality to allow a defined output pin to toggle (normal or inverted) based on the idle up input pin.
Co-authored-by: Josh Stewart <josh@noisymime.org>
* Programmable outputs
* Prevent array overflow
* Show fullStatus variables names on dialog
* Further fixes
* Update with master
Co-authored-by: Josh Stewart <josh@noisymime.org>
* [FP] Add injector delay for priming
* Fix build
* Add the startup TPS read back in to ensure proper flood clear check
Co-authored-by: Josh Stewart <josh@noisymime.org>
* 6 cyl sequential related cleanup
* disable 6cyl seq fuel trim tables for now
* add the over 2 squirts fix
* Add 5 and 6 cylinder semi and full sequential
* 5 cylinder changes
* fix priming pulse when using paired or semi-sequential injection
* add 5 cyl special case back
* Add missing 8 cyl stuff
* add missing PW8
* allow to change inj4Ang with non sequential 5 cylinder
* add missing helptext