GithubHelp home page GithubHelp logo

openuc2 / uc2-git Goto Github PK

View Code? Open in Web Editor NEW
433.0 43.0 69.0 2.35 GB

Respository for Open-Science modular microscope system.

Home Page: https://useetoo.org

License: Other

C++ 9.15% MATLAB 0.14% Python 1.09% Shell 0.55% Jupyter Notebook 52.18% OpenSCAD 0.67% HTML 2.11% Makefile 0.02% C 33.90% Processing 0.20%
printing-3d microscope diy incubator raspberry-pi python

uc2-git's Introduction

UC2 - Open and Modular Optical Toolbox


New: 🔎 A youtube seminar that describes UC2: 🔍

New: 🔎 The MiniBOX insert can be produced with a laser cutter now! Also, we improved the page and added some tips and trick for working with the MiniBOX! Build it, use it, share your thoughts! 🔍

New: We got the official open hardware certification of OSHWA, under [OSHW] DE00110 | Certified open source hardware | oshwa.org/cert!

New: 💥 UC2_v3 is now released! 💥 Watch how much time the IM cubes can save!
We are working on making the IM Cubes and Puzzles available for sale, but we are not able to offer a 'BUY' button yet. If you are interested in buying some components, contact us via email [email protected]

Open Source Love

Cite this repository: DOI

This project provides certified open hardware.


Start here! Everything is open-source - simply join!

Steps to reproduce and use the toolbox:

Too many new things? Follow our tutorials From a Beginner to a Professional!

Already familiar? Click here if you are looking for...

TheBOX General toolbox Specific setup Workshops
Choose a version and build your own BOX. Explore the toolbox and its applications. Alternatives for many Microscopy methods... and more. Host or join a UC2 workshop.

... or keep on reading to learn more!


Making open-science great again!

WARNING THIS SIDE IS UNDER REVISION! MANY CHANGES AHEAD!

UC2 is a general-purpose modular framework for making interactive (electro)-optical projects. Most optical systems such as microscopes follow a simple 4f or Fourier-optical principle, where lenses are aligned such that focal-planes of adjacent components overlap to limit the amount of aberrations as much as possible and to be able to predict the system-behavior easily using Fourier-transforms.


A recent seminar explaining the core concept of UC2 and their recent advances

Following this idea, a microscope as shown in Fig 1 creates an angular magnification depending on the focal lenghts of the objective fobj and tube lens ftube:

M4f= ftube/fobj


Fig. 1: Fourier-Optical Setup; Koehler Illumination where the illumination plane is conjugate to the objective pupil plane (BFP)

Besides optical components, the UC2 building blocks can also host electronics such as Arduinos or ESP32s to create ''smart'' functions like LED array illumination, Z-stages, et cetera. Communication can be granted through the wired USB Serial BUS or the wireless REST-API. For this the dedicated UC2-REST will help you setting everything up.

UC2 is in active development. It is meant to be used not only by beginners, but also for professionals dealing with optical setups on a daily basis. Its magnetic click-and-go concept simplifies the process of aligning and adjusting the parts giving new tools acting as rapid-prototyping devices. It also comes with a series of open-source workshops (in the future) explaining the theory behind optics.

People are also encouraged to share their work. We are curious what the community is doing with our little blocks. All necessary details to modify the design of the blocks are given in the sub-folders of the specific folders. Share your ideas through our @openUC2-Twitter account.

With the version UC2_v3 we introduced an injection moulded (IM) cube. This makes the assembly easier becuase no screws or magnets are needed for the Base Cube. But there is also a 3D-printed (3DP) cube that is alternative to the IM one an it is fully compatible - the cubes and baseplates can be arbitrarily combined.
Find out more about the two different Cube designs in ASSEMBLY_CUBE_Base and more about the baseplate puzzles in ASSEMBLY_Baseplate.

We are working on making the IM Cubes and Puzzles available for sale, but we are not able to offer a 'BUY' button yet. If you are interested in buying some components, contact us via email [email protected]

A full cube + base-plate looks like that:


Fig. 2: Assembly of the cube + base-plate;
LEFT: IM Cube - Two identical halves of the Cube are pressed together, the Cube connects to the baseplate via lego-like pins;
RIGHT: 3DP Cube - A set of ferro-magnetic screws hold the lid and base-cube in place and connect to four 5mm Neodym ballmagnets sitting in the baseplate, and extra set of M5 screws further fixes the cube to the baseplate and supports the alignment; Optical components find their place inside the cube.

❕ If you are still working with the v2 version of the cube, you find the documentation in the UC2_v2 branch. Check out the Modular Developer Kit to learn about the UC2 version history.

UC2 can be used with cameras from the Raspberry Pi world, but creates even more beautiful images with your cellphone. Thus making cutting edge-research not only affordable, but also available. A more in-detail project description can be found in the UC2 White-Paper

UC2 as an "open-standard"

The idea is to use UC2 as an open-standard or bridge to external hardware components and devices such as cameras or lenses. An already existing or customized adapter/insert creates the link to the UC2 eco-system. A variety of ready-to-use adapters can be found in the folder CAD.


Fig. 3: The structure of any UC2 assembly follows the green lines; A basic cube can hold an insert thus adapting to different components (i.e. lenses, etc.); A number of assembled cube-modules can form a complex optical system here called application

A more in-detail description of the MDK (Modular Developer Kit) which explains how your idea can be adapted to the module system can be found in the MDK-folder. There you also found an explanation about the UC2 version history, if you found some confusing information through the repository.

If you have a new part, we are eager to see it. Please feel free to share it on available websites like Twitter, Thingiverse, Github or any other platform of choice!

Read more about the project in our papers:

The UC2 paper: A versatile and customizable low-cost 3D-printed open standard for microscopic imaging is available on Nature Communications DOI:10.1038/s41467-020-19447-9 All data from the paper is available in Zenodo DOI
The Pre-print of the SIM+ISM paper is available on Biorxiv DOI:10.1101/2021.01.08.425840
The COSI conference paper is out on OSA DOI:10.1364/ISA.2019.ITh3B.5

Where next?

Complete overview of setups, modules, parts to buy and parts to print

I'm afraid we outgrew the situation where we could provide a real complete overview. If you're looking for something specific, check the SITEMAP of the core repository and the overview of the openUC2 repositories.

For the basic modules and setups, find a complete shopping'n'printing list including estimated prices for all modules and setups in this BILL OF MATERIALS!

List of available Setups

Our goal is to make as many setups as possible available, so that people can play with it. Basically everything's possible, you just need to think in blocks! Please have a look in the APPLICATIONS folder for the up to date list of the setups.


Fig. 4: In-line holographic microscope

Repositories

Currently, UC2 consists of the following repositories:

Software

There is a GitHub repository dedicated for the UC2 software. It can be found in the UC2-REST Repo.

The old and deprecated Raspi version can be found here. This supports you with controller APPS for the Raspberry Pi and Android Cellphones.

Workshops

The documented workshops can be found in the folder WORKSHOP and give a step-by-step introduction into the system. We have done multiple workshops together with the HHMI Janelia Farm, UiO Oslo, Lichtwerkstatt Jena and Leibniz IPHT Jena e.V.
If you're interested we are happy to host one near you!

Get Involved

This project is open so that anyone can get involved. You don't even have to learn CAD designing or programming. Find ways you can contribute in CONTRIBUTING

Kits, License and Collaboration

This project is open-source and is released under the CERN open hardware license. Our aim is to make the kits commercially available. We encourage everyone who is using our Toolbox to share their results and ideas, so that the Toolbox keeps improving. It should serve as a easy-to-use and easy-to-access general purpose building block solution for the area of STEAM education. All the design files are generally for free, but we would like to hear from you how is it going.

You're free to fork the project and enhance it. If you have any suggestions to improve it or add any additional functions make a pull-request or file an issue.

Please find the type of licenses here

REMARK: All files have been designed using Autodesk Inventor 2019 (EDUCATION)

Showcase

This is the mess you can end up during Fourier-optics session using UC2 components. Pure-fun! :-)

Credits

If you find this project useful, please like this repository, follow us on Twitter and cite the webpage! :-)

uc2-git's People

Contributors

albaalfgar avatar alecvercruysse avatar b286 avatar beniroquai avatar davidjgraph avatar edabngl avatar haesleinhuepf avatar jvanderk avatar oeway avatar ranranking avatar renerichter avatar shammyx avatar strolch101 avatar theosanderson avatar

Stargazers

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

Watchers

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

uc2-git's Issues

App_openSIM pattern generator

The pattern generation plugin from fairSIM is not on their github anymore or i didnt find the right path to find it.
pattern-generation software

Guiselines improvement

Add links to: learning 3D printing, starting with Raspberry Pi, and so on.
"When introducing a method always provide the option to learn how to do it"

Updating openISM documentation according to the openSIM page

I figured, that the current openISM documentation is not up-to-date and in-line with the manuscript.
@ranranking would you mind helping me to update it? I have updated the structure of the openSIM. I would like to have the two versions similar. Would be great. Thanks :)
Currently, everything is in the v3 branch.

New puzzled Baseplate should ship with variable Holesize for different printers

We should provide different holes for magnets to give people to adjust it according to their (non)-calibrated printers. Maybe a Thingiverse configurator could do the job - or just a list of different STLs. Since we reduce it to only one part rather than 1x3, 2x5, etc. we don't need to do that for all the baseplates.

Results and use cases of APPLICATIONs

Build any of the setups from APPLICATIONS and add your results to the respective README file and IMAGES folder.

Proposed format:
results

  • date (DD.MM.RR) of submisson
  • your name and institution (if applicable)
  • short comment of your results
  • image of your setup - UC2_results_setup_DDMMRR.jpg or .png in the respective IMAGES folder
  • images you took using your setup - UC2_results_DDMMRR.jpg or .png in the respective IMAGES folder

Having a low-cost version of a cylindrical lens

Instead of having an expensive hard to get cylindrical lens, I tested a plane-convex plastic slab which is made out of Plexiglas (R) with an refractive index of 1.48 I suppose. You can get it very cheap at ebay

This is the slab with a radius=15mm, so should give a focus of roughly f'=15mm`

image

Here it is hold in the holder:
image

And the STL-file
20_Cube_Insert_Lens_Cylindrical_Plexiglas_glassslab_v3.zip

@b286 what do you think, should we have this as an additional module?

Clarification of Baseplate connectors

Hello,

What is the purpose of the Assembly_Base_Connector_4? Is it just the 4u version of 00_Connector_Baseplate, meant for 3D designs? The readme describes it as "length of 4 baseplate units" but nothing more.

I am asking because, if I was constricted to a 120x120mm print bed, but wanted a 4x2 baseplate, I would need to connect two 2x2 prints. I know am able to construct the 2x2 base using 10_Base_v2. Is the purpose of the holes along the x and y axes meant to facilitate the connection of these baseplates, with m3 screws and nuts?

Additionally, what is the naming scheme behind your CAD files, particularly the two digit number in front?

Thank you for the help!

Lens holder for optical objective lens?

Hi,

Just discovered this project. It is really amazing! Could you please let me know if it's possible to use the spiral or fixed lens holder for tube objective lens?

Many thanks!

Jerry

Print Mechanical Z-stage without support or add supports?

This page:
https://github.com/bionanoimaging/UC2-GIT/tree/master/CAD/ASSEMBLY_CUBE_Z-STAGE_mechanical_v2
says the parts can all be printed without support.
I printed the focus linear bearing flexure:
https://github.com/bionanoimaging/UC2-GIT/blob/master/CAD/ASSEMBLY_CUBE_Z-STAGE_mechanical_v2/STL/Assembly_Cube_Z-Focus_Linearbearing_1x1_v4_20_focus_inlet_linearflexure_v4_7.stl

and while the piece prints OK without support in the default orientation, the print quality is a bit low (the long bridges have lots of extra squigglies). I don't want to add support on the bridging flexures, since it would be tough to remove. Is there a way to put some internal supports in that can be easily removed to improve those?

BTW I'm using a Prusa MK3S with PETG, but I can also do ABS and PLA.

Smartphone holder v3

Do we want to have the smartphone holder slidable, or would it be even better to stack them to the pins of the new cubes like the plate for the LED I showed you recently?
@b286

Finishing MiniBOX

  • eyepiece: yes or no?
  • sample holder - old version or new one with screws+magnets?
  • amount of baseplates: planned 8, do we want to sandwich it? -> then 16
  • sample mounting in smartphone microscope: is it clear and okay now?
  • lens holder: does the new version work well, stays closed?
  • which spring length/diameter for the z-stage?
  • z-stage working well?

Adding Folder for Sample Preparation?

Perhaps we could add a short list of recipes for sample preparation with images for those who have never dealt with this.
@RainerHeintzmann you could give an example of preparing the flowers for example
@ranranking @b286 - perhaps some cools stuff from your work? Cheek cells and fibers are nice samples too.

What do you think?

Magnetic screw issue (needs further documentation and alternative sources)

First I would like to express my gratitude for the team who made this modular microscopy possible.

I was inspired to purchase a 3d printed to build my raman microscope. I have my spectrophotometer prototyped using lego blocks and on my way 3D printing the microscope components.

I purchased stainless steel (M3-0.50 x 12mm) on Amazon and the biggest surprise is it is not magnetic. This might be a potential issue for future makers, so can we add a list of tested and suitable materials specification indicating they can be magnetized? I see in the site a link to a European source but it would be useful to detailed out specific metal characteristics and warning that some stainless steel and zinc coated screws cannot be magnetized effectively.

XY stage

After reading your paper, I ordered the XY stage from Aliexpress. Along with the stepper motor connectors it has extra electronics parts, which I believe or end stops. Could you please confirm what they are for. The flex ribbon cable seems a better value, so can we find a connector for this?

How to rigidly mount camera in RaspiCam insert v2?

Hi, I just printed all the files in UC2-GIT/CAD/ASSEMBLY_CUBE_RaspiCam_v2/STL but don't understand how the sensor is supposed to be held at a particular postion without play. Is there some way how the 20_Cube_Insert_RaspiCam.stl part is held rigidly within the cube that I am missing?

Also, when I look closely at this picture from the inline holography example (zoomed in and annotated below), it looks to me like the RaspiCam insert is rendered a few mm lower than is physically possible. In particular, if you look at how the gray camera insert overlaps the dark green lid, it looks like the lid is occupying the same volume as the insert, which is physically impossible.

raspicam-insert-issue

If I look at the Camera Cube readme for help, this unfortunately does not clarify the situation for me. Also, the last image shows the sensor held by only a single screw, so perhaps a rigid mounting is not very important for this application.

1x1 baseplate .ipj out of date in MDK

Hello,

It seems that MDK/CAD/Assembly_Cube_Baseplate_1x1/ only contains the inventor project files that pertain to v0 of the baseplate, while the baseplate folder in CAD/ contains v2 of the baseplate. Is there a chance you can provide the inventor project files for v2?

Related to this issue, since there seem to be many copies of what seem to be the same file in every repository (e.g. the STL files pertaining to each module in the Applications), are there plans to consolidate and "future proof" the design files by symlinking (or similar) to the files in the CAD folders? Or do you choose not to in case there are backwards compatibility issues with new versions in the future?

Naming convention in STL folder for UC2 configurator

I have written a small Python script that handles proper renaming of the STL files in the /CAD/RAW/STL folder. It is inside the same folder and calls convertname.py
Please have a look there @b286. The naming convention must be reflected in the Excel sheet as well. Thank you.

Allow to mount 50mm diameter lenses

Many of the easily available lenses (e.g. form Ajax Scientific have 50 mm diameter. It would be useful to also be able to mount them.
They just about fit in the standard cube, but a different mount would be needed. It is not so important to have to full size as a transmitting surface.
Can one make a design for a variable holder for big lenses?

In addition it may also be interesting to make a design for a holder that can even deal with 10 cm lenses at a large distance from the front cube, for example to build a telescope with a 10cm entrance lense.

Starting with software

More detailed guidelines would help!
Hints for basic raspi commands (for just setting up the camera etc.) - taking image, ....

Improvement of the TUTORIALS

We want to be user-friendly but to improve on that, we need users ;)

Start with the UC2 project by following our Tutorials of the TUTORIALS section. Suggest improvements to the Tutorials if the instructions are not clear enough, more images are needed, something is not as obvious as we thought...

Inventor Files for Z-Stage? (and other modules)

Hello,

Will the inventor files be released for any of these modules? Converting an STL to a solid body makes for a generally unconstrained and tough file to edit.

I'm asking because I need to design an objective holder for the z-stage that fits the objective we use, and I would like to simulate the whole assembly to ensure alignment.

Thanks!

UC2_v3 release

When do we merge the v3 branch into master? What is left to be done before that?

  • We should keep a link to the pre-merge point of the repository history somewhere on sight, at least for some time, for people who might still be working with v2.

  • The video updates by @edabngl can be done after merging the branch

  • The SIM+ISM documentation @ranranking What's the state?

Anything else?

UC2 Online Configurator

Based on the work by the openflexure team and @AlecVercruysse, we want to have an online configurator which allows the creation of ready-to-print .zip-files of UC2 Applications which are always up-to-date.

The script which generates JSON files for each APPLICATION now successfully converts the excel sheet into a useful JSON-file. It's still experimental and can be found here.

@AlecVercruysse I still didn't consider the ability to conditionally choose options. I think therefore I need to get a better idea of what it could be. Do you mean something like camera: A or camera: B and lens: A or lens: B in one Application?

Also, would you mind to see if the structure fits what you would expect in your online configurator?
Anyway, I'll try to have a look at your VUE code and see if I have any chance understanding it ;)

UC2 configurator issues

General issues

  • Lenses: how shall we take into account that there are different holders for different lenses and that the user might need to create his own?

GitHub

  • for v3 I omitted the version from the name of the module, since renaming everything everywhere is a hassle and this will save time in the future. However, all the modules that existed in git with ‘_v2’ in their name now appeared extra in the configurator and their folders also appeared again in the git CAD folder, with the only file in them being the ‘config.json’. The ‘_v2’ options in the configurator contain the v3 inserts that correspond to the module but not the cube and lid

STLs

  • is it necessary for each part to end with _v3? The .ipts and hence the generated .stls for which it matters do have it in their name already
  • The renaming is a very good solution, although except for changing the prefix from UC2_v3 to UC2 only and cutting off the suffix number that Inventor creates when generating the file, I don’t see much difference. The “main” file names (without the prefix and suffix number) were matched between the excel and RAW/STL folder. Wouldn’t it be then enough to just cut the suffix numbers?

Excel sheet

  • there must be some confusion between the v2 and v3 version of the excel sheet. or did you use a different tab than v3?
  • the configurator doesn’t take into account the amount of parts stated in the excel sheet - shall the multiple parts be added as extra lines?
  • by making all the OPT parts default, the user might get more STL files than he needs - the question is whether printing some redundant parts makes him unhappy or whether it makes him unhappy not to find the parts in the zip folder when he needs them. I can’t decide what’s better

Configurator (general)

  • it would be nice to have a ‘clear all’ option for the case when one added a lot off different modules and got lost in it

Add DOI badge to the github

In case someone wants to cite this repo we need a DOI badge from our Zenodo archive or the biorxiv preprint.

@b286 would you mind to take care of that?

Reducing stray-light

We should definitely add some shielding elements which reduce the stray-light between the individual parts.

.stl scale

10_Base_v2.stl, Assembly_base_4x1.stl, and Assembly_base_4x2.stl in Master aren't scaled properly. I had to scale 39.37% to print at the proper scale. There may be more as I've not tested them all.

useetoo.org may be hosting malware

My adblocker refused to open useetoo.org because of the trackers and known malware distributors being accessed in by the website. This is the first time I recall this happening. I allowed the trackers temporarily and landed at a "prize" page for my number of google searches. Has your web site been hacked?

Spectrophotometer alignment

I am working on a raman microscope, one of the components is a spectrophotometer.

I decided to follow the current working guide but doing so will not generate any spectra.

The camera or imaging module must be perpendicular to the diffraction grating.

In my case I placed a perpendicular 45 degree mirror so spectral image is reflected on top where a phone or webcam imager can be conveniently placed.

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.