Setting up a New Rig

Setting up a New Rig

Now that you've got Luminos running, let's connect Luminos to hardware.

We'll modify the Example.

Edit the initializer

In MATLAB, open the Example.json file by running

edit Example.json

Edit the file to use your hardware. Feel free to add only one device at a time, and we'll test that device in the next step.

Example.json
{
  "objectType": "Rig_Initializer",
  "dataDirectory": "C:\\Users\\Labmember\\Data",
  "tabs": [
    "Main",
    {
      "type": "DMD",
      "names": "DMD (shared)"
    },
    "Waveforms"
  ],
  "devices": [
    {
      "deviceType": "DAQ",
      "name": "Dev1",
      "defaultClock": "Dev1/PFI0",
      "default_trigger": "Dev1/PFI12"
    },
    {
      "deviceType": "Camera",
      "name": "Orca Flash",
      "trigger": "Dev1/port0/line7",
      "clock": "",
      "hsync_rate": 100000,
      "vsync": "Dev1/Ctr1",
      "daqTrigCounter": "Dev1/Ctr0",
      "type": 1,
      "rdrivemode": 0,
      "cam_id": "S/N: 002312",
      "virtualSensorSize": 2048
    },
    {
      "deviceType": "NI_DAQ_Modulator",
      "name": "mod488",
      "port": "Dev1/ao1",
 
      "min": 0,
      "max": 5
    },
    {
      "deviceType": "NI_DAQ_Shutter",
      "name": "shutter488",
      "port": "Dev1/port0/line1"
    },
    {
      "deviceType": "OBIS_Laser",
      "name": "488",
      "COMPORT": "COM18",
      "maxPower": 0.055,
      "Wavelength": 488
    },
    {
      "deviceType": "NI_DAQ_Modulator",
      "name": "mod488",
      "port": "Dev1/ao2",
      "min": 0,
      "max": 5
    },
    {
      "deviceType": "Scientifica_Stage_Controller",
      "name": "ScientificaStage",
      "COMPORT": "COM6",
      "microstep_size": 1,
      "driver": "Motion2"
    },
    {
      "deviceType": "ALP_DMD",
      "name": "DMD_Blue",
      "api_version": "alpV42x64",
      "frac_calpoints": [
        [0.55, 0.35],
        [0.3, 0.35],
        [0.3, 0.45]
      ],
      "calPS": 5,
      "debug_mode": 0,
      "Alignment_Pattern_Stack": []
    }
  ]
}

To find all the devices that Luminos supports, see the Supported Hardware page. To find all the properties that each device supports, you can open the Initializer file for that device (e.g. DAQ_Initializer.m).

Add device drivers

  • Hamamatsu: If you're using a Hamamatsu camera, you'll need to download both DCAM-SDK4 and DCIMG-SDK on their website (opens in a new tab). Create an account on the Hamamatsu website if you don't already have one. Unzip the folders and place them in luminos-microscopy/lib/Luminos_VS/inc/custom/. You should have the following folders:
luminos-microscopy/lib/Luminos_VS/inc/custom/dcamsdk4
luminos-microscopy/lib/Luminos_VS/inc/custom/dcimgsdk
  • Andor: If you're using an Andor camera, you'll need to download the Andor SDK3 on their website. Unzip the folder and place it in luminos-microscopy/lib/Luminos_VS/inc/custom/. You should have the following folder:
luminos-microscopy/lib/Luminos_VS/inc/custom/Andor_SDK
  • Kinetix: If you're using an Teledyne Kinetix camera, you'll need to download the PVCAM SDK on their website (opens in a new tab). Find the files master.h, pvcam.h and version.h (should be in 'PVCAM/inc') and place it in luminos-microscopy/lib/Luminos_VS/inc/custom/PVCAM/inc. Then add the library pvcam64.lib (should be in 'PVCAM/lib') to the folder luminos-microscopy/lib/Luminos_VS/inc/custom/PVCAM/lib You should have the following folders:
luminos-microscopy/lib/Luminos_VS/inc/custom/PVCAM/inc containing **master.h**, **pvcam.h** and **version.h**
and 
luminos-microscopy/lib/Luminos_VS/inc/custom/PVCAM/lib containing **pvcam64.lib**

Luminos will check for drivers for each of these cameras in the specified location and enable the use of the camera types it finds there.

After you've added the drivers, you'll need to compile the C++ code. To do this, run in MATLAB

build

Testing the hardware

Now that you've added your hardware to the initializer, let's test it out. To test the camera, run in MATLAB

cam = Standalone_Device("Example", "Camera");

Your camera should hopefully launch without errors! Now try the other devices. If you run into any issues, please let us know on the GitHub Issues (opens in a new tab).

Running the full app

To run the full application, run in MATLAB

app = Example_App();

And there you have it! You've got a working app. You can follow the next tutorial to learn how to customize the user interface.