Page 1 of 1

Scanning device feasibility & poss subcon @ commercial rates

Posted: Fri May 13, 2016 3:05 pm
by MrG
I am considering RP to do the following:

1) Digitise two analogue channels at 20MHz
2) Store data from multiple scans as 3048 scans of 2540 points (15MBytes)
3) Control a motor (probably stepper) to advance the scan position between each scan.
4) Dump the data buffer to PC in a few seconds over Ethernet or WiFI.
5) Handle limit switches, motor homing and some basic digital i/o
6) Maybe implement non-linear sampling rate so that sinusoidal scan produces evenly spaced samples.
7) Configure a scanning device over SPI bus
8) Synchronise analogue capture to digital trigger pulse

There will be some dwell between scans.

I would be grateful for comments on feasibility of doing this on RP. Is it likely to require FPGA programming?

If anyone has relevant experience and can offer their expertise please get in touch.

Re: Scanning device feasibility & poss subcon @ commercial r

Posted: Fri May 13, 2016 4:08 pm
by pavel
Hi,

All points (maybe except non-linear sampling rate) are quite easily feasible with Red Pitaya. The points 1 and 8 most probably require the FPGA programming.

I have a somewhat similar project that implements a galvanometer controller for an optical scanner with galvanometers connected to OUT1 and OUT2:
http://pavel-demin.github.io/red-pitaya-notes/scanner/

BTW, I found it easier to generate all the trigger pulses with Red Pitaya than to capture external trigger pulses.

Cheers,

Pavel

Re: Scanning device feasibility & poss subcon @ commercial r

Posted: Fri May 13, 2016 4:31 pm
by MrG
Thanks for the reply. My application is quite similar to yours, although I have a resonant scanning mirror that is not suitable for driving from analogue out.

Can you highlight particular difficulties I might face trying to sync to a trigger pulse?

UN to declRe: Scanning device feasibility & poss subcon @ co

Posted: Sat May 14, 2016 10:09 pm
by MrG
I see int rp_AcqSetTriggerSrc ( rp_acq_trig_src_t source ) seems to allow for triggering on a DIO:

rp_AcqSetTriggerSrc ( RP_TRIG_SRC_EXT_PE)

That looks like good place to start.