I can here you all asking "What could possibly be so big that it took so damn long to finish?". Well, for a long time people have been asking about doing more than 4 channels each of sequential fuel and ignition. For various hardware related reasons, there is a hard limit on the total number of scheduled outputs due to the way the firmware is written. Up until now, these were fixed as being either injection or ignition, but following this work, the functionality of these can be altered at compile time, allowing (For example) 8 cylinder sequential fuel outputs and ignition handled by other means. (It also opens up the theoretical idea of having 1 Speeduino for 8x fuel and another for 8x ignition )
So why go to all this effort to break a bunch of things? Well, 2 reasons, though they are related:
- Reconfiguring the functions of the outputs means that Speeduino is no longer locked into only having 4 injection and 4 (Technically 5) ignition outputs. Whilst it's still limited to the same total number of timed outputs, they can be set to different functions. So, if you want to run a fuel only setup, you can now do so with full 8 cylinder sequential.
- As these additional schedules are now all in place and can be turned on/off and reconfigured in a way limited only by the hardware, this means that on MCUs with more timers and IO available, turning on the additional functionality for more sequential outputs is as simple as flipping a switch in the code. Whilst this isn't immediately of benefit, it will be a huge advantage in the future.
Outside of all that work, there was of course the usual bug fixes and tweaks that help improve things all the time. The full list of major changes is below:
- Initial work on dynamic output assignment (As detailed above)
- Fix a sync issue on the Daihatsu +1 decoder for 4 cylinder engines
- Fix a similar (but unrelated) issue on the 24X decoder that could prevent sync
- Improved caching on 2D table lookups
- Added a loops/rev value in TunerStudio. This is useful for benchmarking
- Fix a bug that could cause incorrect pulse widths during cranking (Under 115rpm) when using sequential
- Multiple fixes to the per tooth timing mechanism
- Prevent the Staged Injection option from trying to operate if there aren't otherwise enough injection channels
If there are any issues found with this release, please post a note below.