MCPcopy Index your code
hub / github.com/TadPath/PUMA

github.com/TadPath/PUMA @1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.0.0 ↗ · + Follow
171 symbols 217 edges 67 files 149 documented · 87%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

PUMA 3D PRINTED MULTIMODALITY MICROSCOPE

PUMA Example Scopes

:boom: New :arrow_right: First full version released. The software and many of the CAD file models are improved comapred to the pre-release version.

:boom: New :arrow_right: PUMA now has a Dedicated YouTube channel where you can see video construction guides, usage tutorials and more. Please subscribe to the channel to get notified of new videos. By subscribing you will be supporting the future development of the PUMA project.

:boom: New :arrow_right: PUMA Scopes are commercially available from OptArc.co.uk. For those who want to use PUMA but are not interested in doing all the DIY construction, we can now supply ready-made PUMA scopes via our online store. Proceeds go towards supporting the development of PUMA. OptArc also provides free user manuals on its Support pages.


This project is released under the following licenses:

For source code (including CAD files, STL files and computer programs) and compiled code: the GNU GENERAL PUBLIC LICENSE Version 3

For documentation: the GNU Free Documentation License, Version 1.3

GitHub Repository DOI: PUMA DOI

PUMA is published in the Journal of Microscopy, see DOI:10.1111/jmi.13043

Introduction

PUMA is an Open Source (GPL v3.0) 3D printed light microscope system designed for direct eye observations and ultra-portability with advanced options for digital imaging, measurements and computer control. The name PUMA is an acronym of some of its most important distinguishing features: [P]ortable, [U]pgradeable, [M]odular, [A]ffordable

As a medical Pathologist I use high quality optical microscopes routinely. I know what a great optical image they provide, how comfortable they are to look down and also how horrendously EXPENSIVE they are to buy and maintain putting them beyond reach of most people. I designed the PUMA scope to make such a high quality optical viewing microscopy experience available to people without such generous funding resources.

Most 3D printed open source microscopes I have seen appear to be either toys or low power inspection scopes and/or they are designed to be used as camera scopes with a web-cam / PiCam or smartphone. Many also seem to be novel re-inventions of the microscope that would seem unfamiliar to people used to operating a traditional laboratory bench top microscope - that doesn't mean they are not useful in their own way of course.

PUMA is an open source 3D printed traditional-style direct vision microscope designed as a professional benchtop microscope of familiar design but made with inexpensive materials and 3D printing - and made truly portable for field work. Here are its main features:

  • It can use professional quality standard microscope optics including high numerical aperture (NA) objectives - up to oil immersion with NA = 1.25 (e.g. 1000x total magnification). That is enough to see bacterial morphology, individual cell chromosomes and sub-chromosomal details (such as FISH signals and banding).
  • It is truly portable (no mains, smartphone, PC or monitor required).
  • It is a multi-modal scope with options for: bright field, fluorescence, dark ground, epi-illumination, polarisation and phase contrast.
  • It has advanced options not usually found on even expensive lab research scopes such as an augmented reality heads-up display and a computer-controlled spatial light modulator for optical Fourier filtration.
  • It is not restricted to using a camera, computer and screen for observations (although these may all be used, if desired).
  • It is designed to be easily used by those already familiar with standard bench-top microscopes - PUMA does NOT seek to 're-invent' the microscope.
  • It is designed to be fully DIY for those who want to have the greatest cost savings - and only uses widely available standard parts. However, for those not interested in DIY, PUMA is also commercially available ready-made from OptArc.co.uk.

Example Images from PUMA

The pictures below were taken with a wide field camera on top of an eyepiece to show the whole field of view (except that the last image is cropped). The first row from left to right shows: Bright field Kohler illumination x100 oil immersion objective H&E (chronic inflammation), trans-polarisation through crossed polars x40 objective H&E (striated muscle of tongue), epifluorescence x40 objective fluorescein stain (Sonchus flower bud and pollen grains). The bottom row from left to right shows: Epi-illumination through crossed polars x4 objective (circuit board), dark ground microscopy x10 objective unstained section (colon), Schlieren phase contrast x100 oil immersion objective using the spatial light modulator (colonic crypt cells - note the distinct mucigen granules in the goblet cells).

PUMA Example Modalities 1 PUMA Example Modalities 2

Advantages

PORTABLE: PUMA is totally portable. Not only is it small and lightweight but it does NOT require a computer, smart phone, camera or PC monitor to operate. It does have advanced options including an in-built computer and motorised Z-stage but even those options are driven by a small dedicated battery-operated control console. There is no need to plug into the mains. Solar powered battery chargers can be used to keep standard batteries topped up (AA and 9V batteries can be used). So PUMA can be used for extended periods in remote places without mains electricity and without internet connectivity. It can be quickly 'field-stripped' for transport without tools and likewise reassembled. There is also the option to use a mains power adapter if full portability is not required.

UPGRADEABLE and MODULAR: Like many professional series of laboratory microscopes, PUMA is modular. You can use it as a simple - but high quality - monocular microscope with an adjustable mirror for illumination (so not requiring any electronics at all) - all the way through to an all-singing, all-dancing trinocular scope with full Kohler illumination and an augmented reality unit for a heads up display of its integrated computer allowing for digital measurements and much more - while still being fully portable. Many other configurations are also possible e.g. epi-illuminated, fluorescence, dark ground, polarisation, etc. However, PUMA uses the concept of modularity to enhance its role as a standard benchtop observational microscope and to make it possible to upgrade without duplicating existing 3D printed parts and to switch modalities with the greatest ease and simplicity. No attempt has been made to make PUMA a general optical bench.

AFFORDABLE and OPEN SOURCE: All aspects of the PUMA are open source and not monopolised behind paywalls and patents. As a 3D-printed project it is designed to be built and customised by anyone with access to 3D printing and uses standard fixtures and fittings that are available form a variety of retail outlets like Amazon, eBay and AliExpress. Even the high quality optics can be purchased inexpensively form these general outlets - you don't need to buy any component from a specialist university optics supplier or a major microscope manufacturer to get a professional quality optical experience.

DIY: Great care has been taken in the design to ensure the whole scope with all its advanced options can be built by anyone with standard tools and only moderate DIY skills. There is no need to print/etch/drill custom circuit boards and only standard fixings are used - screws and washers that can be purchased cheaply almost anywhere. Even the most advanced optional electronic components can be made with just basic soldering skills and tripad prototyping board. A single Arduino Nano is used as the basis for on-board computing.

RMS STANDARD: The scope accepts RMS standard objectives so you can use very high quality optics such as objectives from the Olympus BH series or old Zeiss / Leitz objectives that can be purchased second hand on eBay or can be found spare in many labs now that most microscopes have gone over to infinity optics. The mechanical tube length of PUMA is 160 mm (or 170 mm with a 3D printed ocular extension adapter that is also part of the PUMA standard). One of the reasons PUMA is so small and lightweight and inexpensive to make is that I designed it to work entirely in this length without any tube extension lenses - so even the complex binocular head adapter (and trinocular) all work in this short mechanical length.

INFINITY OPTICS AND C-MOUNT: PUMA works best with 160 or 170 mm tube length objectives. With the addition of an inexpensive tube lens more modern infinity objectives may also be used including those with a larger thread mount such as the Leica NPlan series - although the image quality will not be so good due to the proprietary nature of the corrections used in such objectives. This infinity option is therefore provided, but not recommended. I am currently working on a more dedicated high quality infinity optics adapter so watch this space for updates.

HIGH EYE POINT OCULARS: Some other 3D printed microscopes were designed to be used with camera, computer and display screen to produce an image - if they use a wide field ocular it is mostly so that they can place a smartphone in front of it rather than it being positioned ergonomically for a human eye. The PUMA is designed as a direct vision scope which will take standard professional quality high eye point eyepieces to allow clear and wide angled field of view even for spectacle wearers. This allows the user to instantly access the widest possible field of view and highest possible resolution in a portable design that is ergonomic for a human observer. For scopes that are dependent on cameras the image size and quality is limited by the size and quality of the available camera chip and computer screen. To get an equivalent large wide angled quality view with a camera scope, you would need a very large monitor (so not portable) and the resolution and colour would never be as good as direct human vision. PUMA can be used in monocular (standard and ergonomic variable angle options), binocular and trinocular modes. As a first for 3D printed scopes, PUMA also has a live 'double-header' mode so two people can look down the scope simultaneously for live discussion / teaching - without the need for a camera / monitor system. PUMA was designed for human observers to look down the tubes - this was a primary design objective - not an optional afterthought.

CAMERA OPTIONS: Of course PUMA has the option of attaching a camera if you like - in fact you can attach up to 3 cameras simultaneously - so as to provide all the benefits of digital imaging, recording and broadcasting - but this is an option, not a necessary or prime requirement to use the scope. Furthermore the type and make of camera is not restricted. Any camera that can mount on a standard professional laboratory scope can also be mounted to PUMA. So specialist research can be conducted if this requires specialist C-mount scientific cameras. Even smartphone cameras can be used via widely commercially available smartphone to eyepiece adapters. The PUMA specification also includes some 3D printed camera designs of its own making use of inexpensive USB camera modules that can easily be programmed via the UVC driver system in Linux (using v4l2), Windows (DirectX) and MacOS computers - and WiFi enabled cameras that can be accessed by smartphone apps.

HIGH QUALITY ILLUMINATION: Full Kohler illumination with access to illuminated field and illuminating aperture stops is part of the PUMA standard together with an Abbe-type condenser unit. There are also simpler illumination schemes for those who do not need such high NA imaging. There are also epi-illumination, fluorescence illumination, dark ground and polarisation (both trans and epi) options as well as simple mirror-based illumination. Fourier-plane phase contrast is also possible by condenser aperture shaping (so without the need for special phase contrast objectives and tube phase rings). The illumination system was such a major component of the PUMA project that is was given its own development name - the 'Dominus Illumination System' (or just 'Dominus' for short).

SPATIAL LIGHT MODULATOR (SLM): Unlike many commercially available professional scopes - whose condenser aperture can only be opened and closed in a circular pattern or use a central blocking spot for darkfield mode - the PUMA has a highly flexible condenser aperture. This can be made to be of any arbitrary pattern using either standard physical aperture templates (see first row image below showing the manual filter system on the left with some 3D printed layered template filters in situ) or the PUMA SLM - a transparent TFT 240x240 pixel display unit that can be programmed to have any arbitrary pattern on that pixel grid in various colours and shades of grey so not limited to black / white all-or-nothing transmission. The pictures below show the SLM in front of a fluorescent strip light. The top image shows the SLM switched off (middle) and with its boot-up screen (right). The lower row of images shows some example simple apertures for dark ground microscopy (left) and Schlieren phase contrast (middle and right). This makes condenser-based phase contrast simple to achieve as well as provide a basis for Fourier ptychography, Fourier tomographic depth scanning and other Fourier optics methods. One can even program the aperture to modulate according to the optical stru

Core symbols most depended-on inside this repo

write
called by 9
Software/PUMA_Control/libraries/GFXM_Library/unused/PrintM.h
SPI_DC_HIGH
called by 8
Software/PUMA_Control/libraries/GFXM_Library/unused/Adafruit_SPITFT.h
SPI_DC_LOW
called by 8
Software/PUMA_Control/libraries/GFXM_Library/unused/Adafruit_SPITFT.h
getBuffer
called by 4
Software/PUMA_Control/libraries/GFXM_Library/GFXM.h
SPI_CS_HIGH
called by 4
Software/PUMA_Control/libraries/GFXM_Library/unused/Adafruit_SPITFT.h
SPI_CS_LOW
called by 4
Software/PUMA_Control/libraries/GFXM_Library/unused/Adafruit_SPITFT.h
begin
called by 4
Software/PUMA_Control/libraries/ST7789_FastM/ST7789_FastM.h
pgm_read_glyph_ptr
called by 3
Software/PUMA_Control/libraries/GFXM_Library/GFXM.cpp

Shape

Method 151
Function 10
Class 9
Enum 1

Languages

C++98%
C2%

Modules by API surface

Software/PUMA_Control/libraries/GFXM_Library/GFXM.cpp55 symbols
Software/PUMA_Control/libraries/GFXM_Library/unused/Adafruit_SPITFT.cpp44 symbols
Software/PUMA_Control/libraries/GFXM_Library/GFXM.h19 symbols
Software/PUMA_Control/libraries/ST7789_FastM/ST7789_FastM.cpp14 symbols
Software/PUMA_Control/libraries/GFXM_Library/unused/Adafruit_GrayOLED.cpp11 symbols
Software/PUMA_Control/libraries/GFXM_Library/unused/PrintM.h8 symbols
Software/PUMA_Control/libraries/GFXM_Library/unused/Adafruit_SPITFT.h6 symbols
Software/PUMA_Control/libraries/ST7789_FastM/ST7789_FastM.h5 symbols
Software/PUMA_Control/libraries/GFXM_Library/Print.cpp5 symbols
Software/PUMA_Control/libraries/GFXM_Library/fontconvert/fontconvert.c2 symbols
Software/PUMA_Control/libraries/GFXM_Library/unused/Adafruit_GrayOLED.h1 symbols
Software/PUMA_Control/libraries/GFXM_Library/glcdpumafont.c1 symbols

For agents

$ claude mcp add PUMA \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact