Skip to main content

Customer Login

This content is for Speedgoat customer only. Log in to see content.

Forgot your password?

Don't have a Speedgoat account? Create an account.

Documentation
CONTENTS
https://www.speedgoat.com/help/slrt/page/icon_documentation.jpg

Release Notes

Release Notes — Changes, rectifications and software support for new products.

About the Speedgoat I/O Blockset

The Speedgoat I/O Blockset contains all the driver blocks and functions required to use Speedgoat hardware with Simulink Real-Time™. Each Speedgoat I/O Blockset is available for the last six MATLAB® releases and can be downloaded from the Speedgoat Customer Portal: speedgoat.com/login.

9.3.1 (26-Nov-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Software Support for New Products

  • IO512: New SDLC, HDLC I/O module

    • The IO512 features four independent serial channels configured for SDLC and HDLC communication, with a high-speed Integrated Universal Serial Controller for the protocol-specific overhead. Each serial channel has independent, 32 kByte, transmit and receive FIFOs to reduce data loss at high clock rates

  • IO602: New CAN-HS and CAN-FD I/O module

    • Provides four isolated ports configurable to CAN FD and High-Speed CAN

    • Compatible with CAN 2.0A/B networks and supports SAE J1939 and ASAM XCP for bypassing

    • Ideal for in-vehicle or generic rapid control prototyping, as well as hardware-in-the-loop (HIL) simulations

    • The module's functionalities can be extended with the ARINC825 standard CAN bus protocol for avionic applications

Feature Improvements

  • ARINC825: Driver blocks

    • Added support for the IO691 I/O module

  • Ethernet Configuration Tool (R2020b and later)

    • Added support for IP alias addresses

      • Ethernet interface configuration is persistent except for the Host Link (supported as of MATLAB R2022a)

      • Functionality available through a new Speedgoat API: speedgoat.IpAliasConfiguration (integrated or web help)

    • Added button to restore factory settings

    • Added capability to remove IP addresses from an Ethernet interface

    • Improved overall usability

    • Added support for the new PCIe version of the IO715 Gigabit Ethernet I/O module

  • IO3xx: CAP driver block

    • Added adjustable debounce filter for capture and hardware trigger inputs

  • IO682: Encode v2 driver block

    • Added the option to enable a port on the Encode block for the SSM data input

  • IO821: Driver blocks

    • Added support for the PCIe version of the I/O module

  • IO907: Driver blocks

    • Improved the performance of read and write blocks when DMA mode is disabled

  • IO92x and IO97x (resistor control), IO94x (relay control), IO974 (thermocouple simulation), IO98x (fault insertion), IO991 (battery management): Driver blocks

    • Improved error reporting by using a descriptive text instead of an error code

  • Native Modbus TCP Server: Setup driver block (R2020b and later)

    • Added the option to delay Modbus responses

  • Speedgoat Tools: Runtime license documentation (R2020b and later)

    • Introduced a new help page that explains how to install runtime license files for protocols such as ARINC825, Modbus TCP and DNP3 (integrated or web help)

  • Utilities driver block library: Interrupt Setup block (R2020b and later)

    • Added option to select an interrupt channel for I/O modules supporting multiple interrupt sources

    • Added support for using interrupts with referenced models (refer to the usage notes (integrated or web help))

Bug Fixes and Corrections

  • Ethernet Configuration Tool (R2020b and later)

    • Fixed an issue where two or more IO701 or IO710 I/O modules were not represented correctly

  • IO116: Setup driver block

    • Fixed several issues that occurred when the current transceiver of the analog inputs was set to "On"

      • The setting in the Setup block mask did not correctly indicate the available current channels for the analog inputs

      • The Analog input block did not update the correct unit for either voltage [V] or current [A]

  • IO132-IO135: Analog Output driver block

    • Fixed an issue which caused voltage spikes on the Analog Outputs during model download and before model start

  • IO141, IO142 and IO145 I/O modules

    • Current Outputs

      • Fixed an issue which restricted the analog current outputs to half the maximum output value. For the "4-20 mA" range, the output was incorrectly set to between 8-12 mA

    • DMA

      • Fixed an issue that caused the Simulink model to run faster than real time when using DMA mode

  • IO3xx: CoS Interrupt v2 driver block (R2020b and later)

    • Fixed an issue where two simultaneous interrupts generated by one I/O module caused CPU overloads

    • Removed the event vector port from the driver block

    • Note: customers will need to update existing Simulink models supporting multiple interrupt channels. Functionality for interrupt sources is now triggered using a dedicated Interrupt Setup block instead of the CoS Interrupt block event vector. The usage notes provide an example of how the new setup should be modeled (integrated or web help)

  • IO3xx: Crank Encoder Analog v3 and Knock Generator v3 driver blocks

    • Adapted the initialization callback function of the blocks which was causing the wrong analog output waveforms

  • IO3xx: I2C Master read v1, I2C Master write v1, I2C Slave setup v1, I2C Slave read v1, I2C Slave write v1 driver blocks

    • Adapted the parameter fields so that variables from the model workspace can be entered

  • IO3xx: PWM Capture v1 driver block

    • Added adjustable debounce filter for PWM capture and hardware trigger inputs

  • IO3xx: SPI MasterSlave v2 driver block

    • Fixed an issue that caused MATLAB to crash when using a non-existing variable in the Words per Frame Vector field

  • IO643 and IO644: Driver blocks

    • Fixed an issue that prevented blocks from being used in referenced models

  • IO821: Time Reference driver block

    • Fixed an issue which prevented the time output year from being updated when IRIG AM or DCLS were set as a time input source

  • Utilities driver block library: Read serial number block (R2020b and later)

    • Fixed an issue that prevented the Read serial number block from building correctly

9.3.0.1 (27-Oct-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Bug Fixes and Corrections

  • Documentation

    • Restored direct access to interface and protocol (code module) driver block help content by reinserting relevant links in the left-hand navigation menu. Also introduced a new Configuration Files page to further improve access to interface and protocol content

  • Native Modbus TCP Server: Driver blocks (R2020b and later)

    • Fixed an issue that caused the server to return an exception when receiving requests with unit ID 255

    • Changed the highest possible unit ID to 255 in the block masks and the documentation

  • IO191: Analog output driver block

    • Fixed an issue which prevented the channel 3 analog output values from being generated correctly

  • IO3xx: Crank Encoder Analog v3 and Knock Generator v3 driver blocks

    • Adapted the initialization callback function of the blocks which was causing the wrong analog output waveforms

  • IO3xx: SPI MasterSlave v2 driver block

    • Adapted the parameter fields so that workspace variables can be entered

  • IO50x: Driver blocks (R2020b and later)

    • Added support for the 48 MHz base clock option

  • IO61x: CAN Status block

    • Fixed an issue causing the Bus-Off recovery not to function correctly

    • Optimized task execution time, and time consumption at initialization

    • Removed a misleading log message regarding a direct memory access initialization error

  • IO619: Process Data driver block

    • Fixed an issue which resulted in the wrong data on the bus if the TIMEDATE48 variable was used

  • IO691: Driver blocks

    • Fixed an issue preventing two CAN channels from sending CAN messages if one of the channels had no receiving device

  • IO907: Driver blocks

    • Fixed an issue which caused an error when the 'any' NodeID was used in the initialization structure

9.3.0 (23-Sep-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Software Support for New Products

  • IO145: New analog I/O module

    • Combines voltage and current capabilities on one board making the module an ideal solution for accurate measurements and output generation in various application areas such as industrial automation, aerospace and automotive

    • Provides 8 current inputs with a range of +-25 mA, 8/16 voltage inputs of up to +-96 V (differential) and 8 combined current/voltage outputs with 0-24 mA or +/- 12 V respectively

Feature Improvements

  • Documentation

    • Introduced two new help pages: "Simulink-Programmable FPGA I/O Modules" and "Configurable I/O Modules". These replace the following legacy sections of the Speedgoat I/O Blockset help: "FPGA Technology", "FPGA I/O Modules" and "FPGA Code Modules"

  • Enhancement for referenced models

    • The Referenced Models Supervisor block is no longer required and has been removed from the utilities block library. The consistency of the Setup blocks of all I/O modules used in more than one referenced model is now checked during code generation, which reduces the time required to update the model

  • IO3xx: Cam Encoder v3 driver block documentation

    • Updated code module, as well as cam tooth start angle and tooth length parameter and input descriptions

  • IO3xx: Crank Encoder v3 driver block

    • Added optional position output port

    • Improved the synchronization of parallel Crank Encoder modules running at the same speed

    • Updated documentation: Extended code module, as well as initial speed and duty cycle parameter descriptions

  • IO907: Driver blocks

    • Added the option to write data using Direct Memory Access

    • Added support for multi-rate use with the Read and Write blocks

    • Added support for referenced models

    • Added status output port to the Read Interrupt driver block

    • Changed error status port to board status port

Bug Fixes and Corrections

  • IO143 and IO144: Setup driver block

    • Fixed an issue that caused the analog output channel 1 to be set to 0 V when building and starting the real-time application several times in succession

  • IO3xx: PWM Capture v1 driver block

    • Fixed an issue where I/O pins could be simultaneously selected as DIO and CAP Trigger channels

  • IO3xx: Quadrature Encoder v3 driver block

    • Fixed an issue where I/O pins could be simultaneously selected as DIO and QAE channels

  • IO3xx: Setup v3 driver block

    • Fixed an issue that resulted in duplicate entries appearing in the configuration file drop-down list when I/O Configuration Packages are installed in different MATLAB releases

    • Fixed an issue with older IO316, IO317 and IO318 configuration files (bitstreams) where a configuration mismatch error was incorrectly displayed

  • IO3xx: Variable Reluctance Sensor v3 driver block

    • Fixed an issue that could lead to the minus sign being removed from data written to the VRS lookup table (R2020a and earlier)

    • Adapted the initialization callback function of the block which was causing a build error

  • IO611, IO612, IO613 and IO614: CAN Write documentation update

    • Added a note about using the data input port when RAW as a message type is selected

  • IO619: Setup driver block

    • Fixed an issue that caused an error when more than one device was selected from the configuration file

  • IO781: Driver blocks

    • Fixed an issue that caused the real-time target machine to freeze during initialization

9.2.2.1 (02-Sep-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Bug Fixes and Corrections

  • IO3xx: Digital Output v1 and Digital Input v1 driver blocks

    • Fixed an issue that caused the system to crash when running the Simulink Real-Time application for several hours

  • IO3xx: Setup v3 driver block

    • Fixed an incompatibility issue that occurred when using configurable I/O modules and Simulink-programmable FPGA I/O modules in the same Simulink model

    • Fixed an issue that caused the detection of all Simulink-programmable FPGA I/O modules to fail in MATLAB releases R2021a and R2020b

9.2.2 (11-Aug-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Software Support for New Products

  • New ARINC 825 protocol support (R2020b and later)

    • Allows CAN messages to be scheduled based on hardware timestamps

    • ARINC 825 connectivity is available with the IO602 I/O module

  • New Modbus TCP Server protocol support (R2020b and later)

    • Modbus TCP connectivity is now available with onboard Ethernet interfaces and plug-in Ethernet I/O modules

    • Multiple Modbus TCP server nodes can be simulated on one Ethernet port

Bug Fixes and Corrections

  • IO104: Analog Output driver block

    • Fixed an issue that prevented the application of initial values

  • IO141 and IO142: Setup driver block

    • Fixed an issue that prevented the user from only activating Input Group 1 of the Analog Input Channels

    • Fixed an issue causing the Analog Inputs tab (in Single-Ended mode) to show the wrong voltage range for the last two channels in each Input Coupling group

  • IO171: Analog input driver block

    • Fixed an issue where the number of block inputs did not change correctly in line with the number of channels selected

  • IO3xx: I2C Master read v1, I2C Master write v1, I2C Slave read v1, I2C Slave write v1 driver blocks

    • Fixed an issue that caused build errors due to a missing default buffer size parameter. The default buffer size is set to 64 words

  • IO3xx: Setup v3 driver block

    • Fixed an issue where the selected bitstream was unselected during model build in a Simulink project

  • IO32x: Driver blocks (R2020a and earlier)

    • Added support for serial interrupts

  • IO643: Setup driver block

    • Fixed an issue that prevented the Setup block from locating the SYCON.net configuration file if the specified file path was relative to the current working directory

  • IO691: Setup driver block

    • Replaced a message to clarify the sourcing of the I/O module firmware file if no such file is present on the target machine disk

  • IO97x: Resistor Control driver block

    • Added support for the IO972-6-1000 and IO973-6-3000 I/O module variants

  • Utilities driver block library: Read CPU Temperature block (R2020b and later)

    • Fixed an issue that caused an error when repeatedly loading the model on the target

9.2.1.1 (30-Jun-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Bug Fixes and Corrections

  • IO104, IO106, IO183, IO3XX, IO50X, IO511, IO601, IO61X, IO619, IO672, IO811: Persistent memory path update (R2021b)

    • Fixed an issue that prevented the I/O modules from loading persistent module data after the data had been saved in the first Simulink model run

  • IO132-IO135: Interrupt-triggered subsystems (R2020b and later)

    • Fixed an issue that caused the interrupt of only one I/O module to be received with Simulink models containing multiple interrupt-triggered subsystems. This only occurred with I/O modules belonging to the IO132-IO135 I/O module family

  • IO191: Analog I/O module

    • Analog and digital output blocks

      • Fixed an issue that prevented the Analog and Digital output blocks from using the correct values when the Initial Value and Reset to Initial Value parameters were defined

    • Analog input block

      • Fixed an issue that prevented the Analog input block from operating when multiple IO191 I/O modules were installed in a machine

  • IO611, IO612, IO613, IO614: CAN driver blocks

    • Fixed an issue that could cause build errors due to undefined library references in R2021a and the R2021b prerelease

  • IO712: Gigabit Ethernet I/O module (R2020b and later)

    • Fixed an issue that prevented the module from being configured correctly with the Ethernet configuration tool

  • IO92x: Resistor Control driver block

    • Added missing support for the IO926-0125-5-06 I/O module

  • Release Notes (R2020a and earlier)

    • Fixed an issue where the release notes were not displayed correctly when installing the Speedgoat I/O Blockset

9.2.1 (15-Jun-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Software Support for New Products

  • IO3xx: FPGA QAD v5 driver block

    • New version of the quadrature decoder featuring:

      • Dynamic moving average filter to calculate speed with a maximum filter width of 256 samples

      • Adjustable input signal glitch filter

      • Output port indicating the time since the last signal edge detection

      • Improved driver block usability offering simplified sampling modes compared to previous versions

  • IO3xx: FPGA QAE v3 driver block

    • New version of the quadrature encoder featuring:

      • Improved signal generation resolution supporting low-speed configurations

      • Output port indicating current position within a slot

      • Missing slot signal emulation

  • New DNP3 protocol support (R2020b and later)

    • Distributed Network Protocol 3 (DNP3) connectivity available with onboard Ethernet interfaces and plug-in Ethernet I/O modules

    • Master and outstation supported

  • New IO715 Gigabit Ethernet I/O module featuring:

    • Four 10BASE-T/100BASE-TX/1000BASE-T Ethernet channels

    • I210 Gigabit Ethernet Controllers

Feature Improvements

  • IO672: RT initialize driver block

    • Added the option to enable/disable bus A and bus B separately

  • IO682: Decode v2 driver block

    • Added the option to enable a status output port indicating receipt of a data word containing a label selected by the user

  • IO750: Setup driver block

    • New block mask parameters are available to assign specific node addresses and unique device IDs

Compatibility

  • IO50x and IO581: Driver blocks

    • Added support for workspace variables in order to specify parameters across multiple locations of a Simulink model

  • IO623: Driver blocks

    • Added support for MATLAB R2020b and R2021a

  • IO811: Driver blocks

    • Added support for MATLAB R2021a Update 2

  • IO94x: Relay Control driver block

    • Added support for the IO942-SPDT-64 I/O module

Bug Fixes and Corrections

  • IO10x, IO3xx, IO925: Driver blocks (R2020b and later)

    • Fixed an issue where users were able to accidentally configure the wrong I/O module when the bus and slot IDs were explicitly defined. This only occurred with I/O modules belonging to the same I/O module family

  • IO104, IO115, IO117, IO130 and IO131, IO132-IO135, IO143 and IO144, IO183, IO191: Setup blocks

    • Fixed an issue that prevented content from data dictionaries being used as mask parameter values

    • Added support for Simulink parameters when used in a data dictionary

  • IO3xx: Digital Input v1 and Digital Output v1 driver blocks

    • Fixed an issue causing the direction settings of digital inputs and outputs to be incorrectly configured after real-time application restart

  • IO3xx: FPGA PWM v5 driver block

    • Fixed an issue that prevented PWM signals from being generated during initialization of the real-time application on the target if dynamic inputs were used

  • IO3xx: I2C Slave read v1 and I2C Slave write v1 driver blocks

    • Fixed an issue that prevented users from selecting more than 64 I2C registers

  • IO61x LIN: Master and Slave Read and Write driver blocks

    • Fixed an issue causing a system crash during Simulink model initialization

  • IO642 and IO642-32: Setup v2 driver block

    • Changed the PROFIBUS address boundaries to allow addresses 0 and 1

  • IO92x and IO97x (resistor control), IO94x (relay control), IO974 (thermocouple simulation), IO98x (fault insertion), IO991 (battery management): Driver blocks

    • Fixed an issue where the Simulink model failed to stop when an I/O module error was detected

  • IO942: Documentation update

    • Added missing pin mappings for the IO942 series of I/O modules

9.2.0.1 (10-April-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Bug Fixes

  • Ethernet Configuration Tool (R2020b and later)

    • Removed the limitation to ten Ethernet interfaces

  • IO106: Analog input driver block

    • Fixed an issue that altered the analog input channel sequence. The last four channels, for example, showed the input values of the first four channels

  • IO132-IO135: Inter-module synchronization

    • Fixed an issue that prevented the model execution from starting when using the model trigger option

  • IO141 and IO142: Setup driver block

    • Fixed an issue that caused the clock settings to be set back to default after closing and reopening the model

  • IO183, IO191 and IO39x: Documentation update

    • Corrected statement concerning the use of I/O grounds and power supply grounds

  • IO191 analog I/O module

    • Fixed an issue where the IO191 I/O module did not function correctly when the real-time application was run a second time without reloading

    • Added missing support for the 250-kSPS variant of the module

  • IO3xx: Setup block v3

    • Added missing parameter documentation for the pin mapping button and time stamp parameter

    • Fixed an issue that caused multiple pin mapping windows of the same instance to open in different positions

    • Changed the bitstream edit field to a combo box to illustrate the installed and available bitstream files. For more details, refer to the Setup block documentation

    • Fixed an issue with the IO318-100k. Users were unable to configure the rear plug-in as the relevant configuration tabs were invisible

    • Fixed an issue that caused inconsistent rear plug-in tabs when selecting a different module

  • IO3xx: SPI MasterSlave v2

    • Fixed an issue that prevented the SPI Slave from being used without Chip Select and when the CPHA setting = 0

  • IO50x: Read driver block (R2020b and later)

    • Fixed an issue that prevented the Read block receiving data from the serial port

  • IO6xx and IO75x I/O modules (R2020a and earlier)

    • Fixed an issue that could cause an error when downloading firmware or configuration files

  • IO643: Setup driver block

    • Fixed an issue that caused a target error when the IO643 I/O module was used together with other IO64x or IO75x I/O modules

  • IO751: Driver blocks

    • Corrected the maximum input and output data lengths of the Send and Receive blocks

  • IO923: Resistor Control driver block

    • Fixed an issue which prevented the latest hardware version from being detected correctly

  • Speedgoat API (R2020a and earlier)

    • Fixed an issue where speedgoat.disableUsbKernelTransfer did not function correctly due to missing files

  • Support Information (R2020a and earlier)

    • Fixed the version information in the report created by SimulinkRealTime.getSupportInfo

  • Utilities driver block library (R2020b and later)

    • Interrupt Setup driver block

      • Added missing support for the Serial v2 interrupt for the IO32x, IO33x and IO39x FPGA I/O modules

    • Read serial number driver block

      • Fixed the output port data type

9.2.0 (10-Mar-2021)

Unless otherwise indicated, release note entries concern the last six MATLAB releases.

Software Support for New Products

  • IO191: New multi-function analog I/O module

    • The IO191 I/O module is a mPCIe, 16-bit analog module with either 8 single-ended or 4 differential analog inputs, 4 analog outputs and 16 digital I/O lines configurable as inputs or outputs

    • This I/O module is supported on the Unit and Baseline real-time target machines and replaces the IO183 I/O module

Feature Improvements

  • IO3xx: Code module driver blocks (interacting with the FPGA Setup v3 driver block)

    • Added functionality to verify correct model configuration. The following tests are performed:

      • Test for existing implementation of code module in the bitstream file

      • Test for duplicate and invalid channels within the code module

      • Test for conflicts with the I/O direction settings

  • IO3xx: FPGA Setup v3 driver block

    • Added functionality to exchange information between the Setup block and code module driver blocks so that additional checks can be performed

  • IO682: New block versions

    • New v2 Encode and Decode blocks now support the use of multiple labels, and custom data types. The Decode block also provides the option to not hold the last data value received

    • New v3 Setup, Send, Receive and Update Scheduled Messages blocks now enable users to manually configure scheduled messages

  • Speedgoat API (R2020a and earlier)

    • Documentation for Speedgoat API functions is now also included in the help for earlier Speedgoat I/O Blocksets

  • Target Migration Software Tool (R2020b and later)

    • Added additional steps for users of some target machine types to revert the boot device settings in BIOS in order to enable USB kernel transfer for R2020a and earlier

    • Added a missing BIOS setting for the Education real-time target machine

    • Further refined descriptions in the step-by-step guide

Compatibility

  • IO811: FileLog driver block

    • Compatibility issues with the FileLog block in MATLAB R2021a will be fixed in an update release

  • Performance Core+ Real-Time Target Machine

    • Added support for R2021a. Compatibility with R2020b remains limited

  • Speedgoat API

    • Removed deprecated Speedgoat functions starting with "speedgoat_ "

  • Switching between MATLAB R2020b and R2021a

    • Use tg.update in R2021a to update your target from R2020b to R2021a

    • Use tg.update in R2020b to revert your target from R2021a to R2020b

      IMPORTANT: Ensure you use MATLAB R2020b update 5 and the latest version of the support package before executing tg.update

  • Target Software Migration Tool (R2020b and later)

    • Added support for older real-time target machines: Mobile (105200) and Education (108000)

Bug Fixes

  • IO106: Analog input driver block

    • Fixed an issue that caused the Analog Input block to read the first sample as +10 V, instead of the actual voltage value

  • IO682: Driver blocks

    • Fixed an issue which caused models to appear as if they had changed after building an executable

  • IO781: Setup driver block

    • Fixed an issue that prevented a workspace variable being used as a path definition for the configuration file

9.1.3.1 (03-Mar-2021)

Driver blocks, tools and APIs for Simulink Real-Time, compatible with MATLAB R2020b and backwards compatible to R2018a.

Bug Fixes

  • IO107: Setup driver block

    • Fixed an issue that prevented the Analog output block from updating the number of channels when the number of outputs was adapted in the Setup block

  • IO141/IO142: Setup driver block

    • Fixed an issue that prevented content from data dictionaries being used as mask parameter values

  • Serial I/O Modules (R2020b and later)

    • IO50X and IO581: Driver blocks

      • Fixed an issue which prevented a model from being built when a serial I/O module was used in combination with an IO672 I/O module

    • IO50X and IO581: Read driver block

      • Fixed an issue which caused the number of available messages to remain at the previous value instead of switching to a count of 0 if no new messages were received

    • IO50X and IO581: Read and Write driver blocks

      • Fixed broken links to the help documentation

    • IO511: Read v4 driver block

      • Fixed an issue which caused the target machine to crash if no IO511 I/O module was installed

      • Fixed an issue which caused a segmentation fault on the driver

  • IO92x, IO97x, IO98x and IO991 I/O modules

    • Fixed an issue that caused the application to crash when more than one module was used (R2020b only)

9.1.3 (28-Jan-2021)

Driver blocks, tools and APIs for Simulink Real-Time, compatible with MATLAB R2020b and backwards compatible to R2018a.

Minor Usability Changes and Corrections

Non-functional extensions:

  • IO132-IO135 analog I/O modules

    • Inter-Module Synchronization

      • Multiple IO132-IO135 analog modules can now be synchronized to send and read data simultaneously using DMA. Refer to the help documentation or Speedgoat support for further information

    • Analog input v2/Analog output v2 driver blocks

      • Upon selecting DMA mode in the Analog Input or Analog Output tab of the Setup block, the Sample Time in the respective blocks is now automatically set to '-1' (inherited)

  • IO619: Setup driver block

    • Changed the file format of the configuration files from .cdb to .csv in order to configure the module and set up the bus administrator

Products Now Supported in R2020b

  • IO811: Driver blocks

    • Added support for the IO811 I/O module in R2020b

Bug Fixes

  • IO3xx: Setup v3 driver block

    • Renamed internal defines and macros which occasionally caused linking conflicts with external s-functions

  • IO391, IO393 and IO397: Setup v3 driver block (Release Note Update 03-Mar-2021)

    • Fixed an issue that caused the "pull-down" and "floating" settings to be inverted

  • IO682: Receive v2 driver block

    • Fixed an issue which caused the number of available messages to remain at the previous value instead of switching to a count of 0 if no new messages were received

  • Simulink Integration

    • Fixed an issue that created errors during code generation when using Speedgoat blocks in a model containing protected referenced models in R2020b

  • Target Software Migration Tool

    • Adapted the migration process so that it can be rerun on real-time target machines already operating R2020b

    • Fixed an issue where the creation of the USB image was reported to have completed successfully, even though it actually failed owing to the user path containing spaces

9.1.2 (10-Dec-2020)

Driver blocks, tools and APIs for Simulink Real-Time, compatible with MATLAB R2020b and backwards compatible to R2018a.

Software Support for New Products

  • IO3xx: Variable Reluctance Sensor v3

    • New extension to the Cam and Crank code module to generate VRS analog output signals

Minor Usability Changes and Corrections

Non-functional extensions:

  • IO132-IO135: Setup block

    • Changed the position of the resulting Sample Clock Frequency in the DMA Options section of the mask

  • IO3xx: PWM Capture v1

    • Adjusted the maximum signal duration that can be captured and configured to 224 ms (before: 57 s) for performance optimization

  • IO3xx: PWM Generation v5

    • Adjusted the maximum selectable time settings to 224 ms (before: 57 s) for performance optimization

  • IO3xx: SPI MasterSlave v2

    • Added an optional input port to change the Tx data length parameter

  • IO821: Timing Reference

    • External Hardware Trigger – Two GPO rising edge bursts can be configured independently in the driver block

  • Speedgoat API:

    • New function: speedgoat.setTargetTime

      • Persistently set date and time on a target machine (R2020b only)

    • New function: speedgoat.disableUsbKernelTransfer

      • Disabling USB kernel transfer eliminates the need to disconnect USB devices from the Baseline real-time target machine during startup (R2020a and earlier)

    • speedgoat.setDefaultBootOption: added cross-platform support

      • Allows users to change the default boot option from a MATLAB release that does not match the software currently running on a target configured for dual boot. Refer to the integrated or web help for information on supported releases

  • Target Software Migration Tool

    • Added troubleshooting information to assist with common connection issues

Products Now Supported in R2020b

  • IO672: Driver blocks

    • Added support for the IO672 I/O module in R2020b

Bug Fixes

9.1.2.1 (07-Jan-2021)

  • IO2xx: Driver blocks

    • Increased the maximum selectable module ID from 10 to 20

  • IO3xx: PWM Generation v5

    • Fixed an issue that caused the PWM to not work correctly when PWM Period is not selected as an input port

  • IO3xx: Setup block v3

    • Fixed an issue that prevented explicit partitioning and model references. Note: Unique bitstreams within the application directory (including sub-directories) must always be given a unique filename

9.1.2 (10-Dec-2020)

  • Ethernet Configuration Tool

    • Fixed an issue where the tool crashes when attempting to load a configuration containing a subnet mask with less than 8 digits

    • Fixed an issue that prevented the IO710 from appearing in the Ethernet Configuration Tool

  • IO3xx: Setup v3

    • Reincorporated Setup block error handling which is functional again as of MATLAB R2020b Update 2

  • IO3xx: SPI MasterSlave v2

    • Fixed a broken link to the help documentation

  • IO141: Analog Inputs

    • Updated the pin mapping with the correct ground pins

    • Fixed an issue that caused the Analog inputs to not work correctly

  • IO141/IO142: Setup driver block (Release Note Update 28-Jan-2021)

    • Adapted the Clock Divider field so that workspace variables can be entered

  • IO142: Digital I/O

    • Fixed an issue that caused the digital input and output channels to reference the wrong s-function

  • IO619: MVB Process Data driver block

    • Fixed an issue which caused variables to have incorrect values depending on their location in the memory

  • IO98X: Fault Insertion driver blocks

    • Fixed an issue which caused the relay state to be inverted on fault insertion modules with normally open break relays

  • Target Software Migration Tool

    • Fixed an issue in the authentication step where the connection to the target machine failed for some Windows language settings

9.1.1 (11-Nov-2020)

Driver blocks, tools and APIs for Simulink Real-Time, compatible with MATLAB R2020b and backwards compatible to R2018a.

Software Support for New Products

  • IO623: New FlexRay I/O module

    • Provides up to four FlexRay controllers (A and B channels) with data rates of 10 Mbit/s per channel

    • Important: The new IO623 I/O module is only supported on MATLAB R2020a and earlier

Minor Usability Changes

Non-functional extensions:

  • IO107/IO108: Analog output (DMA)

    • Grouped the parameters of the Analog Output (DMA) block into a single tab

  • IO754/IO754-32: Modbus TCP Message block

    • New block mask parameter allowing users to define the default values of the block outputs until data is initially received from the master. This applies only to "Read Coils" and "Read Holding Register" operations

  • Speedgoat_setup

    • The Speedgoat I/O Blockset can only be installed if the Target Support Package for Simulink Real-Time is present

  • Target Software Migration Tool

    • Added a target authentication step to verify the target machine before starting the migration process

Products Now Supported in R2020b

  • IO781: Driver blocks

    • Added support for the IO781 I/O module in R2020b

  • IO976: Driver blocks

    • Added support for the IO976 I/O module in R2020b

Bug Fixes

9.1.1 (11-Nov-2020)

  • Ethernet Configuration Tool (Release Note Update 28-Jan-2021)

    • Fixed an issue where some Ethernet interfaces were not shown correctly for certain real-time target machines

  • IO104: Driver blocks

    • Fixed an issue that caused the inputs and outputs to not work when the Use Frame Burst Trigger checkbox was not activated in the Analog Input and Analog Output tabs of the Setup block

  • IO113-20: Driver blocks

    • Fixed an issue triggering the "autocalibration failed" error message

  • IO141/IO142: Driver blocks

    • Fixed an issue that caused the digital channels 2, 4, 6 and 8 to only work as inputs

  • IO203/IO204: Driver blocks

    • Fixed an issue in the IO204 Write block where the external power supply was incorrectly distributed between channels 1-4 and 9-12 in MATLAB R2020b

    • Fixed an issue that caused the bar pointers to be assigned the wrong data type in MATLAB R2020b

  • IO3xx: FPGA BiSS Decoder v1 and BiSS Encoder v1 driver blocks

    • Fixed an issue that caused an error when all 64 bits are used

    • Fixed an issue that caused incorrect data transmission and reception if the total transmitted data was higher than 54 bits

  • IO3xx: I2C code module

    • Updated the description of the Clock divider parameter for the I2C Master read v1 and I2C Master write v1 driver blocks

  • IO323: FPGA Interrupts

    • Fixed an issue where multiple IO323 interrupt sources in the same machine were incorrectly identified

  • IO3xx: FPGA Knock Generator v3

    • Updated the knock pulse formula in the documentation

  • IO3xx: FPGA SENT Rx driver block

    • Fixed an issue that caused errors when opening the mask in MATLAB R2018a

  • IO3xx: FPGA Serial code module

    • Updated the description of the Channel parameter in the Read HW FIFO v2 and Write HW FIFO v2 documentation

  • IO3xx: FPGA Setup v3 and RS232 driver blocks

    • Fixed an issue that caused compilation problems when both of these blocks were in the same model

  • IO50x/IO581: Serial driver blocks

    • Fixed an issue that caused Even/Odd parity to be inverted

    • Fixed an issue that caused missing data when the Receive FIFO Interrupt level was set to a low number

    • Updated the usage notes

  • IO619: Process Data driver block

    • Fixed an issue which caused variables smaller than one byte to have the wrong endianness on the bus

  • IO642/IO642-32: Driver blocks

    • Fixed an issue which caused the module to ignore incoming acyclic frames from the PROFIBUS master

  • IO750/IO750-32: Setup driver block and ESI file generation

    • Fixed an issue which caused the module to block EtherCAT communication if the overall PDO input and output length was not aligned to 4 bytes

    • Fixed an issue which caused the stack configuration to fail if too many process data objects were defined

  • IO754/IO754-32: Message block

    • Fixed an issue which caused the block to output random values

  • Target Software Migration Tool

    • Added a missing BIOS setting for the Performance Core+ real-time target machine

    • Updated IP addresses in screenshots to comply with the common default values

  • Unit real-time target machine: Interrupt support

    • Fixed an issue that prevented interrupts from working correctly in R2020b

9.1.0 (18-Sep-2020)

Driver blocks, tools and APIs for Simulink Real-Time, compatible with MATLAB R2020b and backwards compatible to R2018a.

Support for MATLAB R2020b

  • Target Software Migration Tool

    • This tool is required to migrate a target machine to MATLAB R2020b. You can optionally use the tool to install a dual-boot system to make your target machine compatible with your previous release as well (video tutorial, integrated or web help)

  • Ethernet Configuration Tool

    • Configure all Ethernet interfaces using this new tool (integrated or web help).

  • Speedgoat API

    • New Speedgoat API functions have been added

    • Documentation for the Speedgoat API functions is now included in the help (integrated or web help)

  • Interrupt Setup Block

    • New Utilities block replacing the Simulink Real-Time IRQ Source block

    • Allows hardware interrupts from I/O modules to be used to trigger a subsystem or drive the model's base rate (integrated or web help)

  • Documentation

    • New Speedgoat Tools section containing information about the new tools for Ethernet configuration and target migration, as well as the Speedgoat API (integrated or web help)

    • Removed the Software Configuration Guide: Refer to the MathWorks integrated or web documentation, as well as the Simulink Real-Time release notes to get started

Functional Improvements

  • IO753 Modbus TCP Master: v2 blocks

    • Master configuration in Setup block - The SYCON.net tool is no longer required

    • Allows communication with up to 16 Modbus TCP slaves

    • Adapted the input and output interface of the IO753 Send and Receive blocks

    • The Network Status block shows the communication status for each Modbus slave and indicates command errors

    • Important: New Modbus TCP master blocks are only supported by MATLAB R2019b and later

Minor Usability Changes

Non-functional extensions:

  • Utilities block: Read CPU temperature

    • New block in the Speedgoat Utilities driver block library reads the temperature of the CPU package on all variants of Speedgoat real-time target machines (integrated or web help)

  • Utilities block: Read serial number

    • New block in the Speedgoat Utilities driver block library reads the serial number of Speedgoat real-time target machines (integrated or web help)

    • Compatible with R2020b and future releases

  • IO821 Time Reference block amendments

    • Retained periodic Interrupt interval - Corrected an issue with unstable periodic interrupt

    • Added time stamps based on edge detection - Datenum and array format [YYYY,mm,dd,hh,mm,ss] block outputs

    • Option to Enable/Disable IRIG and GPI timestamping

    • Added mask parameter to specify pulse width of GPIO outputs

    • Not yet available for MATLAB R2020b

  • Speedgoat API

    • New speedgoat.getDiskSpace function reads the amount of free, used and total space on the target machine's main drive (integrated or web help)

Products Not Yet Supported in R2020b

The following driver blocks will be supported in a future version of the Speedgoat I/O Blockset for R2020b:

  • Analog I/O modules – IO105, IO115, IO976

  • Communication Protocols – IO672, IO781

  • Timing and Synchronisation – IO811, IO821

Products No Longer Supported in R2020b

The following driver blocks are no longer supported with R2020b:

  • Analog I/O modules – IO121

  • FPGA – IO383

  • LVDT, RVDT, Synchro, Resolver Measurement – IO422

  • Serial – IO501, IO502

  • Communication Protocols – IO671, IO681, IO903

Driver Block Versions No Longer Supported in R2020b

Only the latest versions of the following driver blocks are available. When you open a model with previous versions of these blocks in R2020b, they will automatically be updated to their latest version.

  • Analog I/O Modules – IO102, IO104, IO106, IO107, IO108, IO109, IO112, IO132, IO133, IO134, IO135, IO143, IO144

  • Serial – IO503, IO504, IO505, IO511

  • Communication Protocols – IO601, IO682, IO981, IO982, IO983, IO984

Bug Fixes

9.1.0.1 (02-Oct-2020)

  • IO105: Driver blocks

    • Added support for the IO105 I/O module in R2020b

  • IO113-20: Digital I/O

    • Fixed an issue that prevented the two groups of channels from being selected as input or output

  • IO115: Driver blocks

    • Fixed an issue that caused an error when building a model containing an IO115 I/O module

  • IO3xx: FPGA QAD v3 driver block

    • Fixed an issue that caused incorrect RPM measurements

  • IO3xx: FPGA SSIM v2 driver block

    • Fixed an issue that caused the driver to generate an error during the build process

  • IO50x/IO581: Setup block

    • Fixed an issue that caused a malfunction if more than one XON or XOFF character was used

  • IO901/IO902: Driver blocks

    • Fixed an issue introduced in version 8.28.4 that caused the real-time application to freeze

  • Target Software Migration Tool

    • Fixed an issue that caused the host link setup to fail after the migration

    • Fixed an issue that caused the migration to fail for target machines with hard disks

9.1.0 (18-Sep-2020)

  • IO3xx: FPGA Setup v3 driver block (Release Note Update 02-Oct-2020)

    • Fixed an issue with multiple IO39x modules in the same model causing the model to fail to initialize

  • IO691: CAN Setup

    • Fixed an issue that caused an error in the Setup block when using external mode

  • IO9xx: Documentation

    • Amended incorrect description of the Module ID parameter

  • IO907: Driver blocks (Release Note Update 02-Oct-2020)

    • Fixed an issue introduced in version 8.28.2 that caused the real-time application to freeze

    • Fixed an issue introduced in version 8.28.2 that caused incorrect output data if the partition size exceeded 16 bytes

8.28.4 (19-Aug-2020)

Driver blocks and functions for Simulink Real-Time, compatible with MATLAB R2020a and backwards compatible to MATLAB R2017b.

Software Support for New Products

  • IO113-20: New analog I/O module

    • Analog I/O module 20-bit resolution. 8 single-ended or 3-wire differential analog outputs, 8 bidirectional digital TTL I/O lines

  • IO141/IO142: New analog I/O module

    • Fast sampling Analog I/O module with 16-bit resolution, 16/21 single-ended or 8/16 differential analog input channels, 4/8 analog output channels and 8 digital TTL I/O lines

  • IO643: New CANopen master I/O module

    • I/O module with one CANopen master channel to communicate with multiple slaves

  • IO644: New CANopen slave I/O module

    • I/O module with one CANopen slave channel

Minor Usability Changes

Non-functional extensions:

  • IO103, IO114A/B, IO61X, IO682: Minor driver block change

    • PCI slot auto-search for multiple I/O modules (Refer to the documentation of the respective Setup blocks for further details)

  • IO50X, IO581: Minor driver block change

    • IRQ numbers assigned automatically

  • IO611: Minor driver block change

    • Option to enable/disable LIN slave responses during application runtime

Bug Fixes

8.28.4 (19-Aug-2020)

  • IO3xx: FPGA Setup v3 driver block:

    • Fixed an issue that caused an error message to be shown when a new setup block was added to a model

    • Fixed an issue that caused FPGA interrupts not to be recognized after a model was reopened and immediately built

    • Fixed issues related to block priority inversion when the Setup block was used in combination with certain other FPGA code module blocks

  • IO3xx: PWM v3, QAD, QAE, SSIM, SSIS, Analog Input, Analog Output, BISS Encoder, BISS Decoder, BISS Sniffer, Cam Decoder, Cam Encoder, Crank Encoder, Crank Decoder, Crank Event, Crank Knock Generator, Digital input, Digital output, Dshot RX, Dshot TX, I2C Master, I2C Slave, INTA, PWM Capture, PWM, SENT RX, SENT TX, Serial, SPI, SPI Sniffer code module driver blocks:

    • Fixed warnings during compilation caused by an unreferenced variable

  • IO318-100k: Interrupt of Serial code module

    • Fixed module detection for the use of the serial interrupt

  • IO50X: Send/Receive driver blocks v3

    • Fixed an issue which caused the Tx message monitoring in RS485 Half-Duplex mode to be enabled if the checkbox was not set and to be disabled if the checkbox was set

    • Fixed an issue which caused the Baud rate divisor not to be checked for errors (correct range and data type) (Release Note Update 11-Nov-20)

  • IO601: Setup block

    • Fixed an issue that caused incorrect handling of the baud rate setting

  • IO61X: Setup block

    • Fixed an issue which caused incorrect handling of the Filter Mask parameter

    • Fixed an error when selecting Module ID 10 and extended IDs to be selected in the range from 1 up to 20

  • IO64X/IO75X: Download of firmware and configuration files

    • Fixed an issue which caused sg_download_FW(), sg_IO64X_loadconfig() and sg_IO75X_loadconfig() to crash while attempting to rename files on the target drive

  • IO64X-32/IO75X-32: Firmware update process

    • Fixed an issue which caused the real-time application to freeze while writing protocol firmware to the multi-node module (this only affected real-time applications built with Microsoft Visual Studio 2019 compiler)

  • IO691: Read and Write block

    • Added a warning message for when the block port 'CAN Msg' of the Read/Write block is not correctly connected

  • IO754: Setup driver block

    • Minor firmware bug fixes (version 3.0.0.3)

      Important: Run sg_download_FW() in order to copy the firmware file to the target machine

Previous Versions

Release notes for previous versions of the Speedgoat I/O Blockset can be obtained by contacting [email protected].