Skip to content

Releases: noisymime/speeduino

August bugfix release

17 Sep 22:34
Compare
Choose a tag to compare

This release is being made to address a number of critical bugs that were discovered in the first August release.

Progress Report - August 2018

04 Sep 13:19
Compare
Choose a tag to compare

It's been one of those times when 1 month just wasn't enough for everything I wanted to get done in this month!

The biggest change by far this month are the huge modifications to the ignition timing and scheduling system. At a high level, this has extended the older per tooth timing mode and brings a significant increase in timing accuracy. I'll be doing a full write-up to run over the details of this and there is some work still in progress to give further improvements, but its a very solid step forward. Currently it's limited to only some of the decoders as I go through and write support into the rest and is turned off by default just incase there are any bugs (See the option in the Spark Settings). I strongly recommend giving it a shot though.

In the background, I've also kicked off the work to add interfacing with a knock controller. This remains a WIP at the moment, but should make it to a working state before too long. Further details coming soon ;)

In terms of other bits and pieces, it's a pretty long list this month! Lots a bug fixes and little things that have been added here and there, all of which add up to a pretty solid set of improvements:

  • Sequential decoding on the 4g63 pattern
  • Add a Lost Sync counter
  • Change the rolling cut method to be more aggressive (Now performs a full cut on all cylinders, but not every revolution)
  • Comms change to better support connections with msDroid
  • Fix a regression that meant the ignition table would not be shown in Mega Log Viewer
  • Fix a bug that would lead to inaccurate timing on the Basic Distributor, Miata9905 and Subaru 67 patterns
  • Multiple fixes to the stepper idle control (Homing not completing in some cases and the cranking step value being incorrect)
  • Fix a bug preventing sequential ignition working on 2 cylinder engines

June 2018 release

03 Jul 12:36
Compare
Choose a tag to compare

So some months just end up going in a completely different direction to what you plan....

There had been a few things I was looking at getting stuck into with the firmware this month, but pretty much all of them got bumped by really good requests and suggestions from other people. I want to start by saying a HUGE thank you to those who have jumped on board with the bug/feature bounties as they have lead some of the focus this month, hopefully with benefit to everyone.

The big addition this months comes at the request of Mykk, who generously added a bounty to add nitrous control. To this end, 2 stage nitrous output controls have been added. This includes multi-stage fuel adders for dry shot systems, ignition modifiers, input arming pin and all the usual arming filters (TPS, AFR, MAP, Coolant etc). I genuinely look forward to seeing some videos of this in action!

Other than that, there's been a bunch of things that people have requested at various points, so hopefully this should be a handy update for a few folk. The full list of changes are:

  • 2 stage nitrous control
  • Acceleration enrichment now has a RPM based taper. This scales the AE amount down linearly as the RPMs increase, which allows a more useful enrichment throughout the whole RPM range.
  • Auto switching of TPS reverse calibration. If the TPS is wired with the 5v and Gnd 'reversed', then the calibration will now auto adjust for this without the need to change the wiring.
  • Add an On/Off mode for the locked timing option. This means you can now lock your timing at 0 degrees for testing if needed
  • Fixed a bug that would prevent the missing tooth pattern running correctly at cam speed
  • Many improvements to the 6g72 (6 cylinder) version of the 4g63 decoder. Still needs more testing on vehicle.

So, keep those requests coming and checkout the feature bounty system if you want to help support the project whilst getting your features added :)

May 2018 release

07 Jun 10:53
Compare
Choose a tag to compare

New firmware time and once again I'll start by mentioning how some new firmware is a consolidation and bug fixing effort where I neaten up code and chase down issues that may have been introduced with new features etc. Then there are releases that come with a bunch of those new features. This month, it's the latter :D

Firmware

The big change this month comes around the load methods that are available. Previously there was a single 'algorithm' setting which had speed-density and alpha-n options. This was shared between both fuel and spark. This has now been made considerably more flexible in the code, with the fuel and spark load sources now being separate from one another. This also allows for new load sources (included calculated ones such as MAPxTPS) to be added fairly easily.

Building on the above, there is now an IMAP/EMAP load source that has been added. Explaining the theory behind IMAP/EMAP is far, far beyond the scope of this update, but in short it is a variation of the standard MAP (aka IMAP) that uses the ratio of inlet manifold pressure to exhaust manifold pressure, something that is particularly useful on turbo engines.

In addition to this, I've added what has to be one of the most requested features, an idle up input :D
I resisted adding this for a long while as I felt it was something that should be handled by closed loop idle, but enough people have finally convinced me of it's use that I've added it in.

Tuner Studio

Working with EFI Analytics, there is now the ability for Tuner Studio to automatically find and download ini files. This can be a huge timesaver, particularly for tuners, as it means the an ECU can simply be plugged into a new PC and TS will connect without needing to download the firmware that is already loaded in order to get the ini file. Historic ini files back to April 2016 are available immediately, but there is a small update required to TS itself in order to automatically pickup new ini files as firmwares are released. Keep your eyes out for updates, but this is coming!

Change Log

There are a few other nifty additions this months firmware too, so here is the full list of changes:

  • Introduce IMAP/EMAP as a load source option
  • Split the load methods for fuel and spark. Eg You can now have MAP for the fuel load source and TPS for the spark. Or vice versa. Or IMAP/EMAP + MAP etc.
  • Open loop boost control is back! Many people had asked for this, so the boost table now does double duty, working as either open loop duty cycles or closed loop targets.
  • Idle up input to allow for a single higher idle set point based on an input (Eg A/C)
  • Some bug fixes and improvements to both the simple and PID closed loop O2 algorithms
  • Fixed a bug in the fan on/off logic that may prevent it working under some conditions
  • Added the UA4C board definition from WTMtronics

As always, please report here if you find any immediate bugs with this release.

April 2018 release

01 May 13:39
Compare
Choose a tag to compare

OK, this is a bit of a long update, so bear with me as there’s a few things to go over this month!

Firstly, the good news is that the work around reconfigurable timers from the last update has been finished. Sequential 6 and 8 cylinder combos have been tested and look to be working. This is of particular benefit on 6 cylinder engines that can now be configured to run full sequential fuel with wasted spark ignition. I REALLY need to get some documentation written around this as the method is not entirely clear, but it is there ready to go.

Bug / Request bounties (or "Holy Crap Project Maturity")
A few people have commented (and a couple have already used!) that there’s now a ‘bug bounty’ feature that’s been added on the Github repo. For those who haven’t seen these before, it’s a system that allows a ‘bounty’ to be placed against a bug or feature request in order to gain some developer attention.

So, before everyone rolls their eyes and tells me I’m selling out, I do want to give a little perspective on why this (and other things like the Patreon account) came about. Whilst it’s impossible to get an exact idea of how many people are using Speeduino, I can say with confidence that it has grown significantly over the past 12 months. I’ve long ago given up trying to track number of running engines etc, but I can say that I’ve just shipped out the 800th order from the Speeduino store, which is in addition to those that others have sold, ones people have done themselves etc. In short, what this means is that the user base for the project is now ‘large’, where large is probably somewhere over 500 people with running or active projects. This leads to a LOT of requests for changes, features, bug fixes etc and on any given day I probably work directly with at least 5-10 different people via email/ Facebook/Slack/Forums etc around this. I’ve always balanced my development time between new features that I consider important, bug fixes (ALWAYS prioritising bugs on running engines where I can) and other user feature requests. Unfortunately this does mean that sometime things simply never make their way up the list to the point where I put some time into them.

What I hope is not that this bug/feature bounty system is going to make me a huge packet of money, because it won’t. At most these bounties might get to $50 or so. What they WILL do though is let me see what issues are really important to people, which goes a long way to helping prioritise what short be resolved first. That's not to say critical things with no bounties won't ever get looked at, but their priority will be based on my interpretation of importance alone (As has been the case up to now).

Calculations Dashboard
One thing that a number of people have said can cause some confusion when tuning is trying to figure out exactly what is causing changes in the pulse width at a certain time. Whilst there has always been the GammaE figure that shows the sum of all corrections, it can be difficult to see exactly what is causing that to vary at any given time.
To help aid in tuning, there’s now a custom dashboard that comes with the firmware that shows how both the GammaE and overall pulse width are currently being calculated.
Image
Note: This is currently only showing the value of pulse width 1, so if you are using individual cylinder trims or staged injection, the other channels may differ from this.

Diagramming
One area of the documentation that has always been too light on is the wiring diagrams, which are a critical thing, particularly for beginners. There are a few there, but they’ve varied a bit in style and detail etc. There are a few reasons for this, but one of them is that they can have a bit of a steep curve to get started on, not only finding some software, but also getting suitable images to use within them that aren’t copyright protected to someone else.
To try and make this easier, I’m going to standardise on a tool called draw.io. This is an online (and offline) tool that works well for wiring type diagrams and is available across all platforms (Win/Mac/Linux). As part of this effort, I’ve begun creating a library of relevant automotive drawings (injectors, fuses, sensors etc) that can be imported directly into draw.io. Most of these are ones I have created myself and, critically, are not copyrighted in a way that prevents their use. They are all offered under Creative Commons licenses.
This should not only make it easier for people to start helping out with diagrams if they want, but also give a consistent feel to all the diagrams used across the wiki.

So with that all said, there's also the usual other bug fixes and small improvements. Here's the full list of main changes:

  • Selectable squirts per cycle is now working. Previously Speeduino defaulted to always using 1 squirt per rev (2 squirts per cycle on 4/stroke) unless sequential was used. Whilst this was listed in the documentation, it was less than ideal as other values for this could still be selected in TunerStudio. Note that there remains some issues with 8 squirts per cycle, but all other values should be working.
  • Multiple comms and memory changes to allow for the calculations dashboard
  • Add ability to read EMAP sensors. This uses the same cycle average algorithm as is generally recommended for IMAP. Currently this is only a read variable, use of this for load (Eg IMAP/EMAP) is coming next month
  • Multiple cranking improvements on the Miata 99-05 decoder
  • Boost and VVT control now work on Teensy boards
  • Allow final values in the WUE table below 100%
  • Increase the cranking RPM setting resolution to allow for 10 rpm increments rather than 100
  • Removed a bunch or warnings that may have been coming up when projects were loaded in TunerStudio
  • Fixed a regression that could cause the PWM idle control to not work on startup
  • Negative values are now allowed in the fixed timing field

As always, if there are any issues that appear with this firmware, please post a bug or let me know in the comments of this post

February 2018 release

14 Mar 10:47
Compare
Choose a tag to compare

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

November 2017 release

10 Dec 11:59
Compare
Choose a tag to compare

Not going to lie, the November firmware has been a struggle to get ready to roll! There's been a HEAP of work done around a big new feature (See blow) and it has taken me far, far to many nights getting this all sorted. The gear news though is that it's all set and ready to go!

Without any further delays... The big new feature this month is all around staged injection! Many people have been asking for this for quite a while now, so I'm really glad to be able to get this release out with it finally in place. Staged injection is currently available for 4 cylinder and rotary engines, with support with other configurations being possible in the future if needed. The staged injection works in one of 2 ways:
Via a standard 8x8 3D split map that outlines what % of fuel should be delivered by each set of injectors
In an automatic mode where the system itself takes care of the injector split. This system uses the complete fuel model and means that a user only need to tune the VE table as they would normally and the injector split will be managed by Speeduino.
This should be considered slightly experimental for this month Everything appears to be working as expected, but there have been some HUGE changes in the code to enable this, so it's possible something else got introduced in.
Fix for a critical fuel issue when using Simultaneous fuel mode
Multiple fixes on the stepper idle system. This was previously not homing correctly and may have failed to operated as expected after homing.
External Baro sensors now have their own calibration (Had previously been shared with the main MAP sensor)
Fix for an issue in the newer TunerStudio betas that prevented them reading the ini file. The file encoding has been changed on the ini file to operate with these newer TS versions
Given the nature of some of the bugs that were fixed in December, I would strongly recommend this upgrade for all existing and new users.

As usual, if any issues are discovered, please comment below and I'll look at them immediately.

December 2017 release

04 Jan 22:02
Compare
Choose a tag to compare

Welcome to 2018! I hope everyone has had a terrific time over the Christmas / New Years period, finding some free hours in the shed tinkering :)

The December firmware is now ready to go and has a few nice little tweaks and improvements. The only major new feature is the addition of the Subaru 36-2-2-2 pattern, which seems to be working well (At least 1 engine running on this already)

For those who may not have seen it, I shot a quick video showing the Teensy 3.5 adapter board in action. Whilst these aren't quite ready for everyday use, they are very close
https://www.youtube.com/watch?v=FcTAWZpK1iw
I'd stress that at this point there's no real advantage to using the Teensy and that the Mega2560 is still very much the primary architecture, but this will simply add another option for anyone interested.

Otherwise on the hardware side, I have dropped a new revision of the v0.3 board, v0.3.7. The only change on this board is the addition of a bluetooth header to simplify the use of HC-05 and similar interfaces. Whilst a minor update, this makes it considerably easier to use bluetooth comms with this board, which is an increasingly popular option. I will look to add a similar header on the v0.4 series of boards, however this will require quite a bit more work due to the limited space available.

As usual, there's been the usual collection of bug fixes along the way. Probably more this month than usual! The list of main changes is below outlining these:
36-2-2-2 trigger decoder added
Sync speed on the 4G63 decoder improved. Sync is now obtained within at most 1 crank revolution rather than 2
Fix a bug where the Basic Distributor decoder would not work on 1 cylinder engines
Fix an issue with the Miata 99-05 decoder that caused erratic timing (Timing prediction was functioning at twice the correct rate)
Correctly reset the RUN and ASE indicators to prevent them coming on incorrectly under some startup conditions
Fix a bug where the next ignition event would fail to fire if the over dwell correction had kicked in

October 2017 release

09 Nov 10:35
Compare
Choose a tag to compare

For many (most?) months I hammer away on new features for Speeduino, rigorously trying to get everything set and ready to go for the monthly release cycle. This means that the progress on Speeduino is fairly rapid and the new features are in the hands of users as soon as they're ready to go. What this does mean though is that, every 6 months or so, I sit down and do a bit of a cleanup in what becomes a slightly more boring maintenance release.

So it is for the October firmware release...

This months code drop is all about little bug fixes and cleanups of things under the hood. I have also done a bit of base work around a new ignition timing mechanism which will likely land next month, but overall this release is about tweaking a whole heap of little things:

  • Fixed issue that could cause the RPM reading to spike quickly when first cranking on the missing tooth pattern
  • Fixed a bug where selecting a different output pin for the fan would not work for certain values
  • Fix an issue where Acceleration Enrichment values over 155 could potentially overflow
  • Re-add the ignition count check on the closed loop EGO control
  • Duty cycle is now displayed correctly in TunerStudio when using sequential fuel (DC had previously been double the correct value)
  • Added a pin mapping for the NO2C board
  • Added a dwell gauge within Tuner Studio (And cleaned up the TunerStudio gauge menus)
  • Allow for cranking RPMs below 58rpm without interruption to the fuel schedule (Could potentially miss some squirts below 58rpm previously)
  • smt32: Added a low flash firmware mode that is currently used only with the 'Bluepill' boards

So all in all, a bunch of small little bug fixes and things that help to fix a whole slew of little issues that people had reported. The upgrade is highly recommended for all users and can be downloaded from: https://speeduino.com/wiki/images/f/f4/Speeduino-Oct17.zip

September 2017 release

09 Oct 06:04
Compare
Choose a tag to compare

A little late this month due to a few bugs that have taken quite a lot of time to resolve, but the September firmware is now ready to go. The bugs were in relation to the comms system, which underwent a major rewrite this month to not only improve the stability of connections, but also make the tune transfers [b]significantly[/b] faster. I know a few people experienced some comms issues with the August release and that prompted me to not only fix those issues, but make some major improvements at the same time.

I've also made a lot of small improvements that are specific to the MX5 / Miata plug and play unit (and MX5s in general). I know this doesn't necessarily benefit everyone, but I do want to make sure these are working really nicely before the units go into wider production beyond just the Beta units.

The full list of user facing changes is below:

  • Better starting with the 4G63 (Miata) decoder
  • Fixed a bug where the fuel pump would not finish priming under some conditions
  • The Miata 99-05 (NB) pattern was rewritten to have better sync on startup and be more accurate
  • The VVT table now has an explicit On/Off mode to make it more suitable as a generic RPM/TPS based control
  • Added a rolling limiter option for hard cuts. This will be expanded and made more flexible over the coming months
  • As mentioned above, significantly better comms and EEPROM management which should be both faster and more stable
  • The unused analog pins can now be selected as general outputs for some functions (Eg fuel pump)

Note: The changes to the comms code required the internal memory layout to be adjusted. The system should update itself when it starts for the first time with the new firmware, but PLEASE CONNECT TO TUNERSTUDIO AFTER UPGRADING TO ENSURE THAT YOUR TUNE REMAINS CORRECT!

The firmware bundle can be grabbed from: https://speeduino.com/wiki/images/1/19/Speeduino-Sep17.zip