Release Notes

Mirrorcle Software Suite

Latest Version:

Last Updated on 03/08/2019

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