Giter Club home page Giter Club logo

dark-spot-mapper's Introduction

Dark Spot Mapper

CI CodeQL FOSSA Status pipeline status coverage report

Dark Spot Mapper is a measurement system for imaging laser wafers and samples. It consists of a camera and a three-axis linear stage system.

Developed by Mika Mäki 2016-2020 for the Optoelectronics Research Centre of Tampere University and Vexlum Ltd.

As of 2020 the software is fully functional, but the user interface (dark_spot_mapper.py) is waiting for a major rework.

Cameras

Supported libraries are National Instruments NI Vision / IMAQdx and OpenCV (USB webcams, FireWire etc.). OpenCV is recommended, as the National Instruments support is practically Windows-only and deprecated. FireWire support is not included in the OpenCV available from PyPI, and custom binaries have to be used instead. Docker-based build scripts for generating these binaries are provided in the repository. They have been confirmed to work on Linux, but on Windows they have not yet been properly tested.

Running the custom OpenCV builds may require the installation of various dependencies such as libhdf5-103 (included in hdf5-tools), libgoogle-glog0v5 and libtbb2. Depending on the build you're using, you may not need all of these. Python will inform you of the missing libraries when you attempt to start the software, so you should install the versions requested by Python.

Linear stages

Currently this software supports only Granite Devices SimpleMotion V1 linear stages. Supported platforms are Linux (x86_64, arm32, arm64) and Windows (x86, x86_64). The ARM Linux support is tailored for the Raspberry Pi. The included binaries have been generated using the Docker build scripts of this repository.

On Linux, if SimpleMotion cannot find the motor drivers (and FTDI driver cannot find the USB adapters), check if there are USB serial device such as ttyUSB0 in /dev. If there are, it means that the kernel libFTDI driver has taken over the devices and the D2XX driver included in SimpleMotion cannot therefore talk to them. To resolve this, you'll have to copy the udev rule 99-simplemotion.rules to /etc/udev/rules.d Then run udevadm control --reload-rules && udevadm trigger to apply the changes. This rule also gives the proper permissions for the devices, but you may have to allow your user to use the serial ports with the command sudo adduser YOUR_USERNAME dialout

The udev rule may not be enough to keep libFTDI off the adapters, and you may have to disable the kernel modules with sudo modprobe -r ftdi_sio and sudo modprobe -r usbserial. To make the disabling of the kernel modules permanent, edit the file sudo nano /etc/modprobe.d/blacklist-ftdi.conf and add the lines blacklist ftdi_sio and blacklist usbserial Then run sudo update-initramfs -u to apply the changes after the next reboot.

If you have compiled the Linux binaries with Alpine and you run them on Ubuntu, you have to install the package "musl-dev". You will also have to manually create a symlink with sudo ln -s /usr/lib/x86_64-linux-musl/libc.so /usr/lib/libc.musl-x86_64.so.1.

Licensing

FOSSA Status

dark-spot-mapper's People

Contributors

agenttix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.