Version 1.11
1.11.1145 (21 March 2023) (1.11 Update 3)
Bug fixes for IntelliJect firmware
- Fixed a bug in the proportional fuel pump feedback control: when the “rpm enables pump” feature is enabled, and the rpm is zero, the integral term of the feedback control law was not properly initialized, which could lead to fuel pressure overshoot when the engine starts.
1.11.1144 (27 February 2023) (1.11 Update 2)
Bug fixes for IntelliJect firmware
- Fixed bug in CAN log recording that could cause CAN frames to be recorded to the SD card before the engine was running.
New features for IntelliJect display
Added preliminary support for the TouCAN USB to CAN adapter from Currawong Engineering.
Changed build toolchain from msvc2017 to mingw7.3. This reduces the installer size.
1.11.1143 (20 February 2023) (1.11 Update 1)
Bug fixes for IntelliJect firmware
Removed the telemetry data that was dedicated to USB communications status. This data were never used since USB is not supported for real time communications.
Improved robustness of thermistor temperature computation when the measured resistance is very low.
Bug fixes for IntelliJect display
When locking the display layout the strip charts could still be moved and resized. This has been fixed so stripcharts are locked just like the other windows of the display.
Fixed handling of backwards time for comments on the strip charts. Backwards time can occur when the ECU is power cycled, which resets the telemetry clock. Regular strip chart data are correctly adjusted for this, but comments were not - which could lead to spurious chart comments.
New features for IntelliJect
- Added the ability to skip ignition outputs for purposes of improved two-stroke idle stability. Ignition skipping is subject to a throttle and rpm threshold, and can be done in alternating fashion (skip1, skip2), or all at once (skip all, skip none).
1.11.1141 (12 January 2023) (1.11 first release)
New features for IntelliJect firmware
Added the ability to record CAN frames to the SD card. The recording can be done just for frames that IntelliJect is configured to process, or it can be done for all CAN frames. The recording does not include CAN frames that are part of the IntelliJect native protocol (those were already recorded in the SD card). The recording starts and stops along with the normal SD card recording.
Added a new crank sense configuration parameter to specify the angular position of the sensor (for sense 1 and sense 2). This number is not used for crank sense processing, but it is stored by IntelliJect and used by IntelliJect Display to make it more intuitive to configure the crank sense setup.
Added table-specific locking configuration. The global table lock is still available; locking for a specific table is the greater of the global table lock and the table specific lock. This feature makes it possible to have some tables hidden from the end user while other tables are editable.
New features for IntelliJect display
Added the ability to reconstruct a CAN log when parsing an SD card, or when transferring an SD record. This results in a comma delimited text file with one line for each CAN frame.
Added the ability to reconstruct an IntelliGen replay file from a CAN log. The resulting “.gentel” file can be replayed by the IntelliGen display software.
Added configuration of the crank sensor position. Also added the display of the magnet (or sync tooth) angle. The latter value is not part of the crank sense configuration - it is locally computed in the display software using the sensor angle and the synchronization angle.
Added visualization tool for crank sense configuration. This makes it much easier to configure complex crank sensor arrangement correctly. The “Crank Sense Timing” tool has been renamed to “Crank Sense Analysis” and the new visualization tool added as a tab in that window.
Improved the 3D table visualization tool - it is now much faster, works on all architectures, and includes contours and text labels.
Added support for a third exhaust gas analyzer.
Added the ability to see and change all the sensor enable/disable status at the same time in the sensor configuration window.
Added feature to the replay toolbar: “Auto-pause”. When enabled the auto-pause feature automatically pauses a replay when significant events happen: an alarm is triggered, a new sticky error is processed, a user comment is processed, a crank sense timing packet is processed, or an oscilloscope dataset is processed.
Added the ability to specify a symbol for a signal on the strip chart and oscilloscope.
Added two new options to the profile runner: the ability to crank the engine for start, and the ability to automatically take an average data point. These options are specified per-point of the profile, so the user can both shutdown and restart the engine (for thermal cycling) and average data from just the desired parts of the profile. Also changed the profile runner so that it will run even when the engine is stopped.
Added the option to save the results of a configuration comparison to a text file.
Added logic to update the communications settings when opening a project.
Version 1.10
1.10.1131 (21 March 2023) (1.10 Update 9)
Bug fixes for IntelliJect firmware
- Fixed a bug in the proportional fuel pump feedback control: when the “rpm enables pump” feature is enabled, and the rpm is zero, the integral term of the feedback control law was not properly initialized, which could lead to fuel pressure overshoot when the engine starts.
Bug fixes for IntelliJect display
When locking the display layout the strip charts could still be moved and resized. This has been fixed so stripcharts are locked just like the other windows of the display.
Fixed handling of backwards time for comments on the strip charts. Backwards time can occur when the ECU is power cycled, which resets the telemetry clock. Regular strip chart data are correctly adjusted for this, but comments were not - which could lead to spurious chart comments.
1.10.1130 (9 August 2022) (1.10 Update 8)
Bug fixes for IntelliJect display
Fixed bug when opening a project. If the open operation was canceled by the user the operation was not correctly canceled: resulting in a new project in an unexpected location.
Fixed bug with the cooling fan control user interface: entering any value in the trajectory gain would cause the gain to be read as zero - leading to loss of automatic fan control.
1.10.1127 (22 June 2022) (1.10 Update 7)
New features for IntelliJect firmware
Added support for automatic detection of a new EEPROM chip, the BR25G1M–3. This feature is needed to deal with supply chain issues. Hardware built with the new chip will require this version of firmware (or newer) to work correctly.
Added an engine configuration option to disable a running engine by only cutting the fuel (as opposed to cutting fuel and spark). This feature allows an engine to stop more gradually.
Bug fixes for IntelliJect display
- Fixed bug in changing the engine wear data. The revs counter and Hobbs timer were incorrectly limited.
1.10.1126 (29 March 2022) (1.10 Update 6)
Bug fixes for IntelliJect firmware
IntelliJect would erroneously send the lock password when requested via the
Request
packet. This has been fixed so IntelliJect should never send the lock password.A reserved bit in the lock configuration packet has been allocated to indicate that the password should not be changed. This makes it possible to update the lock configuration settings without changing the password.
Bug fixes for IntelliJect display
- When sending a configuration file the lock configuration password will be cleared and the bit set to not change the password. This makes it possible to send a configuration file without changing the lock password, and without causing the IntelliJect to re-lock in the middle of the file send process.
1.10.1125 (16 March 2022) (1.10 Update 5)
Bug fixes for IntelliJect firmware
When restoring settings from factory storage the logbook information would be lost until the IntelliJect was rebooted. This has been fixed.
Improved robustness of the driver for the digital barometer.
Added support for reporting and changing the throttle input PWM limits via the Currawong protocol (CAN or Serial).
Bug fixes for IntelliJect display
The fuel density setting for the max-meter fuel flow meter was not correctly saved and restored in application settings. This has been fixed.
Previously it was possible to erroneously change the fields of a logbook entry by double-clicking on the logbook display. This method of editing did not actually change the logbook in the IntelliJect - only on the display; so, it has been disabled. You must use the buttons or right-click context menu to perform a logbook entry edit.
1.10.1124 (3 February 2022) (1.10 Update 4)
Bug fixes for IntelliJect display
When loading configuration data from a text file (extension “.efitext”) fixed a problem when loading files saved by older versions that used different table names than 1.10.
When loading configuration data from a text file (extension “.efitext”) fixed a problem when loading files caused by use of a non-standard character in some table names.
Changed configuration file save to emphasize use of the binary file format (extension “.efi”) instead of the text file format. The binary file format is more stable and consistent across operating systems. The text file format is still available, but will require users to explicitly type the file name with the extension “.efitext”.
Fixed bug in changing the engine wear data. The hot-time and high-load time values were incorrectly limited to 291 hours in the user interface, rather than the correct limit of 2912 hours.
1.10.1123 (15 January 2022) (1.10 Update 3)
Bug fixes for IntelliJect firmware
- Fixed error in transmission of large packets over CAN when the CAN output buffer does not have enough free space.
New features for IntelliJect firmware
Added support for automatic detection of main oscillator frequency. This feature is needed to deal with supply chain issues that forced a different choice of frequency. Hardware built with new frequencies will require this version of firmware to work correctly.
Added the ability to set the delay time and threshold rpm that are used in the rpm controller to determine when the controller can be engaged. Previously these values were fixed at 5 seconds and 1800 RPM respectively.
Updated IntelliGen protocol support to the latest revision.
Bug fixes for IntelliJect display
- When using the simulator the digital barometer and OAT sensor now work correctly.
New features for IntelliJect display
Removed the “Check for Updates” menu option and changed the software to check for updates every time it starts.
Updated the “About” dialog to show both the latest version available as well as any bug fix updates to the current version.
Added display of the main oscillator frequency in the system window along with the other hardware information.
Changed installer code signing from a standard to an extended validation certificate.
Added logic to automatically re-write known configuration data to the telemetry file if the file is reset.
1.10.1120 (11 November 2021) (1.10 Update 2)
Bug fixes for IntelliJect firmware
Fixed error in CAN auto-discovery outputs for the case where communications settings have packet-over-CAN forced on (this is not the default configuration).
Fixed receive processing error that could cause a CAN frame to be stranded in the receive buffer until a subsequent frame was received.
Bug fixes for IntelliJect display
- Improved processing of CAN auto-discovery.
1.10.1119 (20 October 2021) (1.10 Update 1)
Bug fixes for IntelliJect firmware
Fixed error reporting for barometric pressure sensor in the piccolo and currawong alternative protocols: if both sensors are enabled (analog and digital) the barometric sensor error will only be asserted if both sensors have an error.
Increased amount of time (from 3 to 5 seconds) the digital barometer must be non-functional before an error is asserted - to reduce the chance of spurious error reporting.
Bug fixes for IntelliJect display
Fixed bug that prevented internal settings of display windows from loading when a project was opened. Previously they would only load when the software started.
Fixed logging and charting so that the analog and digital barometric pressure sensors can be logged and charted independently. Previously only the active barometric pressure reading could be charted.
Fixed logging of the volatile and sticky error bit fields. Previously these 64-bit fields were logged to the csv file without regard to the correct ordering of the error bits, now they are logged in the order that matches the communications ICD.
Previously there was no way to set the file information in configuration except by opening a configuration file. Now the file configuration information can be set explicitly in IntelliJect Display.
When saving a configuration to a file, if the name of the file does not match the file information in configuration, IntelliJect Display now prompts to update the configuration file information to match the save file name.
Fixed problem in IntelliJect configuration comparison tool that prevented the comparison data from being displayed.
Improved usability of configuration comparison tool.
1.10.1118 (3 September 2021) (1.10 first release)
New features for IntelliJect firmware
Added throttle failsafe option. If enabled, and if throttle input commands are lost, the throttle will go to a programmable failsafe position. If the failsafe position is 0% the IntelliJect will also be disabled.
Added fuel puddling table. This is an alternative/complementary method of transient fueling.
Added fuel puddling low pass filter option. The time constant of this filter is specified in the injector configuration in units of crank period.
Added feature to specify the injector back pressure in a table. Previously the injector back pressure was assumed to be the manifold pressure - but this was only correct for manifold injection designs.
Added optional injector deficit tracking. If the injector time is greater than the crank period or is negative (which can happen in transient cases), the deficit is accumulated and made up for on subsequent crank events.
Injector duty cycle is now computed with the trim time included (previously it was not). The injector time value in slow telemetry does not include the trim time (as before).
Added configurable throttle derivative time constant. Previously the throttle derivative was computed over 0.25 seconds, now the time interval can be controlled.
Added optional feature for automatic spark advance with altitude. When enabled this feature uses the fuel table to determine a sea level equivalent throttle (or manifold pressure) which is used in the spark table to determine the advance.
Added cooling control feature: if the CHT sensor has failed the feedforward gain is limited to at least 1.0, such that 100% throttle will yield at least 100% cooling.
Added support for CAN connection to the IntelliGen starter generator controller from Power4Flight. This interface can support engine starting and preheat.
Added option to automatically offset the throttle output to account for generator load. This option uses the generator power reported on the CAN bus and the power estimate table to determine how much to offset the throttle. Using this feature will make the engine more tolerant of sudden generator loads appearing at low speeds.
Improved sensor error handling: if a sensor reading is erroneous the reading must subsequently be good for 1 second before the sensor is trusted. Also changed the application of the low pass filter, so the filter is only applied to the sensor reading, not to the failed sensor value that is used when the sensor is out of range.
New features for IntelliJect display
Organized the windows menu to make it shorter by moving charts, tools, and devices to their own submenus.
Improved the user interface for configuring chart signals and made it possible to name charts.
Added more default charts, there are now five default charts representing power, fuel, injectors, generator, and exhaust gas data. Also added the option to reset a chart to its default design.
Added menu option to print all visible charts.
Added Project concept that keeps all recordings within a user selectable project directory. Added tools for creating, opening, copying, and renaming projects.
Added a list of all the table enables to the table display. This list is normally hidden to save screen space but can be turned on with a button. When visible the list shows the enable checkbox for all the tables and makes it possible to change the enable status without changing the displayed table.
Adjusted table cell drawing to make it more obvious when a table is not enabled.
Added the ability to change the visible table from the table visualization window.
New features for IntelliJect simulator (IntelliJect Display and Intelliject Sim)
- Added standard atmosphere model with user control over the altitude. The atmosphere data are used in the engine model, propeller model, cooling model, and sensor models.
Version 1.9
1.9.1097 (21 March 2023) (1.9 update 15)
Bug fixes for IntelliJect firmware
- Fixed a bug in the proportional fuel pump feedback control: when the “rpm enables pump” feature is enabled, and the rpm is zero, the integral term of the feedback control law was not properly initialized, which could lead to fuel pressure overshoot when the engine starts.
1.9.1096 (22 June 2022) (1.9 update 14)
Bug fixes for IntelliJect firmware
Added support for automatic detection of a new EEPROM chip, the BR25G1M–3. This feature is needed to deal with supply chain issues. Hardware built with the new chip will require this version of firmware (or newer) to work correctly.
Improved robustness of the driver for the digital barometer.
Bug fixes for IntelliJect display
- Fixed bug in changing the engine wear data. The revs counter and Hobbs timer were incorrectly limited.
1.9.1095 (29 March 2022) (1.9 update 13)
Bug fixes for IntelliJect firmware
IntelliJect would erroneously send the lock password when requested via the
Request
packet. This has been fixed so IntelliJect should never send the lock password.A reserved bit in the lock configuration packet has been allocated to indicate that the password should not be changed. This makes it possible to update the lock configuration settings without changing the password.
When restoring settings from factory storage the logbook information would be lost until the IntelliJect was rebooted. This has been fixed.
Added support for reporting and changing the throttle input PWM limits via the Currawong protocol (CAN or Serial).
Bug fixes for IntelliJect display
Previously it was possible to erroneously change the fields of a logbook entry by double-clicking on the logbook display. This method of editing did not actually change the logbook in the IntelliJect - only on the display; so, it has been disabled. You must use the buttons or right-click context menu to perform a logbook entry edit.
When sending a configuration file the lock configuration password will be cleared and the bit set to not change the password. This makes it possible to send a configuration file without changing the lock password, and without causing the IntelliJect to re-lock in the middle of the file send process.
1.9.1094 (21 February 2022) (1.9 update 12)
Bug fixes for IntelliJect firmware
- Fixed configuration load error that could be caused by upgrading to newer firmware and then downgrading to version 1.9. The expanded table list used by the newer firmware could corrupt some tables (namely fuel and spark) when the configuration was read out by older firmware following the downgrade.
Bug fixes for IntelliJect display
- Fixed bug in changing the engine wear data. The hot-time and high-load time values were incorrectly limited to 291 hours in the user interface, rather than the correct limit of 2912 hours.
1.9.1093 (14 January 2022) (1.9 update 11)
Bug fixes for IntelliJect firmware
Fixed error reporting for barometric pressure sensor in the piccolo and currawong alternative protocols: if both sensors are enabled (analog and digital) the barometric sensor error will only be asserted if both sensors have an error.
Fixed error in CAN auto-discovery outputs for the case where communications settings have packet-over-CAN forced on (this is not the default configuration).
Fixed receive processing error that could cause a CAN frame to be stranded in the receive buffer until a subsequent frame was received.
Increased amount of time (from 3 to 5 seconds) the digital barometer must be non-functional before an error is asserted - to reduce the chance of spurious error reporting.
Fixed error in transmission of large packets over CAN when the CAN output buffer does not have enough free space.
When enabling an alternative communications protocol the native protocol outputs are suppressed until a native protocol packet is received. This is called “shy mode”. Previously shy mode was enabled as soon as the communications configuration was changed, which could cause problems when updating the configuration. Now shy mode is only enabled at bootup.
New features for IntelliJect firmware
- Added support for automatic detection of main oscillator frequency. This feature is needed to deal with supply chain issues that forced a different choice of frequency. Hardware built with new frequencies will require this version of firmware (or newer) to work correctly.
Bug fixes for IntelliJect display
Improved usability of configuration comparison tool.
Fixed logging of the volatile and sticky error bit fields. Previously these 64-bit fields were logged to the csv file without regard to the correct ordering of the error bits, now they are logged in the order that matches the communications ICD.
When saving a configuration to a file, if the name of the file does not match the file information in configuration, IntelliJect Display now prompts to update the configuration file information to match the save file name.
When using the simulator the digital barometer and OAT sensor now work correctly.
New features for IntelliJect display
Added display of the main oscillator frequency in the system window along with the other hardware information.
Changed installer code signing from a standard to an extended validation certificate.
Added logic to automatically re-write known configuration data to the telemetry file if the file is reset.
1.9.1091 (30 August 2021) (1.9 update 10)
Bug fixes for IntelliJect firmware
Fixed slow SD card data transfer over CAN when the “Smooth CAN” option was enabled. Now when performing the SD card data transfer over CAN the “Smooth CAN” option is ignored until the transfer is complete.
Improved crank wheel decode logic. Previously an expected tooth gap would require the intra-tooth time be at least 150% of the average tooth time. This has been adjusted to 125% of the average tooth time to accommodate low tooth count wheels in combination with high crankshaft acceleration.
1.9.1090 (28 May 2021) (1.9 update 9)
Bug fixes for IntelliJect firmware
Fixed problem with dual crank sensors: high frequency crank sense input (i.e. from a crank wheel) to crank sense 1 could cause the second crank sense input to occasionally miss inputs.
Fixed problem with dual crank sense test mode: previously testmode could only simulate an input to crank sense 1; now test mode can simulate an input to both crank sensors - even if the sensors have dissimilar configuration.
Fixed telemetry data for crank sense 2 synchronization angle when the crank was running in the reverse direction. This bug only affected telemetry output.
1.9.1088 (23 May 2021) (1.9 update 8)
Bug fixes for IntelliJect firmware
Fixed injector output error when using multi-tooth crank wheel sensors. The injector trim time and injector minimum opening time were not accounted for when using multi-tooth crank sensors.
Miss-fire test was not run correctly when using multi-tooth crank wheel sensors.
Fixed glitch with cowl2 output that could occur when using split cooling and the cowl1 pwm output value was 1 microsecond less than the cowl2 output.
Updated PWM outputs for cooling 1 and cooling 2 so the first pulse output is at 0% duty cycle. This prevents initial glitches that could occur as the system is booting up.
Bug fixes for IntelliJect display
Added copyright notice to the firmware file export option.
Updated wording on profile repeat function to make it clearer how it works.
Fixed bug that prevented the profile runner from disabling ignition 1.
Added button(s) to the maintenance view window to clear maintenance records. Without these the only way to clear an erroneous maintenance record was to clear all the data in IntelliJect.
Improved management of the main window to reduce the chance of it appearing off-screen.
1.9.1086 (2 April 2021) (1.9 update 7)
Bug fixes for IntelliJect display
- Fixed a bug in the feature that converts tables from alpha-n to speed-density and vice versa.
New features for IntelliJect firmware
- If the alternative protocol “Piccolo CAN” is selected, and if the spare temperature sensor is enabled and healthy, and if the spare temperature sensor is not being used as an MAT, CHT, or Oil temperature sensor; IntelliJect will output the 0x0440xxxx CAN message to send the spare temperature as an OAT to the Piccolo at 2Hz.
New features for IntelliJect display
- Added a help menu option to export the firmware file that is embedded within the display software. There is no requirement to export this file, this feature is a convenient means of saving the file for purposes of configuration management.
1.9.1084 (23 March 2021) (1.9 update 6)
Bug fixes for IntelliJect firmware
When using the thermistor sensor configuration, if the thermistor was shorted or the thermistor constants were zero, a software exception would occur in the processing of the signal, causing the system to reset. This has been fixed.
Adjusted default setting for 12V sensor low voltage from 11.5 to 11.0 volts, to prevent nuisance low voltage warnings.
Bug fixes for IntelliJect display
- The ctrl-Z and ctrl-Y (undo/redo) shortcuts did not work when a spin-box had the focus. This has been fixed.
1.9.1083 (4 March 2021) (1.9 update 5)
Bug fixes for IntelliJect firmware
When using the test mode packet to calibrate the cooling servo outputs the initial PWM would be incorrect. This has been corrected so that calibration of the cooling servo outputs initializes at the current cooling servo position.
When using the test mode packet to simulate running the engine in reverse the test was not obeyed.
New features for IntelliJect firmware
- Added an option to the cooling configuration to always run the cooling control law, even if the engine is not running. Previously when the engine was not running the cooling outputs followed the throttle output, to facilitate testing of the cooling outputs prior to engine start. Now this behavior can be overridden such that the cooling control laws always run.
Bug fixes for IntelliJect display
The flash programming user interface was simplified. In addition, if the programmer detects that you are downgrading the firmware, or attempting to install test firmware, it will ask for confirmation.
Fixed bug in the test mode display that did not correctly implement the misfire test for spark outputs 2 and 3.
Corrected display of tabs at the top of the configuration window so even when the window is compressed the active tab’s title is not elided.
1.9.1082 (2 February 2021) (1.9 update 4)
Bootloader 10
- The bootloader packet has been extended to include both software version data (when going to the bootloader) and hardware revision data (when coming from the bootloader). Added logic to the bootloader to prevent older (pre 1.9) code from being loaded on rev5 (or later) hardware. Attempting to erase or program with older software will cause the bootloader to ignore the command and issue an erase or program nack. All rev5 hardware will ship with bootloader 10.
Bug fixes for IntelliJect firmware
Updated default fuel pump control settings to better work with the CE370 fuel pump. Also enabled the ‘RPM enables pump’ feature in the default settings.
Fixed minor glitch that can occur on fuel pump output when ramping up from 0%.
Bug fixes for IntelliJect display
Added logic to the flash programming UI that works with bootloader 10 to prevent loading older (pre 1.9) code on newer (rev5 or later) hardware. Attempting to do this will cause a warning to be generated and the program operation will not be enabled.
Added logic to the CAN interface driver and flash programming UI to recognize and handle a stranded bootloader on CAN. A stranded bootloader can occur when older display software attempts to program a rev5 (or later) IntelliJect, which will cause the new bootloader to reject the erase and program commands. The same logic is also useful for handling cases where power is lost during the program operation. Previously such a situation could only be recovered by using the serial interface to talk to the stranded bootloader.
Fixed scrolling stutter in strip charts when plotting realtime data.
If the engine stops while the profile runner is controlling it the profile is stopped; making it easier to resume the profile when the engine is restarted.
Fixed some toolbars to display better when oriented vertically.
New features for IntelliJect display
Added the option to set the minimum time between entries in the csv log file. Normally the file contains one entry for each fast telemetry packet, but this can be overwhelming for long running tests. Data that are not logged can be recovered by replaying the efitel telemetry file with the minimum logging period set to auto.
Added the option to display the time information on the strip chart and profile runner chart as simple seconds versus hours:minutes:seconds.
Added the option to specify the number of times a profile should be repeated. Previously profiles could only be repeated indefinitely. Now the repeat count can be specified as infinite (the default) or a fixed number of cycles. If repeating is on but the repeat count is not infinite the engine will be stopped when the profile cycles are complete.
Added the option to reset the log files when the profile is started and stopped. If the profile is in repeat mode the log file will be reset for each cycle.
1.9.1077 (24 December 2020) (1.9 update 3)
Bug fixes for IntelliJect firmware
- Updated revision 5 hardware support: crank sense hardware on revision 5 does not have hardware inversion like revision 4 and earlier.
Bug fixes for IntelliJect display
Added logic to shut down the profile runner if a network client sends an enable, throttle, or rpm command. This mirrors the same logic used when a local user sends a command. Note that a network client cannot interact with (i.e. cannot resume) a profile on the local machine (although the network client can run their own profile).
Improvements to the distribution of the macOS build of IntelliJect Display. The macOS build is fully functional except: CAN interfaces are not supported, 3D table surface visualization is not supported. The macOS build is now available on www.power4flight.com.
Added logic to request all settings from the IntelliJect anytime the connection method was changed. Previously the request was only done when the status went from offline to online; but that may be insufficient when (for example) switching from the simulator to a real IntelliJect, or switching between different IntelliJects connected on different interfaces (i.e. CAN and Serial).
Fixed problem with network client connections. Previously only dotted decimal (like “127.0.0.1”) addresses were allowed, now resolvable names are allowed as well (like “localhost”).
Fixed right-click mouse bug on charts: previously right click operations could inadvertently leave the chart in drag mode.
1.9.1070 (7 December 2020) (1.9 update 2)
Bug fixes for IntelliJect firmware
Fixed a bug in the implementation of maximum ignition dwell time for the spark3 output.
Fixed incorrect packet configuration in SD card recordings. Telemetry packets should be recorded using the special SD card packet format but were instead recorded in the normal format.
Fixed SD card recording when the engine stops. Previously as soon as the RPM went to zero the recording stopped (unless always record was set). Now recording continues for 20 seconds after the engine stops - preserving key data which may be needed to determine why the engine stopped.
Fixed SD card configuration recording. The IntelliJect configuration is written to the sd card when a record is first created (typically when the RPM first becomes non-zero). Previously if the engine was stopped, and configuration changes subsequently made, those changes would not be recorded to the card, which could make analysis of the data confusing. Now, if a record has been created, and if a configuration or command change is made, the data will be recorded to the card even if the engine is stopped.
Fixed SD card dangling data write. SD card data can only be written in blocks of 512 bytes, and the firmware waits until 512 bytes of data are waiting to be written before performing the transfer to the card. However, after the engine is stopped it is possible that some data could be waiting which will never be transferred to the card. Now, if data have been waiting in the transfer buffer for more than 5 seconds the data are flushed to the card (and the remaining bytes of the sector are set to 0xFF).
Fixed incorrect resistor value in revision 5 temperature sensor support.
Bug fixes for IntelliJect display
Fixed compile failure in the IntelliJect Comms SDK.
Ported new CAN automatic discovery feature to the IntelliJect Comms SDK.
Fixed bug in window menu that would indicate a window was visible even though it was tabbed under other windows.
Fixed bug in SD card parsing that did not correctly convert the SD card packet to a normal packet before writing to the output file.
Made replay packet processing more flexible so it can correctly detect both normal and SD card packets during replay. This is needed to make the display software correctly replay SD telemetry files that were parsed with older software.
Reverted Qt from version 5.15 to 5.12 to fix crash bug in table surface visualization. This reversion also removes the feature to display the CAN bus status.
Fixed names of table plots, the plot labeled rows was plotting columns and vice versa.
Improved the feature that allows you to drag a table plot point or line on the converted table graphic (i.e. the conversion of the table from alpha-n to speed-density or vice versa). Now, when dragging the table converted to speed density, the resulting table will use indices that match the original alpha-n table, rather than the indices of the map estimate table.
Fix for hiding the surface plot (via checkbox on table visualization).
1.9.1064 (18 November 2020) (1.9 update 1)
New features for IntelliJect firmware
- Added CAN auto-discovery output frames. These are designed to make it easier for other users of the CAN bus to determine the correct address information used to talk to IntelliJect. See the communications ICD for more details.
New features for IntelliJect display
Added logic to take advantage of the new auto-discovery CAN frames. In addition, improved the CAN auto-discovery logic for older firmware which does not output the new frames.
Changed communications selection dialog to present the option to automatically discover the IntelliJect CAN configuration. The communications dialog also shows a list of all IntelliJects that were discovered on the CAN bus.
Bug fixes for IntelliJect display
The feature that automatically adjusts communications settings when the IntelliJect communications configuration was changed was not working. This has been fixed so that CAN or serial settings can be changed, and the display software will adjust accordingly to maintain communications.
Added logic to reset the log file, strip charts, and re-request all settings if the IntelliJect serial number changes. This could occur if, for example, an IntelliJect is disconnected and new one connected without restarting the display software.
1.9.1061 (3 November 2020) (First release of 1.9)
New features for IntelliJect firmware
Added option to smooth CAN outputs. When enabled the CAN telemetry output frames are spread in time to reduce the buffering requirement for receiving equipment. This option is turned on in the default configuration.
Added new sensor configuration options for temperature sensors. In addition to supporting thermistors the firmware now lets you specify temperature reference, resistance reference, temperature coefficient of resistance for RTDs, and shape constant for thermistors. The added options make it easier to configure the calibration and increase the choice of sensors that can be used.
Added support for revision 5 IntelliJect hardware. Revision 5 uses factory configurable pull-up + parallel resistors for the temperature sense circuitry. This makes it possible to use thermistors, expanding the options for temperature sensing. Previous sensor types are still supported by the new hardware. Older IntelliJect revisions with current drivers are still fully supported. Version 1.9 is the oldest firmware that will support revision 5 hardware.
Added option for redundant injector operation. When enabled this will divert fuel flow from a faulted injector to the next injector that is enabled and not faulted. Injector redundancy only makes sense if the injectors are feeding a common intake manifold.
Added option to use injector 2 or injector 3 output to operate an oil injection pump. Three new tables were added as well as new injector configuration options to control the amount of oil injection. In addition, the spare temperature sensor can be used to measure oil temperature.
Added integration of the Millswood PMU (power management unit) connected via CAN bus. The communications configuration option previously called “Enable NWGCU” is now “Enable GCU”; reflecting support for both the Northwest and Millswood units. The GCU telemetry packet now reports the source of GCU data, and if the Millswood is detected, includes key metadata such as PMU temperature, and generating, charging, and cranking status.
Added start bit to the Enable packet. If the Millswood PMU+starter is detected, and if the IntelliJect is enabled, setting the
crankEnable
bit in the Enable packet will cause IntelliJect to command the Millswood to crank the engine. The cranking operation can be terminated by clearing thecrankEnable
bit; note that the cranking operation will automatically stop if the engine starts or the crank timer on the PMU times out.Added fuel pump configuration option: the fuel pump rate limit can now be set differently for increasing versus decreasing output. This makes it possible to soft start the pump with a non-zero positive rate limit and have no rate limit for turning the pump off. This configuration is appropriate for positive displacement pumps that are used in bang-bang control mode. The range of the available rate limit has also been increased by a factor of 10 to a maximum of 12750 %/s to allow faster rates.
New features for IntelliJect display
Improved ability to download latest version from the website. Previously the download operation was delegated to the operating system, now it is handled locally by the application and an option provided to automatically run the installer.
Added table plots to the table configuration window (as sub-tabs). These plots are the same as the plots in the table visualization window. However, the plots in the table configuration window can be used to modify table values by clicking and dragging on individual points (or right-clicking and dragging to change entire lines).
Added the ability to interpolate table color information along with table values.
Changed the order of the row axis variables in the tables and windows that display table data. Previously this data were shown with the smallest value on top; this has been reversed so now the highest value row indices are on top. In addition, the throttle and RPM command bars have also been reordered to show the highest values on top (when oriented vertically).
Improved crank timing display: added the ability of the display to detect and show missed teeth in the crank timing data; and added option to save the crank timing intervals to a .csv file for analysis.
Added the ability to clear sticky errors during replay. This is done by reconstructing sticky errors locally in the display during replay.
Added logic to support backwards time in the strip charts. Backwards time will occur if the IntelliJect resets; in which case the old strip chart data will have its time shifted so the data remain time continuous (this will result in the old data have a negative timestamp).
Added a vertical bar indicator to the gauges window to display the cooling percentage. If the cooling fan is doing closed loop control this gauge indicates the percentage of cooling fan output; otherwise this gauge indicates the cooling output from IntelliJect.
Added a light to the status bar of the main window to indicate the CAN bus status from the device that connects the PC to the CAN bus.
Added a splash screen to the IntelliJect display application.
Changed icons for the IntelliJect display application and installer. The new icon replaces the P4F logo with the IntelliJect logo (which is the P4F logo with a stylized fuel gauge).
Changed NIDAQ (National Instruments Data Acquisition) implementation. Previously only one task could be loaded at a time, now all tasks that are defined on the system are loaded and run simultaneously. Any task whose name includes “null” or “donotuse” is skipped.
Added GCU user interface. This interface reports the source of generator control unit data, as well as key telemetry. The interface also provides a start button that can be used to command the Millswood GCU to crank the engine.
Added new button to the main toolbar to crank the engine for starting. This button is only visible if a Millswood PMU+starter is detected.
Added new variables to the log including: new GCU data and oil injection data.
Changed acceptance test report to show the average WOT (wide open throttle) RPM rather than the peak.
Added new toolbar which can be used to show data variables. The variables are selectable in the same way that variables on the gauges dashboard are selectable. All such selectable variables will show red labels if IntelliJect indicates there is a problem with that signal.
Added automatic resumption of profiles following application restart. This is an optional setting that will resume a profile if a profile was running when the application shutdown and if the engine is running when the application restarts. This feature is useful for long tests in which operating system restarts may occur.
Added feature to periodically reset the log files. From the logging toolbar you can select the size limit for the log file which can be: no limit (the default), 2K lines, 16K lines, 64K lines, 256K lines, 1M lines, 10 minutes, 1 hour, 8 hours, or 24 hours. If the selected limit is exceeded the log files are reset (the same as if you chose “Reset log files” from the file menu). This feature is useful for keeping the log files tractable when doing long running tests.
Improved logging toolbar; you can now open the log or average file directly from the toolbar by clicking on the “Log” or “Avg” link respectively. IntelliJect Display will tell the operating system to open the file using whatever system application is set for .csv files. The files are already open by IntelliJect Display, so whatever application opens the file can only do so in read-only mode.
Added notification feature: IntelliJect Display can now send e-mail notifications for selectable events, errors, and alarms.
Added option to the cooling fan Modbus connection to automatically reconnect the interface. Also limited the rate at which the fan control commands are output to be 1Hz, even if the slow telemetry rate is faster.
Added ability to show three head temperatures (instead of just two) in the temperature strip on the gauges display. The third head temperature is enabled if the spare temperature is configured as CHT.
Improved dual cooling fan control to better handle the case for a failed CHT sensor.
Increased the cooling control setpoint range. It was 60C to 220C, now it is 20C to 260C.
Added IntelliJect Sim
- A new application that embodies the same software as the IntelliJect firmware; compiled for the PC. This is extremely similar to the simulator built into IntelliJect Display, except this software runs as a standalone application. IntelliJect Sim can use IP, CAN, or Serial hardware on the PC for communications; making it easy to test and develop client software for IntelliJect against the simulator. In most cases it will be more convenient to use the simulator built into IntelliJect Display; this simulator is intended as a tool primarily for software developers.
Version 1.8
1.8.947 (13 November 2020)
Bug fixes for IntelliJect firmware
- Fixed IntelliJect reset that could be caused by using the servo test feature.
Bug fixes for IntelliJect display
The feature that automatically adjusts communications settings when the IntelliJect communications configuration was changed was not working. This has been fixed so that CAN or serial settings can be changed, and the display software will adjust accordingly to maintain communications.
Fix for table visualization bug that would not show the table surface when the window was first visible.
1.8.946 (2 August 2020)
Bug fixes for IntelliJect firmware
Added logic to resend the SD card journal packet when the SD card is erased - so the display software correctly shows the erased status.
Fixed watchdog reset that could occur on system start if the user storage EEPROM was blank (this would only happen when the IJ was booted for the very first time).
Fixed indexing error that would cause crank sense timing data to be out of order when using the “On Sync Lost” feature. This only affected the diagnostic data, not the actual crank sense.
Bug fixes for IntelliJect display
Improved handling of serial ports used for cooling fan and gas analyzer devices. Previously the ports were not always selectable when they should be, and not always remembered correctly on application restart.
Improved handling of dual cooling fans if a CHT sensor was disabled or failed. Previously this would leave one cylinder without active fan control, now both fans will be driven according to the remaining good sensor.
Increased precision of table values for transient fueling, from 3 decimal places to 4.
Fixed problem with timestamp handling when elapsed times were greater than 24 hours. This affected the strip charts and profile running.
Added adjustment to correct indexing error for crank sense timing data coming from old firmware. This only applies when communicating to older (build 943 or earlier) firmware; or replaying data from older firmware.
1.8.943 (15 April 2020)
Bug fixes for IntelliJect firmware
- Fixed the voltage variable used for injector trim table lookups. The correct variable is the voltage of the injector (12V) rail, but the main input voltage was used instead.
Bug fixes for IntelliJect display
The row, column, and table interpolate buttons were enabled anytime a cell was selected in the table. This has been changed so the buttons are only enabled if enough cells are selected to allow interpolation.
Fixed error caused when inserting the maximum possible rows or columns in a table.
New features for IntelliJect firmware and display
- The 2D table packet was updated to specify the value of a reserved bit. The packet decode will not succeed unless this bit is clear (as it was previously - the ICD remains compatible). This is in anticipation of version 2.x software which will set this bit to indicate a new (2.x) style table. Checking the bit reduces the chance of miscommunication between 1.x and 2.x versions of the protocol.
1.8.941 (31 March 2020)
Bug fixes for IntelliJect firmware
Fixed throttle command rate limiter: When changing from RPM control to direct throttle control the throttle rate limiter was not applied correctly on the first throttle command.
Fixed application of fuel used corrector to the fuel flow telemetry. This corrector was not applied if the output rate of the slow telemetry was faster than the rate at which the fuel flow was computed (practically this could only happen if the engine was not running).
Bug fixes for IntelliJect display
- Fixed replaying a telemetry file that did not have any IntelliJect data but did have data from other devices.
New features for IntelliJect display
- Added telemetry packet forwarding for local devices (like the cooling fan or exhaust gas data) to any display clients connected over network.
1.8.939 (6 December 2019)
New features for IntelliJect firmware
Added new table:
Manifold temperature
. This table provides a fuel multiplier which works like the head temperature table but depends on MAT. The charge temperature fuel multiplier now comes from either the manifold temperature table or the charge temperature table, depending on whether the manifold temperature table is enabled or not.Added telemetry to specify if spark 1,2,3 and injector 1,2,3 are triggering from crank sense1 or 2 (or none at all).
Changed logic used to choose between crank sense 1 and 2. Previously each output (spark 1,2,3 and injector 1,2,3) would trigger off the nearest sensor, unless a sensor was in an error state. Now the determination of a sensor error looks at the age of the error and the sensor with the oldest error is used (unless the error is more than one minute in the past). This protects the system from using a sensor that is intermittently healthy.
Made crank sense 1 equal to crank sense 2: Previously crank sense 1 was always enabled and crank 2 was optionally enabled. Now both sensors have explicit disable configuration options. In addition, you can now specify which crank sensor is preferred if both sensors are healthy. If neither sensor is preferred, and both are healthy, then the old logic of using the nearest sensor is used.
Change dynamic errors reporting: previously an error would be cleared immediately upon resolution of the erroneous condition. Now the error is not cleared until after the slow telemetry output cycle. This guarantees that any error will appear at least once in the dynamic errors telemetry packet; even if the error sets and clears faster than the telemetry update rate.
Removed support for the old engine configuration packet. This packet was superseded by the new engine configuration packet in version 1.7. If you are upgrading from version 1.6 to 1.8, then load 1.7 first to correctly convert the engine configuration to the new format.
Removed center sense option from crank sense configuration.
Added feature to measure and report in slow telemetry the crank shaft angle where crank sense 2 synchronizes. This feature can be used to determine if the crank sensor synchronization angles are set correctly with respect to each other.
Added fuel multiplier table. This table provides a simple fuel multiplier and is intended to make engine fleet calibration easier by allowing engine specific fueling changes to reside in this table rather than the main fuel table.
Added new test: user storage. The user storage test will exercise every bit in the user storage EEPROM. If the test passes the contents of the EEPROM will not be changed.
Added new error source: user storage. Problems reading or writing user storage will set this error bit; and may generate a debug message.
Added TPS source information to the slow telemetry, this complements the throttle command source in the fast telemetry.
Added a new TPS source: the manifold pressure (via reverse lookup through the MAP estimate table). This TPS source was previously referred to as “Backup” and was only available if there was no TPS source and if IntelliJect was not driving the throttle. Now this source can be explicitly enabled in the configuration, even if the IntelliJect is driving the throttle. The MAP TPS source is the lowest priority TPS.
Added a new TPS source: the CAN throttle reported position. The CAN throttle servo is now an option if IntelliJect is not driving the throttle: IntelliJect will not command the position or servo enable status if it is not driving the throttle. The CAN TPS source is lower priority than analog or PWM TPS.
Added TPS error to the slow telemetry. The TPS error is computed when IntelliJect is driving the throttle and a TPS signal is available, otherwise the TPS error will be zero.
Added option to run TPS feedback which modifies the throttle output so the measured TPS matches the command. This option is only available if IntelliJect is driving the throttle and a TPS is enabled.
Added a second maximum throttle table, indexed by the hottest CHT and the density ratio. The actual maximum throttle used is the smaller of this table and the first maximum throttle table.
Added a second minimum throttle table, indexed by the coldest CHT and the density ratio. The actual minimum throttle used is the larger of this table and the first minimum throttle table.
Changed throttle rate limiter. Previously the rate limiter was applied to the output throttle; now it is applied to the throttle command input, and separately to the output of the RPM governor in direct control mode. This improves the performance of the RPM limiter.
Added governor feature to enable a minimum and/or maximum RPM limiter. This feature is only available when the trajectory controller is enabled (i.e. trajectory gain is greater than zero). The limiter works when the governor is not running (i.e. throttle is commanded directly) to prevent the user from commanding a throttle that will cause the RPM to go below the minimum or above the maximum RPM configured in the governor.
Expanded test mode to support tests for the third injector, spark, and cooling outputs.
Added new telemetry message to report the third injector and spark operational details.
Added software support for a third spark output. The third spark is enabled in the engine configuration and takes over the heartbeat output. Software support also includes a new spark3 delay table and a third spark on/off command.
Added software support for a third injector (hardware support is available in IntelliJect rev3). This includes three new tables (ratio, phase, trim) for the third injector, and a third set of injector configuration options.
Added injector option to specify how the spare temperature is used, either as a second MAT sensor, or as a third CHT sensor. This option is only used if independent injector operation is enabled. Since the spare temperature can now be a CHT sensor the spare temperature encoding in the sensors telemetry packet was changed to allow a higher range signal (same as the other CHT sensors).
New features for IntelliJect display
Added automatic table text color; selecting between white or black text based on the background color of the table cell.
Split the sdkexample.c module into two modules: sdkexample.c and sdkexamplesend.c. This facilitates using more of the SDK code in IntelliJect display.
Added second configuration window. This is just a clone of the first window and provides a convenient way to view two different configuration categories at the same time (if you have enough display space).
Added undo/redo capability. This works on a packet basis: any configuration change packet which is sent automatically records a reciprocal undo packet which can be invoked with keyboard short cut or menu option.
Enabled in-cell editing of values in the tables and throttle curve. In-cell editing is done by typing numbers when a cell is selected and IntelliJect is unlocked. The previous editing mode (double-click or enter to invoke the input dialog) is still available.
Filtered the text display of RPM on the gauges display using a one second finite impulse filter. This affects only the text display, not the logged or charted data.
Changed tick marks on the gauge display; major tick marks are now spaced every 1000 rpm and minor ticks are spaced every 250 rpm.
Added open button to the configuration display (next to send and request) which can be used to open and send just that pages configuration data.
Added logic to opening configuration files to prompt for confirmation if only the address information is being changed in the communications settings. Users typically want to change other communications settings without changing the addresses.
Added 3D surface plot and heatmap for table visualization. These replace the previous contour plot visualization.
Added sticky reset count and serial number to the text log csv file.
Added the ability to convert a table from alpha-n to speed-density and vice versa. The conversion is only an option for tables that use throttle/load on the row axis and RPM on the column axis; and only if a MAP estimate table is populated.
Consolidated the
About
andDocs
menu into a singleHelp
menu.Added support for dual cooling fans. If both fans are enabled the first cooling fan regulates CHT1 and the second fan regulates CHT2. If only one fan is enabled it regulates the hottest CHT.
Added support for Optidrive cooling fan controlled over Modbus RTU.
Added support for National Instruments data acquisition. The NI window can be used to load any task that was configured in the NI “Measurement and Automation Explorer” and acquire any channels specified by that task. NI channels are recorded to the replay file, logged, chartable, and can appear in the gauges dashboard.
Changed throttle curve builder to add the option to define the desired relationship between input throttle command and RPM.
Changed profile runner window to make better use of screen space by separating the chart and table with a tabbed layout. Also added right-click “goto” menu option to the chart and table.
Added option to profile builder to use throttle and RPMs from the fuel table; or to split the throttle and RPMs from the table.
Changed throttle and RPM command toolbars to use throttle and RPMs from the fuel table. Also added an option to apply the throttle curve in reverse, so the throttle commands yield output throttles rather than input throttles.
Added table display “trails”. The trail shows the history of the operating point on the table display.
Added right click feature to strip charts to insert a comment or take average data, using a time which is older than the most recent telemetry. This makes it easy to mark interesting events after they have happened.
Changed gas analyzer window to make better use of screen space by optionally hiding the left or right analyzer display.
Updated gas analyzer window to compute AFR if possible. This uses the methodology presented in SAE paper 901599 “AFR and Emissions Calculations for Two-Stroke Cycle Engines”.
Version 1.7
1.7.806 (3 December 2019)
Bug fixes for IntelliJect firmware
Adjusted temperature computation for MAT, CHT1, CHT2, and Spare temperature. The adjustment accounts for reverse voltage leakage current on the ESD diodes of the temperature inputs. The adjustment is only active if the board major revision number is 3 or less and if the minor revision number is 4 or less (i.e. 2.5 and 3.5 boards are fixed in hardware).
Adjusted temperature computation for MAT, CHT1, CHT2, and Spare temperature. The adjustment uses the CPU temperature to account for temperature induced variation in the current drive to the sensors.
Fixed bug that could generate an erroneous crank wheel synchronization error if the engine was stopped and started.
Changed initial state of the ignition outputs. Previously these were initially set active in anticipation of coil ignitions that need to be in the active state to prevent charging the coil. However, this does not make sense with the hardware inhibit of the ignition output that was added in rev2 hardware. Accordingly, the initial output state of the ignitions is now inactive.
Improved default main and 12V current sensor calibration.
Bug fixes for IntelliJect display
- Improved crank sense timing chart x-axis resolution.
1.7.805 (7 November 2019)
Bug fixes for IntelliJect firmware
Fixed bug that could cause a floating point reset if a crank period was measured which was faster than the injector trim time.
Fixed incorrect quick-restart crank sense configuration.
Fixed incorrect CHT telemetry in the Piccolo ECU alternative protocol.
Updated spare temperature telemetry: if spare temperature is being used as an MAT, and the spare temperature sensor has failed, the reported telemetry for the spare temperature will be the other MAT sensor (or the default MAT value if the primary has failed). This change does not affect injector operation, just telemetry.
Bug fixes for IntelliJect display
- Fixed bug that could prevent correctly saving or loading cooling configuration to a file if that file also contained “old engine” configuration data.
1.7.803 (31 October 2019)
Bug fixes for IntelliJect firmware
Fixed timing error that could produce occasional incorrect analog sensor readings. This would occur when receiving configuration change packets that would trigger an EEEPROM write.
Improved crank sense decoding: using high tooth count wheels at high speeds in combination with high processor loading could cause problems in wheel decoding. The crank sense interrupt architecture has been changed to eliminate this possibility.
Fixed bug that would always generate a crank “too late” error the first time the crank wheel synchronized.
Fixed telemetry of MAT in the case where the spare temperature was configured as a second MAT. Previously this would result in MAT telemetry being reported as the average of the MAT and spare temp sensors. Now the MAT telemetry is just the value of the MAT sensor. This change only affects telemetry, not injector operation.
Bug fixes for IntelliJect display
Fix for oscilloscope display, which was not correctly setting the time extents on the plot.
Fix to correctly display the modified status for tables. This bug was introduced in 1.7.800 when dual tables were added.
Fix to various display issues with the crank wheel timing window.
Fix to automatically highlighting input text: sometimes the boxes could remain highlighted when they should not be.
Fix to set the CAN addresses to default when running the software for the first time on a new machine.
Fix to suppress display of new windows when upgrading from older versions of software.
Fix to correctly display the crank center sensing option in the engine configuration window.
Deprecated crank center sensing and added warning message that the feature will be removed in the next version.
Added warning to close the application after downloading a new version before installing the new version.
New features for IntelliJect display
- Added quick color feature to the table display: the six most recently used colors can be applied to the current table selection with a button.
1.7.800 (13 October 2019)
Bug fixes for IntelliJect display
Fix to correctly set the revcount when changing engine wear status.
Fix to prevent changing table cell selection due to keystrokes when the table display has the focus.
New features for IntelliJect display
- Added the option to show two tables at once on the table configuration window.
1.7.799 (18 September 2019)
Bug fixes for IntelliJect firmware
Fix to prevent test mode from triggering spark or injectors when the system is not enabled.
Support for Currawong ECU protocol version 7.05 (firmware 6.40) which adds fuel pump rate control.
Bug fixes for IntelliJect display
Fix to throttle and rpm command bars to automatically highlight the command text when the control receives focus.
Fix for opening configuration file: if both new engine and cooling configuration are in the file do not initially select old engine configuration.
1.7.798 (13 August 2019)
Bug fixes for IntelliJect firmware
- Fix for test mode: Increased the timing precision of a test to 1 millisecond.
Bug fixes for IntelliJect display
Fix to saving IntelliJect configuration so old engine configuration (for version 1.6 and earlier) can be saved alongside the new engine configuration.
Updated the CAN database spreadsheet to be consistent with API 7 (firmware 1.7).
Fix for test mode: previously using the spark skip test would prevent other tests from working.
1.7.797 (1 August 2019)
Bug fixes for IntelliJect firmware
- Fix for receiving fuel pump configuration from the Currawong alternative protocol. The fuel pump bang-bang limit was not set correctly.
Bug fixes for IntelliJect display
Fix for sending engine wear data by loading a configuration file.
Fix to include spare temperature sensor data in the oscilloscope display.
Fixed storing automatic CAN IDs: when sending communication configuration changes the display software updates its connection settings to follow, and could forget the connection settings were using automatic IDs.
New features for IntelliJect display
- Added the ability to check for newer versions of software from the Power4Flight website.
1.7.796 (19 July 2019)
Bug fixes for IntelliJect firmware
- Fix to prevent user from simultaneously configuring throttle position sense and throttle command on the same input.
Bug fixes for IntelliJect display
- Fix for sending old engine configuration data (from .efi files saved from earlier versions).
1.7.795 (9 July 2019)
New features for IntelliJect firmware
Added heartbeat signal, which is a 1 ms output that is triggered on every crank synchronization. The IO signal is only available on rev 3 hardware.
Changed how the parameter mismatch detection is applied. Previously the mismatch check was only performed when IntelliJect booted up. Now the mismatch check is also performed anytime the configuration is changed.
Added new transient fuel table which only applies when the throttle rate is positive. The old transient fuel table functionality is changed so it only applies when the throttle rate is negative.
Added factory trim option for the temperature sensor current drivers. As part of this the default temperature current setting was changed from 1.144 mA to 1.16 mA to better match production hardware. This will slightly decrease the temperature reported from KTY8x and RTD sensors.
Added platinum RTD option to the sensor configuration for the temperature sensors. This is similar to the KTY8x options, and specifies that IntelliJect should use built-in conversion functions to translate the analog voltage to temperature.
Added misfire option to test mode. This can be used to force IntelliJect to skip 1, 2, or 3 consecutive spark outputs; allowing you to test how the system handles a misfire.
Added option for independent injector operation. This option changes the computation of the charge temp and head temp fuel multipliers. Normally these multipliers are the same for both injectors, but if the injectors are operating independently injector 1 will use CHT1 and MAT to determine its multipliers and injector 2 will use CHT2 and spare temperature. The second set of fuel multipliers are now reported in previously unused space inside the sensors4 telemetry packet.
Updated default RPM controller gains. The new defaults are less aggressive.
Removed coil ignition fault option. This feature was not used by anyone, and the fault detection will be unavailable in rev 3 hardware.
Added options for SD card recording: Previously an SD card record would be started each time the system booted up. Now a record will only be started if the engine runs, unless the “always record” option is enabled. Also added the option to disable SD recording.
Added the ability to specify SD card recording rates separately from telemetry rates.
Removed the option to generate telemetry crank synchronously. This feature was rarely used and not worth the complication.
Added option to receive telemetry from a generator control unit (GCU) on the CAN bus, in the format specified by the Northwest UAV GCU. This is the fourth alternative protocol, which can be combined with the other protocols. Reception of GCU telemetry triggers transmission (and sd recording) of a new native slow telemetry packet that sends the GCU data to the user.
Added option to output CAN telemetry in the format specified by the Performance Electronics PE3 ECU. This is the third alternative protocol (in addition to the Currawong and Piccolo alternative protocols). The PE3 protocol is output only, and it can be combined with the Piccolo ECU protocol (but not the Currawong ECU protocol).
Deprecated the load variable in the fast telemetry packet. This variable is still present in version 1.7, but it should not be used by client software, preferring instead to compute load from manifold and barometric pressure in the sensors packet. Later versions of firmware will use this field in the packet for new data.
Added feature to retrieve a record of information from the SD card over a communications interface (CAN, UART, USB), rather than removing the card from IntelliJect.
Improved the estimate of the rate of change of throttle used for transient fueling.
Improved the estimate of the rate of change of RPM used for RPM control.
Added expanded feedback control options for the cooling output. Previously cooling output was controlled with simple proportional-integral feedback. Now you can enable a trajectory controller, which can do a better job of intercepting a target temperature without overshoot.
Added support for a second cowl flap output. The current IntelliJect hardware (rev 2 and earlier) only has one cowl flap PWM output, in which case the second output is only available for cowl flaps driven by CAN servo. Rev 3 IntelliJect hardware adds a second cowl flap output on PWM.
Added option to split the cooling output logic. When this option is enabled, and both CHT sensors are healthy, CHT1 is used to control the first cooling output; and CHT2 is used to control the second cooling output.
Added software support for spare temperature sensor. This sensor replaces the never used humidity sensor. The spare temperature sensor hardware is part of the original IntelliJect design but has not been enabled in software until now.
Added fuel pump control option to set the pump output to maximum if the fuel pressure sensor is failed. If this option is not selected the pump output is driven by the feedforward gain if the sensor is failed.
Added fuel pump control option to only enable the pump if the engine speed is non-zero. A configurable priming time is also added to allow the pump limited run time when the engine is not running for priming.
New features for IntelliJect display
Added intake serial number to the acceptance test report.
Added example code to the communications standard developers kit.
Added new variables to stripcharts, csv log files, and the gauges window. The new variables are the GCU telemetry, injector 2 fuel multipliers, engine rotation direction, hobbs time, and error bitfields.
Added the ability to specify the horizontal and vertical display compactness in the .ini file (“~\Power4Flight\IntelliJect Display.ini”). To override the automatic compactness add “CompactHorizontal=x” and/or “CompactVertical=x” where x specifies the pixel spacing between horizontal or vetical elements. These settings in the .ini file are overridden if you provide the command line options “-compacthorizontal” and “-compactvertical”.
Changed installer to be version aware. This makes it much easier to have multiple versions installed simultaneously. By default the installer will place the application in \ProgramFiles\Power4Flight\IntelliJectX.Y, where X and Y are the major and minor version numbers. The uninstaller, start menu shortcuts, and desktop shortcuts are all now version aware.
Adjusted error display to aggregate the TPS errors to a single error display, and add the spare temperature sensor error light.
Added table visualization display feature. This is a new window that provides line and contour plots of any table, as well as table smoothing. The feature is useful for seeing outlier points in the tables.
Version 1.6
1.6.741 (1 August 2019)
Bug fixes for IntelliJect firmware
Fix for receiving fuel pump configuration from the Currawong alternative protocol. The fuel pump bang-bang limit was not set correctly.
Fix to prevent user from simultaneously configuring throttle position sense and throttle command on the same input.
Bug fixes for IntelliJect display
Fix for sending engine wear data by loading a configuration file.
Increased number of decimal places displayed in the transient and injector ratio tables.
Fixed storing automatic CAN IDs: when sending communication configuration changes the display software updates its connection settings to follow, and could forget the connection settings were using automatic IDs.
1.6.738 (9 July 2019)
Bug fixes for IntelliJect firmware and display
- Fixed rounding error in packet encoding. Fields that were encoded as 16-bit floating point types (for example table data) were rounding towards zero rather than towards nearest.
1.6.737 (19 June 2019)
Bug fixes for IntelliJect firmware
- Fixed injector trim adjustment to phase: If the injector trim is positive the injector phase should be advanced by the trim time to account for the injector start delay; however, the phase was retarded rather than advanced.
1.6.736 (11 June 2019)
Bug fixes for IntelliJect firmware
- Fixed injector phase tables bug: if the table values crossed 0 degrees the interpolation could produce the wrong result. Values in the phase tables represent crank angles, and any math involving crank angles must be correctly wrapped, including the interpolation function. Before the fix interpolation between 350 and 10 degrees would produce a result near 180 degrees. After the fix the interpolation results in a (correct) value near 0 degrees.
1.6.735 (21 May 2019)
Bug fixes for IntelliJect Display
Fixed bug with table display of load operating point.
Fixed bug that in acceptance test report that did not show all important RPM controller settings.
Fixed bug that would allow you to send settings without first unlocking the configuration.
Fixed bug that could cause multiple modal dialogs to be open, making the application appear to be locked up, when in fact there was a modal dialog waiting for input that was covered by another dialog.
1.6.733 (25 April 2019)
Bug fixes for IntelliJect firmware
- Injector 2 was using the minimum pulse setting from injector 1.
Bug fixes for IntelliJect Display
Fixed table display bug that would use the wrong CHT (if more than one CHT was enabled) to draw the operating point of the min throttle, max throttle, and spark retard tables.
Adjusted the result from the button “Set for 1000 Ohm Platinum RTD”. The drive current used for the gain and offset calculation was changed to 1.16 mA to more closely match the real hardware.
1.6.732 (3 April 2019)
Bug fixes for IntelliJect firmware
Fixed bug with determining rotation direction using two crank sensors. This would only affect engine operation if the “prevent reverse rotation” or “prevent normal rotation” option was selected.
Slight improvement to RPM derivative computation.
Bug fixes for IntelliJect Display
- Adjusted max machinery fuel meter counter-timer interface to reject bounce signals. This fixes a flow meter calibration problem.
1.6.729 (7 March 2019)
Bug fixes for IntelliJect firmware
- Fixed bug on derivative computation for the RPM controller. This affects the trajectory controller more than the classical controller.
New features for IntelliJect display
- Changed installer to be version aware. This makes it much easier to have multiple versions installed simultaneously. By default the installer will place the application in \ProgramFiles\Power4Flight\IntelliJectX.Y, where X and Y are the major and minor version numbers. The uninstaller, start menu shortcuts, and desktop shortcuts are all now version aware.
1.6.725 (26 February 2019)
Bug fixes for IntelliJect firmware
Fixed bug that would prevent automatic sensor offsets from updating if the sensor reading was out of range, even if the out of range reading was due to an incorrect sensor offset.
Fixed bug that could cause automatic sensor offsets to be read incorrectly from saved parameters. This would result in subtle sensor offset changes which were typically not large enough to notice.
Fixed bug that could cause delay in reading of CAN servo data or alternative ID CAN data
Fixed bug that prevented PWM throttle command or PWM TPS from working correctly.
Bug fixes for IntelliJect display
Fix to remember and recall local communications settings changes that are made automatically when changing the communcations configuration of the IntelliJect. For example if you change the IntelliJect baud rate the display software automatically changes its local interface baud rate. However before this bug fix that change would not be remembered when the display software was restarted.
Fix to remember and recall averaging period for logging averaging function. The average period can also be changed while average is running.
New features for IntelliJect firmware
Increased the maximum fuel pump PWM period from 4115 to 16403 microseconds. This allows slower pump PWM frequencies which may be helpful for pumps with larger inductance motors.
Added new formulation for charge temperature correction. A new parameter has been added to the engine configuration which sets the “reference CHT”; which represents the head temperature when the fuel table is determined. When the engine operates at a CHT equal to the reference value the charge temperature multiplier will be 1.0, no matter what value is in the table. In all other respects the new formulation behaves the same as the old. If the reference CHT is set to 0 (as it will be if you upgrade from older software or read an old configuration file) the old formulation is explicitly used (for backwards compatibility).
Added support for onboard data logging via SD card. The data logging is based on writing the normal communications traffic (including all telemetry) to the SD card. The SD card is journaled such that each time the EFI resets a new record of data is written to the card. The SD card must be formatted as FAT32 and then setup by the IntelliJect firmware. Once this is done the card can record continuously, overwriting the oldest data as needed. Data is retrieved by removing the SD card and plugging it into a PC, so that IntelliJect display can parse the files.
Removed support for alternative fuel flow measurement based on external meter or pressure accumulator decay rate.
Added cowl flap servo calibration to the test mode. This is the same as the current-based hard stop detection used for the throttle servo calibration.
Augmented the servo calibration feature of test mode to specify the actual position of the servo hard stop, rather than assuming it is 0% or 100%.
Added the ability to specify the PWM throttle input calibration separately from the output calibration. The PWM throttle input calibration applies to the PWM TPS and PWM throttle command. If the PWM input calibration is 0 the output calibration is used for the input.
Added non-volatile reset count information to the reset report packet. This is in addition to the previous volatile reset count data. The nonvolatile reset count is incremented and placed in user storage each time IntelliJect boots up.
New features for IntelliJect display
Added sensor configuration option to specify gain and offset appropriate for 1000Ohm platinum RTD temperature sensor. This is purely a UI feature that populates the gain and offset values appropriately.
Added more baud rate options for serial port interfaces. Previously the fastest baud rate selection allowed was 230400, now you can also select 460800 or 921600.
Added parsing tool for SD card data logging which converts the recording into one or more replay files that can be replayed in the display software.
Added the ability to change the grid of text items in the gauges display. Right clicking on the label allows you to select a variable (from the save variable list as stripcharts). The resulting layout is automatically saved and can be explicitly saved and loaded as a display layout.
Added the ability to specify user enable, ignition 1 enable, and ignition 2 enable in the profile runner. This makes it possible to implement a “mag check” in the checkout profile.
Added the ability to highlight a range of cells in a table and interpolate across columns, or interpolate across rows, to change the values of the cells in the center of the selection.
Version 1.5 (12 December 2018)
Bug fixes for IntelliJect firmware
Disabled the USB interface. The USB stack is not as robust as it needs to be. It will be re-enabled in future firmware versions.
Fixed mistake in test mode packet that did not correctly handle tests with timeouts longer than 255 seconds.
Adjusted timing of digital barometer sensor to address occasional failed readings. The digital barometer is a backup sensor to the analog barometer.
Updated handling of table and sensor configuration packets to properly nack an index that is beyond the acceptable range. Previously if you tried to change or request a table or sensor configuration packet with an invalid index there would be no response. Now such a packet will generate a “Packet not recognized” nack response.
Bug fixes for IntelliJect display
Fixed infinite loop that could occur when attempting to open a replay file that did not use “efitel-” in the name.
Fixed a crash that could occur when attempting to build a throttle curve without any data.
Improved replay functionality, previously replaying files could give inconsistent replay rates if the display had been talking to a live IntelliJect.
Added request for all settings following firmware programming. Without this the version and settings display could be out of sync following firmware update.
Fixed table selection behavior. Previously selecting one or more cells in a table and then changing those values would clear the selection when the updated table was returned from IntelliJect. Now the table selection does not change, making it easier to quickly change multiple table values.
Fixed sending settings when mixing new versions of the display with old versions of the firmware. Now the display will not send packets that it knows older IntelliJect firmware versions will not understand.
New features for IntelliJect (firmware and display):
Added support for toothed wheel crank angle sensors, which use one or more missing teeth to synchronize the position of the wheel. The crank wheel sensor provides improved timing for events spaced around the engine cycle, since the amount of delay time needed to schedule the event can be significantly reduced. This feature includes support for wheels with a single gap, or wheels with two gaps of different sizes. Wheels with two gaps allow detection of engine rotation. As with the previous once-per-rev sensors there are two available sensors allowing redundant sensing. The dual crank sensors can each have their own wheel design, or one sensor can use a crank wheel sensor while the other uses a once-per-rev sensor. As part of this feature the crank errors that can be reported have changed, and the errors telemetry packet has been modified to accommodate the new crank sensor errors.
Added crank sense timing report and display. The timing report is generated on request and reports the time interval between successive crank sense events. This is useful for debugging crank wheels, and examining engine speed variation through one or more cycles. The timing report can be triggered manually, continuously, or when a crank synchronization error occurs.
New features for IntelliJect firmware
Changed cooling output to match throttle if the engine is not running. This makes it much easier to test and calibrate the cooling output.
Added improved watchdogging. The hardware watchdog is now backed up with a software watchdog which makes it possible to determine where the code has faulted before performing the reset.
Added maximum throttle for starting. If the engine is not yet running, and the throttle is greater than the maximum starting throttle, an error is reported and crank sense events will not generate spark or injector outputs. The error will become sticky if a crank sense is detected in this state. The maximum throttle for starting is useful both as an operator/engine safety check, but also as a feature to clear a flooded engine by cranking it without fuel injected.
Added safe mode to deal with bad settings data that could cause system resets. Safe mode is invoked if the system has reset due to errors more than 20 times (between power cycles). If that happens safe mode will be asserted, which prevents the system from loading any settings data, thereby preventing whatever bad setting is causing the error. Once in safe mode the system settings data can be cleared if needed. The only recovery from safe mode is to reset to go back to normal operation mode.
Added setting to center the active crank sense timing. This option tracks the time when the crank sense becomes active and inactive, using the center time to trigger the crank sense event.
Added new test mode feature to inject crank sense errors on a running engine, either a skip or an extra tooth. The skip error causes the system to skip the processing of a single active crank event. The skip error injection applies equally well to once-per-rev or crank wheel sensors. For crank wheel sensors you can also insert a tooth, as though an extra tooth were erroneously detected. The errors injections can be performed on either crank sense 1 or crank sense 2.
Added the ability to specify the synchronizing crank angle for reverse as well normal engine rotation.
Added engine rotation direction sensing based on timing of dual crank sensors. This feature works even if neither crank sensor is a directional crank wheel. The only requirement is that both sensors are healthy and do not synchronize at the same (or 180 deg apart) crank position.
Added the ability to prevent spark and injector outputs if the engine is rotating the wrong way.
Added injector configuration option to specify the edge used for injector phasing. Previously the injector phase always gave the end of the injection event. Now it can be configured to specify the end (default), middle, or start of the injection event. The injector angle in telemetry gives the angle of the specified edge.
Added new test mode feature for calibrating servo closed and open positions. This only applies to configurations where IntelliJect is driving the throttle servo. The test can only be started when the system is unlocked and disabled. The test drives the servo, monitoring the input current until it exceeds a threshold, then drives the servo back the other way until the current is reduced to 25 mA above the starting current. The resulting PWM is recorded as the closed or open throttle PWM (depending on which test was run).
Added auto-offset feature for the main and 12V current measurements. This feature estimates the offset of the current measurement when the throttle is between 10% and 90% (i.e. off the stop) and IntelliJect is disabled (so the fuel pump, injectors, and ignition are not consuming current). In this case the expected current is very close to zero, so the auto-offset feature adjusts the sensor offset until the measured current is zero. As with the MAP sensor auto-offset, this feature must be enabled in the sensor configuration.
Changed 2nd order barometric fuel multiplier table to use density ratio rather than barometric pressure ratio.
Added a new table for density adjustment to the spark advance. The table value is multiplied against (1.225-density)/1.225 to compute a value that is added to the spark advance. Typically as the air density decreases the spark advance should increase, and this table provides the means to do that.
Added injector term for fuel volume compensation based on the manifold temperature. The assumption is that the injector is at the same temperature as the manifold, and the fuel will reach the same temperature as it flows through the injector. The volume correction adjusts the injector opening time to compensate for changing fuel density. There is a new injector parameter that defines the fuel volume percentage change for degree C of the manifold temperature. The correction factor is 1.0 when the MAT is 15C.
New features for IntelliJect display
- Added logic to automatically make the display spacing more compact on low resolution screens. Also added two command line options “-compacthorizontal” and “-compactvertical”, which sets the display to compact mode independent of the screen resolution. This is useful for low resolution displays where the windows do not easily fit.
Version 1.4
1.4.607 Update 1 (25 October 2018)
Bug fixes for IntelliJect firmware
Fixed occasional erroneous RPM reading on the first crank revolution.
Fixed problem with the digital barometer and OAT that could cause a watchdog reset if the sensor was enabled (by default it is not enabled).
Bug fixes for IntelliJect display
Fixed drawing problem with the rpm gauge that happened if the gauges window was hidden when the application was started.
Fixed problem with chart signal selection when opening a display layout file which specified chart signals that were different than currently loaded.
1.4.606 (18 October 2018)
Bug fixes for IntelliJect firmware
Changed the reporting of injector faults. Injector faults will not assert unless the engine is running, but they will remain asserted as long as the fault is present even if the engine stops. This is because an injector fault cannot be cleared except by performing an injection, and spurious faults could occur during engine setup.
Fixed bug in computation of temperature from the MS5637 sensor. This is a backup sensor and is not enabled by default.
Fixed incorrect trigger time in scope data if the scope was triggered after 4294967295 microseconds.
Fixed error reported if the fuel pressure was low while IntelliJect was disabled. Fuel pressure is expected to be low if IntelliJect is disabled.
Fixed temporary CAN communications bug that could occur when clearing all settings. This would happen when the settings would change to defaults, but the CAN masking hardware was not updated until the system reset. Now clearing all settings will trigger a re-initialization of the communications hardware.
Fixed bug that could cause a missed output (injection or spark) if multiple outputs were due at exactly the same time.
Fixed bug that caused an incorrect packet bit number in the nack response to a request packet which was requesting a packet not recognized by the firmware. This bug would lead to an infinite packet request cycle when a new configuration packet was added to the request list.
Fixed crank sense bug that could cause the system to think the engine was running when it was not. This would only occur if a single crank sense event had occurred in isolation, and the only consequence was that certain commands (such as test mode) would be locked out in this state.
Fixed fuel pump duty cycle reporting. Previously logic was used to handle the case where the communications output frequency was faster than the pump on/off frequency; the logic attempted to produce an average pump duty cycle. However this logic could make the output confusing in low duty cycle cases and has been removed. Now the pump duty cycle is simply the average duty cycle for the reporting period.
Fixed computation of settings hash in the event that not all possible packets were part of the configuration. This would happen if the default settings for a particular category did not need to be changed. In that case the configuration hash would be different if the packet had been sent verus if it had not, even though the actual configuration was identical. Now any configuration packet which is not present in the configuration (factory or user) is automatically written to user storage at startup with default values, thereby guaranteeing that the packet will contribute to the configuration hash.
Fixed computation of settings hash in the event that autocorrect was enabled for the MAP sensor. In that case the sensor offset would vary as needed in the settings, which would cause a spurious settings mismatch error. Now the autocorrect offset is stored separately from the normal sensor configuration data, so changes made by the auto-correct algorithm are not included in the configuration hash.
Improved automatic MAP sensor offset correction. With the previous continuous algorithm it was possible to produce a small error when the engine was started, by changing the manifold pressure before IntelliJect knew the engine was running. The new algorithm is not continuous, and will only update the offset 2 seconds after computing the new offset, if the engine is still not running.
Bug fixes for IntelliJect display:
Improved setting the display layout to default. The previous method did a poor job of sizing the tabified windows.
Fixed bug in charting of oscilloscope data. Scope data are now double-buffered and the display is only painted on the complete reception of the time window of scope data.
Fixed bug that caused the last row of the throttle curve to be corrupted when deleting rows from the throttle curve.
Fixed replay pause/play button which could get out of sync with the actual paused/playing status if you opened a second replay file.
New features for IntelliJect (firmware and display):
Replaced the fuel pump output scope channel with an output edge error channel. This channel can be used to trigger the scope output to catch spark or injector outputs that have diabolical timing which cannot be satisfied.
Increased the amount of engine wear data. In addition to hobbs time and engine revolutions IntelliJect now tracks the amount of time the engine was at high load, the amount of time the engine was running too hot, the peak engine temperature, and the number of times the engine was started. Hot time is subject to a time multiplier, such that increasing temperature causes hot time to accrue faster. Since engine wear is a regular telemetry packet, and adding the new data caused the packet to exceed the 8 byte data limit that is preferred for telemetry packets on the CAN bus, the engine wear packet now has a short form (with 8 data bytes) and a long form with all the data bytes. When the short form engine wear packet is used it is followed with a new packet that provides the extended engine wear data.
Added logbook feature. The logbook consists of a series of packets that include name, date, and log entry description text. The logbook is stored on board flash of the IntelliJect processor (not the user storage eeprom). New log entries can be added when IntelliJect is locked, but editing or erasing the log requires IntelliJect to be unlocked.
Added maintenance feature. This consists of a new configuration packet which defines a maintenance schedule and a packet which defines the maintenance status; including an indicator if a maintenance item is due to be serviced, the serial number of the engine that the maintenance status applies to, and a command to indicate when the maintenance has been performed. Maintenance items in the schedule can be triggered by engine time, rev count, hot time, load time, peak CHT, or number of starts. The maintenance feature has two windows: a configuration window (and packet) that is controlled by the lock/unlock access; and a maintenance view window that displays the schedule and allows the user to indicate that maintenance service has been performed. Performing a maintenance item automatically adds an entry to the logbook.
New features for IntelliJect firmware
Removed the comment and file packets from the configuration hash computation. Also changed how the communications packet contributes to the configuration hash, to remove the effect of the CAN identifiers (which typically change from unit to unit). The content of these packets do not affect how the engine runs, so leaving them out of the hash makes it easier to determine if something important has been changed in the configuration.
Changed the behavior of the clear all storage command. Previously this command would preserve the engine wear information, now it clears everything, returning IntelliJect to a completely default condition.
Changed default settings to include non-zero settings for the fuel table, spark table, starting fuel table, head temp table; and injector1 trim table. These defaults only apply if these tables are not present in the configuration, and are meant only to provide a useful starting point for a new configuration.
Changed how IntelliJect saves volatile quick-restart data and user commands to reset proof storage. Previously this data were stored in SRAM, however the contents of SRAM are lost with a few hundreds of milliseconds after power is removed. Now IntelliJect stores this data in backup RAM on the processor. The backup RAM will remain valid for several seconds after power is removed, extending the interval of time that power can be interrupted while still performing a quick restart.
Improved fuel pump control logic. You can now specify the PWM period used to control the pump motor, as well as specify a duty cycle rate limit to minimize current transients in the motor control.
New features for IntelliJect display
Added menu option to toggle fullscreen mode for the display. Fullscreen mode hides the application title bar and covers the operating system taskbar.
Added options to the acceptance test report to choose the files that were used to record the checkout data, the configuration file, and the checkout profile. These values are automatically populated, but changing them is useful for cases where the acceptance test report is generated from a replay.
On the CAN settings of the communication selection dialog, if you select an ID that is currently visible on the bus, the resulting value is transferred to the CAN input ID. Now it also transfers the value to the output ID by assuming that the output ID has the least significant set bit of the input ID cleared (above the type shift). This is not guaranteed to be the case, but is likely to be so unless the CAN settings of the IntelliJect have been changed from their defaults.
Added a button to the communication selection dialog to set the CAN configuration to default values. Also added support for auto-detecting the actual CAN IDs on the bus for cases where the CAN settings are at their default values, and then using those detected values.
Improved the layout of individual windows - utilizing more consistent spacing and margins, and in some cases re-organizing the fields to better fit the dialogs.
Added the ability to insert or delete throttle curve rows using a right click on the table.
Changed the default display layout so that it centers the main window, if the window is not maximized or full-screened
Added support for dual Horiba gas analyzers (“Left” and “Right”). This is useful for twin engine development, in particular for doing cylinder balance. This features changes both the Horiba display and the toolbar, and also changes the layout of the log files.
Bootloader version 5:
Version 5 of the bootloader adds the ability to jump from the bootloader back to main code after programming.
Version 4 of the bootloader adds support for reset commands in backup RAM, in addition to data in SRAM. This increases the amount of time power can be interrupted while still supporting quick restart. Reset commands in SRAM are still supported, so bootloader 4 can work with firmware versions older than 1.4.
Version 1.3 (11 August 2018):
Bug fixes for IntelliJect firmware
Fixed mistakes in emulation of Currawong ECU: the reported throttle curve was zeroes unless it was enabled, the RPM controller gains were scaled wrong by two orders of magnitude, and the charge temperature telemetry was computed wrong.
Fixed native packet UART protocol handling that was broken when Currawong ECU emulation was enabled for the UART.
Fixed reversed sense on EFI enable signal.
Fixed sensor sampling logic that would lose crank sync above 6000 RPM. This would lead to sensor value computation out of phase with the crank.
Removed recursive packet search algorithm. This algorithm was not a bug, but it could cause substantial CPU blocking in the presence of communications noise (such as an unconnected UART cable).
Fixed bug in measurement of CPU time, watchdog interval, and max interrupt blocking time. These values could previously be incorrect at high packet rates.
Improved the logic used to fire the outputs (spark and injectors) for short periods of time, or for time events that are in the past. Previously these (rare) cases could cause the outputs to stall for 0.26 seconds, now they are handled gracefully.
Fixed throttle logic for case where IntelliJect is driving the throttle output, and is also measuring the throttle position through a TPS.
Fixed reported injector duty cycle when engine was not running. If the engine is not running the injector duty cycle is reported as 0%.
Fixed default gain on 12V current monitor.
Bug fixes for IntelliJect display:
Changed the color of the CHT readout in the head temperature gauge from red to black. The red text would become unreadable when the CHT became too hot and the gauge turned red.
Fixed display of analog versus digital barometer reading on the sensors page, they were reversed.
Improved the ability to work with configuration files when not connected to an IntelliJect.
New features for IntelliJect (firmware and display):
Added support for alternate fuel flow rate measurement based on the pressure decay rate when the fuel pump is not running. This flow rate measurement can only be used with bellows-style fuel accumulators and dead-headed pumps with bang-bang control (i.e. Currawong single piston pumps). In that case the fuel pump will turn off for short periods and the pressure decay rate can be observed. This decay rate is directly related to the rate of fuel consumption, particularly when used with bellows-style fuel accumulators. The estimated flow rate is then integrated to provide an alterate fuel consumption estimate. The alternate fuel consumption is reported in its own packet, and can optionally be reported in the regular fuel telemetry packet.
Added support for alternate fuel consumption measured by external counter (for example, the Max Machinery 210m). When enabled the throttle PWM digital input is used to count rising edges from the external meter (throttle PWM TPS and command must also be disabled). The alternate fuel consumption is reported in its own packet (the same packet as the pressure decay rate), and can optionally be reported in the regular fuel telemetry packet.
Added the ability to set (or reset) the fuel used indicator. This is useful for cases where the fuel was topped up without the EFI being reset. It is also useful when doing flow rate calibrations.
Changed alternative protocol handling to remove the option to specify shy mode over CAN. Instead all alternative protocols (UART or CAN) are implicitly in shy mode. Shy mode means that the native protocol outputs are suspended in favor of the alternative protocol outputs; although the native protocol outputs will resume on the first receipt of a native protocol input. In addition the display software now issues a request for data over the native protocol whenever a communications interface is opened, even before any telemetry is received from the EFI. In this way the display software can successfully connect to an EFI that is configured for an alternative protocol.
Removed option to change the active sense of the EFI enable signal. The active sense is fixed by the hardware (active high).
Added option to specify a crank sense delay. The crank sense delay defines the amount of time that elapses between the assertion of the crank sense signal, and the propagation of that signal through the crank sense hardware filter.
Added option for automatic manifold pressure offset correction. The manifold pressure sensor output has the potential to change over time as the sensor is exposed to fuel. When enabled this feature automatically adjusts the calibration of the MAP sensor so that, when the engine is not running, the MAP pressure reading matches the Baro pressure reading.
Added option to specify manifold pressure error threshold in the engine configuration. If the manifold pressure from the MAP estimate table is different from the measured manifold pressure by more than the threshold the manifold pressure measurement is replaced with the estimate, and the associated error bit is set.
Added TPS missing and TPS error bits to indicate if there is no valid TPS sensor when one is expected, or if the TPS sensor has a discrepancy with the throttle output.
Added option to specify TPS error threshold in the throttle configuration. If IntelliJect is driving the throttle, and if a TPS sensor is enabled, but the difference between the throttle output and the TPS measurement is more than the threshold the TPS error bit will be set.
Added new slow telemetry packet, TelemetrySensors4. This packet repeats the CHT and fuel pressure data from existing packets; but changes the encoded format to provide more information: the CHT signals can now go from –100C to +461.5C, and the fuel pressure is represented using floating point to accommodate negative values and more dynamic range. The equivalent signals from the previous telemetry packets are still available but should be considered deprecated. They will be removed from later versions of software.
New features for IntelliJect firmware
Changed fuel pressure sensing for fuel pump control. Previously the fuel pressure used for fuel pump control was not subject to the low pass filter, now it is. Also updated the default fuel pressure senor configuration to use a 5Hz low pass filter rather than 0.1 Hz.
Added quick restart support. This feature saves key injector, spark, and throttle data to reset proof RAM, which allows IntelliJect to fire the spark and injector on the first crank sense after reboot (before the RPM can be measured or sensor data computed). In addition, the quick restart stores a flag to reset proof RAM that instruct the bootloader to skip the normal code verification step when the system reboots (only if the engine is running). Also re-ordered the bootup sequencing to minimize the amount of time required before the CPU can handle a crank sense event. The combination of these features makes it possible for IntelliJect to go through a reset with only a 100ms delay before resuming spark and injection outputs.
Changed USB support: The USB peripheral is not configured or enabled until the VBus sensing signal is asserted, and only if the engine is not running at that point. This isolates key firmware functionality from any bugs in the USB software stack. It is not recommended to use the USB interface while an engine is running.
Changed how the fuel pump duty cycle is reported in the slow telemetry. Previously bang-bang control of the fuel pump would produce pump duty cycle telemetry which was not very meaningful. Now the reported pump duty cycle correctly represents the average pump duty cycle, even if the slow telemetry rate is faster than the rate at which the pump controller is cycling the pump on and off. This change only affects the reporting of the duty cycle, not the control applied to the pump.
Changed how the min and max throttle tables are interpreted. Previously these provided the min and max input throttle. This has been changed so these tables provide the min and max output throttle.
Changed how the RPM controller is run. Previously the controller was run once for each crank revolution; however, at higher engine speeds better performance can be achieved by running the controller slower to reduce noise. A configurable update rate (from 10 to 85 Hz, defaulting at 50hz) has been added. The rpm controller now counts the time of successive revolutions until the elapsed time is longer than the desired update rate and then computes the RPM using the entire elapsed time to get a less noisy reading for the control law.
Changed how the feedforward term of the RPM controller is implemented. The feedforward term was previously a straight line interpolation from the command RPM divided by the max RPM, multiplied by the feedforward gain. Now the feedforward term is the feedforward gain multiplied by the output of the throttle to RPM model of the RPM governor.
Added feature to compute the manifold temperature from the US standard atmosphere (based on the baro pressure) if the MAT sensor is failed or disabled. The default value of the manifold temperature specifies the failed sensor reading at standard day pressure (101.325 kPa).
Added feature to compute a backup TPS using the manifold pressure, barometric pressure, and MAP estimate table if the engine is running. The backup TPS is used if there is no other valid source of throttle position (efiDrivesThrottle is off, and analog or PWM TPS is invalid).
Changed logic regarding low pass filter on the analog TPS. Previously this filter was disabled, and the throttle input filter was used instead. Now the filter is enabled, and the analog TPS value in telemetry will reflect the effect of this filter. The throttle input filter is still used, and its effect is visible in the throttle data.
New features for IntelliJect display:
Increased the resolution of the fuel used display. The display now gives fuel consumption to tenth of a gram. This much resolution is useful when doing injector flow testing over short time intervals.
Added the ability to control the line width in strip charting.
Added the fuel used multiplier to the acceptance test report.
Added a feature for scoring an engine checkout. The scores are based on the rpm, smoothness, overshoot, lag, and transition whenever the throttle is moved during the checkout (assuming a fixed pitch propeller load).
Added more information to the reset report dialog, for resets caused by exception.
Added telemetry file recording of packets sent by the display to IntelliJect (packets from IntelliJect have always been recorded). These packets are written to the same file as the packets that are received from the EFI. To determine the direction of the packet (to or from the EFI) the new packets are written to the file in a modified form that uses a different synchronization 1 byte. Such a packet is invalid in any context other than the telemetry file. When the display replays a telemetry file the special packets are used to populate the packet log window, indicating packets that went to the EFI when the file was recorded.
Bootloader version 3:
- Version 3 of the bootloader adds support for quick restart. Quick restart is enabled when the firmware writes a special flag to reset proof RAM. When version 3 of the bootloader detects this flag it will skip the normal code verification check, so that the firmware can start as quickly as possible and keep the engine running.
Version 1.2 (4 April 2018):
Bug fixes for IntelliJect firmware
- Changed the fuel pump switch frequency to 500Hz from 1kHz to better match the turn on and off times of the switch hardware.
- Fixed problem with ignition maximum dwell time - which would occasionally cause erroneous spark timing.
- Fixed application of injector trim time. Previously the trim was applied to the end of the injection pulse. Now the trim is applied to beginning of the injection pulse if it is positive, and to the end of the injection pulse if it is negative. This should better line up the actual fuel injection with the desired injector phase.
- Fixed ignition output sense to be the correct polarity. Now if you select the engine configuration option “Ignition Active High” the ignition output will be active high.
Bug fixes for IntelliJect display:
- Changed replay processing so that a bad or unrecognized packet does not pause replay.
- Added missing documentation to the packet log display for fictitious packets (from non IntelliJect devices).
- Improved handling of floating displays when the display layout is locked.
New features for IntelliJect (firmware and display):
- Added high speed oscilloscope feature. The oscilloscope records the analog signals at their base sample rate (1kHz) and digital signals asynchronously to generate a triggerable high speed display of data with microsecond resolution. This display can be used to debug key timing events, and to study the analog signals intra-cycle. The scope setup is volatile and not considered part of the EFI configuration, although the setup can be requested along with the normal configuration information.
- Added debug message. This message is used by firmware developers to insert human readable debug strings where needed. The debug information is displayed in the packet log.
- Added support for the Currawong Engineering CAN servo. IntelliJect can be configured to command a CAN servo for throttle and cowl flap (cooling) control. IntelliJect will report an error bit if a CAN servo is expected but not discovered, or if the servo is reporting an error code.
- Added test mode feature. Test mode is used for hardware debugging and test. Test mode can simulate a crank signal, run injectors, ignitions, and fuel pump options. Test mode is only available if the engine is not running; and is automatically canceled if the engine starts running.
- Added the ability to perform calibration of sensor offset or gain by providing the true sensor reading and computing the gain or offset that makes the raw data match the provided sensor output.
New features for IntelliJect firmware
- Changed interpretation of injector phase table. The injector phase table now gives the crank angle when the injection ends, rather than the middle of the injection.
- Augmented the interrupt time value in the CPU telemetry packet. Previously this time was the worst case amount of time spent in any one interrupt. Now it is that OR the maximum amount of time that interrupts were blocked, whichever is greater.
- Added MMFAR and BFAR registers to the exception reset report packet. These registers report the address of an invalid memory access (if any).
- Added new crank sense error “Missed crank sense edge” for crank sense 1 and 2. A missed edge is asserted when the crank sense interrupts for two consecutive edges of the same type (active or non-active). A missed edge error is distinct from a crank late or crank bounce error.
- Added feature to track the time between active and non-active crank sense edges. This time is used to reconstruct the active edge time if the active crank sense edge is missed.
- Changed CPU temperature sensor so that it uses the on-chip calibration. Also changed sensor handling so that the sensor limits do not indicated “out range reading” but instead indicate that the system is too cold or hot.
New features for IntelliJect display:
- Changed the name of the temperature difference table. It is now called the “charge temperature” table. The functionality of the table has not changed.
- Added acceptance test report feature to automatically generates a report of the IntelliJect configuration and the charted performance.
- Added the ability to un-synchronize a chart, so that its time axis does not follow other charts. This makes it possible to have a chart scrolling live data while having another chart reviewing old data.
- Changed handling of nack messages to suppress the nack warning message while in replay.
- Added display of replay file progress (as a percentage) in the replay toolbar
- Separated the error display into two windows, one for dynamic errors (errors asserted now) and one for sticky errors (errors asserted in the past).
Version 1.1 (5 February 2018):
Bug fixes for IntelliJect firmware
- Improved interrupt time tracking. Not all interrupts were contributing to the total interrupt time counter.
- Improved processing of CAN transactions by enabling CAN masking.
- Fixed handling of interrupts that could cause missed crank sense events.
- Changed the logic for the crank sense active high option; to account for the crank sense inversion on the hardware. “Active high” now refers to the signal at the IntelliJect harness, not the CPU.
- UART baud rate configuration is now being correctly applied at bootup.
- Fixed analog sensor sampling to prevent sensor overruns, which degraded the sensor accuracy.
- Changed the process of storing configuration data in the user storage space so that IntelliJect remains responsive while the storage operation is proceeding.
Bug fixes for IntelliJect display:
- Fixed bug that was preventing the strip chart auto scale setting from saving and restoring correctly.
New features for IntelliJect (firmware and display):
- Added feature to select load -or- throttle on a table by table basis rather than globally in the engine configuration data.
- Added option to force a sensor to default configuration.
- Added support for KTY83 temperature sensor.
- Added option to force communications configuration to default.
- Added new communications options, including the option to support the Currawong ECU protocol and the Piccolo ECU protocol.
- Added telemetry for communications system performance, which provides error indicators for USB, UART, and CAN systems.
New features for IntelliJect display:
- General improvements to layout and usability.
- Improvements to windows installer.
- Switched software to 64-bit on Windows (macOs and Linux were already 64-bit).
- Added display of table output. This makes it easier to see the exact value that a table is computing, rather than trying to eyeball it based on the operational condition.
- Added comment feature. The comment feature allows you to enter a comment when something interesting happens. The comment is saved in the replay .tel file, and is written to the log file, and is displayed on the strip charts.
- Rebranding from generic “Power4Flight EFI” to “IntelliJect”.
- Added ability to save and open configuration data in human readable text format.
- Added configuration comparison feature; you can compare IntelliJect configurations given by two files, or by a single file and a live IntelliJect.
- Added save and open configuration selection option. This makes it easy to pick and choose what pieces of the configuration should be updated from a file.
- Added alarm for CHT sensor failure.
- Added support for firmware update over CAN.
- Added feature to show what CAN IDs are active on the bus. This is helpful to the user when they are trying to discover the ID of the IntelliJect.
- Added preliminary support for CAN bus devices other than the Systec USB-CAN module.