The ddpi-mk3 controller project is a combination of Arduino Software and a PCB shield I designed to ensure a robust system to control the DDPI-mk3 stage. It does not suffer the same endswitch issues as the Mk1 because the firmware was written by us in house.
When a stage limit is hit, the stage will not go into an emergency mode. Instead it will simply refuse to move in the direction in which the limit switch was hit. This means an engineer will not be required to fix the stage every time.
code can be found at: https://gitlab.com/jmaggio14/ddpi-mk3-stage
Eagle files and CAD Designs can be found at: Z:\JeffProjects\DDPI-mk3-stage
Control and Communication
Note: Hardware Control will always take priority over Serial Control!
Serial Control
The system can be controlled via command message sent through a serial interface through it's USB port.
MOVING AN AXIS: "M<axis_id><num_steps>\n"
where <num_steps> is the number of steps you want the motor to move (this can be positive or negative) and <axis_id> is the id of the axis you want to move.
LX1 --> Left Eye X Axis
LY1 --> Left Eye Y Axis 1
LY2 --> Left Eye Y Axis 2
LZ1 --> Left Eye Z Axis
RX1 --> Right Eye X Axis
RY1 --> Right Eye Y Axis 1
RY2 --> Right Eye Y Axis 2
RZ1 --> Right Eye Z Axis
CHECK CURRENT STATUS: "?\n"
ENABLE LIMITS: "E\n"
DISABLE LIMITS: "X\n"
Hardware Control
In addition to Serial Control, the stage can controlled with a button/Switch panel which plugs into the board. (Assuming only 1 axis is moved at a time)
As of 11/5/2019 - the board to act as a hardware controller still has yet to be developed.
V1 and V2
Version 1 has issue where the 3.3V pin on the arduino was shorted, which causes the arduino to shutdown. This issue can be fixed by simply cutting off the pins pictured here.
Version 2 fixes this issue, and also includes a DB9 port to connect to a physical controller