Here it is... 1st raman... Not much to look at, and it's on the scope.. But, none the less it is a milestone.
I've spent the past week making leaps in getting the sensitivity required to read this signal.. The return is incredibly weak.. As you can see, there's still some distance to go.
To obtain this spectra (of my hand near the objective), and save my sanity... I have the optics sitting on my bench outside the case where I can get my test probes and everything connected without frustration..
I had to completely re-write the code for the imagingBoard to do this as well.. Having never touched a CCD outside whatever cameras and phones I've owned... Driving one from a microcontroller is apparently an art...one that took some time to even understand how the timing really works sine the toshiba documentation is not terribly informative.. I'll do a nice write up on what I've learned about driving these things soon.. For now, let's just say that easy isn't how I'd describe it. I resorted to using the mBed RTOS to get the stm32 to read, capture and send data... I'm still playing around with the advantages/disadvantages to driving the clocks with PWM, vs using busOut and so on.. But for now...This is where it lies..
I'm very happy with where this is going... With my recent success in getting the software off the ground, and posting the spectra on plot.ly....I really think that makes collaborative 'crowd-science' possible.. There, I think I termed a new phrase while I'm at it.. :)
I should also mention, the firmware (which is still in development) is posted to the gitHub... So, if you're interested in where that's headed... You can take a look.!
"No, really... Just look right in there....." Seriously.....here's good reason to wear eye protection while working with this.....this beam is not even half the original power...
This thing gives new meaning for me to the term Optical Radiation..... ;) Mind you, this is with the splitter in place...
Maybe not contest winning progress....but it is progress and this is a huge project.. I've kind of decided to not rush and just move at the right pace to do things right here... I really want to make this project useful for people, winning a prize is great...but I also want to open doors for education and amateur researchers..
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Are you sure? yes | no
In my experience with blocking code and ISRs, it does more than throw off the timing..it locks the mcu.. Which is why I was experimenting with RTOS.. You can make blocking calls in a thread without nailing the processor... The problem with my approach in the examples I think is more how I handled sampling the ADC and driving the clocks.. In my original attempt, I synchronized the PWM signals using an interrupt...the tolerances were close enough that it works.. I have a lot of things to try still.. I like using the busout instead of PWM, so I might try using 'signal flags' to indicate to the other thread when to act.. Seems that should be faster than an interrupt.. Maybe a good way to synchronize...set up three threads, SH-ICG-MASTER and use signals between them to indicate the state.. I doubt that'd be fast enough though... one thing I do know.......getting 0.8mHZ or 1mHz from busout or bitbanging the ports doesn't get you there...not without addressing the registers directly....PWM through the mBed libraries won't even get you that much...the fastest PWM you can generate using them is 500kHz.. The FastPWM library seems to do 2.4mHZ on the 401RE chip which is more than enough though,...unfortunately that is where my troubles began...I think it's a bit of a cpu hog..
The thought has occurred to me that it might be worth a look at scrapping the mBed libraries and take a look at ST Micro's environment... or the remote possibility of moving to an FPGA for the imagingBoard...or maybe just upgrading to the 100mHz 411 instead of the 84mHZ 401 since most of my recent troubles have been memory (RTOS and storing all 3648 element 16bit sample) and speed (maintaining the duty cycle while pushing data out the serial port)..
Ultimately, that's part of the fun and learning....which is what this is all about..! I will just be happy next week to get more than 3 hours of sleep per day again after how ever many months now.. I'm not afraid to say, there were a few weeks when I didn't sleep for 3 or more days trying to meet these deadlines to get even this far... =)
Are you sure? yes | no
Are you sure? yes | no
You can see a little of what I've got going right now here http://developer.mbed.org/users/flatcat/code/ramanSpectrometer_imagingBoard_v05/file/75c8a8b6b872/main.cpp
And the first FastPWM attempt here... http://developer.mbed.org/users/flatcat/code/imagingBoard_masterClockDrivenTest3/file/ba5ba1fe2798/main.cpp
I'm not familiar with the Hamamatsu sensor, but the datasheet looks a lot more informative than the toshiba chip.. ( http://www.spectronicdevices.com/pdf/TCD1304AP.pdf -- page 6) has three clock signals that have to be coordinated...and what the datasheet doesn't say it that the pixels are output every 4th cycle of the master after the rise of ICG and fall of SH... and the specific timing between ICG falling and SH rising have a tolerance.. I need to get a better understanding of why an ADC read sometimes causes the cpu to lock before I can approach a lot of the smaller details though.. I think what I need most is some time away from the screen to let my brain recover..
Are you sure? yes | no