Welcome to Mirrorcle Docs#

_images/mirrorcle_banner.png

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#

Read the major release notes for 11.1 here

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

Table of Contents#

What's New

Indices and tables#