Hi. I'm about to order a cRIO controller and I'm a bit hesitant about which one to choose (this would be my first cRIO system, so I don't have enough experience with it).
Basically, the task is to control the imaging camera(s) and light sources and keep them in sync with each other.
If I understand the documentation correctly, the process should be as follows:
- User prepares the imaging sequence on the host PC.
- This sequence is sent to the cRIO via Network Stream (to the non-deterministic helper loop).
- The imaging sequence is fed into the deterministic loop via the RT FIFO.
- Deterministic loop executes commands one-by-one from the FIFO buffer.
- Sequence executes until its over or the "Stop" command is received.
The sequence itself is very simple, it is pretty much a state machine, e.g.:
- Wait for "Camera idle" signal on digital input (NI 9401 or NI 9402).
- Set Light 1 brightness with the analog signal (NI 9263) and switch the light 1 on with help of TTL signal (also NI 9401 or NI 9402).
- Wait for "Light 1 ready" on the digital input (the lights have a TTL feedback signal because it takes some time to stabilise).
- Activate camera acquisition via TTL (dark magenta color) and send the synchronisation signal to external equipment via TTL output.
- Stop the camera acquisition (TTL output to 0) and wait until camera frame read is completed (light magenta color), turn sync signal off.
- Wait for "Camera idle" signal, switch off the Light 1.
- Repeat everything for the Light 2.
Repeat the whole sequence N times. The example of the sequence is on the picture below.

Because of the speed and jitter requirements, I plan to implement everything on the FPGA side (some time ago I was able to borrow and test another cRIO device with the Real-Time engine, and at least the digital part worked, but was too slow; also there were no suitable analogue modules).
With all this information in mind, my questions are:
- As the type of control loop I will be using is very basic, and will remain very basic even if there are more cameras and/or lights (3-5) but pretty much no data processing, is it OK to use the simplest NI9053? If not, what are the other options/suggestions?
- Are there any caveats regarding the analogue outputs or the module I have chosen (NI 9263)?
- Is there anything terribly wrong with the above plan?
Thank you for any feedback or information.
Edit: fixed mistake on the picture.