Does this project spark your interest?

Become a member to follow this project and don't miss any updates

ramanPi - Raman Spectrometer

An open source 3D Printable Raman Spectrometer using a RaspberryPi and easy to find off the shelf components..

28 136 109
Enjoy this project?
Share on twitter   Share on Facebook

This project was created on 05/30/2014 and last updated 37 minutes ago.

An open source 3D Printable Raman Spectrometer that uses a raspberryPi, a couple of arduino compatible ARM boards, a really bright laser and some parts you can grab from eBay, adafruit, sparkFun, Mouser, or wherever...!

1. Make it Open.. Everything.. All of it..
2. Make it 3D Printable.
3. Make it modular and easy to upgrade.
4. Make it as easy to build as possible.
5. Make it easy to customize and open to improvement.
6. Use only commonly available off the shelf components whenever possible.
7. Have a remote interface that will allow it to be controlled and viewed from anywhere.
8. Compare the spectra to the online internet spectral databases.
9. Provide the capability to log data to remote databases, share with friends and colleagues..
10. Not be just another open source spectrometer..
11. Make it easy to use and intuitive.
12. Make it attractive with an elegant design..
13. Make it useful and just cool to have!

ramanPi - the DIY 3D Printable

RaspberryPi Raman Spectrometer

I changed the name from DIY 3D Printable RaspberryPi Raman Spectrometer..!  I never really like the length of the previous name..  Probably not great to do it mid-stream, but better late than never.. :)

Be sure to check out the bio that did on me!!


Imagine the keyboard in front of you... It is made of several's probably plastic, some metal, some silicon, and so on... Now imagine a glass of water, a tasty beverage or your favorite soft drink.. So now let's ask what's in that probably know there's a bit of water, and a lot of other components.. What if you look at that tasty beverage, and want to find out what chemical compounds are in it.. So take a sample of it, and put it into a 'cuvette' which is a fancy tiny test tube of sorts.. Then insert that into our Raman Spectrometer.. Then run an analysis on it and bam! You can see that your tasty beverage has C2H6O, carbon dioxide, water, etc.. 

Ethanol Spectra

There have even been examples of how you can distinguish different brands of tasty beverages using a Raman Spectrometer! You can do the same thing for other samples, like gasoline, your blood, tears, or even your cat's hair...pretty much anything..


You!  Or anyone who is interested enough in hacking and/or science to be on hackaday!  Every home lab, school science dept. and hackerspace should have one...Use it to determine any number of things..  Sort your sand collection based on the composition of silica (SiO2) and other materials(meant as a joke but you could if you really wanted to)!  Or determine what kind of plastic or metal or ceramic or glue was used to make something... How fresh is my food?  What happens to this material when I do this?  Do a before and after analysis and find the raman shift!  Anyone who is interested in making what they do better.. Of course it takes some knowledge to use, but isn't that the whole spirit of hacking?


Raman Scattering

Basically, it works by shining a really bright laser through some optics to focus down to a sample...That laser light then hits the sample, and depending on the molecules it hits, and what they're doing...the light can be shifted up or down in color.. Some of that light, and some of the laser light is reflected back into the optics and goes back and is reflected through a couple of filters that removes the laser light completely..leaving only the shifted light from the sample.. That light is bounced off of a 'diffraction grating' which is sorta like a prism.. The light is separated and projected onto a camera(ccd) which takes an 'image' of the spectra. Then the computer analyzes that and compares it to a couple of online databases then comes back and tells you what's in your tasty beverage!

Lasers + tasty beverages =


Process Overview

Start off by putting a sample in the cuvette.. Insert the cuvette into the DIY 3D Printable Raman Spectrometer, run the analysis.....the data is retrieved from the internet spectral databases, a match is found...that match is displayed on the users remote terminal...  You can store that data in an external database, share it online, or do what you please with it.. 


Optics Overview

1. The laser emits a 532nm (green) beam of light.

2. The 532nm Pass Filter only allows the 532nm (green) light to pass, and filters out anything else.

3. The Cube Beam Splitter passes half of the light on to the Objective Lens, and the other half into the Beam Dump.

4. The Objective Lens focuses the light down to a tiny point in the sample.

5. The light in the sample interacts with the molecules, and depending on vibrations, bond angles, etc. the light is shifted from 532nm (green) to other colors/frequencies.

6. Some of the shifted light and a lot of the original laser light is reflected back into the Objective Lens and is collimated back to the Cube Beam Splitter.

7. The Cube Beam Splitter reflects half of the light to the Filter Assembly and half back into the laser.

8. The Filter Assembly contains two Edge Filters which block the 532nm (green) laser light and allow the other colors to pass. Since this is a low cost system, two edge filters are used instead of one Notch Filter...and so two separate exposures are taken and the images are stacked.

9. The remaining light is collimated by the Bi-Convex Collimating Lens to the Vertical Aperture (slit).

10. The Vertical Aperture (slit) controls the amount of light that enters the spectrometer section, and is a determining factor in spectral resolution.

11. The light from the slit is reflected off the Collimating Mirror on its way to the Diffraction Grating.

12. The Diffraction Grating acts like a Prism and divides the light into separate colors. Since the light originated as 532nm (green), and the shift is typically fairly minor, this light may be close to the original color...but also may be red (lower frequency) or even blue (higher frequency).

13. The light reflected from the Diffraction Grating is reflected by the Imaging or Focusing Mirror onto the Detector Array..

14. The spectra derived from the above process is reflected by the Imaging Mirror onto the CCD Array where it is captured by the raspberryPi for processing.. One image is taken with the first Edge Filter, then another exposure with the next Edge Filter and then some software to stack the images is used together along with some signal processing and possibly multiple exposures to gain as much brightness as possible so the computer can correctly analyze the spectra...

Originally I started out with a different configuration for mounting the optics. Since then, I decided to go with a much better solution where the optics are enclosed in a contiguous structure that eliminates stray beams and keeps ambient light out. It is also easier to set up, and should stay aligned longer in addtion to being more shock resistant and will reduce resonance.. The system is comprised of a number of individual modules, most of which are based around the optics listed above.

I have decided to go with the Crossed Czerny-Turner Configuration for the spectrometer portion.. It seems to be the best fit so far..

Crossed Czerny-Turner


I will start by saying, there is no secret sauce to this project..  I am committed to sharing every detail of how this project works, how to build it and how to get it working...and hopefully how to modify it to suit your needs!  

The entire system is based on a raspberryPi..  And uses 4 microcontrollers to accomplish its tasks. 

Firmware for the controlBoardinterfaceBoard and the imagingBoard can be found either on the gitHub repo or directly at the site... 




The open source hardware information:

The open source software and library information:

For a more readable version of this, check the gitHub location.. I tried forever to figure out how to get this information on here in a readable format, but there just doesn't seem to be any way..

The device firmware for the controlBoard, interfaceBoard and imagingBoard are located in the gitHub under software and are in 4 formats..Three of which are zip files.. There are the actual C++ files and then the exports from the online compiler...which you should be able to import and compile without issue..  There is the Keil uVision4 .zip file, the mBed online IDE (mBed Tools) .zip file, and the zip archive (With Repositories) version..  As soon as I have some worthwhile code to share, I will start putting the pre-comiled .bin files on gitHub as well...that way you can just drag and drop them to your Nucleo board without concern..


Hardware Overview

A view from the outside... The whole thing fits in a Prodigy mini ITX case by BitFenix..

The electronics are centered around a raspberryPi. There are three microcontrollers tied to the raspi through rs-232.. The controlBoard, the interfaceBoard and the imagingBoard.. The controlBoard is also tied to the power control board... and at this time, the imagingBoard and the interfaceBoard may be living on the same PCB..

All three boards are based on the ST Microelectronics Nucleo F401RE STM32F401RE MCU and fit into what used to be hard drive trays that slide into the case..using a 3D printed adapter..

The Nucleo F401RE is just one of many platforms supported by mBed..  The boards shown below are prototypes, I'll be publishing the Eagle files for the new boards when I get the bugs worked out with these..

I am using the mBed online IDE to program them.. Say what you will, it works great.. gitHub to firmware..



Schematic for controlBoard can be found here.

  • Power Relay for Laser
  • TTL Control for Laser
  • Monitor Temperature for Laser using DS18B20 sensor
  • Control L298 HBridge for Heating/Cooling of peltiers on CCD Array and Cuvette
  • PID Monitor and control Cuvette temperature using DS18B20 and L298 HBridge
  • Monitor current draw from peltiers on CCD Array and Cuvette using ACS712 current sensor
  • Control Beam Shutter using a standard 9gram hobby servo
  • Detect Laser Good (verify beam is reaching destination) using a TEMT6000 ambient light sensor
  • Open and close Cuvette Tray using stepper motors driven by ULN2003, with optical end stops
  • Rotate Filter Wheel Assembly to change from 522nmSP to 550nmLP filters using ULN2003
  • Detect Filter Wheel Assembly position using rotary encoder
  • Monitor Cuvette Holder for presence of cuvette in tray using a optical proximity sensor



  • Accepts power from main power supply and distributed it to other boards
  • Contains the L298 HBridge for the imaging and cuvette peltiers


  • Arduino Pro Mini (for Adafruit RGB LED Ring which animates depending on activity)
  • ILI9341 2.2" TFT LCD Color Display
  • Capacitive Touch Panel with 12 'Buttons' using MPR121 touch controller
  • Displays system status and mini control interface
  • Accepts user input to open/close cuvette tray, etc..
  • LED Ring provides feedback regarding status, etc..


  • Controls Toshiba TCD1304DG Linear CCD
  • Monitors UV index with a SI1145 UV Index Sensor 
  • *Might, at least in future update control the Linear CCD sliding, which can be used to increase resolution.
  • Transmits CCD data to raspberryPi for processing

Please read more......the description for the process has been updated!

Read more »


See all components

Project logs
  • More Spectrometer Design Fun

    8 hours ago • 0 comments

    What have I been doing this past week?  In a nutshell...taking a crash refresher course in trig and burying my head in the web reading about ray tracing and and a bunch of head scratching with openSCAD on getting objects to change angle and position based on another objects angle and position...  For example, the entrance slit shines light onto the collimating mirror... that mirror reflects and collimates the light onto the diffraction grating.....  I am working on getting openSCAD to automatically position the grating based on the mirrors parameters ...diameter, focal length, angle and so on..  that makes the diffraction grating move so it's in the right place to reflect the correct order (chosen with a parameter) to reflect onto the focusing mirror.  I've been pretty successful so far.. I'm still working on getting it to calculate the diffraction angles..that gets kind of tricky because it almost turns into a feedback loop since the angles change for each order depending on the angle of incidence..  

    My main goal with this is to get this part of the system to be as flexible as possible.. So someone who wants to build one can just plug in the numbers for the optics they were able to procure and the spectrometer will pretty much design itself so they can print one on the 3D printer with all the right focal lengths and angles for their specific optics.  I have maybe a couple more days work to go with it and then a round of cleaning up my ugly code...  

    But as you can see here... it's not terribly far off the mark...although there is a lot left to fix..

    This picture is ugly, but it shows the beam paths(although not correctly for the focusing mirror since they don't converge to the focal point of the spherical mirror yet) for the light as it goes around..  In this first one, you can see the collimating mirror is at a 20deg angle, the grating position and angle is automatically calculated... then the focusing mirror is automatically positioned from's angle and the position of the detector array will follow suit..

    In this second image, I changed the angle for the collimating mirror to 15deg instead of 20....

    Not a HUGE difference since it's only 5deg, but you can clearly see that it moved the diffraction grating and changed its angle as well as moved the focusing mirror to compensate...

    The calculation (however ugly it is at the moment since this is a rough sketch so far) for calculating the diffraction grating based on the collimating mirrors parameters are as follows:

    // diffractionGrating X position calculated from collimatingMirror angle and distance
    DG_Xp = CM_Xp + CM_EFL * cos((CM_Zr*2) - 90);		
    // diffractionGratingY position calculated from collimatingMirror angle and distance
    DG_Yp = CM_Yp + CM_EFL * sin((CM_Zr*2) - 90);
    // diffractionGrating Z position
    DG_Zp = 0;			
    DG_AN = DG_Zr + 90;

    DG_Xp, DG_Yp and DG_Zp are the X, Y and Z positions for the diffraction grating...the CM X,Y and Z are for the collimating mirror... and the CM_Zr is rotation...  DG_AN is diffraction grating angle. The same set goes for the focusing mirror pretty much to calculate its position and angle.

    Here's a little animation showing the relationship of the collimating mirror and the diffraction grating..  I obviously have a lot of work to do still..

    The math for the concave mirrors is pretty tough to do in openSCAD..  At least with my experience so far..  Here's an example from wikipedia..

    But..when I'm done, it will be very simple to customize the spectrometer!  

    For fun, try reading this..  or this  or play with this calculator!

  • Spectrometer Physical Design Concept

    6 days ago • 0 comments

    I have been playing around with different ideas for the past week on physical designs for the spectrometer...  Aside from the geometry, and other design aspects.. I needed to develop a physical 3D printable case to fit the optics in, etc..  So here are a couple renderings on what I think might be the start of the final idea..  :)   It's very simple right now, no details.. just basic placement and shape...  But from everything I can figure, and a whole lot of attention to whether it will fit into the case with all the other parts and optics...I think this should work well.  

    Here are the renderings...

    Like I said..pretty basic right now..  I think I got enough from the testing with the test stands that I made in my previous round that I am pretty happy with the geometry and focal lengths, etc.. etc.. etc.....   I will be adding adjustable mounts for the optics to allow for fine tuning, etc.. and might be adding a stepper motor for both the diffraction grating and the CCD array..  I'm very interested in the idea of increasing the resolution by taking a sample, then sliding the CCD a tiny bit and taking another sample, etc.. and adding those up...  Theoretically, that should provide for a pretty decent gain in resolution... and actually might be very useful in noise reduction since you could take several dark samples with the CCD in multiple positions then take subtract that info from the final... Just a thought for now, but I would love to hear other opinions...!

    I would also love to make this portion of the system functional in its own right, so people could use it as a regular spectrometer if needed..  

    As a side note.. I have been looking at different light sources to calibrate and test with...  Something that anyone can find, and get without spending more on it than they did building this whole thing..  

    So, I spent a while looking and the best option I could find were spectrum tubes that you can buy on either Amazon or eBay for about $15-$20 a piece..   Unfortunately, the power supply is about $165....

    Having said that... I'm trying to find alternatives to the power supplies they offer... My first thought was a neon sign transformer...but I have read a lot saying that isn't a good idea due to inductive loading and so on.. causing the tube to either expire quickly or actually overheating and possibly exploding..  I also hear the tubes require a sort of kick start..  If they run at 3kv or so, they might need a 5kv bump to fire properly...  I've been searching for schematics, etc.. but if anyone has a pointer, I'm all ears!

    As always, I would love to hear any comments you have!

  • Actual Data

    8 days ago • 0 comments

    So, a little more progress with getting spectra to the raspi...  I ditched the oscilloscope for this round... And here's some examples of actual data from the CCD transferred from the microcontroller through serial (to a PC for now...but it's written in Python and should port over to the raspi with no changes except the serial port hopefully)...  I'll test this on the raspi soon..

    So, here's what matplotlib plots out from the serial data sent from the imagingBoard....

    Here's the red filter...







    And purple sharpie for fun.. I saved this one at a different resolution sorry... ¯\_(ツ)_/¯

    So.. the python code is up on gitHub...  as is the code for the nucleo or you can look at the nucleo code on the mBed repo..  

    I'm just about finishing up this round of testing... and will be ready to move to the next phase soon....  Which will be finalizing the design for the printable spectrometer...  I have been experimenting with locations and angles to place the light baffles, etc...  and those will be included in the final design.. probably in more places than just the spectrometer..  During some previous tests I noticed a few hotspots for stray light around the beam splitter and the objective lens... So I will probably be paying attention to those areas and maybe others as well.  I'll be experimenting with different methods..  When printing alot of these objects, and using the supports for occurred to me that the printer can do some interesting things with the plastic..  I might look into creating a surface on the inside that inhibits reflections, etc..  I don't know yet, but I'll be looking into it..!

View all 45 project logs

Build instructions
  • 1

    Preliminary instructions are as follows:

    Acquire the hardware listed in the parts list.

  • 2

    Print the 3D Printable parts.

  • 3

    Either etch, buy, or have made the PCBs you choose to go with.

See all instructions


Jasmine wrote 12 days ago 1 point

Hello fl@C@, I've just checked your project and it meets the requirements, so it will be considered for the next round of The Hackaday Prize. Thanks & good luck.

Are you sure? [yes] / [no]

peter jansen wrote 17 days ago null point

Great project. I just read your new post about difficulty finding (and driving) linear CCD/CMOS sensors, and having to find out-of-production models on eBay, which makes it tricky for others to replicate the project. I've been looking for similar (but much smaller) sensors for a new version of the open mini embedded spectrometer for the open source science tricorder, and there look to be some good offerings from Hamamatsu. Some of them have high MOQs, so they're a little out of reach, but after talking with a rep it looks like there are a few in the ~$50 range with a MOQ of 1, and might be worth switching to. If you'd like example code for driving a linear cmos, there's some Arduino code if you google "Open Source Mini Spectrometer". Eagerly looking forward to seeing the first specra from your raman spectrometer!

Are you sure? [yes] / [no]

fl@C@ wrote 17 days ago null point

Thanks Peter! Yes, I want to avoid designing something with end of life parts for sure.. I looked at the Hamamatsu mini-spectrometers ( ) a little while ago... I think I was looking at the C12666MA.. Marvin commented on my Bio page about the resolution.. I didn't contact a sales rep, but $50 isn't too bad. Did the rep mention any distributors that sell them? I check Mouser, Digikey, Avnet, element14..not that any of them sell the Toshiba chip either...but the Toshiba TCD1304 does seems to still be in production.. Although I couldn't find the AP only the DG, which is the one I have and seems the only difference is the ceramic vs. plastic packaging.. I'll definately take a look at your code.. I'm not using an arduino, but I am sure it'll be helpful.. I'm hoping to have some spectra fairly soon! I hope to get it in before the August 20th deadline..!

Are you sure? [yes] / [no]

fl@C@ wrote 16 days ago null point

Just ran across this link again.. You can buy the TCD1304DG from Avnet Express for $22.49 each (moq=1)... They have over 6k in stock.. :)

Are you sure? [yes] / [no]

davedarko wrote 23 days ago null point

is the neopixel ring planned as a kind of "preview" output spectrum? would be kind of cool.

Are you sure? [yes] / [no]

fl@C@ wrote 23 days ago null point

The thought had crossed my mind... Mostly I had planned on using it as a sort of indicator sorta like the spinning wheel on a mac or the hourglass on windows, etc.. with different patterns for different functions... Maybe it can display the spectra as it's imaging to indicate it's working........ I will definitely keep that in mind.. :) Thanks for the skull BTW!

Are you sure? [yes] / [no]

fl@C@ wrote 23 days ago null point

Just as a note too... I had planned on hopefully having it display a preview graph on the 2.2" LCD as it processes the info as well..

Are you sure? [yes] / [no]

Zeke_D wrote a month ago null point

Found a university example that may be of use for reference.
Keep up the great work. :)

Are you sure? [yes] / [no]

fl@C@ wrote a month ago null point

That looks very useful.. Particularly the CCD driving stuff.. I'll read this over tonight..!
Thank you, much appreciated..!

Are you sure? [yes] / [no]

Matouš wrote 2 months ago null point

Wow. I love this. I would love even more to build this or help to make it better in any way! I have actually attempted to construct a much simpler version of this with an LPC1114FN28 and some Toshiba CCD chip, but it ended up occupying one breadboard and not working very well - I could see some reasonable output with an oscilloscope, but the ARM chip is probably a bit too slow for driving the CCD, reading from it and sending the data over serial to PC. Always only one of those three worked at one time :) Anyway I did not have any of these fancy mechanics and optics, just the bare CCD, so this is a great step for me. Thanks for this a lot, I will study on how to build upon your work after exams :)

Are you sure? [yes] / [no]

fl@C@ wrote 2 months ago null point

Thank you! I'm always open to input and suggestions..! Sounds like you have some practical experience with the CCDs.. I'm still looking into options in that dept., but I hope to dive into it very soon.. I've been eyeing the sony ILX511 and the Toshiba TCD1304AP recently.. I'm glad that any part of what I'm doing can help... that's my main goal with this! I really want to narrow it down to the cheapest and easiest way to build and source everything. =)

Are you sure? [yes] / [no]

Marvin wrote 2 months ago null point

The Edmund grating listed is the UV optimised version. The VIS version is the same price. Is that intentional and down to a different use geometry?

Are you sure? [yes] / [no]

fl@C@ wrote 2 months ago null point

Oops.. Thanks for pointing that out.. It wasn't intentional..and related to my trying to do too many things at once.. :)
It should be the 1800 Grooves/mm, VIS Holographic Grating, 12.5mm x 25mm Stock #43-221

Thanks for pointing that out!! I'll fix that right now..

Are you sure? [yes] / [no]

sammy wrote 3 months ago 1 point

the actual photos in the project log really shows your progress. Impressive build!

Are you sure? [yes] / [no]

nmz787 wrote 3 months ago null point

Have you actually tested the device yet, got spectra and compared them to a reference spectrum (like how Ben Krasnow does in his video on DIY Raman)? The LP filter seems pretty far from the laser line, and I've heard the coherence is hit-or-miss on cheap diode lasers. I'd love to hear your experience! Your bio says you're using a raspiCam, I found the digital noise on my raspiCam to be quite high, so high I've discarded it as a usable imager for science. Did I get a crap camera? It was really bad in low-light for me!

Are you sure? [yes] / [no]

fl@C@ wrote 3 months ago null point

I've tested the optics and a bit of crude code I wrote.. Yes, there's about a 28nm gap which isn't optimal..but without spending more money that's the best I could do when I purchased also kinda depends on what deals you can find on eBay at the time.. I might end up replacing mine, but for now these should do.. There was actually a pretty in-depth conversation a couple days ago in the bio hackaday did.... Several imaging options, etc. were covered... it might be worth a glance.. :) I'm not convinced I'm still heading in the raspiCam direction, and if I will probably include a peltier cooler...

Are you sure? [yes] / [no]

nmz787 wrote 3 months ago null point

Reposting this here from my post on your bio page "​The simplest 'spectrophotometer mount' I know of is a concave aberration-corrected flat-field grating. It combines the czerny-turner design's mirrors with the grating, and has some optical engineering done to change the shape so the spectrum is fairly linear on a flat sensor like a CCD or CMOS."

Also, cooling the sensor will only reduce dark noise, not shot noise (including readout noise or other digital/amplifier noise).

Are you sure? [yes] / [no]

fl@C@ wrote 3 months ago null point

I am currently using a Horiba Aberation Corrected Monochromator Grating Type 532 00 110 ... I think I got it for around $49 on eBay..and there was more up last time I looked..
There might be better options, but part of the point of this project is to make it as adaptable to what people can find used on eBay so they don't have to spend so much money on new optics..

Here's a grating list that includes mine..

Spectral Range (nm): 190-800
Dispersion (nm/mm): 8.0
Grooves Density (l/mm): 1200.00
Deviation D (deg): 61.60
A: 100.00
B: 94.00
Blank DIm: 32.32
F: 3.00
Blaze: 250.00
Order: 1.00
Reference: 532 00 110

Are you sure? [yes] / [no]

nmz787 wrote 3 months ago -1 point

A monochromator grating won't result in a linear spectrum being imaged onto the sensor array, so comparing to a reference spectrum might be made difficult, but hopefully you'll be able to visually make some correlations! Check this app note out:

Also section 6 and 7 here (repost from Richardson Gratings):

Are you sure? [yes] / [no]

fl@C@ wrote 3 months ago null point

There seem to be several examples of how to correct for the non-linear spectrum (mirrors, etc) which shouldn't be a problem.. I'm also investigating linear CCDs for imaging and the possibility of a couple other options that will become more relevant when I am at that stage of development..

I'm curious about your design and why you chose such an expensive grating for an opensource project? Does the propeller chip offer any advantage over the Cortex M3? I found this ( ), which seems to be an old kickstarter campaign...have you made significant progress since then, have you imaged any spectra with this device?

Are you sure? [yes] / [no]

nmz787 wrote 2 months ago null point

I chose the grating because the simplification of the optical system seemed well worth it, it is a grating that is recommended for analytical/Raman use which is one of my intended uses for the device. The Parallax Propeller is an 8-core processor, so it is really good at doing things in parallel while still talking to each other. The instruction set is smaller than a Cortex M3, for that kind of processor I'd recommend starting with an LPC Link V2 which contains a triple-core Cortex M4 and two M0s, for ~$20... with an 80 MSPS ADC on-board too!

Are you sure? [yes] / [no]

Jrsphoto wrote 3 months ago 1 point

Great project! Was looking for your email but couldn't find it. I have some links about image stacking in python for the Pi that you might be interested in. It should get you pointed in the right direction. Some of these use this python camera lib:

However, would use this one, its much more capable:
Docs are here:

Stacking examples in Python:

Hope it helps,


Are you sure? [yes] / [no]

fl@C@ wrote 2 months ago null point

Thank you! And thanks a ton for those links! Those will most certainly come in handy!

Are you sure? [yes] / [no]

Mike Szczys wrote 3 months ago 1 point

Wow, that last build log is mamoth, nice!

Thanks for entering this in The Hackaday Prize. As you continue to document the project don't forget to take into account the Basic Judging Criteria on this page:

In general though, fantastic work on sharing all the info. I love it!

Are you sure? [yes] / [no]

fl@C@ wrote 3 months ago null point

Thanks Mike!! This is a pretty big project, lots of parts! I'm trying to make this as open as I can! All the files are up on gitHub!

I'll be sure to do that... I've been working on some ways to demonstrate the 'connectedness'.. It will be ultimately controlled by a remote interface on a PC, and the data can be transferred to other devices to incorporate in whatever experiments you're running... I had actually planned on developing a protocol so this device can talk to others I've created, allowing them to communicate and make adjustments automatically based on the output from the spectrometer and a couple other devices/variables...

I'm also really working hard to make this as easy to customize, and reproduce as possible.. I want to use the easiest to find/readily available components I can find for the cheapest prices..

Keep an eye out for the youtube video! And thanks to you all at hackaday for the chance to share my work! =)

Are you sure? [yes] / [no]

jaromir.sukuba wrote 3 months ago 1 point

Nice project.
I really appreciate finding and using relatively cheap and available components from ebay.

Are you sure? [yes] / [no]

fl@C@ wrote 3 months ago null point

I totally agree.. the savings can be amazing...if you can deal with the wait times.. ;)

Are you sure? [yes] / [no]

fl@C@ wrote 3 months ago null point

I'm working as fast as I can to get all the information up here as soon as possible!!

Are you sure? [yes] / [no]