ArduFocuser Protocol

The Ardufocuser communication is through serial port command, using a speed of 9600 baud.
The protocol it is easy, all commands had similar structure:

COMMAND?ARGUMENT1?ARGUMENT2

The next table indicate the valid commands repertory.

If you prefer use other command repertory, you are free to implement other.

Command Argument Description Example Min <-> Max Value
AINIT - Initiate performance mode Ardufocuser. AINIT? <->
AMODE MODE (int) Set performance mode. AMODE?1 1 <-> 4
AG POSITION (int) Move focuser to position got as parameter. AG?300 -1000 <-> 1000
APOSITION - Request focuser position. APOSITION? -
ATEMP - Request temperature. ATEMP? -
AMICRO MICRO (int) Set microstepping level. AMICRO?1 1 <-> 8
AFINE STEEP PER PULSE (int) Set steep per manual pulse. AFINE?20 0 <-> 50
ASPEED SPEED (int) Set focuser engine speed. ASPEED?10 0 <-> 20
AACC ACCELERATION (int) Set focuser engine acceletarion. AACC?15 0 <-> 99
AR POSITION (int) Fix focuser relative position on custom value. AR?0 -1000 <-> 1000
AHLIMIT - Request if hardware limit enable. AHLIMIT? -
ASLIMIT - Request if software limit enable. ASLIMIT? -
ASILIMIT POSITION (int) Set inware software limit position. ASILIMIT?300 -1000 <-> 1000
ASOLIMIT POSITION (int) Set outware software limit position. ASOLIMIT?-300 -1000 <-> 1000
AVERS - Request firmware version number. AVERS? -
AMOV - Request if focuser is moving. AMOV? -
ALUX LUX (bool) Enable or Disable LCD lighting. ALUX? -
ARUNA - Run engine inware. (Only for test). ARUNA? -
ARUNB - Run engine outware. (Only for test). ARUNB? -
ASTOP - Force to stop engine. ASTOP? -
ALCDPRINT MESSAGE (String) Print message on the LCD display. ALCDPRINT?HELLO "" <-> "XXXXXXXX"