Release Notes

Mirrorcle Software Suite

Latest Version:

Last Updated on 06/19/2020

Post-release memory improvements

Release Date 2020-06-19

  • C++ SDK

  • Fixed memory leaks within MTIDataGenerator and increased memory performance

  • Removed MTIDataGenerator::GetAPIVersion method which was redundant to MTIDevice::GetAPIVersion

  • Python SDK

  • Updated to use the new MTIDevice.GetAPIVersion command and match MTIDevice-Demo.cpp

  • Inherited all API changes from C++ SDK (see above)

SyMPL 3D LiDAR support and memory performance improvements

Release Date 2020-06-15

  • C++ SDK

  • Added MTIDevice::GetAPIVersion method which returns std::string with API version number in format “X.X.X.X”

  • Added MTIDataGenerator::GetAPIVersion method which returns std::string with API version number in format “X.X.X.X”

  • Added MTIDataMode::Sample_And_SyMPL1_Stream for SyMPL 3D LiDAR and support the MTILidar API

  • Added compatibility with both analog-input and digital-input SyMPL 3D LiDAR devices within MTIDataMode::Sample_And_SyMPL1_Stream

  • Added overloads to all params calls that return pointers in favor of providing a params object to the function to be modified in-place

  • Improved Linux compatibility

  • Revised all examples to implement preferred method of params calls

  • Fixed multiple memory leaks throughout the API and increased memory performance

  • Matlab SDK

  • Added MTIDevice.GetAPIVersion method which returns a string with API version number in format “X.X.X.X”

  • Added a call to MTIDevice.GetAPIVersion in MTIDevice_Demo.m to demonstrate use of the new function

  • LabView SDK

  • The LabView SDK did not receive the update

  • Python SDK

  • Inherited all API changes from C++ SDK (see above)

API improvements/enhancements for tracking/imaging, Playzer, and applications using analog input streaming

Release Date 2019-12-17

  • MirrorcleDraw

  • “Enable Digital Output / Laser” disabled by default

  • C++ SDK

  • Added private function CheckConnectDevice() that improves GetAvailableDevices and ConnectDevice calls when a Controller is stuck in a streaming MTIDataMode

  • Added MTIDevice::LaserBoostEnable for Playzer Modules to boost laser power (not compatible with MZDK Controllers)

  • Removed Get/SetRGBDriverParameters from MTIDevice

  • MTIDataGenerator::AllocInterpData called within MTIDataGenerator::InterpolateDataTrapezoidal and MTIDataGenerator::InterpolateDataLinear to allow individual function calls

  • TrackingExamples.cpp now supports larger mirrors with lower resonant frequencies

  • Matlab SDK

  • Added private function CheckConnectDevice() that improves GetAvailableDevices and ConnectDevice calls when a Controller is stuck in a streaming MTIDataMode

  • MirrorcleTrack.m now supports larger mirrors with lower resonant frequencies

  • Python SDK

  • Inherited all API changes from C++ SDK (see above)

  • Added support for MTIDataGenerator::FilterData

  • Added support for MTIDataGenerator::IldaDataStream

  • supports larger mirrors with lower resonant frequencies

Improved performance for applications with strict speed requirements

Release Date 2019-07-12

  • MirrorcleDraw

  • Added Spiral Time definition box to Vector Graphics > Scan Patterns > Spiral mode. This fixes the lost functionality of this mode.

  • Fixed stacking of filters when disconnecting/reconnecting devices

  • Fixed “Animation Time” slider behavior when auto-adjusting based on the Sample Rate

  • C++ SDK

  • Added confirmOnComplete flag to MTIDevice::StartDataStream command to free the thread in specific applications

  • Updated and reorganized documentation for TrackingExamples.cpp (laser tracking bundle)

  • Fixed memory leak in MTIDataGenerator::InterpolateDataOptimized

  • Fixed memory leak in MTIDataGenerator::OptimizeKeypoints

  • Matlab SDK

  • Added confirmOnComplete flag to MTIDevice.StartDataStream command to free the thread in specific applications

  • MirrorcleShow

  • Fixed memory leak in MirrorcleShow for long sessions

Improved optimization and decimation for vector display applications

Release date: 2019-03-08

  • MirrorcleDraw

  • Added RGBGradientJet and RGBGradientCustom to MirrorcleDraw - enabled via the mirrorcledraw.ini

  • Improved Sketching, Import File, Hershey/TTF Text, and Clock display modes with the new OptimizeKeypoints function for higher performance

  • MirrorcleShow

  • Fixed issue where single frame content would be skipped

  • Fixed memory leak

  • C++ SDK

  • Added new parameter unsigned int targetNumKeyPoints to MTIDataGenerator::OptimizeKeypoints()

  • Added lossy compression algorithm to OptimizeKeypoints which reduces the number of keypoints to the targetNumKeyPoints

  • Fixed memory leak in MTIDataGenerator::LoadIldaFile()

  • Fixed the error in returned samples from InterpolateDataOptimized being much more than requested

  • Linux SDK

  • Updated RGBExamples.cpp for Linux compatibility

  • Python SDK

  • Added MTIDataFormat to mtidevice module

  • Added complete Linux support

  • Fixed tabs to spaces according to PEP-0008

  • Fixed folder structure for better Linux system support

Post-release patch

Release Date: 2018-12-21

  • MirrorcleDraw

  • Added: Autodetect RGB Scan Modules and enable appropriate DataFormat for output to RGB Controllers

  • Added: Gradient color feature: set two different color values in mirrorcledraw.ini for gradient color output to RGB Controllers

  • Fixed: Import ILDA File - detecting RGB vs Monochrome improved.

  • C++ SDK

  • Added: SetRGBDriverParameters to manipulate the gain and offset of the R/G/B laser diodes

  • Added: SetRGBGamma to manipulate the gamma of the R/G/B laser diodes

  • Added: InterpolateDataOptimized for MTIDataGenerator::GenerateClockData

  • Fixed: Removed unnecessary x64 folder in the SDK-Cpp folder

Vector Display Optimization and RGB Scan Module Compatibility

Release Date: 2018-12-06

  • MirrorcleDraw

  • Added: New interpolation algorithm for optimizing challenging, high-bandwidth content for Mirrorcle MEMS Mirrors

  • Added: “Enable Digital Output” checkbox to manage digital output from the Controller

  • Added: “Disconnect device” option in the list devices drop down list.

  • Added: Optimized font lettering for the characters “o”, “O”, and “0”

  • Added: RGB compatibility for Controllers with RGB Firmware + RGB Scan Module

  • Added: “Flash” checkbox now reflects the state of the Controller’s BootSetting

  • Fixed: Allow for offsetting sketches drawn in Sketching mode

  • Fixed: Memory overflow bug when importing abnormally large ILDA files

  • Fixed: Import ILDA dialogue displaying incorrect total number of points

  • Fixed: Animation time slider starting in wrong position and not allowing full range of animation times

  • Fixed: Sample rate changing when IIR Filter enabled

  • Fixed: GUI misalignment

  • MirrorcleListDevices

  • Added: Allow for information about devices at COM port numbers greater than COM65

  • Added: List the specified device’s DataFormat

  • C++ SDK

  • Added: MTIDataGenerator::InterpolateDataOptimized() algorithm to optimize and interpolate user’s keypoints for Mirrorcle MEMS

  • Added: RGBExamples.cpp to the SDK containing examples of how to interact with a Controller with RGB firmware

  • Added: MTIDevice::GoToDevicePosition() now allows for step time of 0ms for fastest step (note: this parameter is potentially dangerous)

  • Added: DataFormat to MTIDeviceParams. DataFormat allows specification of the format of data that will be sent by SendDataStream to the Controller

  • Added: MTIDevice::SetRGBData and MTIDevice::GetRGBData for Controllers with RGB firmware

  • Added: More detailed and descriptive documentation for API functions in MTIDevice.h

  • Added: More detailed function descriptions in MTIDevice-Demo

  • Fixed: Misleading comment for MTIDevice::GetIStop()

  • Matlab SDK

  • Added: RGB functionality for Controllers with RGB firmware + RGB Scan Module

  • Added: MTIDevice_ListDevices.m demo to demonstrate MTIDevice.GetAvailableDevice and MTIDevice.ListAvailableDevices

  • Added: RGB examples in MTIDevice_Demo to demonstrate the use of new RGB Controller API commands

  • Added: MTIDevice.GoToDevicePosition() now allows for step time of 0ms for fastest step (note: this parameter is potentially dangerous)

  • Added: Additional example in MTIDevice_GoToPosition.m to demonstrate updated GoToDevicePosition

  • Fixed: SendDataStream crash when delaySamples = numSamples

  • Python SDK

  • Added: Definition/summary to every demo in MTIDevice-Demo

  • Added: All functions and changes implemented in the C++ SDK

  • Fixed: ArrowKeysDemo in MTIDevice-Demo

  • LabView SDK

  • Added: MTIConnectDeviceAuto() to connect to the first available Controller at a COM port

  • Added: MTIConnectDeviceSocket() to connect to a specific MTISerialIO socket

  • Added: More extensive function comments in MTILabViewAPI.h

  • Added: DataFormat functionality to specify the format of data sent to the Controller via SendDataStream

  • Added: MTISetRGBData, MTISetRGBDataMonochrome, and MTIGetRGBData for Controllers with RGB firmware

  • Fixed: MTIGetMStop returning GetIStop()

  • Fixed: MTIGetMStop returning unsigned int instead of unsigned char

Announcing Python SDK

Release Date: 2018-10-29

  • Python SDK

  • Announced new API language - Python

  • Mirrorcle Software Suite

  • Added: Built-in software suite updating functionality. In MirrorcleDraw > Help > Check for Updates

  • MirrorcleDraw

  • Added: Check for Updates option in Help menu

  • Added: DOutScale editbox for real-time digital output manipulation when AdvancedMenu is enabled

  • Added: Customizable content drawing in mirrorcledraw.ini: draw keylines, keypoints, samplelines, and/or samplepoints

  • Updated: Colors and sizes of content drawing

  • C++ SDK

  • Added: MTIDevice::ConnectDevice() overload where 0 arguments autoconnects to first available COM port

  • Updated: Cleaned up and revised TrackingExamples.cpp

  • Updated and Fixed: MTIDevice.h comments/documentation

  • Fixed: MTIDevice-Demo Follow WASD keys - support upper/lower case WASD

  • Matlab SDK

  • Added: MTIDevice.ConnectDevice() autoconnect when 0 arguments are passed

  • Added: MTIDevice.ImportPointFile(filename) to import x/y/m points and/or sample rate from file to Matlab environment

  • Updated: All included demos’ code and comments

  • Fixed: MTIDevice.IsDeviceResponding() to return accurate responses

  • Fixed: Bug in setting the DataRotation param

  • Android Development Kit

  • Added: DOutScale edit field in MirrorcleDraw app settings menu

  • Updated: Java API to match C++ API

  • Fixed: Bug where app crashes if Settings opened with no device connected

  • LabView SDK

  • Updated: To to match C++ API

Post release fixes

Release Date: 2018-10-01

  • MirrorcleDraw

  • “No devices found”: Fixed text formatting and Ok/Cancel dialog box

  • C++ SDK

  • Fixed: MTIDevice::IsDeviceConnected() returning reliable true/false state

  • Fixed: Handling MTIDevice object upon DisconnectDevice()

Pre-release fixes

Release Date: 2018-10-29

  • C++ SDK

  • Fixed: MTIDevice::ConnectDevice() force default SyncMode

Revised and Updated C++ SDK

Release Date: 2018-09-25

  • MirrorcleDraw

  • Added: MessageBox to notify save flash checkbox callback

  • Added: “Search for available devices” if none are initially found

  • Updated: Links in MirrorcleDraw

  • C++ SDK

  • Updated: Comments in MTIDevice-Demo

  • Fixed: Redundant and misleading code in MTIDevice-Demo

  • MirrorcleLinearRaster

  • Fixed: Bug causing MirrorcleLinearRaster to close immediately

Release hotfix

Release Date: 2018-08-06

  • MirrorcleDraw

  • Fixed: Misleading refresh rate on ILDA Sample/User Sample import

  • Fixed: Missing support for ILDA type 1 files

  • Fixed: Missing support for ILDAs with Color Tables

Drawing Hardware Filter

Release Date: 2018-08-02

  • MirrorcleDraw

  • Added: Drawing hardware filter on “Show Filtered” checkbox in MirrorcleView

  • Added: Message box on ILDA Keypoint import with maximum points and total points in loaded file

  • Added: Lower-end engine support for RGB ILDA files and RGB samples

  • Added: Parsing for ILDA Type 5 files

  • C++ SDK

  • Added: More detail to AnalogInputToOutputDemo in C++ SDK

  • Fixed: Grammatical errors in SDK examples

  • Fixed: Printing in ScanningDemo in C++ SDK

  • C++ SDK (Linux Add-on)

  • Added: Write polling and timeout for Linux for Bluetooth

x64 Support

Release Date: 2018-06-25

  • C++ SDK

  • Added: x64 MirrorcleDraw build configuration

  • Changed: Updated the documentation for building to x64 platforms (see slides 9 and 10 in SDK for C++ User Guide)

  • Fixed: SDK-Cpp Reorganized DLLs into secluded x86/x64 folders

  • Fixed: SDK-Cpp x64 build configurations

Post-release patch

Release Date: 2018-06-15

  • MirrorcleDraw

  • Added: Sample rate backend control

  • Fixed: Sample point memory pre-allocation is now a fixed size, and sufficiently large

Unicode Support

Release Date: 2018-05-31

  • MirrorcleDraw

  • Added: Solution-wide support for unicode characters

  • Added: Drawing characters from unicode-supported language via TrueType Font

  • Fixed: Fixed uncontrolled incoming VBias and VDifferenceMax such that VDifferenceMax should never exceed VBias*2

  • C++ SDK (Linux Add-on)

  • Fixed: Baud rate problem for Linux platforms