Go to file
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 58e6e283e6.

* 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
.github Bump actions/cache from 3 to 4 (#1165) 2024-01-19 09:09:32 +11:00
lib Move to PlatformIO for project layout 2017-02-06 20:56:46 +11:00
misra Fix command line for cppcheck v11 (#1099) 2023-09-18 15:39:20 +10:00
reference Suzuki K6A Decoder (#1109) 2024-02-02 15:35:30 +11:00
speeduino Suzuki K6A Decoder (#1109) 2024-02-02 15:35:30 +11:00
test Corrected values for 3 cylinder init unit tests 2024-02-02 15:19:11 +11:00
.gitattributes Fix typo in gitattributes 2018-01-15 08:48:36 +11:00
.gitignore Add Microsoft temp files to gitignore 2021-07-06 20:32:18 +10:00
Doxyfile Refactor comms: save 130+ bytes RAM (#906) 2023-02-21 12:55:54 +11:00
LICENSE Add explicit license information 2015-05-29 09:49:44 +10:00
README.md 202311-dev signatures and updates file 2023-10-06 15:01:23 +11:00
contributing.md Update contributing file. Fixes #1004 2023-04-24 15:15:09 +10:00
platformio.ini Fix STM32duino RTC library version to 1.2.0 (#1076) 2023-12-11 13:31:39 +11:00
post_extra_script.py Save 600+ bytes RAM (step 4 of 9) - deduplicate scheduler ISR functions (#1063) 2023-10-07 08:25:26 +11:00

README.md

Speeduino

Release License Build Status Unit Tests badge Sponsors GitHub commits https://img.shields.io/discord/879495735912071269

A low cost, DIY friendly Engine Management System (ECU) based on the Arduino framework

Speeduino

The Speeduino project is a flexible, fully featured Engine Management Systems (EMS aka ECU) based on the low cost and open source Arduino platform. It provides the hardware, firmware and software components that make up an engine management system, all provided under open licenses. With over 1000 installations, Speeduino has matured into a product that meets the needs of the hobbyist and enthusiast community without driving prices to the levels of traditional aftermarket ECUs.

Documentation

The Speeduino online manual can be found at: https://wiki.speeduino.com

Where to Buy

Pre-made Speeduino units/boards are available from a number of official resellers

These resellers all contribute a portion of sales back to the project to allow for continued development to take place and we encourage sales through them whenever possible.

Of course, being open source, you are free to use the design files provided here to create your own hardware!

Support

In addition the manual referenced above, Speeduino has a large and very vibrant community of people to help out with your setup or any questions you might add.

Contributors

This project exists thanks to all the people who contribute, both in terms of code and testing provided. If you'd like to get involved, please have a read through Contributing and then jump on Discord to discuss things further