The heart of Scanbox is the custom designed card shown below, now in its third revision:
Here is a brief summary of the architecture.
The card communicates with the host PC through a USB line. A number of Matlab functions allows one to easily communicate with the card, sending scanning parameters, starting and stopping scanning, receiving TTL events, etc.
TTL events are time-stamped by the card by assigning them the (frame,line) pair at which they occurred. TTL lines can be programmed to detect rising/falling edges or both. These data are saved along with the entire state of the microscope (including position, gains of PMTs, laser wavelength, etc) in a Matlab file.
The fast shutter line is used to control a Uniblitz shutter that it is only open while scanning. This line can also be used as a TTL signal that signals when the microscope is in the middle of a scan.
The Pockels cell signal modulates the power of the laser during the line. This is generated by a look-up table in the hardware so it can be programed to any arbitrary shape. By default, the shape is such that keeps the mean image brightness uniform except at the very edges where the laser is completely blanked.
The trigger line acquisition line is sent to the AlazarTech 9440 to trigger the acquisition of one line. The PMTs power are gain signals are provided directly from the card. The same applies to the CRS resonant mirror controller and the slow galvanometer controller.
A mirror moved by a Firgelli linear actuator is controlled via a PWM signal available form the card. An I2C interface is provided to communicate with other sensors and an extension header provides 34 additional lines of digital or analog I/O that can be accessed by the PSoC chip.
Of course, the amazing PSoC 5 chip is in charge of everything.
To learn more about the microscope optics and its capabilities go to this page.