Instruction manual
32
Appendix 1 Software Commands
Although not discussed above, the processor includes coding to allow one or both ends of the focuser travel
to incorporate end of travel interlocks (closure to ground). The customer would provide this to fit each
installation. No special software settings are required.
All RFCP commands are sent/received to the RoboFocus in standard RS232 at 9600 baud, 8 bit, no parity.
Commands must be sent as a block within approximately 400 ms (i.e., if sending manually, the typing must
be fast). All commands and data received are of form “FXNNNNNNZ” where
• “F” denotes focuser command
• “X” is a alpha character denoting which command
• “?” is an arbitrary character as a placeholder
• “NNNNNN” are six decimal digits with leading zeros as necessary
• “Z” is a checksum character of value 0-255. Its value is the result of adding all the previous characters
together and setting Z equal to the least significant byte.
All data sets are nine ASCI characters (e.g., the character of value 48 represents a “0”). There is no end of
command character. If subsequent characters are sent to the RoboFocus (such as a CR), RoboFocus may
interpret them as a stop command (see below).
When a command is received, RoboFocus computes the checksum for the received characters. If it does
not match, or if there are illegal characters, the command is ignored. After a valid command or pushbutton
that causes motion, the RoboFocus responds with movement ticks (about 10-50 per second), which is a
string of the character “I” or “O”. When motion ceases, RoboFocus issues a final packet of form
“FXNNNNNNZ”. X corresponds to the command that was sent. If a command is sent during a movement,
the command will cause the motion to cease. In general, if it is a legal command, it will still be accepted
and then will be executed.
The RoboFocus processor has limited built-in data checking. Where a 65K limit exists, RoboFocus
controller does not block the command but will roll over its count for that parameter. In general, external
control software should have all necessary limits and format requirements built in.
Note that the standard motor we provide is rated as a "0.1 deg/step" unit (3600 “steps” per revolution of the
geared down output shaft). When the motor companies rate the number of steps, they are really counting
the "microsteps" of the rotor. One complete cycle of the motor rotor (a “whole step”) itself takes four
microsteps. In our V2 firmware, we make output shaft movements in whole steps, i.e., four microsteps.
Therefor, our standard motor will rotate one complete turn in 900 of the "steps" from the RoboFocus. In
our V3 firmware (with temp comp), the user can select the stepsize, i.e., the number of microsteps per
“step”.
FVXXXXXXZ. Commands RoboFocus to respond with RoboFocus firmware version number. Response
is FVXXXXXXZ.
FG?XXXXXZ. Commands RoboFocus to goto position ?XXXXX. If ?XXXXX are all zeros, response
from the RoboFocus is the current position in the form FD?XXXXXZ. If ?XXXXX represents non-zero,
the RoboFocus will take this as the target position and begin moving. As the stepper moves, RoboFocus
responds to the command with the character “I” or “O” for each step. At the conclusion of the move,
RoboFocus sends the current position FD?XXXXXZ. Note actual limit is 65K (there is a spare digit for the
future).
FI?XXXXXZ. Commands RoboFocus to move inward by ?XXXXX steps then sends current position.
Note actual limit is 65K (one digit is spare).