How to build a DIY Raspberry Pi Spectrometer using a Picamera and Spectroscope.
Ғылым және технология
Episode 20
#raspberrypi
#spectrometer
Code at the end of the Description! Check out my other videos: / leslaboratory
Please don't forget to like,subscribe and comment for more great content!
If you found this content useful, and would like to support this Channel, please consider supporting this work on Patreon: / leslaboratory
Or donate directly: paypal.me/leslaboratory
Alternatively, please share this content on your social media platforms, it really helps me out!
In this video I demonstrate a home-made Raspberry Pi Spectrometer for measuring the wavelength of light! If you already have a Raspberry Pi, this useful tool can be built for under 100 bucks!
This uses readily available components and easy to use Python software I have written specially for this application.
All code for this video and the bill of materials, as well as additional information is available at my GitHub:
github.com/leswright1977/PySp...
Пікірлер: 385
Exceptionally clear presentation of a cool project. This is the kind of useful and informative high caliber project you would see in the Amateur Scientist section of Scientific American back in the mid 50's to mid 70's. The content makes this project accessible to people with a wide range of capabilities and experience levels. I cold easily see a middle school or high school student build this as a tool to use in support of a variety of Science Fair projects. I think it will also work well for many of us DIY experiments at home. Providing the source code and a quick tutorial on building the PY project is also very helpful to those who are just starting out or others that want to brush up their skill sets. I hope to see more like this.
@LesLaboratory
3 жыл бұрын
Awesome! Thanks for your kind words! I used to read the Amateur Scientist over and over as a kid!
Amazing project! This video earned you a new subscriber! I really appreciate the thought process behind this. Making scientific instruments more affordable by using readily available parts is truly brilliant. This personifies the spirit of open source in my book!
@LesLaboratory
3 жыл бұрын
Thanks very much! Totally! Knowledge should be free!
Thanks, mate. Definitely gonna make this to analyze the light for my plants
Very nice! I built a spectrometer inside a CD-ROM drive case using a laptop USB web cam pulled from the screen and a cheap 1000 lines/mm grating. I've also just seen that you can get 13500 lines/mm gratings so I'll be upgrading it and adding the Raspberry Pi instead of having to use my working laptop. Cheers Les, great stuff as always!!
@LesLaboratory
3 жыл бұрын
Awesome, thanks! Yep this should work with any physical hardware setup just fine. Happy hacking!
Simply Awesome!
Great project, thanks for sharing!!
Nice! Just a suggestion: instead of reading the amplitudes from a single line of the camera image, maybe you should integrate over the image. 100 lines -> 10 x amplitude resolution, in theory. Either requires a good orientation of the spectroscope or an algorithm finding the tilt (not too hard).
@LesLaboratory
3 жыл бұрын
Yep for sure. A much earlier version did this, but I found it too slow. My particular need was speed (pulsed Laser), but if you were doing astronomical observations then integrating is probably a good idea!
@hamjudo
3 жыл бұрын
A little tilt allows OpenCV to achieve subpixel resolution when it is calculating the location of straight line intersections in an image. Tilt will help here too, if the system is limited by the optical sensor. Which is to say that fancy math won't help if the optics move around when the cat jumps on the table.
Superb build, hardware and software, love this.
@LesLaboratory
25 күн бұрын
Thanks!
A nice update to a cool project, Thanks for sharing.
@LesLaboratory
3 жыл бұрын
You are welcome!
Looks really nice!
Awesome Project and very nice presentation!
@LesLaboratory
3 жыл бұрын
Thanks! Hope you guys find it useful!
Wow. This is the coolest video I have seen all day!
@LesLaboratory
3 жыл бұрын
Thanks! Please like and share!
What a great project!
This is fantastic and exactly what I needed... you now have another subscriber! Thanks Les!
@LesLaboratory
3 жыл бұрын
Awesome, thanks! More to come!
Great project!
Great project. Congrats !
Spectacular!
@maxf8549
3 жыл бұрын
Don't you mean SpectRacular? :)
this is fantastic!
Just thanks. Made the world better - kudos
@LesLaboratory
3 жыл бұрын
Awesome! You are welcome!
Great Work! Very nice project!.
Thank you so much. This is wonderful.
@LesLaboratory
3 жыл бұрын
You're very welcome!
Congrats on 1k subscribers! This is a really cool project, very useful. Would be cool to make a briefcase style case with an lcd and put a fiber connector or something on the input.
@LesLaboratory
3 жыл бұрын
Thanks Justin! For sure. I deliberately made the GUI small enough that is should fit on most decent LCD modules you can get for the Pi (clicking the graph on a touchscreen would be a pain, but there are ways around that!). A Desktop instrument would be pretty sweet!
What a great project 👍👍👍
@LesLaboratory
3 жыл бұрын
Thanks 👍
Ahhhh shit, here we go again ... *opens project list* .... *adds another point* Nice project.
@3harath
3 жыл бұрын
bro, can you please share your project list with us?
Fantastic stuff!
@LesLaboratory
3 жыл бұрын
Thanks!
Very nice. Lotsa uses for it.
@LesLaboratory
3 жыл бұрын
Great! Hope you guys enjoy it!
Super nice project!
@LesLaboratory
3 жыл бұрын
Thank you!
Great work!
@LesLaboratory
3 жыл бұрын
Thanks!
That's pretty impressive subbed
Thanks Les, great project. Installed on RPi 3B+ and it runs ok ...
@LesLaboratory
2 жыл бұрын
Great!
I think this project is superior!
I love tat the rPi has an RGB cooler, with heatpipes and all. awesome project.
@LesLaboratory
3 жыл бұрын
For sure! There's a huge gap between Green and Red that Laser diode manufacturers have been trying to figure out for years.
@appabison8694
3 жыл бұрын
Extremely important to obtain maximum fps in the program interface!!!
@LesLaboratory
3 жыл бұрын
@@appabison8694 indeed. I tried MATLAB in a really early version, but it was far too slow.
If the ability to take the difference between two spectra is added, it will be useful to characterize optical filters, color film, and the reflective properties of materials.
dude, this is awesome!!
@LesLaboratory
3 жыл бұрын
I'm glad you like it!
superb. thank you.
This is really cool. You know, one of the ways chemists use spectrophotometry is to estimate the concentration of a given compound in a solution, but doing that requires making a series of standard solutions. Particularly IR-spectrometry is uesd for identifying organic compounds, but doing that requires a library of known transmission spectra. Either way, you have a very powerful tool right there.
This is great!
@LesLaboratory
3 жыл бұрын
Glad you like it!
nice work
I love how dominant is that elusive, pricey 608nm, makes me hope for that WL to become available as direct diode in a near future
@LesLaboratory
3 жыл бұрын
That would be cool, and yellow as well!
@aps8446
3 жыл бұрын
Shrek green would be a good addition too
OMG NICE!
I really enjoyed this video. Thank you for sharing! Btw, on the web you can find a lot of projects using webcams as spectrometers, most of them where from 2012-2015.
@LesLaboratory
3 жыл бұрын
Great! Yep, for sure, but I thought it would be cool do do it on the Pi with Open Source Software.
Brilliant
Badass!
This is very interesting Project. I think if we calibrate it with saturation absorption spectroscopy technique this could become a commercial level spectrometer
@texasfossilguy
2 жыл бұрын
have you done any work on this?
Thanks, Les
Great video...👍
4:23 Dog in the Background likes the beautiful Spectrum...🐶🐕🐕 me2 Nice Video 👍Thx
@LesLaboratory
3 жыл бұрын
:-D all creatures love Spectra :-)
@googlefuuplayad9055
3 жыл бұрын
@@LesLaboratory oh Yes..everyone is stunned by such a miraculous appearance... Have a nice week, keep going with this nice videos and Stay Safe! 👍 Greetz from Germany Ps: give me that mnl 100...instantly!!! 😁😋
Very interesting - thanks.
@LesLaboratory
3 жыл бұрын
Glad you enjoyed it!
I'm so glad I found this channel. Criminally under-subscribed but it won't be for long
@LesLaboratory
2 жыл бұрын
Thanks, it is much appreciated. Yeah, the KZread algorithm doesn't seem to be trying to push my content. Meh, patience and time....
Amazing!
@LesLaboratory
3 жыл бұрын
Thanks!
Great!
Good on KZread bring it out or underrated people
Very impressive, well thought out presentation and process. I so want to make this! Thank you so much! Subscribed, with the bell :)
@LesLaboratory
3 жыл бұрын
Awesome thank you! Yes another use for the Pi! :-t
Looking forward to the software fix! I was looking for something like this to test/calibrate my custom grow lights, this is really nice.
@LesLaboratory
Жыл бұрын
Version 3.2 is up on GitHub, which temporarily resolves the Bullseye issues!
@DDryTaste
Жыл бұрын
@@LesLaboratory epic, thanks!
Nice! I was just looking at the adafruit AS7341 spectrometer board earlier and this came up
@bigsteve6729
3 жыл бұрын
Just get the break out 😂
@bigsteve6729
3 жыл бұрын
@@LungsMcGee haha
Nice
Cool I have built a Raspi Terminal with 7" touch screen, that is beside my light microscope... with Raspi cam mounted to the third ocular on the microscope. Now if I added a UV LED illuminator I could measure wavelength shifts etc of specimens !
Very nice gui 👌
@LesLaboratory
3 жыл бұрын
Thanks 😁
Great project! I think I will build one and do some tests to find a suitable light source to make it a transmission spectrometer. Let's see if I can convince some chemistry teachers at school to do experiments on spectroscopy and photometry.
@LesLaboratory
3 жыл бұрын
Thanks! I am sure one of them will be interested in it for sure. Would make a great project!
Thanks!
@LesLaboratory
Жыл бұрын
Thanks so much!
Very cool indeed, thanks for sharing, liked and subbed :)
@LesLaboratory
3 жыл бұрын
You are welcome!
Amazing!! Back in school I didn't end up taking a real optics class. Any recommendations for books or online resources for optics? If not for this video I wouldn't know what lenses to put between the spectroscope and the camera, or if I wanted to project a LCD onto a wall. I really need to know more about this.
Cool :)
Holy shit man… It was just a suggestion 😂 When I left those comments and suggestions I didn’t think you would drop everything and do this as your next video! But I’m not complaining because this is exactly what I’ve been looking for! I’m so happy you made this! That’s the reason I left those comments because I knew you would design this thing perfectly and I’ve been ready for a good and polished DIY spectrometer design for a long time!
@LesLaboratory
3 жыл бұрын
LOL chill! It was already in the pipeline for some time as I need a tool to measure the tuning curves of the homemade Dye Laser (upcoming video ;-) ) Besides, although there is plenty of x86 Windows software kicking about, nobody seemed to have written software to do this on the Pi, so I figured, why not, it seemed like a good idea! Also Raspberry Pi's are just awesome. You are welcome! It seems pretty popular on here too.
@EvertvanIngen
3 жыл бұрын
😂😂😂😂😂😂 this made my day
epic cool
Nice! can you add calibration for relative amplitude? for example with a black body source.
Very cool project. DId you consider the smaller pocket spectroscope and have you done any flame tests. One of my interests is identification/verification of 3D printing filament
@LesLaboratory
3 жыл бұрын
The one I have was gifted to me, so I worked with what I had. The pocket version should work, with some experimentation. I have not done a flame test, but now it is added to my to-do list! ;-)
Interesting
evolving!
Very nice. I am working on getting an AS7341 specto-sensor working on a telescope. It has ok wavelength coverage for a cheap sensor. I have made a 3d printed mount for it that resembles an eyepiece camera. It keeps the sensor's entrance in the center of the optical train. Shooting for prime-focus but may introduce an ED 2x Barlow to give larger star images. I have an ESP D1 Mini reading the sensor and sending the data via MQTT for processing. I will be looking into getting a plot done soon after I get the optics/focusing sorted. Looking at making a focus mask to use in place of the sensor in the same type of mount.
@WilliamDye-willdye
3 жыл бұрын
Interesting project. Just curious, do you have a specific astronomy goal such as identifying certain types of objects by their spectra?
@UReasonIt
3 жыл бұрын
@@WilliamDye-willdye Long term, I'm looking to have a small on-the-scope sensor that can be used for quick spectral analyses. Short term, it's to see if I can get a working system for such data collection just on the scope. The AS7341 is the first device I thought would be a good one worth testing due to its bandwidth and cost. I did us an RGB sensor a few years back but never moved past an initial test due to the limitation on the sensor. I know this would not replace a real Astro-spectra setup, but it has been fun and the sensors are getting better.
@LesLaboratory
3 жыл бұрын
All sounds pretty cool! :-)
Kinda of cool... You could use it to measure color space and calculate CIELAB ( L*a*b*)... Sort out that sock drawer... Check a paint job... Color formulation... Quality control (if there is such a thing)... Cheers
Cool!! Have you thought about removing the UV- and IR-cutoff filter from the Pi cam?
@haroldemmers3678
3 жыл бұрын
I had the same question --> can we upvote this question ? :)
@canwenot573
3 жыл бұрын
@@haroldemmers3678 I concur. It is a very solid question and I'm now curious about the answer. Perhaps he considered removing them but decided against it for some reason, and that reason itself might make for a good followup video.
@jurgislll
3 жыл бұрын
Bayer filter also might affect the spectrum, going with black and white sensor is doable with calibration. Hardest part in this DIY setup is intensity calibration since sensors might pick up different spectrums with different intensity.
@LesLaboratory
3 жыл бұрын
All good questions! I did not remove the IR filter, as the scope I am using was designed for visible wavelengths only, and my interest at the moment is the visible spectrum. Internally the spectroscope is a transmission Diffraction grating, plus a collimating lens and a prism (for a linear design) this is too much glass and plastic film for UV to make it though and would significantly attenuate IR. If you build your own spectroscope frontend, you could do whatever you like. For this you would need a reflective Diffraction grating to deal with IR and UV, and quartz optics as well. Yes, Picams have a Bayer filter. Jon Smirl on GitHub suggested removing this for UV work, and cited a paper here: www.mdpi.com/1424-8220/16/10/1649/pdf but it is not for the faint of heart! Also yes, you would then have to characterize the response curve for the Picam sensor, minus the Bayer filter. On the plus side, you would have a really high resolution B&W Picam if you sample the original RGB values as individual pixels. That, in and of itself might be useful to the Astronomers.
@iliahborg7079
3 жыл бұрын
Consider removing the CFA or using a monochrome sensor ;)
Thanks for making it with items that are available, the classic "I bought it off Ebay" is the most annoying thing to say.
@LesLaboratory
2 жыл бұрын
You are welcome, yeah, I hate unobtanium for builds like this, sometimes it's a necessity, but if it can be done with off the shelf parts, then all the better!
I'd love to see if you can actually find out the emission and absorption spectrum of actual stars, if you used a good telescope
Pipe that spectrums to a tensorflow network and see if you can make it to recognize diffrent waveforms.
@LesLaboratory
3 жыл бұрын
That could make a pretty cool project!
@brianwesley28
3 жыл бұрын
EXACTLY what I have in mind. Material identification with a Jetson Nano, if possible. If not, another SBC. Same idea. That's exactly why I'm here.
Aaaah, man, why? ... Just ordered mine ... Great project. Thank you.
@LesLaboratory
3 жыл бұрын
You are welcome!
Fantastic video! I can’t wait to try this myself. Is the website you listed on the GitHub page the place you bought your spectroscope? And how bright of a light source do you need to get a reading? For example would it be sensitive enough get a reading off something like a glowstick? or maybe a bright LCD screen?
@LesLaboratory
3 жыл бұрын
Thanks! The spectroscope was gifted to me, but that is the manufacturers site for this model. There are plenty of similar ones about, or you could make your own. You can easily get spectra from an LCD monitor. I would imagine you should be able to for a glowstick as well in ideal circumstances. If I can get time on my side, I might add things like brightness, contrast etc, but I would need to rewrite the interface.
Really cool project. Possibly uneducated question, would you achieve greater resolution by tilting the spectrum scope relative to the camera? My thinking is that if your sampling line covers from the bottom left of the spectrum to the top right of the spectrum you’d have more pixels to sample?
Wow ! Please, any more info on software would be amazing, I'm blown away by this, if ever I needed an excuse to find out what RP is all about its this ! Wow ....cheers.
@LesLaboratory
3 жыл бұрын
Thanks! I will do a video on the inner workings of the program when I get some time.
Great video! For those of us who are super-cheap, I wonder if it's possible to make a version that uses light reflected off of CD's or DVD's instead of the spectroscope. Maybe the software could transform the image as needed to reconcile between the CD and a real spectroscope.
@LesLaboratory
3 жыл бұрын
Thanks! It should work with any home made spectroscope. So long as you can fit the spectrum in the preview Window. RPi4 is best for this as that is what it was deigned for.
Excellent video. I was wondering how I can utilize the spectrum data. Since I can capture some screen shot of the spectrum, how it is possible to analyze the whole spectrum. For example, I want to see the color spectrum of a colorful shirt, how can understand what different colors are present in the shirt. Moreover, while we take spectrum of a white thing, its a combination of all color and show all different spectrum. How can we understand if the color is white or brown.
Would see additional value in integrating detector response curve... currently it is only calibrated for wavelength, not intensity. I agree, that is much more difficult to achieve though.
@TheMAggi99
3 жыл бұрын
Good idea. For this, one will need the quantum efficency curve from the camera. But I m not sure the manufacturer has measured it for such a cheap camera. Also, the camera uses a bayer matrix, which means there are red, green and blue pixels. These have to be callibrated individually. So i guess it is easier to look for a monochrome sensor with a quantum efficency curve available.
@SwissPGO
3 жыл бұрын
@@TheMAggi99 Definitely going black and white sensor is a good option. In my young days when still doing detector work, I removed the glass protective plates in front of the ccd array: you can buy 50 of them on the cheap (and break several off them while improving your methods), compared to only one equipped with a quarz window. I was dealing with soft x-rays lasers, and these tend to actually increase the dark current of your pixels over time, burning the camera chip, even at low average (but high peak) intensity.
Awesome! What would be needed to make a spectrometer to measure something like 1200-1700nm spectrum?
I wonder if this can be used for leaf spectral analysis or other agricultural use. Can the software be run in other os with python? Thanks!
Neat project. You got my attention with spectrometer, I've always wanted to use a metal spectrometer that can identify alloy percentages in metals. I think they use an x-ray as the most common type , could something like that be modified to use your design?
@LesLaboratory
3 жыл бұрын
What you are talking about is XRF (X-ray Fluorescence), which is a whole different ballgame, but fundamentally similar, it just uses X-rays instead, and a suitable Scintillator instead f a diffraction grating to detect the different photon energies. It would be possible to identify a metal with an optical spectrometer by vaporising it. This can be done with a High power Laser. Mars Curiosity does that: mars.nasa.gov/msl/spacecraft/instruments/chemcam/
Awesome work! Could you suggest other suitable usb camera fore the project ?
@LesLaboratory
3 жыл бұрын
It 'should' work with any USB cam that the Linux driver supports. Of course there is variation in quality of cameras. The beauty of Picams though, is that there isn't much variation between models, even from different suppliers.
Woow inastan subed.
this is fantastic, and now I'm wondering if it may be useful for identifying steel alloys from their incandescence. I've got a couple milk crates of Mystery Steel and it'd be nice not to have to guess. ;)
@LesLaboratory
Жыл бұрын
The steel would have to be heated beyond incandescence I think. Have a google at Laser Induced Breakdown Spectroscopy (LIBS)
It is a big deal man! Now I know what to do at this sunday.
@LesLaboratory
3 жыл бұрын
Awesome! Have fun with it!
Pin hole camera to look at the sun? Might be useful for calibration.
@LesLaboratory
3 жыл бұрын
Either that or an ND filter and you can maybe calibrate from prominent Fraunhofer lines perhaps. Relative intensity is a different story.
How high in frequency can your system detect? can it detect far infrared? or is this more dependent on the camera being used? Great work!
@LesLaboratory
2 жыл бұрын
It can go a little ways into the UV ~380nm to a little ways into the IR ~810, but the spectroscope was designed for visible light. You could build a spectroscope with an extended range though.
Have you played around with the Pi NoIR camera? Just a Pi camera without the IR filter -- seems like it would be useful for spectroscopy.
@LesLaboratory
3 жыл бұрын
I have tried one and can see a little way into the IR, but I haven't fully tested it yet. I have another NoIR cam on order at the moment, as I sacrificed the one I have for an upcoming video...
Great video. I have a question, I need to measure uv wavength from 320 up to 420 nm. Any suggestions? Is there any filter for the camera? Or a specific camera for uv?
@LesLaboratory
3 жыл бұрын
jonsmirl on github sent me this: www.mdpi.com/1424-8220/16/10/1649/pdf Worth a look!
I prefer more of a home-built aesthetic and price ;) ... I think a combination of diodegonewild's hardware and your software would make a great pairing and I was just thinking about hacking yours to use an ordinary webcam on some other Linux box... and then you said you've done that already.... superb!!! I've also got a load of diffraction and diffusion stuff out of old flat-screen TVs... I wonder if I could get any results out of any of that........
I wonder. If you pointt it outside. Wouldn't there be more a lot more blue on the spectrum? Thanks for a Fantastic device 😃
@LesLaboratory
2 жыл бұрын
Thanks! Not as much blue as you might expect. The sky only appears blue because of Rayleigh Scattering.
Hi. I wonder if you could stretch the camera-image to match the graph. My brain was trying to match the lines to the peaks while watching and that would make it easier. very cool.
@LesLaboratory
2 жыл бұрын
It could be done, and it is open source, so you can modify it if you like. The reason it was not done is speed, large live images in OpenCV are a bit hungry for CPU and RAM, so I wanted it lean. I suppose I could remove a strip of video, say 20px high and 640 wide, and display that under the graph, that could look pretty cool!
what do you plan to do with this? It seems limiting that it's only as accurate as the light sources you have on hand
Can this be used for display calibration with something like ArgyllCMS? I guess a custom driver would have to be written, but it's the hardware adequate for this purpose?
@LesLaboratory
3 жыл бұрын
I have never used that software, so I am not sure whether this would be suitable. I think there are already miniature sensors that can do that at a fraction of the cost.
it would be great if one could connect the pi zero 2 serial to the raspberry pi 4b for data traffic
Greetings from a HAD reader & new sub. I only recently became aware that it was even possible to build lasers at home -- my wife is concerned. 😁 Cool you were able to get that spectrum on a regular RPi camera. Would the NoIR cam variant help with the sensitivity at the extremes of the spectrum, maybe?
@LesLaboratory
3 жыл бұрын
Yes, the NoIR cam would be more sensitive. The Spectroscope I am using is designed for visible wavelengths though. The deepest into the IR I have seen is 760nm. To get a larger range, you would have to build the spectroscope frontend. UV is particularly problematic. Most glass types, and all plastic will absorb it. You would have to use Fused Silica optics for UV work, which costs $$$! IR should be no problem though.
@McTroyd
3 жыл бұрын
@@LesLaboratory Ahh yes, of course. You're working in UV... no idea how I got IR in my head. That explains the effort behind the dye lasers.