Skip to content

February 2018 release

Compare
Choose a tag to compare
@noisymime noisymime released this 14 Mar 10:47
· 1519 commits to master since this release

OK, so this one has taken me a LOT longer to get out than normal. Turns out one of the things I've been meaning to sit down and write took a lot longer than I'd first thought and early in Feb around the time I'd normally be looking to do a monthly release, the whole thing was essentially in a million pieces. Rather than trying to cobble it back together in a hurry (Which typically leads to more problems than it solves) I elected to give myself a few more weeks.

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.
To be clear, this work DOESN'T allow for more than a total of 9 ignition and injection outputs on the currently supported hardware. What it DOES allow is the reconfiguring of these 9 scheduled outputs into any configuration of ignition and injection that you want. I'd also stress that this is very much an experimental feature at the moment. For now it will only work on the fuel side of things (ie allowing up to 8 injector outputs), but the ignition side of things should be done shortly. I'll also be getting some documentation written up about how to try this out for anyone interested.

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