Projects
Science That Matters

Build the OpenFlexure Microscope: The Complete Archived V5 Guide

Added October 30, 2026
38 min read
An assembled OpenFlexure V5 microscope with a 3D-printed flexure stage, camera optics, and manual positioning controls
Image credit

docs/images/microscope_complete_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Before you build

A whole positioning mechanism can be printed as one compliant structure. This is the archived V5-era OpenFlexure design, with both basic and higher-resolution optical assembly paths preserved. It is a historical build reference, not the latest microscope release: current development moved to the OpenFlexure GitLab project linked in the original README. Do not mix parts or dimensions from different generations. Choose the optical branch and required quantities before printing. The instrument is not presented as a certified diagnostic device, and this site has not measured its resolution or positioning performance.

More builds
Difficulty (editorial)
Advanced
Documentation
Complete archived build guide
Hardware
3D printer, Raspberry Pi, Camera module, Microscope optics

Choose one V5 optical branch, follow the matching print and assembly instructions, and consult current development before sourcing parts.

Richard Bowman and contributors' full microscope build instructions: printing, flexure actuators, two optical configurations, illumination, wiring, and motorization.

This repository has moved!

Active development continues on GitLab.com where you can find not only the up-to-date microscope designs, but also software and lots of other fun goodies.

OpenFlexure Microscope

The OpenFlexure Microscope is a 3D printable microscope, including a precise mechanical stage to move the sample and focus the optics. There are many different options for the optics, ranging from a webcam lens to a 100x, oil immersion objective.

An OpenFlexure Microscope in an incubator (courtesy Stephanie Reichelt and Dario Bressan at CRUK, Cambridge)

The trick of making a microscope out of a webcam has been around for a little while, and produces good results. However, getting a nice mechanical stage to focus the microscope and move around on the sample is tricky. This project is a 3D printable design that enables very fine (sub-micron) mechanical positioning of the sample and the lens, with surprisingly good mechanical stability. It's discussed in various media articles and a paper in Review of Scientific Instruments (open access).

Come join us!

Most of the development of this design has been done as part of various research projects - if you would like to join our research group at Bath, and you have funding or are interested in applying for it, do get in touch. Check the University of Bath jobs site, or findaphd.com, to see if we are currently advertising any vacancies. The team is bigger than Bath, though, and there are contibutors in Cambridge, Dar es Salaam, and beyond.

Kits and License

This project is open-source and is released under the CERN open hardware license. We are working on bring able to sell kits, and will update here once we have a good way of doing it,

Printing it yourself

To build the microscope, go to version 5.20 release and download the STL files and instructions. Don't just print everything from the STL folder, as there are a number of different configurations possible. The assembly instructions contain instructions on what parts to print and how to build it.

If you've built one, let us know - add yourself to the wiki page of builds or submit a build report issue. This is a really helpful thing to do even if you don't suggest improvements or flag up problems.

Instructions

The editable instructions are MarkDown format, in the docs folder, and they can be viewed on github pages.

Get Involved!

This project is open so that anyone can get involved, and you don't have to learn OpenSCAD to help (although that would be great). Ways you can contribute include:

  • Get involved in discussions on gitter Join the chat at https://gitter.im/OpenFlexure-Microscope/Lobby
  • Share your microscope images (of both microscopes and what you've seen with them) in the gallery
  • Raise an issue if you spot something that's wrong, or something that could be improved. This includes the instructions/documentation.
  • Suggest better text or images for the instructions.
  • Improve the design of parts - even if you don't use OpenSCAD, STL files or descriptions of changes are helpful.
  • Fork it, and make pull requests - again, documentation improvements are every bit as useful as revised OpenSCAD files.

Things in need of attention are currently described in issues so have a look there if you'd like to work on something but aren't sure what.

Most of the Openflexure Microscope stuff lives on GitHub, under my account. Particularly useful ones are:

Compiling from source

If you want to print the current development version, you can compile the STL from the OpenSCAD files - but please still consult the documentation for quantities and tips on print settings, etc. You can use GNU Make to generate all the STL files (just run make all in the root directory of the repository). More instructions, including hints for Windows users, are available in COMPILE.md.

The OpenFlexure Microscope: Assembly Instructions

The OpenFlexure Microscope is a 3D printable microscope, with a very precise mechanical translation stage. It can be fitted with basic webcam-based optics, or more expensive optics based on a traditional microscope objective for higher image quality. It can also be motorised. These instructions will take you through how to assemble the microscope optical and mechanical parts.

Printing the parts

Before we start, a note on printing - there are many possible versions of the microscope, so don't just print everything in the folder of STL files. Currently, there's a readme document in the builds folder explaining how to select your versions. Please do consult it before printing. Also note that the parts are designed to print without support material on most RepRap type printers. If you use support material, the parts will be difficult to clean up, and may well be damaged in the process - particularly the delicate main body.

Contents

Assembly is broken up into several steps:

Happy building!

An assembled OpenFlexure Microscope, courtesy of GOSH 2018
An assembled OpenFlexure Microscope, courtesy of GOSH 2018
Image credit

docs/images/microscope_gosh.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

About the microscope

The OpenFlexure microscope is a customisable optical microscope, using either very cheap webcam optics or lab quality, RMS threaded microscope objectives. It uses an inverted geometry, and has a high quality mechanical stage which can be motorised using low cost geared stepper motors.

The original paper describing this work is available open-access from Review of Scientific Instruments and you can read various media articles about it for a more user-friendly introduction.

Optomechanics is a crucial part of any microscope; when working at high magnification, it is absolutely crucial to keep the sample steady and to be able to bring it into focus precisely. Accurate motion control is extremely difficult using printed mechanical parts, as good linear motion typically requires tight tolerances and a smooth surface finish. This design for a 3D printed microscope stage uses plastic flexures, meaning its motion is free from friction and vibration. It achieves steps well below 100nm when driven with miniature stepper motors, and is stable to within a few microns over several days.

This design aims to minimise both the amount of post-print assembly required, and the number of non-printed parts required - partly to make it as easy as possible to print, and partly to maximise stability; most of the microscope (including all the parts with flexures) prints as a single piece. The majority of the expense is in the Raspberry Pi and its camera module; the design requires only around 200g of plastic and a few nuts, bolts and other parts. The optics module (containing the camera and lens) can be easily swapped out or modified, for example to change the magnification/resolution by using a microscope objective, or adding a filter cube for fluorescence.

Acknowledgements

This design has largely come out of academic research projects, and we would like to acknowledge financial support from:

The lead developer started this project while at the University of Cambridge, and continues to work on it at the University of Bath, UK.

Contributors

  • Richard Bowman r.w.bowman@bath.ac.uk (University of Bath)
  • Julian Stirling (University of Bath)
  • Grace Anyelwisye Mwakajinga (STICLab)
  • Valerian Sanga (STICLab)
  • Qixing Meng (University of Bath)

This design is (c) the contributors, released under the CERN open hardware license.

Obtaining the non-printed parts

Make sure you have all the necessary parts and tools before you start. The parts should all be listed in the bill of materials below, which is currently a work in progress (eventually it will be produced automatically, which should help it to stay accurate). We recommend reading through all the instructions and checking that the quantities shown here add up correctly, until auto-generation is working. Printed parts are described in the next section.

Fixing hardware:

Electronic parts:

Optical parts:

Tools:

  • 2.5mm hex key
  • 1.5mm hex key (to secure the camera using M2 screws)
  • tape (electrical tape or PTFE plumbers tape work nicely, though regular sticky tape is also fine)
  • sharp craft knife (for trimming tape and cleaning up the print)
  • 3mm drill bit in hand chuck (if you printed the parts yourself and need to open out the holes)
  • needle nose pliers (optional, but useful - particularly good for cleaning up prints)

Don't forget the raspberry pi, camera module, and associated screen, power supply, SD card, keyboard, mouse, etc. (I have not listed these explicitly, but they're needed to run the Pi). Also, if you use the high resolution optics module or want to add motors, you will need additional parts.

While you're waiting for any parts you have ordered to arrive, why not try the next section on printing the plastic parts.

Printing the plastic parts

First, you will need to print or obtain the 3D printed parts. These have been designed with some care to print reliably on most RepRap-style printers, without support material. It's important to read through the notes before, as there are multiple versions of the STL files to choose from, so it's not a good idea just to pick all the parts in the folder.

I usually print with a layer size of 0.24mm on my Ormerod, which takes 10 hours for the main body. "low" quality on an Ultimaker 2 (0.15mm layers) produces similar results in about 10 hours. Our Prusa i3 Mk3 takes a similar time using 0.2mm layers, or 0.3mm layers if we want to go even faster (8 hours or less).

Warning: The microscope is designed to print without support material. If you use support material it will require a lot of cleaning up, and you may well damage the parts.

The parts are all designed to print without support material or adhesion layer. If you do use an adhesion layer, many of the moving parts will be rendered useless by a brim (particularly on the main body), and require lots of work with a craft knife to sort them out. While there are no cantilevered parts that really need support, there are a few bridges; it might be a good idea to print the just_leg_test.stl file first, to make sure your printer can print them. There are some versions of the main body that include a baked-in brim in the STL file, see main_body.scad. This brim does a better job of not fouling the mechanism than most slicers, and is a good option if the part won't stick without a brim. Most of the other parts are possible to clean up after printing with a brim, so you may wish to use one, particularly for the smaller parts like sample clips.

If your printer has a standard-sized bed (180mmx180mm should be fine) then it should be possible to print the complete microscope in one go. I do this if I'm using a machine that is well calibrated and reliable. However, I find that it's often more reliable to print in batches (as small parts at the edge of the print bed can detach and cause it to fail). I would recommend:

  • Batch 1: Microscope, illumination and Optics module (this is the longer print, with taller objects)
  • Batch 2: Feet, gears, camera cover, camera board gripper, camera lens remover, gear riser

There is a test file that prints a single leg of the microscope - just_leg_test.stl. It's worth printing this first to check your settings are OK.

The optics module needs to print with some fine detail, so the dovetail meshes nicely with the stage. A good way to ensure this is to print it at the same time as other parts - either print more than one optics module at a time, or print it at the same time as the microscope body. This slows down the time for each layer, and means the plastic can cool more completely before the layer on top is deposited, resulting in a higher-quality part. The optics module is best printed in black to cut down on stray light inside the tube - though it will still work in other colours.

Standard builds of the microscope

The list of parts below is pretty extensive and tries to explain all the various options - however, if you just want to build a "normal" version of the microscope, there are two versions we'd reccommend:

Webcam-based microscope

The basic version of the microscope uses a webcam lens instead of a microscope objective - you still get a really nice focusing/sample translation stage, but with basic options. This version is great for school or hobby use, gets a resolution of about 2um or better, and is the cheapest to build. This is the version we usually build at workshops. For each microscope, you will need to print one copy of each of the following files:

  • actuator_assembly_tools.stl
  • picamera_2_gripper.stl
  • [optional] picamera_2_lens_gripper.stl (only needed if your camera didn't come with a tool to remove the lens)
  • main_body_LS65.stl.
  • feet.stl
  • gears.stl
  • illumination_dovetail.stl
  • condenser.stl
  • sample_clips.stl
  • camera_platform_picamera_2_LS65.stl
  • lens_spacer_picamera_2_pilens_LS65.stl
  • microscope_stand.stl or back_foot.stl

This will need the nuts, bolts, etc. described below, plus a Raspberry Pi computer (any model will do) and Raspberry Pi camera module. No other optical bits are required, except an LED for illumination. If your Raspberry Pi is in a case already, you should print back_foot.stl so the microscope sits flat on a table. If you want to mount the Raspberry Pi underneath the microscope (our preferred option), print microscope_stand.stl instead. Newer camera modules include a white circular tool for unscrewing the lens. If you don't have one, you will need to print the lens gripper (marked as optional).

High resolution microscope

The version of the microscope used for scientific or medical research generally requires a conventional objective lens. Most of the parts are the same, but the optics and sample mount are different. You will need one copy of each of the following files:

  • actuator_assembly_tools.stl
  • lens_tool.stl
  • picamera_2_gripper.stl
  • [optional] picamera_2_lens_gripper.stl (only needed if your camera didn't come with a tool to remove the lens)
  • main_body_LS65-M.stl.
  • feet.stl
  • gears.stl
  • illumination_dovetail.stl
  • condenser.stl
  • sample_clips.stl
  • optics_picamera_2_rms_f50d13_LS65.stl
  • microscope_stand.stl
  • sample_riser_LS10.stl (assuming you have a microscope objective with a 45mm parfocal distance)

For motorised operation you will also need

  • small_gears.stl
  • motor_driver_case.stl

Additionally, you will need:

  • an RMS threaded, finite-conjugates objective lens. These can be obtained from e.g. AliExpress. Depending on whether it is 35mm or 45mm from the "shoulder" of the lens to the sample, you may or may not need the sample riser. We almost always use 45mm "plan" corrected lenses, which do require the riser.
  • a 12.7mm diameter, 50mm focal length achromatic lens, e.g. ThorLabs ac127-050-a or generic equivalent.
  • a 13mm diameter, 5mm focal length PMMA lens for the condenser (sold as LED lenses in bulk)
  • three 28BYJ-48 stepper motors and a sangaboard driver, or other suitable electronics.

Required parts

Make sure you have all the necessary parts and tools. The parts should all be listed in the bill of materials, which is currently a work in progress (eventually it will be produced automatically, which should help it to stay accurate). We reccommend reading through all the instructions, rather than trusting what is currently listed here.

Printed parts

Currently, the STL files live in the builds folder. This will move to a build server soon.

Plastic tools:

  • band and nut insertion tools actuator_assembly_tools.stl
  • tool to insert the 13mm diameter condenser lens and/or tube lens: lens_tool.stl
  • jig to hold the camera board while you unscrew the lens picamera_2_gripper.stl
  • [optional] tool to unscrew the camera's lens (only needed if your camera didn't come with one) picamera_2_lens_gripper.stl

Components:

  • body of the microscope: main_body_<stage size><height>[-M].stl.
  • 3 feet: feet.stl or feet_tall.stl (contains all 3)
  • 3 large gears: gears.stl (contains all 3)
  • illumination:
  • illumination_dovetail.stl
  • condenser.stl
  • 2 sample clips: sample_clips.stl (contains both)
  • optics module (you need one of the two options below):
  • old-style optics module (one part, best with RMS objectives): optics_<camera>_<lens>_<stage size><height>.stl
  • platform-style optics module (two parts, best with webcam lenses): camera_platform_<camera>_<stage size><height>.stl and lens_spacer_<camera>_<lens>_<stage_size><height>.stl
  • [optional] camera cover: picamera_2_cover.stl
  • [optional] 3 small gears for motors: small_gears.stl (contains all 3)
  • [optional] riser for the sample: sample_riser_<stage size><thickness>.stl
  • [optional] slide holder that works better if using immersion oil: slide_riser_LS10.stl
  • [optional] base to hold a Raspberry Pi: microscope_stand.stl
  • [optional] base to hold the motor driver (fits under the base that holds the Pi): motor_driver_case.stl
  • [optional] back foot, in case you are not using the microscope stand: back_foot.stl

In the filenames above, where there are multiple versions, parameters are included in angle brackets:

  • <stage size> selects the size of the platform - but currently only LS is supported.
  • <height> is the height from the bottom of the main body to the top of the stage in mm, currently either 65 or 75.
  • Usually the above two parameters occur next to each other, so you will see LS65. I pretty much only use 65 as standard, and if I am using an objective (which is the norm) I add a 10mm riser.
  • <camera> is the camera you are using, either picamera_2 for the Raspberry Pi camera module v2, c270 for the Logitech C270, or m12 for a camera with a screw-on M12 lens mount.
  • <lens> is the lens you are using, either pilens, c270_lens, or m12_lens if you are using the lens that came with your camera. To use a finite-conjugate, RMS threaded objective lens, you should specify rms_f50d13 (for a 50mm focal length, 12.7mm diameter tube lens, e.g. ThorLabs ac127-050-a). You can also specify rms_f40d16 (to use a Comar tube lens, focal length 40mm, diameter 16mm) but this is deprecated as the images weren't as good.
  • <thickness> is the thickness of a stage riser - the amount it adds to the height. Usually a 10mm riser is used with a 65mm body to allow a 45mm parfocal distance objective to be used, currently only LS10 is reccommended. Optional bits of filenames are in square brackets above:
  • -M in the body name means it has motor lugs to allow 28BYJ-48 stepper motors to be fitted
  • _tall on the illumination or the feet means the body sits 26mm off the ground rather than 15mm, to give clearance for larger camera modules. This is only useful if you are not using the microscope stand.

Currently, there are two reccommended versions of the body; LS65 and LS65-M. The only difference is that the -M version can be fitted with motors. To build the high-resolution version of the microscope, use the 10mm thick sample riser sample_riser_LS10.stl, and optics_picamera_2_rms_f50d13_LS65.stl. To build the low-resolution version, don't use the sample riser, and instead use camera_platform_picamera_2_LS65.stl and lens_spacer_picamera_2_pilens_LS65.stl. In both cases, it's best to print the microscope stand, and use the standard-height feet.

Clean-up of printed parts

If you printed the parts yourself, start by opening out the three holes in the microscope body with a drill as shown. Make sure to go all the way through. If you don't have a drill, you can improvise by screwing in an M3 screw all the way, then forcibly rotating it with a screwdriver or the supplied nut. Also, remove any loose strings of plastic from the underside of the sample stage, using a pair of pliers. The last step shouldn't be necessary if your machine is calibrated nicely for printing bridges.

Opening out the holes for the actuators
Opening out the holes for the actuators
Image credit

docs/images/main_body_drill.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

There are also ties between the actuator column casing and the central actuator column that holds the brass nut - these need to be snapped, as described in the instructions later on. There may also be short ties between the two thinner pairs of legs and the "wall" running around the microscope - these should also be snapped with a knife. The "ladder" like structure between each pair of legs is also only there for support during printing - it does no harm to leave it in place, but if you cut the "rungs" out, it will allow the stage to move a little more freely.

Once you have your printed parts, you can start by assembling the actuators.

Actuator assembly

There is one "actuator column" for each of the three axes of the OpenFlexure Microscope stage, to allow you to move the sample in X and Y, or focus the microscope by moving in Z. It consists of a plastic gear that fits onto an M3 screw, which then pulls up on a brass nut. Elastic bands pull down on the nut, tensioning the system. The elastic band tightens up the mechanism, allowing us to move up and down smoothly. Without the elastic band, you will only be able to move in one half of the microscope's range of travel, and the mechanism will be more wobbly.

Requirements

All the parts you need for this step are in the picture below:

Parts required for this step
Parts required for this step
Image credit

docs/images/actuator_assembly_parts.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Parts

Tools

Assembly Instructions

There are three actuator columns on the microscope, for X, Y, and Z. Follow these instructions for each column in turn.

Step 1

We need to place a nut inside the actuator. Insert it from the side, through the slot in the actuator column, and push it into place with the nut insertion tool. Take care to insert the nut corner-first (i.e. with flat sides parallel to the tool), otherwise it will jam.

putting the nut into the actuator column
putting the nut into the actuator column
Image credit

docs/images/actuator_assembly_nut_insertion_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

The slot in the body now looks like this
The slot in the body now looks like this
Image credit

docs/images/insert_nut_here.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 2

Next, take a screw, and push it into a plastic gear, so that the head of the screw is embedded in the plastic. Then, thread two washers onto the screw where it sticks out of the gear. Put a very small blob of light oil or grease (if available) on the screw thread. Put the screw into the hole at the top of the column, and screw it into the nut that is now inside the actuator. The two washers should sit between the gear and the microscope body

assembling the screw into the actuator column
assembling the screw into the actuator column
Image credit

docs/images/actuator_assembly_screw_in_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

The gear, with the screw and washers in place
The gear, with the screw and washers in place
Image credit

docs/images/screw_gear_and_washers.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 3

Turn the microscope over and, using the elastic band tool or a craft knife, snap the two thin plastic supports as shown if they are present.
removing the ties that support the actuator column during printing
removing the ties that support the actuator column during printing
Image credit

docs/images/actuator_assembly_snap_supports_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 4

Hook one of the Viton bands over the elastic band tool, and pass the tool through the foot as shown. You should end up with one loop of elastic band passing over each fork-shaped end of the insertion tool. The flat side of the tool should be on the outside, so that the channels in either end face towards the centre of the foot. Make sure you pick the right foot - the middle axis (Z) has a smaller foot. The angle of the feet is different, if the foot doesn't line up with the outside of the microscope casing, you may be using the wrong one.

You may find it easier to put the band through the foot, then insert the tool and hook the band over either end - either way you should end up with the band, foot, and tool arranged as shown in the pictures.

The elastic band on the insertion tool, passed through the foot
The elastic band on the insertion tool, passed through the foot
Image credit

docs/images/band_insertion_through_foot_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Inserting the elastic bands
Inserting the elastic bands
Image credit

docs/images/band_insertion_through_foot_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 5

Place the foot on the body, taking care that it's in the right place (the outer two actuators have sloping bottoms, but flat tops, the central Z axis has a sloping top and a flat bottom). You must also take care to put them on the right way round; the open part of the foot points towards the optics module in the centre of the microscope.

Feet fitted into the microscope
Feet fitted into the microscope
Image credit

docs/images/insert_feet.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Push the insertion tool in until the band clicks into place. Use the nut insertion tool to hold the actuator in place while you do this. It might help to unscrew the gear a bit (so you can see some of the screw thread between the body and the gear) and push down on the gear. When you push the band in, it should click twice - once for each side. If you don't manage to hook both sides on, you may need to completely remove the band and try again - a wooden skewer, or small flat-bladed screwdriver works well to unhook the band without damaging it.

What's happening here is that the elastic band is pushed over little hooks inside the actuator column, near the top, and the click is the band popping into place. The band pulls down on the actuator, so after it's in place the gear should turn with a little more resistance - this is important for the microscope to work properly.

Putting in the Viton o ring
Putting in the Viton o ring
Image credit

docs/images/band_insertion_body_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Putting in the Viton o ring
Putting in the Viton o ring
Image credit

docs/images/band_insertion_body_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

The bands and feet in place in the microscope body
The bands and feet in place in the microscope body
Image credit

docs/images/insert_bands.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 6

You should now have the band pulling both sides of the actuator down as shown.
The Viton o ring, in place in the microscope's foot.
The Viton o ring, in place in the microscope's foot.
Image credit

docs/images/band_insertion_finished_bottom.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 7

Congratulations, you've assembled the actuator! There are three to do, so you may now need to go back and make the next one.

Basic optics module

The simplest option for the microscope optics is to use a webcam lens. This is an old photographers' trick, where a wide angle lens is turned backwards and used as a macro lens, so the side that would have pointed at the camera sensor now points at the sample. Because webcams have very small pixels, using a webcam in reverse makes quite a good microscope objective. This version of the optics module turns the Raspberry Pi camera into a microscope with a field of view about 400um across and a resolution of around 2um.

Requirements

You will need the parts shown in the picture below:

Parts required for this step
Parts required for this step
Image credit

docs/images/basic_optics_module_parts.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Parts

Tools

Assembly Instructions

Step 1

First, get the necessary tools and parts: the optics module plastic parts (the lens spacer and the camera platform), the Raspberry Pi camera module, the tools for removing the camera lens, two M2 screws to secure the camera. Depending on print quality, you might also need a sharp craft knife or some tape.

NB the lens removal tools, board gripper, and optics module are all specific to the camera you're using. This version of the instructions is for version 2 of the camera board, version 1 of the Rasbperry Pi camera module will also work, but you will need to remove the lens with pliers or tweezers instead. Version 2 of the camera module ships with a lens removal tool included, which is a white disc of plastic with a hole in the centre. This is better than the printed lens removal tool, if it's available.

If you are using the 6-LED USB webcam (available for around £3 from eBay or AliExpress) you will need to skip some of these steps and also disassemble the plastic casing to extract the circuit board for the camera. You can simply unscrew the webcam lens and tape or glue it upside down onto the holder, which is fixed onto the circuit board. There is a camera platform STL for the 6-LED camera in the build, substitute this for the Raspberry Pi camera platform part.

Step 2

We need to remove the lens from the camera. To do this, you need the two plastic tools (the board gripper and the lens remover) as well as the camera module. It's best to make sure you have completed the steps up to this point before removing the lens, to minimise the amount of time the sensor is exposed to air and dust.

WARNING! The camera board is static sensitive. Take the usual anti-static precautions (ideally use an anti-static wristband connected to ground, but at the very least make sure you touch an earthed object, such as a metal pipe, before working on the camera module.

Step 3

Remove the protective film from the camera lens.

Removing the protective film from the lens
Removing the protective film from the lens
Image credit

docs/images/picam2_film_removal.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 4

There is a small ribbon cable connecting the camera to the PCB that is very easy to break. There is a square plastic jig that fits over the camera and PCB (the "camera board gripper"), which stops the camera twisting and damaging the ribbon cable. Fit this over the camera as shown. Note that the part for v2 of the camera board will sort-of fit v1, but you need to be a little more careful as it's not a perfect fit.

The board gripper
The board gripper
Image credit

docs/images/picam2_board_gripper_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Gripping the camera to prevent damage to the ribbon cable
Gripping the camera to prevent damage to the ribbon cable
Image credit

docs/images/picam2_board_gripper_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 5

Next, unscrew the lens from the camera module. Use the plastic tool to grip the lens module. This is a small circular part with four prongs that fits over the lens of the camera board (version 2 only) as shown. To remove the lens, push the removal tool onto the lens (just the top part, with the little plastic flanges) and turn anticlockwise to remove it.

The printed tool only works if the prongs are pointing anticlockwise, so make sure it's the right way round. It's important to use the board gripper to hold the camera chip in place and prevent damage to the delicate ribbon cable. After you've removed the lens, check that the little black or orange ribbon cable connecting the camera module (the black square of plastic from which you unscrewed the lens) to the PCB is still connected - pop it back in by pushing it with a finger if needed.

Once you've removed the lens, be sure to place the camera face down on the desk, or put a piece of tape over the square black lens holder; this will help stop dust settling on the sensor, which is extremely hard to clean.

Lens removal
Lens removal
Image credit

docs/images/picam2_lens_removal.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 6

Before assembling the parts into the holder, make sure it's free from dust by blowing some air through it, and check there are no strings of plastic in the central hole through the mount.

Step 7

Next, put the lens into the plastic extension tube. The lens should go in with the side that was next to the camera sensor on top, and the side that was facing outwards (the one with a small hole in the black plastic) facing into the extension tube. This should just push-fit, but may take a small amount of force, or require a layer of tape wrapped around the lens to make it fit tightly (depending on your printer). If you wrap tape around the lens, trim off any tape that protrudes above the lens with a scalpel or sharp craft knife.

The lens in the extension tube
The lens in the extension tube
Image credit

docs/images/insert_camera_lens.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Camera lens being inserted into its printed platform
Camera lens being inserted into its printed platform
Image credit

docs/images/lens_insertion_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Lens seated in a camera platform with ribbon cable
Lens seated in a camera platform with ribbon cable
Image credit

docs/images/lens_insertion_3.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 8

Fit the extension tube onto the camera board, then put the camera board and extension tube onto the camera platform. Secure it in place with two M2 screws, which go through the extension tube and the camera board, and into the platform. You can use two more M2 screws if available to make the joint stronger.

Camera platform mounted onto the optical housing
Camera platform mounted onto the optical housing
Image credit

docs/images/mount_to_camera_platform.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 9

Slide a nut into the nut trap on the side of the camera platform. This probably doesn't need a tool, but you could use a 2.5mm hex key to push it in.

Nut sliding into the camera platform slot
Nut sliding into the camera platform slot
Image credit

docs/images/slide_in_nut_camera_platform.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 10

Screw the M3 screw into the nut, so that it sticks out the side of the camera platform.
Camera platform screw position on the optics housing
Camera platform screw position on the optics housing
Image credit

docs/images/camera_platform_mounting_screw.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 11

Well done - you have assembled the optics module.

High resolution optics module

To get lab quality images from your microscope, you need to use more sophisticated optics than a webcam lens. This optics module uses an RMS threaded microscope objective, with a tube length correction lens, to take very high quality images.

Requirements

You will need the parts shown in the picture below:

Parts required for this step
Parts required for this step
Image credit

docs/images/hires_optics_parts.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Parts

Tools

Assembly Instructions

Step 1

First, get the necessary tools and parts: the optics module plastic part, the Raspberry Pi camera module, the tools for removing the camera lens, two M2 screws to secure the camera, the tube lens, and the objective. Depending on print quality, you might also need a sharp craft knife.

NB the lens removal tools, board gripper, and optics module are all specific to the camera you're using. This version of the instructions is for version 2 of the camera board, version 1 of the Rasbperry Pi camera module will also work, but you will need to remove the lens with pliers or tweezers instead. Version 2 of the camera module ships with a lens removal tool included, which is a white disc of plastic with a hole in the centre. This is better than the printed lens removal tool, if it's available.

Step 2

Before assembling the parts into the holder, make sure it's free from dust by blowing some air through it, and check there are no strings of plastic in the central hole through the mount - an example with strings of plastic is shown in the picture. Use a craft knife to remove these strings, and blow out any debris that remains inside the optics module.

Strings of plastic in the optics module
Strings of plastic in the optics module
Image credit

docs/images/hires_optics_cleanup.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 3

Slide the M3 nut into the plastic holder, and screw the M3 screw into it as shown. This will mount the optics module into the microscope.

Adding the mounting screw and nut
Adding the mounting screw and nut
Image credit

docs/images/hires_optics_screw.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 4

Next, put the lens into the push-fit holder. Start by placing the tube lens insertion tool on a table, with the larger end down. Then, put the lens on the tool (shown in red below), with the more convex side facing down. Next, carefully line up the optics module casing with the lens, and push it down on top of the lens. This might take a little force, I use the heel of my hand. The glass lens is harder than the plastic so is unlikely to crack, but try to avoid too much sideways motion, as this can scratch the surface of the lens.

The lens ready to be inserted
The lens ready to be inserted
Image credit

docs/images/hires_optics_tube_lens_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Inserting the lens
Inserting the lens
Image credit

docs/images/hires_optics_tube_lens_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

The tube lens, fitted into the optics module
The tube lens, fitted into the optics module
Image credit

docs/images/hires_optics_tube_lens_3.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 5

Screw the objective into the plastic casing. The printed thread is not hugely strong, and may not have printed very precisely - the means it might be a little loose or a little tight, and you need to be very careful to screw the objective in straight in order to avoid cross-threading.

Screw the objective in to the mount - be careful to keep it straight!
Screw the objective in to the mount - be careful to keep it straight!
Image credit

docs/images/hires_optics_objective_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

The objective, in place in the optics module
The objective, in place in the optics module
Image credit

docs/images/hires_optics_objective_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 6

We need to remove the lens from the camera. To do this, you need the two plastic tools (the board gripper and the lens remover) as well as the camera module. It's best to make sure you have completed the steps up to this point before removing the lens, to minimise the amount of time the sensor is exposed to air and dust.

WARNING! The camera board is static sensitive. Take the usual anti-static precautions (ideally use an anti-static wristband connected to ground, but at the very least make sure you touch an earthed object, such as a metal pipe, before working on the camera module.

Step 7

Remove the protective film from the camera lens.

Removing the protective film from the lens
Removing the protective film from the lens
Image credit

docs/images/picam2_film_removal.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 8

There is a small ribbon cable connecting the camera to the PCB that is very easy to break. There is a square plastic jig that fits over the camera and PCB (the "camera board gripper"), which stops the camera twisting and damaging the ribbon cable. Fit this over the camera as shown. Note that the part for v2 of the camera board will sort-of fit v1, but you need to be a little more careful as it's not a perfect fit.

The board gripper
The board gripper
Image credit

docs/images/picam2_board_gripper_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Gripping the camera to prevent damage to the ribbon cable
Gripping the camera to prevent damage to the ribbon cable
Image credit

docs/images/picam2_board_gripper_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 9

Next, unscrew the lens from the camera module. Use the plastic tool to grip the lens module. This is a small circular part with four prongs that fits over the lens of the camera board (version 2 only) as shown. To remove the lens, push the removal tool onto the lens (just the top part, with the little plastic flanges) and turn anticlockwise to remove it.

The printed tool only works if the prongs are pointing anticlockwise, so make sure it's the right way round. The plastic tool supplied with the camera module is better, and only fits one way up. It's important to use the board gripper to hold the camera chip in place and prevent damage to the delicate ribbon cable. After you've removed the lens, check that the little black (or orange) ribbon cable connecting the camera module to the PCB is still connected - pop it back in by pushing it with a finger if needed.

Once you've removed the lens, be sure to place the camera face down on the desk, or put a piece of tape over the square black lens holder; this will help stop dust settling on the sensor, which is extremely hard to clean.

Lens removal
Lens removal
Image credit

docs/images/picam2_lens_removal.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 10

Fit the camera module on to the bottom of the plastic housing, and secure it in place with the two M2 screws.

The camera, held in place by two M2 screws
The camera, held in place by two M2 screws
Image credit

docs/images/hires_optics_camera.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 11

Well done - you have assembled the optics module.

Assemble the illumination

The microscope usually works by looking at light that has passed through the sample - so we need to illuminate the sample from above. This section takes you through the assembly of the illumination arm.

Requirements

Parts

Tools

  • 2.5mm hex key
  • Condenser lens insertion tool (if using a condenser lens)

Assembly Instructions

Step 1

To build the condenser, you will need the two parts of the mounting arm, two M3 screws and washers, the LED & cable. If you are using a condenser lens, you will also need the printed lens insertion tool to put the lens into the holder.

Step 2

This is an optional step. If you are not using the condenser lens, skip to step 3

Place the condenser lens on the insertion tool (flat side down), and push the condenser housing down onto it. Take care to keep it vertical. You may need to push fairly hard. As with the tube lens in the optics module, check it's flat and push again if necessary.
The condenser module with the insertion tool
The condenser module with the insertion tool
Image credit

docs/images/insert_condenser.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Condenser housing, lens and insertion tool
Condenser housing, lens and insertion tool
Image credit

docs/images/condenser_lens_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Pressing the condenser lens into its printed housing
Pressing the condenser lens into its printed housing
Image credit

docs/images/condenser_lens_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 3

Insert the LED into the condenser housing. It should push-fit and stay in place. It can be glued or taped if it doesn't stay in.
LED secured to the illumination housing
LED secured to the illumination housing
Image credit

docs/images/insert_led.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 4

Assemble the cable for the LED, if you don't have one soldered on already. You just need to be able to light it up - we usually do this by soldering the LED to a resistor (about 80 ohms), then attaching about 20cm of cable with female crimps on the end. This can easily be plugged onto the Raspberry Pi's 5v GPIO pin.

Step 5

Place the illumination dovetail onto the platform on the microscope body, and secure in place with the two M3 screws. Use a washer between the screw and the dovetail. The holes on the microscope should be just the right size for the M3 screw, but you might need to use some force to get the screws in. Be careful to stop turning the screws as soon as the dovetail is mounted tightly, though - otherwise you might damage the threads.

Mounting the illumination platform
Mounting the illumination platform
Image credit

docs/images/mount_illumination_dovetail.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 6

Clip the horizontal part of the condenser onto the vertical dovetail.

Slide on the condenser
Slide on the condenser
Image credit

docs/images/slide_on_condenser.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 7

Neatly thread the cable for the LED through the gap between the condenser and the dovetail, and then down beside the optics module to the bottom of the microscope. Don't pass it through the hole in the centre of the flat stage - pass it between the stage and the dovetail.

Step 8

You have assembled the illumination - nearly there!

Sample mounting and wiring

Requirements

All the parts you need are shown below:

Parts needed for this section
Parts needed for this section
Image credit

docs/images/clips_and_wiring_parts.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Parts

Tools

  • A 2.5mm ball-ended hex key

Assembly Instructions

Step 1

Plug the LED cable into the GPIO connector on the Raspberry Pi, to the 0v and 5v lines. These are the second and third pins from the top of the connector, on the outside edge - pins number 4 and 6.

Plug in the camera to the camera connector as described in the Raspberry Pi learning materials (the connector is next to the Ethernet port, and the contacts on the cable face the port, i.e. they face away from the tab on the plug).
Raspberry Pi GPIO pins
Raspberry Pi GPIO pins
Image credit

docs/images/LED_wiring.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Raspberry Pi GPIO pins
Raspberry Pi GPIO pins
Image credit

docs/images/camera_wiring.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 2

If you are using a tall optics module, e.g. if you are using a plan corrected objective, you may need to fit a sample riser between the microscope body and the microscope slide. This is not necessary if you are using the basic optics module.

Step 3

Fit the optics module onto the microscope - it slides in from the bottom as shown. The screw sticking out the side fits into the "keyhole" shaped slot in the microscope body.
Insert the optics module
Insert the optics module
Image credit

docs/images/insert_optics_module.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 4

Tighten the screw to hold the optics module in place. You can reach the screw with a ball-ended hex key, through the hole near the Z axis, as shown below:
Tighten the screw to secure the optics module
Tighten the screw to secure the optics module
Image credit

docs/images/screw_on_optics_module.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 3

After this, there are only the sample clips to go. Exactly where you place these will depend on the samples you intend to use, but in any case you simply push the M3 screws into the clips, then screw down into the holes on the stage.
Sample clips fitted onto the microscope stage
Sample clips fitted onto the microscope stage
Image credit

docs/images/sample_clips.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 4

Your microscope is now complete - happy observing! You might want to consult the camera module documentation or raspicam documentation if you need a hand setting up the camera.
Complete yellow OpenFlexure V5 microscope with manual controls
Complete yellow OpenFlexure V5 microscope with manual controls
Image credit

docs/images/microscope_complete_1.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Rear view of the assembled yellow microscope and camera cable
Rear view of the assembled yellow microscope and camera cable
Image credit

docs/images/microscope_complete_2.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Side view of the microscope held near its positioning controls
Side view of the microscope held near its positioning controls
Image credit

docs/images/microscope_complete_3.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Front view showing the printed compliant positioning structure
Front view showing the printed compliant positioning structure
Image credit

docs/images/microscope_complete_4.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Motor assembly

The OpenFlexure Microscope can be motorised, to allow you to run automated experiments. In order to do this, you will need to fit stepper motors to the X, Y, and Z axes.

Requirements

You will need the parts shown in the picture below:

Parts required for this step
Parts required for this step
Image credit

docs/images/motors_parts.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Parts

  • 1 Microscope, with actuators already assembled
  • 3 Small printed gears
  • 3 28BYJ-48 micro geared stepper motors
  • 6 M4x6mm button head screws
  • 1 Motor board case
  • 1 Motor driver board
  • 1 Short mini USB lead
  • 2 Small cable ties

Tools

  • 1 2.5mm hex key
  • 3cm insulating tape

Assembly Instructions

Step 1

First, fit the gears onto the motors. The gears are printed with a circular bottom - place them on the table, circular side down. They should be a tight fit onto the motor shaft - if they are not, place some insulating tape, sticky side up, on top of the gear as shown.

A motor and gear, ready for assembly
A motor and gear, ready for assembly
Image credit

docs/images/motors_tape.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 2

Now, fit the gear (and tape) onto the motor shaft - with the gear on the table, press the shaft into the hole. NB you need to line the flat sides of the shaft up with the hole - it is not circular.

A motor with the gear on its shaft
A motor with the gear on its shaft
Image credit

docs/images/motors_gear.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 3

Repeat steps 1 and 2 for all three motors.

Step 4

Fit each of the three motors onto the microscope body using two M4 screws. It is possible that this step will be easier if you tap the holes in the microscope body first. The screws should be done up tightly, otherwise the motor will wobble.

A motor screwed onto the microscope body
A motor screwed onto the microscope body
Image credit

docs/images/motors_mount.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 5

Fit the mini USB lead to the motor board, and fit the motor board into the case as shown.

The motor board, in its case
The motor board, in its case
Image credit

docs/images/motors_board_in_base.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 6

Connect the cables from the motors to the motor board as shown.

Motors connected to the motor board
Motors connected to the motor board
Image credit

docs/images/motors_wiring.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 7

Finally, sit the microscope on top of the motor board case, and tidy up the wiring using the cable ties. You can more securely attach the motor board to the microscope using M3 screws at the corners, but you might want to wait until you have tested it in case you need to swap the wiring around.

The microscope complete with assembled motors
The microscope complete with assembled motors
Image credit

docs/images/motors_assembled.jpg

Richard Bowman and OpenFlexure contributors · CERN-OHL-1.2

Resized without cropping and converted to WebP.

Step 8

Congratulations, you have fitted the motors. You will need to upload the motor controller firmware using the Arduino IDE. Currently, the firmware resides on github.

OpenFlexure Microscope: Compiling from source

The microscope is modelled using OpenSCAD. This means there's a collection of scripts that, when run, generate STL files that you can then print. The best way to get hold of the latest STL files is to generate them yourself. To do this, you will need OpenSCAD (available for Windows, Mac and Linux). The simplest way to build all the necessary STL files is to use GNU Make. If you use Linux you will almost certainly have this, Mac OS should either have it or be able to get it from homebrew etc., and Windows you can get it through Cygwin or MinGW.

To build all the STL files (NB you don't need to print all of these, there are some alternatives), simply change directory to the root folder of this repository and run make all. This will compile the files and put them in the builds/ directory.

Make on Windows

I was happy to find out that you can use make in MSYS, which comes bundled with Git for Windows. If you install Git for Windows, you can then download a copy of the executable file for make and put it in the bin directory. For me, this was C:\Users\me\AppData\Local\Programs\Git\mingw64\bin though your installation may be different. NB to start MSYS on Windows, look for "Git Bash" in your Start menu.

OpenSCAD command line

You'll need to make sure OpenSCAD is in your executable path so the build script can run it from the command line. This is probably the case on Linux, but on Windows I just ran PATH="$PATH:/c/Program Files/OpenSCAD/" before running make. A more permanent solution is to put that command line into a text file .bash_profile in your home directory (i.e. C:\Users\me\.bash_profile). If it doesn't exist, just create a new text file with that as the only line. Once you've done this, OpenSCAD will automatically be added to your path every time you start MSYS (aka Git Bash). NB the filename does not have a .txt extension, and it won't work if you leave one there. Symlinking the OpenSCAD binary into your mingw64 binaries folder seems to break things like the OpenSCAD includes directory, so use the method above in preference if you can.

On mac, you may need to add a symlink as well, probably from /usr/local/bin/openscad -> /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD (I've not checked these paths but they should be approximately right).

Source and license

Download the editable republished documentation

Original documentation: Richard Bowman, OpenFlexure contributors. Reproduced under CERN-OHL-1.2. Individual image credits identify any separately licensed media. The full original copyright and permission notice is retained in that license file.

Republished the complete reviewed README and build chapters. Reformatted HTML as Markdown, resolved relative links, and served repository images locally. Photos resized without cropping; diagrams retain source resolution. Externally hosted or separately unverified media is linked at its original location. Introductory selection notes are by Meteor Makers; the original author is not responsible for those notes. Combined source chapters in build order and remapped chapter links to this page. Adapted on 2026-10-29 by resolving links, combining the original chapters, and resizing photographs without cropping. The adapted documentation remains under CERN-OHL-1.2 and is also available as an editable Markdown download. The external incubator photograph credited to other creators remains a source link, not a locally republished asset.

Source revision: 0cedf45238bb. Retrieved 2026-10-29. This is a source snapshot, not a claim that the project was first published today or that its creator endorses Meteor Makers.

Keep exploring

An Electron 'Movie' Catches Light Driving Quantum Jumps in Graphene

A Nature experiment maps light-driven electronic dynamics across graphene's momentum space. Sub-10-femtosecond frames and attosecond timing precision are different claims.

Image credit

Cropped measured momentum distributions from Figure 3a

V. Eggers et al. · CC BY 4.0

Cropped to the two upper-left measured distributions in Figure 3a, retaining times, legend and axes; resized and encoded as WebP. Not a real-space photograph.

AirCube: StuckAtPrototype's Open Air-Quality Monitor and Illustrated Build Guide

The creator's complete assembly, firmware, Home Assistant and integration documentation, with real Base and Pro build photographs.

Image credit

mechanical/guide_images/pro_C.jpg

StuckAtPrototype, AirCube contributors · Apache-2.0

Resized without cropping and converted to WebP for the project card.

An ESP32-S3 Spectrometer That Logs the Changing Daylight

Bob Dougherty's complete guide to a networked Hamamatsu C12880MA spectrometer, with sensor connections, calibration requirements, API endpoints, and the original daylight measurements.

Image credit

examples/spec.png

Bob Dougherty · MIT

Resized without cropping and converted to WebP for the project card.

Ten Open-Source Science and Electronics Builds to Explore

Choose a LEGO microscope, ESP32 oscilloscope, laboratory syringe pump, haptic dial, DIY e-reader, synthesizer, or JPL rover using complete credited source documentation.

Image credit

images/osr-side-outside.jpg

JPL / California Institute of Technology and Open Source Rover contributors · Apache-2.0

Resized without cropping and converted to WebP for the project card.

Comments

Member comments are temporarily unavailable.

Log in to join the discussion.