Welcome to Mirrorcle Docs#
Mirrorcle offers a comprehensive Application Programming Interface (API) for full control of Mirrorcle’s MEMS mirrors and electronics.
The Mirrorcle API allows for generation of content (MEMS positions and correlated digital outputs), control and streaming of content, reading of analog inputs, synchronization with additional Controllers or peripherals, tracking, etc. This allows users to integrate Mirrorcle’s beam-steering solutions into any system and for any application.
Mirrorcle’s software development kits (SDKs) are available in multiple languages and on various platforms:
C++ (Windows and Linux)
LabVIEW (Windows)
Matlab (Windows)
Python (Windows and Linux)
Java (Android)
For more information on Mirrorcle’s software products, including the Mirrorcle Software Suite and its numerous applications and SDKs, please visit https://www.mirrorcletech.com/wp/products/software/
Highlighted Video Guide: Three Modes of Operation#
In this video, we explain several methods of operating Mirrorcle’s Dual-Axis MEMS Mirrors and demonstrate the necessary setup steps to achieve each mode.
New Major Release 11.1#
Latest Mirrorcle API update#
11.1.0.0#
Release Date 2024-07-16
MirrorcleDraw
Added more protection in various Menu/Mode changes
Added direction option in animation scrolling
Added “SoftStart” device protection loop for all content if SignalsSoftStart=1 is set in mirrorcledraw.ini.
Improved device safety protections during the flashing sequence
Improved GUI responsiveness when sending multiple waveforms/data streams consecutively
Fixed bug causing square waveform in signal generator Program Mode to output a sawtooth waveform
MirrorcleDemo
Added Marquee text scrolling demo
Added color coding to text in the application to differentiate parameters, Controller specifications, and waveform specifications
MirrorcleLinearRaster
Added new X/Y/M vs Time plot to visualize the waveform axes progression over time.
Added unlimited waveform streaming option using new MTIDataMode::Sample_Output_FIFO for Controllers with firmware version >8.0.0, and DeviceStatus-based streaming using ping-pong streaming for Controllers with firmware versions <8.0.0
MTIDevice-Demo
Added an RQWaveform-based raster as an alternative raster scanning option. Now users must choose between resonant-quasistatic or linear raster scans in Raster Demo.
Added color coding to texts in the application to differentiate parameters, Controller specifications, and waveform specifications
Added external plot windows using OpenCV to view the waveform prepared by the following demos:
Scanning Demo
Import File with Samples Demo
Import File with Keypoints Demo
Import File with Keypoints and Time Demo
Hershey Text Demo
Raster Demo using MTIDataGenerator functions (Linear Raster Pattern and RQ Waveform)
MirrorcleListDevices
Added additional information about the Controller:
SampleRate_Max
SamplesPerFrame_Max
SyncMode
DataMode
MirrorcleShow
Added color range interpolation option to Show Files
The format for specifying color animation/interpolation is [FROM_COLOR]|[TO_COLOR]|[NUM_INTERP_STEPS]
For Monochrome Playzers, use of the color interpolation applies grayscale control
Added the ability to re-import .ini file. Configuration settings can now be easily reloaded by pressing the “I” button.
Added inverse system filtering (ISF) filtering option
Added verbose mode which can be activated within the ini file
Added data rotation feature which allows rotation of data about any of the 3 axes (X, Y, and Z)
C++ SDK
Added new MTIDataMode, MTIDataMode::Sample_Output_FIFO to enable streaming of waveforms with unlimited length
Added several new functions to MTIDataGenerator for plotting X/Y/M waveform data using OpenCV.
Added RotateData function into MTIDataGenerator for rotation about all 3 axes
Added new leftToRight parameter to AnimationScroll() function to allow for scrolling of content in both directions
Fixed missing software filter in RQWaveform function
Fixed bug that causes stack/heap corruption when calling HersheyDataStream with leading space in the text input.
Improved device safety protections during the flashing sequence
Changed ExportFile function decimal formatting and removed limitation on number of points.
Changed MTIDataGenerator::LinearRasterPattern Digital Output number (M) bit definition - Bit 3 shows Y-Axis direction
Removed the limit on maximum number of points returned by MTIDataGenerator::LinearRasterPattern
Matlab SDK
Added new MTIDataMode, MTIDataMode.Sample_Output_FIFO to enable streaming of waveforms with unlimited length
Added safety for out of range parameters
Added ExportFile function into the MTIDevice library
Added Trapezoidal Data interpolation
Added new unlimited waveform streaming option for LinearRasterPattern
Fixed bug causing indexing error in LinearRasterPattern
Changed device safety protections during the flashing sequence
Changed MTTDevice::LinearRasterPattern digital output number (M) bit definitions - Bit 3 shows Y-Axis direction.
PSD Add-On
Added a script to find resonant frequency at various combinations of X and Y offsets
Added a script to find frequency response and resonance at origin
Added a script to import data, run, and measure it on PSD
Added a script to measure PSD Distance
Added a script to measure X-axis static response
Added a script to measure X or Y axis angle vs. frequency response
LabVIEW SDK
Added PointToPointPattern function into LabVIEW API
Added Run Point To Point Pattern from PointTime File Example
Added unlimited waveform streaming option using new MTIDataMode::Sample_Output_FIFO for Controllers with firmware version > 8.0.0 to “Linear Raster Example.vi”
Added 64-Bit version of the library, available upon customer request
Fixed issues with UI that cause crashes during the execution.
Fixed bug causing crashes in “Run XYM from File with AI Buffer.vi”
Fixed bug causing glitches in “STOP” buttons and “Enable MEMS Driver” buttons in all examples
Fixed bug causing the MEMS Driver to stay enabled after stopping in the “Array-based XY Signal Generator.vi” example
Fixed bug causing the laser to toggle on and off after pressing “STOP” button in “Array-based XYM Signal Generator.vi” and “Array-based XY Signal Generator.vi” examples
Fixed bug causing the Digital Output (M) value to not change while running the “Array-based XY Signal Generator.vi” example