miniHIL Release Notes



5.7.0 (2026-08-06)

Note This release contains a new IDE release (v5.7.0).
Warning If you have been using the vsCode extension for the miniHIL, you have to manually uninstall the old eTrice extension before installing the new version. An update of the extension is not possible due to a change in the extension ID and will lead to two installed versions which can cause conflicts.
Note This release removes the legacy hilsim gui application which could be activated using the migrateRunGUI=false switch in the gradle.properties file. The switch is not supported anymore.
  • [Eclipse based IDE]

    • Updates cage and eTrice plugins to latest versions (see details below)

  • [vsCode/codium based IDE]

    • Breaking: If you have been using the vsCode extension for the miniHIL, you have to manually uninstall the old eTrice extension before installing the new version.

    • Feat: C-Code completion, diagnostics and partial navigation in cage target code blocks. Note that the c code support will only be available after the first successful build of the miniHIL project.

    • Feat: Inline code actions for state machine editing.

    • Feat: Keyword hover in cage files

    • Fix: Fixes multiple bugs which would lead to stale diagnostics and scope in cage when changing room files.

    • Feat: Parameter names are now shown at step and sequence call sites.

  • [CaGe]

    • Fix: The previous release (2.6.0) removed support for imported state transition graphs in generated testsuites. This release reintroduces support for imported state transition graphs.

    • Fix: Correctly validate the interfaces used in imported state transition graphs. Due to missing validation, previously c code that would not compile was generated when the interface of the test actor did not match the one used in the graph.

  • [interactive hardware documentation]

    • Fix: Fixes a bug where the interactive hardware documentation could not be pregenerated from an existing .json configuration file.

    • Fix: Fixes a bug where multiple custom extension boards could have conflicting pin IDs leading to random wiring.

  • [CAN]

    • Feat: Adds a CAN scheduler actor (can.platform.CANScheduler.ACanScheduler) which can be added to any can setup to automatically send can messages following a preconfigured schedule.

    • Fix: Correctly indicates whether received CAN frames use an extended or standard ID in the CANMessage.

  • [eTrice]

    • Updates eTrice to version 5.9.0 (release notes)

      • DLS change: Support for nameless transitions in state machines to allow for easier editing in the dsl (backwards compatible).

  • [miniHIL dashboard]

    • Feat: Added traceDiagramLinkIde property to configure which IDE (VSCODE|VSCODIUM|ECLIPSE) opens CaGe TraceDiagram links.

    • Feat: Cage trace diagrams now rendered as collapsible sections to allow quicker navigation to the relevant traces.

    • Fix: Improved memory usage in case of long logs and cage traces.

    • Fix: Fixed a bug where the dashboard could not connect if another (possibly stale) dashboard instance was still open in the browser.

5.6.0 (2026-05-27)

Note This release contains a new tools directory (v5.6.0).
Note MiniHIL vsCode extension: A vsCode extension for the miniHIL is in active development. A beta version is provided on the miniHIL download page.
  • [CAN]

    • Fix: a possible loss of incoming CAN frames if both can interfaces are used simultaneously. Set a dedicated message RAM offset for FDCAN2 and reduce FIFO element counts to prevent shared message RAM overlap when both CAN controllers are used simultaneously, avoiding a race condition that could drop CAN(-FD) frames.

  • [I2C]

    • Feat: I2C master now supports transfers larger than 16 bytes via new writeLarge and readLarge messages in PI2CMasterCtrl. These messages take a new request data classes which contain a pointer to a user-managed buffer (DI2CWriteRequestLarge / DI2CReadRequestLarge). Read requests are answered by readCompleteLarge, containing the buffer pointer and the actual number of bytes read (docs).

    • Feat: Added AI2CMaster3Adapter for I2C interface 3 (pins PH8/PH7). Mirrors the existing AI2CMaster2Adapter and supports the same PI2CMasterCtrl protocol (docs).

  • [SENT]

    • Breaking: ActorClass ASentAdapter_TIM16_PF6_DMA1S5 renamed to ASentAdapter_TIM16_PF6_DMA2S5 to correctly reflect the used DMA channel.

    • Feat: Added new ASentAdapter_TIM16_PF6_DMA1S6 to allow usage of SENT in case DMA2S6 is used by another actor.

  • [Time measurement C-API]

    • Fix: Fixes incorrect conversion of seconds to nanoseconds which lead to a duration reported 10 times longer than the actual duration.

  • [CaGe / Test report]

    • Fix: In case of executing the same test case twice (this is also the case if the same test case with the same test case parameters is included in the same test suite multiple times), output files were overridden. Files are now uniquely numbered by execution order. This bug could also lead to seemingly incorrect test results in the test report if the test outcome changed between the two executions of the same test case. The result was always recorded correctly, but the test log and cage trace files were overridden by the second later executions.

  • [eTrice]

    • Updated to version 5.8.0 (release notes)

      • Fix: (Changed behavior!) Fixed rare case of missing entry and exit codes in inherited state machines in C generator.

      • Fix: Fixed detailcode translation in C generator for operations called on attributes.

      • Fix: Fixed IDE update problem when changing port properties (e.g. changing multiplicity or conjugated/regular).

5.5.0 (2026-02-18)

Warning BREAKING CHANGE: The UART word length / data bits handling in combination with enabled parity was corrected. Previously the data bits configuration had to be increased by 1 if parity was enabled. This is no longer the case. If you upgrade to this release, please verify and update your UART configuration accordingly. E.g. if you previously configured DataBits=9 as a workaround to get 8 data bits + EVEN/ODD parity, update your configuration to DataBits=8 and keep the required parity setting.
Warning BREAKING CHANGE: The test report schema changed: element testTraceDiagram moved to test case.
Warning Using asciidoc in documentation comments in room files via the <!-- asciidoc -→ directive is deprecated. Please use markdown (commonmark) to markup documentation comments. No special directive is needed to enable markdown.
  • [Interactive hardware documentation]

    • Feat: User interface now allows adding and editing of customer/project specific hardware adapter boards (docs).

  • [Dashboard]

    • Fix: Correctly trigger enumeration of connected miniHIL boards on dashboard startup and board selection. Previously only "Automatic" selection was possible, which cannot be used to connect if more than one board is connected.

    • Fix/Feat: Automatically choose a free port if a second dashboard server instance is started. Previously only a single dashboard server could be started. Subsequently it was not possible to connect to multiple miniHIL boards on the same PC without manually starting dashboard servers on different ports.

    • Feat: Traces are shown per test case

  • [Test Report]

    • Breaking: The test report schema changed: element testTraceDiagram moved to test case.

    • Feat: Traces are shown per test case

  • [Analog Output]

    • Fix: Ensures that the requested output voltages are applied immediately after the AnOutAdapter initialization completes. This prevents initial voltage set requests received during system startup from being lost.

  • [UART]

    • Breaking: Fix: UART word length configuration to correctly reflect the selected data bits, and to handle parity-enabled configurations properly.

  • [LIN]

    • Feat: Adds c api to change lin baudrate at runtime LIN_setBaudrate(uint32_t baudRateBps). Note that a restart of the slave simulation is needed after changing the baudrate: LIN_startSlave(). Lowest supported baudrate is 3kbps.

  • [I2C]

    • Feat: The I2C master abstraction now supports baudrate configuration and 10-bit addressing. (docs).

    • Breaking: DI2C[Write/Read]Request have gained an additional field: use10BitAddressing. If you have used the I2C master before, and have not zero initialized the structs before using them, ensure to set this field to false to avoid undefined behavior.

  • [CaGe]

    • Feat: Trace shows duration of timeout: timeout after X ms, where X is the expired time limit plus the timespan until raised

  • [eTrice]

    • Updated to version 5.7.0 (release notes)

      • Fix: (Changed behavior!) Initial attribute values defined in actor classes are now correctly applied for attributes backed by a DataClass. Previously the default values defined in the DataClass were always used. Even if the actor class provided different initial values.

5.4.1 (2025-10-31)

Warning There is a change in the communication between miniHIL and PC software. The PC software in this release will not connect to miniHILs flashed with older software. A rebuild and flash of the test project is needed before executing tests.
  • [Report generation]

    • Fix: In case a test run was canceled the following test run would produce an etUnit file without header. This would lead to an error when generating the test report which led to an empty report. This has been fixed.

  • [WhiteBox test client]

    • Feat: Client now has an option to automatically reconnect to the miniHIL process if the connection is lost. (docs).

  • [SPI]

    • Fix: Renamed some internal callback functions to avoid name collisions when using SPI2 and SPI6 adapters in the same project.

5.4.0 (2025-10-06)

Note This release contains a new IDE release (v5.4.0).
  • [Dashboard/GUI]

    • Fix: Keep test tree results state when clicking on cage trace links

    • Fix: Data dashboard widgets could not be saved as no default configuration directory was set.

  • [Testreport]

    • Feat: Add test suite sequence number to allow ordering test suites by order of execution

    • Test result pie chart now uses a linear representation. Before a logarithmic scale was used.

  • [SENT]

    • Feat: SENT simulation now allows setting of non standard and fractional tick length (docs).

  • [LIN]

    • Master and Scheduler now offer a replicated port for scheduler control from multiple peers.

  • [General]

    • Fix: MCU Pin PJ13 was always driven low by I2C port extender. The Pin is now correctly configured as input and not driven.

  • [ModelLib]

    • Feat: Added @UsesResource annotation to actors in minihillib for hardware resource management (docs).

  • [CaGe]

    • Fix: Increased sequence trace depth

    • Feat: Automatic partial flush of the cage trace during cage wait statements. For most loop use cases which include wait statements this mitigates or greatly improves the time before cage trace buffer overflows occur.

    • Feat: Allow action code blocks in sync reaction blocks.

  • [eTrice]

    • Update from version 5.4.0 to 5.5.0:

      • Minor eTrice runtime fix: Corrected heap boundary calculation in etMemory_variableSize, which lead to wasted space at the top of the memory.

      • Fix: A warning in case replicated ports contained attributes, but had no connected peers.

      • Feat: Adds validation and error message in case two handlers for the same message exist in a port class.

  • [FPGA extension]

    • A plugged in extension board no longer blocks the miniHIL startup in case no FPGA configuration is part of the miniHIL software.

Note For this release linux build and development tooling can be provided. Please contact PROTOS for more information.
Note The legacy GUI will be removed in the next release. If you have specific GUI/Dashboard needs please contact PROTOS.
Note MiniHIL vsCode extension: A vsCode extension for the miniHIL is in active development. We are looking for test users. If you are interested please contact us.

5.3.4 (2025-05-16)

Note This is a bugfix only release. In this release only the IDE is updated.
Note This release contains a new IDE release (v5.3.4).
  • [IDE]

    • Fixes a regression introduced in the 5.3.0 IDE:

      • Creation of new bindings in the structure editor was no longer possible.

      • Creation of new transitions in the behavior editor was no longer possible.

5.3.1 (2025-05-07)

Note This is a bugfix only release. In this release only the IDE is updated.
Note This release contains a new IDE release (v5.3.1).
  • [IDE]

    • Fixes a regression introduced in the 5.3.0 IDE: Snapping in the graphical eTrice editors did not work correctly leading to usability issues when moving elements.

5.3.0 (2025-04-30)

Warning This release contains changes which may be breaking.
Warning This release is migrating to the miniHIL Dashboard.
Note This release contains a new tools directory (v5.3.0).
Note This release contains a new IDE release (v5.3.0).
  • Breaking

    • [GUI] Breaking Change Replaced the existing GUI with the miniHIL Dashboard:
      The script runGUI.bat and task runGUI are starting the Dashboard instead. This can be reverted by setting migrateRunGUI=false in the gradle.properties file.

    • [Build] Breaking change Enables gcc -Werror=implicit-function-declaration for miniHIL project builds to avoid spurious and hard to detect errors due to incorrect handling of return values when a function is not declared. This might break your project build if you are using functions without a declaration. The resulting build errors have to be fixed by adding the appropriate function declaration. Usually this means fixing a missing import.

    • [ICU - Input Capture Unit] Breaking change Renames AInputCaptureUnit to AInputCaptureUnit_TIM2_DMA2_S4 to reflect the used HW resources in the actors name and to avoid a naming collision with the newly added ICU actor. If you are using the AInputCaptureUnit actor class in your project you have to update you ActorRef statements and possibly correct the imports.

  • [Dashboard]

    • Feat: Left sidebar is resizable.

    • Fix: Data dashboard configuration could not be saved in dashboard preview release.

    • Feat: Added support for live test signal visualization. See miniHIL Dashboard

  • [CAN generator]

    • Fix/Feat: Adds support for big endian signals

  • [LIN]

    • Feat: Lin generator now supports sporadic frames

    • Fix: Lin generator now allows usage of real values for delays in LDF schedule tables as long as only ms precision is used

    • Feat: The generated signal store now supports changeNotifications which can be enabled/disabled per signal (lin docs).

  • [HW wiring documentation]

    • Feat: Adds connectable pins to fpga extension board

  • [Logging/Tracing]

    • Feat: Adds PCageTracing protocol which is exposed as Service and can be used via a SAP to print messages into the cage trace. (use with SAP tracer: PCageTracing and tracer.logTrace("Logged to trace");) (docs)

  • [Modellib]

    • [Table based voltage lookup]

      • Feat: Adds actors for table based value (e.g. temperature) to voltage lookups with linear interpolation. These Actors (in NTC.room and VoltageLookup.room in SimModelLib/model/minihil/platform/simulation/) can be used to easily implement table based value to analog voltage conversions.

    • [ICU - Input Capture Unit]

      • Feat: Adds new (additional) instance using TIM5 and DMA 2 Stream 6.

    • [SENT]

      • Feat: Adds a single channel SENT abstraction which can be used to build SENT based sensors simulations (docs)

    • [PWM Sensors]

      • Feat: The V2 PWM sensors can now measure the frequencies down to 2Hz (LowCutoffFrequency can be set down to 1Hz)

  • [USB]

    • Fix: Minor protocol changes to improve USB throughput. MiniHIL boards flashed with this release may not be able to communicate with the GUI from older releases.

  • [CaGe]

    • Fix: Fixes unused variable warning in case the data were not compared in the expect statement (using (*) expression.

    • Fix: Fixes a bug where cage traces contained the wrong message names for protocols with more than 127 messages.

    • Feat: Adds reaction sync blocks which allow synchronous expects. I.e. checking of values without waiting for an incoming message (docs).

5.2.0 (2024-10-02)

Warning This release contains changes which may be breaking if you use the analog output, digital output and digital input SAPs. Please refer to Migrating IOs SAPs section in the User’s Guide.
  • Breaking

    • [PAnOut] Breaking Change PAnOut is now split into the SAP part (PAnOut_SAP) and non-SAP part (PAnOut). Refer to Migrating IOs SAPs for migration guidance.

    • [PDigOut] Breaking Change PDigOut is now split into the SAP part (PDigOut_SAP) and non-SAP part (PDigOut). Refer to Migrating IOs SAPs for migration guidance.

    • [PDigIn] Breaking Change PDigIn is now split into the SAP part (PDigIn_SAP) and non-SAP part (PDigIn). Refer to Migrating IOs SAPs for migration guidance.

  • [Core]

    • Distributable artifacts for runtime/target are now collected in a build/dist folder in the MiniHilProject

    • Added protobuf generator to allow room actors to send and receive protobuf messages

    • Fixed miniHIL version values generated in C project source code

  • [UART]

    • Fix possible race condition during UART receiver enable.

    • Fix missing initialization of rxBufferByteCount and rxBufferNeedsHandling values in UART adapter.

    • Fixed possible overflow when receiving bytes

  • [CaGe]

    • Added support for etrice port modifiers mandatory/optional

    • Improved validation for missing arguments

    • Fixed weblink support (IDE)

    • Fixed CaGe compatibility with standalone etrice doc generator

  • [eTrice] Update to v5.2.0 - Changes relevant for miniHIL:

    • Fix possible race condition in TimerService which could lead to invalid reception of timeout event in case a timer was killed and directly restarted.

    • Fixes a bug where the c generator would produce uncompilable code if \r or \n were used in message or operation parameters.

    • Adds @UsesResource annotation for actor classes. This annotation can be used to specify unique resources which may not be used by multiple actors. A warning is generated if a resource is used more than once in an eTrice system.

    • Added port connection modifiers optional and mandatory

    • "private" protocol messages are now hidden from code completion assist to discourage use (IDE)

    • For PC variant: etGetTargetTime now uses monotonic clock

  • [Headless Test Runner]

    • Fixed duplicate test selection when using wildcard

    • Sunsetted deprecated index-based test selection. Since 4.4.1 tests are selected by name (Selecting Tests).

    • Handle missing and invalid testHW and mcuID properties when running target HW gradle tasks

    • Fixed test state race condition when loading test model during start

  • [Testreport]

    • Extended documentation about report MetaInfo values

  • [Logging/Toolchain]

    • Fixed buffer usage values in platform statistics

  • [Template projects]

    • Added property file containing release version information

  • [Interactive hardware documentation]

    • Added documentation to User Guide

  • [Ethernet]

    • ctrl.error message added for ethernet connection error

  • [Analog Switches]

    • Extended documentation in User Guide

  • [PC Variant]

    • Allow GCC toolchain to be configured via gradle property

5.1.3 (2024-03-08)

  • [Testreport]

    • MetaInfo annotation values are now rendered as markdown in the html test report.

  • [Dashboard/Headless]

    • Added out of sync check for loaded models and flashed application when connecting to the miniHIL.

    • Improves reliability of usb connection in case of degraded usb performance on the host side

  • [SPI adapter]

    • Allow disabling automatic return to slave mode, to avoid release of NSS and CLK lines to tristate outputs

  • [System]

    • Lowered priority of USB interrupts to avoid blocking of other user specific interrupts

  • [SPI]

    • Adds missing common callbacks for SPI5

5.1.2 (2024-02-08)

  • [RTC - Real time clock]

    • The rtc_getDateTime function now returns a bool to indicate if a valid time has been read into the passed ptr. The function now returns false if the rtc does not have a valid time set (e.g. before a usb connection with the test runner/gui has been established at least once). This change also fixes a bug were the RTC time could not be synchronized successfully if it had been requested using the rtc_getDateTime function before the initial sync.

  • [Testreport]

    • Fixes a bug where MetaInfo annotations were not correctly attached to test results if the test case contained parameters.

  • [SPI adapter]

    • Adds option to configure SPI idle clock polarity, clock capture edge, NSS active level and transmission timeout

5.1.1 (2024-01-12)

Note This release contains a new tools directory (v5.0.1).
  • [LIN]

    • Corrections and additional documentation in User Guide

    • LIN scheduler rollover notification and schedule switching behavior fixed to match existing documentation

    • DLinScheduleState documentation correction for pos member

  • [Testreport]

    • Fixes test case descriptions for parameterized test cases

    • Fixes reporting when test cases were executed selectively

    • Percentage labels on HTML report graph forced to add up to 100%

  • [DigIn]

    • Corrections in Model Library reference documentation for PDigIn

  • [GUI/Headless test runner]

    • Adds documentation of test execution order when Selecting Tests

    • Fixes USB ZLP handling in case header and payload are send in one usb transaction

  • [CaGe]

    • For PC variant test executables, fixes typo in build configuration for wait max delay override. Normal tests targeting the miniHil hardware are not affected by this change.

  • [Runtime]

    • Fixes hard fault when the miniHIL project is compiled with -O2 optimization. The hard fault was caused by GCC that inserts undefined instructions on purpose when it detects a (null-)pointer pointing to 0x00 (beginning of RAM).

  • [Tools]

    • Remove unused Java JRE

    • Updates arm gcc from v10.3 to v12.3

5.1.0 (2023-12-15)

  • [Timing service]

    • Fixes a race condition which between could happen if kill and startTimeout/startTimer message were directly send after each other from within the same actor. Under some circumstances this could in turn lead to a message queue overflow.

  • [CaGe]

    • Fixes printing the reason for expect absent expects.

    • For PC variant test executables, fixes excessive wait delay warnings due to platform-dependent (non-realtime) inaccuracy. The maximum delay before triggering a warning is relaxed to 10 ms. Normal tests targeting the miniHil hardware are not affected by this change.

    • Fixes a bug where cage traces were not converted correctly if a cage trace buffer overflow occurred at the end of a step or sequence call.

  • [Testreport]

    • Fixes a test case name escaping bug which truncated some test case names with float parameters.

    • Enables html raw passthrough for test case and test suite documentation when rendered in the html test report

    • Extends the html test reports markdown renderer capabilities to be compatible with github flavoured markdown

5.0.0 (2023-09-29)

Warning This release contains changes which may be breaking if you use the STM32 HAL drivers directly (see notes below).
Note This release contains a new IDE (v5.0.0)
Note This release requires a new tools directory (v5.0.0).
  • [HAL]

    • Migrated Stm32CubeH7 HAL from v1.10.1 to v1.11.0 The release notes can be found here. The file is also available as part of the STM32CubeH7 package v1.11.0 (Drivers\STM32H7xx_HAL_Driver\Release_Notes.html).

  • [LIN]

    • The LDF to eTrice generator now supports the LIN ByteArray data type

  • [I2C master]

    • Fixes a hard fault when using an i2c address which is not present on the bus

  • [Ethernet]

    • Adds an lwip adapter as well as an example tcp connection actor (Max payload size 255 byte). Currently ethernet may be used by user test cases. It is not used to control test execution. (minihil.platform.eth)

  • [CaGe]

    • Fixes a bug with in range expects: In case the correct type of the expect could not be inferred from the arguments the arguments were cast to int before comparison. Inferring the correct type fails if all parameters (compare value and both range limits) are provided as target code. This could lead to unexpected fail/passes of the expect.

  • [IDE]

    • Updated to STM32CubeIDE v1.13.1

    • Added Markdown (CommonMark) support. It is now the default language for documentation in eTrice and CaGe

    • Updated CaGe

      • Increased char limit for arguments in trace diagrams

      • Fixed trace diagrams when string argument contains special char

      • Improved validation

  • [Input capture]

    • Adds a new input capture actor to measure timings of arbitrary digital waveforms (docs).

  • [GUI/Headless test runner]

    • Fixes a crash on disconnect

  • [Interactive hardware documentation]

    • Fixes wrong pin labels for usart 1 RX and TX pins in interactive hardware documentation

    • Adds header pin numbers to pin hover texts

    • Allow adding custom "software adapters" in the hwConfig.json. (A json schema file can be found in minihillib/gradle/hwConfig.schema.json).

    • Changes download file name to hwConfig.json to match the file name expected by the gradle task.

    • Adds version number info to menu

4.4.2 (2023-07-07)

  • [Logging/Toolchain]

    • FIX: Reenables the generation of runtime statistics

    • FIX: Test case names with parameters are now correctly displayed in the GUIs build in console.

4.4.1 (2023-06-16)

Note This release requires a new tools directory (v4.4.1).
Warning BREAKING - Format of CLI argument -Ptests=…​ has changed, the separator must be ; only.
  • [Logging/Toolchain]

    • Improved support of test cases with arguments

      • CLI argument -Ptests=…​ support test cases with arguments, see updated documentation Headless Build and Test
        The separator for multiple test names has changed to ; only.

      • Test case arguments are displayed in the miniHIL toolchain consistently, e.g. UI, text logging, test results …​

    • Improves PLogger.logF performance for strings < 150 chars

  • [Runtime]

    • Adds missing common callback functions for SPI6

    • Adds common callback functions for HAL SPI error callback

  • [Build]

    • Fixes a bug where the miniHIL executable was deleted if the tests failed and if the assemble and runTests gradle tasks were used together

  • [Reporting]

4.3.0 (2023-02-15)

  • [Standalone GUI (dashboard)]

    • This release contains the first version of the standalone MiniHIL GUI (documentation).

  • [Core/GUI/Headless build]

    • Adds timestampLogs project property which enables gui and headless test outputs to be generated into sub-folders named with the current date and time. (Add timestampLogs=true to your gradle.properties file).

    • Adds a --passthroughMultichannelIds [channelID] option to the GUI and headless test executor.

      • With this option a local tcp socket is opened on port 3300 + channelID (i.e. 3331 for channel 31). A client connected to this port can receive and send messages from/to the multichannel with the corresponding ID. Note: The transport is only available for ids 30..60.

      • You may pass the option using the hilsimgui_args and headless_test_args in your gradle.properties file (e.g. headless_test_args=--passthroughMultichannelIds 31).

4.2.1 (2022-12-14)

Note This release requires a new tools directory (v4.1.4).
  • [CaGe]

    • Support automatic retry for unstable tests, see (more)

  • [Core]

    • Breaking: Enables compiler flag -Werror=sign-compare to ensure int/uint compares in CaGe always have the expected result. This might break your projects build if it contains comparisons between singed and unsigned integers (e.g. in custom target code expects). The resulting build errors have to be fixed by adding the appropriate type casts.

    • Disables unused USB FS (USB 2)

  • [AnOut]

    • Adds an adapter to control the dac channels connected to the "AnalogOut" header using the PAnOut protocol (minihil.api.adapters.dac.ADACCtrl).

  • [GUI]

    • Fixes a usb enumeration issue which allowed only one gui/command line process per PC to connect to a miniHIL board even if multiple miniHIL boards where connected.

  • [Output folders GUI/Headless]

    • Breaking: cageTraces and etTraces are now generated into the corresponding sub folders of the build/tests folder and not directly into the build folder.

  • [LIN]

    • NOTE: The generated lin actors now use the baud rate specified in the ldf file. Previously the baud rate was hardcoded to 19200 bps.

4.1.3 (2022-08-31)

  • [CLI]

    • Test cases can be selected by name, see (more)

    • Added Gradle task showTests to output all available test names

    • Test names defined via file (-PtestFile=) must be separated by new lines only

  • [Reporting]

    • Adds TestLog_testTrace(const char* format, …​); function which prints strings into the test log and the generated cage traces

  • [IDE]

    • Updated to cube IDE v1.10.1

    • Fixes a regression in 4.1.2 which stopped links in the generated CaGe Traces from opening the correct cage file location in eclipse

4.1.2 (2022-08-09)

Note This release requires a new tools directory (v4.0.2).
  • [General]

    • Explicitly set in and output file encoding to UTF-8 for all generators to ensure correct encoding of special characters.

  • [CaGe]

    • Increased max test suite name length to 60 chars. NOTE: If you are using the miniHIL PC variant you have to increase your message queue block size to >= 100 bytes.

    • Sequence diagrams now show timeouts and more parameter details in step calls, sequence calls, and test cases.

    • Fixed a bug in the documentation generator, where if a test case sequence/step was referenced in multiple test suites, the test case diagram would only be generated for one of the test suites.

  • [Reports]

    • Fixed createFeatureReport arguments handling in headless build. The feature report output files will now always be located in the MiniHilProject/build/tests directory, regardless of the presence of meta information arguments.

  • [IDE]

    • This release contains a new IDE release with usability improvements.

4.1.1 (2022-07-01)

  • [Etrice] minor fixes for C generator warnings and eTrice documentation generator output.

4.1.0 (2022-06-08)

  • [CORE] Fixes a bug which could lead to an endless loop if tim6 was enabled

  • [I2C] Fixes a regression introduced by the 10-Bit addressing support which could lead to dropped bytes or endless loops if more than one byte was read from the i2c interface at once. NOTE: This release removes the const keyword from the context pointer target of the i2cSlaveCallback_ft. You should change your callback signatures accordingly to avoid compiler warnings.

4.0.2 (2022-05-31)

  • [PWM Sensors] Fixes a bug with incorrect duty measurement during 0/100% duty periods which occurred if the frequency was requested multiple times during one low-cutoff period (This can only happen if the measured pwm signals frequency is below 1 khz).

  • [I2C] Adds support for the simulation of 10-Bit addressed I2C slaves. Limitation: All 10-Bit addressed slaves on the same I2C bus must share the same value for the upper two address bits.

  • [CaGe/Reports] Fixes a regression where multiple calls to the same parameterized test case sequence resulted in duplicate generated documentation sections.

4.0.1 (2022-05-10)

  • Fixes an unintended breaking change where testsuite names were prefixed with "MiniHILProject" in the results.xml. This release resets the naming behavior to the pre 4.0.0 state to ensure compatibility with existing tooling and featurecov mappings.

  • [CaGe/Reports] Documentation generator now correctly handles test suites that reference test cases from external CaGe models. Also resolves an issue where all-lowercase names may cause broken links.

4.0.0 (2022-04-28)

Warning This release contains changes which may be breaking if you use the STM32 HAL drivers directly (see notes below).
Warning This release requires a new tools directory (v4.0.0)
Warning This release contains changes to the build process which require manual project updates. See "Note" in the "Build" section below.
Warning BREAKING - This release switches from usb serial port driver to winusb/libusb driver. This requires changes to your CI setup as well as to your GUI configuration (See [GUI/USB] section below).
Note This release contains a new IDE (v3.3.0)
  • [CaGe]

    • Adds finally expects to the CaGe language. finally expects may be used to wait for a message with a specific payload. (more)

    • Trace contains sequence parameters and graph state states

    • Added documentation for (State Transition Testing)

  • [HAL]

    • Migrated Stm32CubeH7 HAL from v1.2 to v1.10.1. The release notes can be found here. The file is also available as part of the STM32CubeH7 package v1.9.1 (Drivers\STM32H7xx_HAL_Driver\Release_Notes.html).

  • [Tools]

    • Updated arm gcc toolchain from v7.3.1 to v10.3.1

    • Updated gradle from v6.9 to v7.4

    • Removed ST_LINK_CLI.exe (it is no longer needed, the same functionality is provided by the STM32CubeProgrammer)

  • [Build]

    • Removed obsolete tasks "stLinkFlash", "stLinkReset", "stLinkFlashOnly". Use "flash", "flashOnly" and "reset" instead.

    • Moved binary build outputs into "build/bin" subdirectory

      • If eclipse does not find the elf file in its new location you may have to "refresh" the MiniHilProject

      • NOTE: This change requires that you update your launch configurations. To do that run .\gradlew.bat updateLaunchConfigurations once.

      • NOTE2: If you are building c++ sources this might lead to an error if shared libraries are build by the native build plugin. You can disable the shared library build by adding withType(SharedLibraryBinarySpec) { buildable = false } to your builds "binaries" section (For an example see /minihillib/gradle/MiniHilLibraryStm32h7.gradle).

    • The build changes should improve build caching and therefore build speed after the initial build has been completed.

  • [UART]

    • Adds two additional UART adapters. One with RS485 DE signal and one with rs232 hardware flow control.

    • Adds UART3 and allows configuration of rs232 flow control for UART2

  • [System] eTrice message size increased to 92 bytes.

  • [CAN] Adds support for 64 byte CAN-FD frames. Removes 32 byte CAN-FD frame size limit.

  • [GUI/USB] Switches from virtual serial port driver to WinUSB/LibUSB driver

    • This changes how miniHIL boards are addressed when executing test using gradlew. See -Paddress documentation here.

    • This requires that you switch the connection method to usb when connecting through the gui

    • NOTE A miniHIL board which has been flashed with the new usb implementation cannot be connected through an old gui. If needed it has to be reprogrammed with the old version first.

  • [GUI]

    • Test logs and traces are now generated into a "build" subdirectory of the HilSimGui directory. Update ignore lists accordingly

    • The gui now produces the same test artifacts as the gradlew command line build

Known Issues

  • Newly added room entities (actors/protocols/enums) sometimes do not show up in other room files until a build is triggered

    • Workaround: Enable "Build Automatically" in your eclipse workspace (From the menu bar choose: Project→Build Automatically, if enabled a checkmark is shown before the menu entry)

3.2.1 (2022-02-07)

  • [CaGe] Removed limit for amount of test cases

  • [CAN] Fixes a bug where can tx messages were dropped silently when bus-errors/arbitration loss occurred

  • [ADC] Fixes initialization timeout on some miniHIL boards

  • [Docs] Updated quick start tutorial

  • [XCP] Fixes a bug which prevented successful xcp master reset when the master is not in idle state

3.2.0 (2021-11-29)

  • [IDE] This release contains a new IDE (v3.2.0)

    • Fixes font handle (memory) leak

    • Updates eTrice and CaGe plugins to the latest version

  • [Docs] Improved and added development environment documentation

  • [CAN] Added can message filtering capabilities to PCANData protocol

  • [CAN] Increased amount of bus ports offered by STM32CanService

3.1.2 (2021-10-26)

  • [GUI] fixed mute logging after reconnect

  • [GUI] text logging is additionally written to files split by test case, see folder 'testcases'

  • [Build] fixed line endings of generated whitebox python file

  • [XCP] fixes a connect regression introduced in the last release

  • [I2C] Adds a third I2C bus adapter (This actor is still part of the minihil platform namespace. Its api might still change in the future).

  • [RTC] Adds realtime service and c api which provides the real (clock) time after the pc usb connection is established (docs)

3.1.1 (2021-10-05)

  • [CAN] fixed conversion of extended IDs from DBC file

  • [CAN] fixed non-stable order of data classes in generated ROOM files

  • [XCP] improved xcp service reset

  • [I2C] fixed I2C callback handling if unknown virtual slave address is encountered

  • [UART] fixed a sporadic DMA lock-up issue

  • [UART] fixed peripheral handling when a receive might interrupt a running transmit

  • [UART] added logging for UART buffer overflows in custom uart1 actor

  • [Build] fixed generator execution order regression

3.1.0 (2021-08-25)

Note This release requires a new miniHIL tools directory >= v3.1.0. This tools version is not backwards compatibility with older minihillibs.
  • [IDE] New IDE release (3.1.0) contains updated editors and ui components

  • [Tools] Adds release.properties file with tools version information

  • [Tools] Updated minihil-tools to 3.1.0.

  • [Doc] Adds MiniHIL Library update guide.

  • [Doc] Adds minimal documentation for Featurecov generator.

  • [DigOut Adapters] Improved handling of level change requests from initial transitions of user actors.

  • [DigOut Adapters] Improved warnings for disconnected output pins.

  • [I2C] Adds a second I2C bus adapter (This actor is still part of the minihil platform namespace. Its api might still change in the future).

  • [Build] Updates gradle to v6.9

  • [Build] Missing directories on the modelpath are now reported as warnings.

  • [CaGe Doc] Adds state transition test diagrams to cage doc

  • [eTrice] Updates eTrice to v3.2

3.0.4 (2021-07-16)

  • [eTrice/GUI] Feat: Add binary MSC tracing (refer to Tracing of Monitors & Simulators)

  • [Build] Fix: Prevent CDT using executable from previous build

  • [UART] Fix: Improve UART2 adapter performance and stability

  • [Doc] Fix: Add documentation for CAN pinout bug on older miniHIL Hardware

  • [CaGe] Fix: Increase test case failure message length from 40 to 256

  • [eTrice] Fix: etTimeHelpers_normalize runtime utility function

3.0.3 (2021-06-09)

  • [CaGe] FIX: Increase testcase limit to 1024

  • [PWM] Feat: Adds 8 pwm sensor actors (v2). (These actors are still part of the minihil platform namespace. Their api might still change in the future). Note: The timer frequency is currently fixed to 200MHz. Lowest measurable frequency is approx. 3.1 kHz.

  • [PWM] Feat: Pwm generators now have replicated ports

  • [UART] FIX: Improves uart reliability for baudrates >= 1 Mbit/s

  • [UART] Feat: Adds a second custom uart 1 adapter which uses PA10/PA09

  • [CAN] FIX: Fixes bug in open/close/reopen behavior

3.0.2 (2021-05-03)

Note This is a bug fix only release.
Note To be able to start a debug session with the new miniHIL IDE you need to have the STLinkServer component installed. If you are unsure you can find the installer in the new miniHIL IDE zip file inside the "STLinkServer" folder.
  • [IDE] Fixes (NPE) error message when opening c / cpp source or header files.

  • [ADC] Adds a second adc adapter which uses different hardware resources.

3.0.0 (2021-04-30)

Note This release contains a new miniHIL IDE. Users who want to use the new IDE for existing projects have to migrate their projects manually.
  • [IDE] This release contains a new miniHIL IDE. The new IDE is based on the more up to date STM32 Cube IDE. This change requires that users who want to adopt the new IDE will have to migrate their existing projects.

  • [Reset Gen] Fixes bug where a misleading warning was logged by the reset generator when used with the current io adapters

  • [PWM] Fixes bug in PWM sensors which did not correctly report 0/100% duty if duty and frequency were measured at the same time

  • [PWM] Fixes bug where PWM Sensor 3 sampled the wrong pin when 0/100% detection is active

  • [PWM] Fixes div by 0 error if the pwm frequency was calculated after 0 duty was measured

  • [Build] Better detection of unsupported project paths

  • [Build] MiniHIL project builds use the g++ linker by default now. This is backwards compatible to existing miniHIL projects. But, it allows mixing prebuild c and cpp libraries

  • [CAN] Adds a second CAN Service which uses different can hardware. Adds the ability to connect the PROTOS miniHIL to two independent can interfaces.

  • [CAN] Breaking: Renamed AStm32CANService to AStm32CANService1. You have to update your models accordingly.

  • [CAN] Adds CAN-FD support

  • [UART] Adds another uart actor which gives the user more flexibility regarding the used protocol (This actor is still part of the minihil platform namespace. Its api might still change in the future)

  • [I2C] Adds an i2c bus adapter actor. (This actor is still part of the minihil platform namespace. Its api might still change in the future)

  • [CaGe] The "useControlService" option is now enabled by default

2.2.31 (2021-02-23)

  • [CaGe/generated documentation] Included @metaInfo to generated test documentation

  • [GUI] Improved performance of text console

    • Console scrollback buffer is limited now. The full output is written to a log.txt file in the gui directory.

  • [CAN] Fixes unpack bug with some signed values

  • [CAN] Add initial documentation: CAN Bus Adapter

  • [Infrastructure] Adds option to send protobuff messages between the miniHIL Board and a tcp client (using the gui as tcp server).

    • Example use case: Trigger actions in python client on pc and from cage testcase. E.g. to control debug probe connected to the pc.

  • [Infrastructure] Switches default programmer backend from st link cli to CubeProgrammer which adds stlinkV3 support.

  • [Lib] Adds driver to control TPL0401-A/B devices

2.2.30 (2020-11-09)

  • NOTE: This release contains an updated tools zip file. If you switch to this release you have to update your tools directory as well

  • Prepared minihil for communication with external client on pc using TCP and Protocol Buffers

    • added nanopb protocol buffers library

    • HilSimGUI provides tcp port for minihil multichannel

  • [Tools] Add cube programmer to support stlink v3

  • [Tools] Add python runtime for protbuf generator

  • [Build] Add gradle cube programmer flash job to be used with the new stlink v3

  • [CAN] Add a multi signal etrice message for incoming can messages

2.2.28 (2020-08-12)

  • [CAN/A2L] Parser support for multiplexed value and multiplexer switches in a2l files, but sending messages with multiplexed values is currently not supported.

  • [xcp] Generated adapter actors now only reply to the port from which the command was received. Every received xcp error / success message now triggers a matching message on the xcpAdapter port. Listening to the raw XCP port is no longer necessary.

  • [GUI] Fixes bug where potis + button displays were unresponsive

  • [GUI] Black cmd window should now close after the gui is closed.

  • [eTrice] Updated to 3.1.0

  • [Adapters] New led to ledBar adapter

  • Known issues:

    • Currently the relay ports of the TestPort Provider actor classes generate relay port "portname" is not connected warnings. To avoid those warnings you should make the PortProvider actor classes abstract. E.g. abstract ActorClass MyPortProvider.

2.2.27 (2020-07-08)

  • [GUI] Improved stability of communication between PC and miniHIL

  • [Lib] Adds a uart adapter which can be used to receive uart protocols with custom message headers

  • [Lib/GUI] Adds an adapter to send 4 boolean values from the miniHIL to the gui

  • [Lib] DigIn adapters now send the initial input pin state to the application

  • [Lib] DigIn adapters now support the requestLastState message defined in the PDigIn protocol

2.2.26 (2020-06-23)

  • [Lib] Adds generic DUT reset pulse generator

  • [Lib] All digitalIO and analog output adapters now offer their services through replicated ports

  • [xcp] XCP adapters are now generated with replicated ports

2.2.25 (2020-06-12)

  • [Lib] Adds a 3rd PWMGenerator actor to the miniHIL lib

2.2.24 (2020-05-29)

  • Build: Bugfix for builds being stuck due to a stuck awt thread

  • Build: Adds gradle v6 support

  • CAN: Initial CAN support

  • CI: Improved documentation for ci scripts

2.2.23

  • Build: Minor bugfixes to improve linux build support

2.2.22

  • fixes bug where single tests could not be run from the commandline

  • CaGe: Trace buffer size doubled (500 → 1000 entries)

  • CaGe: Range expects for integer values now print min and max values on failure

2.2.21

  • gradle: Adds preCheckConnection task to check for specific hardware before executing target tasks

  • eTrice 3.0.2: Added 'Organize Imports' action and bugfixes.

  • xcp: Adds a configurable communication timeout, Adds a resetCommunication message to reset the protocol state in case of test failures

  • CaGe: Fixes a bug where imported TestSuites could not be used

  • NOTE: Due to changes in the miniHil api you have to reflash your miniHIL board before you can connect to it using the gui or command line.

2.2.20

  • Minor bugfixes.

  • Fixes a bug where lin and xcp generator deleted each others output files when both generators were used.

2.2.19

  • Adds a second PWM generator actor which uses different hardware resources: APwmGenerator2

2.2.18

  • Improved minihillib for git submodule: Gradle daemon does not lock file of minihillib anymore.

  • CaGe: Fixed for-loop when containing if/else.

  • CaGe: Added wait in Sequences.

  • GUI: Fix for test case execution.

  • GUI: Test results are kept until next re-start.

  • GUI: Fixed start of GUI, when screen(s) resolution has changed.

  • New Eclipse version

2.2.17

  • Improved stability of logging. Log messages and traces will not interfere with test execution and added warning if messages are dropped.

  • CaGe traces are written out after test case has finished. Increased amount of buffered traces.

  • Added report for minihil performance statistics.

  • eTrice and CaGe models must use the new naming convention namespace.name, otherwise the following validation error is issued:

    WrongModelNameError
  • eTrice old-style documentation (["…​"]) is marked as deprecated.

  • Fixed generation of empty subgraphs. Presence of initial transition is now validated.

  • Integrated eTrice Interface Contract Monitors.
    The generation is triggered via the usual build. The generated actors can be found in 'model-gen'. For now it cannot be combined with lin or xcp generation.

  • Test case "skipped" status is shown in CaGe Logging, GUI and FeatureReport.

  • Corrected GUI LEDs status on startup.

  • New Eclipse version

2.2.16

  • Adds a 3rd PWM Sensor which uses different hardware resources

  • LIN: It is now possible to use different ldfs for protocol and actor generation

2.2.15

  • Fixes bug where the offline build tried to access a remote repository to check for updated packages

  • HTML testreport: Skipped tests are marked as skipped in the report now

  • Adds a PWM generator actor: APwmGenerator1

  • LIN: ctrl protocols restructured. Use ctrl.start()/ready()/stop() for general node lifecycle and ctrlScheduler.schedule()/run()/break()/scheduleDone()/etc. for schedule management.

2.2.14

  • Fixed CaGe time unit seconds (s) in generated code

  • LIN:

    • Stop now waits for end of frame slot to notify scheduleDone

    • Option added to notify scheduleDone on schedule rollover

    • Raw diag frame functionality

  • Initial version of XCP generator and libraries

2.2.13

  • Minor fixes in the documentation

  • XML Testreport

    • Adds multiKey and key-text variants of metaInfo annotation

2.2.12

  • Refines the structure of the xml feature report to include testsuits in a more convenient manner. Additionally top level meta information such as project name and revInfo are added.

  • Lin generator now supports switching between different schedules defined in the ldf file.

  • Revised getting started tutorial

  • Fixed bugs:

    • LIN generator is now run before the code generators are executed.

    • Fixed regression in DigIn adapters

2.2.11

  • eTrice / Cage

    • Removed warning 'import statements using uris are deprecated' in import of models

    • Improved quickfixes for imports.

    • Added validation and hyperlinking for new imports.

    • Model imports can be auto-folded, see eTrice Preferences.

    • Improved name filtering in eTrice dialogs

  • Added first draft for feature report as XML. Report will contain meta information for annotated tests. Steps and Sequences can be annotated with meta information using etrice.api.annotation.MetaInfo. In addition, Steps and Sequences can be marked explicitly as test cases, e.g. TestCase Sequence name. Output of the xml report is along the feature html report.

  • Added task openFeatureReport, which creates and opens the report in Chrome browser.

2.2.9

  • CaGe-Tests View in GUI is resizable.

  • GUI also generates CaGe traces - output folder is HilSimGUI/cageTraces.

2.2.8

  • Added TextConsole to GUI, which shows the text logs from simulator.