<azonenberg_work>
Building a profilometer... doable?
<azonenberg_work>
Thinking of piezo scanning
<azonenberg_work>
Ooh, interesting
<azonenberg_work>
I plan to go and make a serious home SEM at some point
<azonenberg_work>
And wow, these guys made homebrew FESEMs?
<azonenberg_work>
I think i'd prefer a simple tungsten filament source
<azonenberg_work>
Also, very very interesting
<azonenberg_work>
Looks like FIBs are possible to homebrew o_O
<azonenberg_work>
now THAT would be awesome
<azonenberg_work>
Do imaging and alignment at low mag
<azonenberg_work>
low voltage*
<azonenberg_work>
then bump up the beam current to do cutting
<azonenberg_work>
imagine patterning metal layers with that :)
<bart416>
I like the idea of hijacking a vidicon tube to do it
<azonenberg_work>
Lol
<azonenberg_work>
My design will be using a homebrew tungsten source and an everhart-thornley detector
<azonenberg_work>
run through a fast ADC, an FPGA or MCU to do USB, then stream to a PC
<bart416>
For measurement instruments you really need fpgas sadly :(
<bart416>
I tried using microcontrollers
<bart416>
The only thing that gets the job done is something like an arm cortex a8
<azonenberg_work>
If not an FPGA i'd use a PIC32
<azonenberg_work>
80 mhz fully pipelined mips32
<nathan7>
Hi azo
<nathan7>
azonenberg_work*
<lekernel>
what's wrong with fpga's?
<bart416>
meh, not fast enough
<bart416>
80 MHz is too slow
<bart416>
To do DSP on a signal sampled at roughly 100 MSa/s (what you want for this sort of thing at the very least) you need at least 1 GHz to process it and throw it somewhere
<azonenberg_work>
lekernel: Nothing wrong with them, except i dont have it yet
<azonenberg_work>
bart416: For slow SEM scanning, actually, i was envisioning long integration times
<azonenberg_work>
so maybe tens to hundreds of KHz
<bart416>
You want over sampling to avoid noise
<bart416>
Serious over sampling
<bart416>
If you have enough data you can use a good algorithm to remove or at least reduce the noise
<bart416>
If you only have the required samples it becomes harder
<lekernel>
whoa, this CRT-based SEM is awesome!!
<bart416>
Even averaging 10 images is better than anything else
<azonenberg_work>
bart416: I actually wanted to use a long sampling time on the ADC as a first-level filter
<azonenberg_work>
And then do a 5-10 sample line average
<bart416>
Increasing sample time often reduces precision of the ADC
<azonenberg_work>
I would be using a 10-bit 1 MHz one if i used the PIC32
<bart416>
Keep in mind the S/H mechanism is only reliable for a small timeframe
<bart416>
The less you relly on S/H the better
<azonenberg_work>
Buffer a single scanline in the PIC
<azonenberg_work>
Average five or ten of them
<azonenberg_work>
then DMA to the USB controller while repeating the process
<azonenberg_work>
Assuming i used 1 MHz, 1920 samples wide, i'd need 3840 bytes of temp storage
<azonenberg_work>
260 scanlines per second
<azonenberg_work>
times 1080 is 4.15 seconds per frame
<bart416>
Your system also does not allow you to reduce artifacts over several scanlines
<azonenberg_work>
I've gotten good results with line averaging on real SEMs
<azonenberg_work>
I could do lower resolution scanning and upsample initially for aiming and focusing, then high-res capture
<bart416>
anyway 'nite
<azonenberg_work>
Normally on a real SEM i do several lines averaged for maybe 30-60 seconds per frame when doing an image for analysis
<azonenberg_work>
i think 10 lines average, which actually puts it around the same sampling rate as i would be using
<azonenberg_work>
i.e. 1 mhz horizontal scan frequency
<bart416>
Yeah, but that's fine equipment with good noise prevention methods put in place
<bart416>
Good luck doing that at home
<azonenberg_work>
So i'll get a noisier image
<bart416>
The 50 or 60 Hz noise alone will already be considerable
<azonenberg_work>
but i dont need *higher* sampling frequencies than them
<azonenberg_work>
And yes, it will be
<azonenberg_work>
There are a couple of options for that
<azonenberg_work>
One is to try to eliminate it by sampling only during peaks
<azonenberg_work>
*zero crossings
<azonenberg_work>
phase lock onto the AC signal and turn off the sampling during the, say, 1/2 of the period that the signal is strong
<azonenberg_work>
There are several implementations possible, easiest is probably to run the AC through a step-down transformer (possibly the same one that my PSU runs off) and sample that
<bart416>
anyway 'nite
<azonenberg_work>
run into a comparator and check if abs(x) is above some K