Skip to content
jolo edited this page Nov 12, 2013 · 10 revisions

Wiki content

Project

Project is based on Arduino Nano board (http://arduino.cc/en/Main/ArduinoBoardNano) that communicates with PC using serial protocol. Arduino Nano contains RS232 - USB converter, so the actual connection between the board and PC is made using standard USB mini cable.

Stepper motor is controlled using four data lines of Arduino board. These lines cannot control stepper motor directly. Additional stepper motor driver must be used (for example U2004 for unipolar motors or L293 for bipolar ones). Actual stepper motor hardware is not a subject of this project. [AccelStepper](http://www.open.com.au/mikem/arduino/AccelStepper AccelStepper) library is used, that can be configured to control many motor types, and ensures smooth motor start and stop. It will prevent focuser slip when loaded with heavy equipment.

Focuser parts

Arduino based hardware talks with PC via ASCOM driver. Driver was developed using Visual Studio 2008 environment and is based on standard ASCOM visual basic driver template IFocus2. Temperature compensation is implemented in the driver code. For focuser backslash compensation it is recommeded to use 3rd party application solutions (Maxim, FocusMax).

Project provides following features:

  • absolute focuser positioning
  • temperature read (DS1820 family temperature sensor)
  • temperature compensation (is calculated in the driver basing on temperature read and user entered coefficient)
  • stepper motor PWM duty cycle when motor not moving (prevents motor rotation under heavy focuser loads)
  • focuser halt command

There are also manual focus mode available in the focuser that can work in two ways:

MANUAL_FOCUS_MODE = 1 (default). Manual focus is controller with two buttons connected to ENCODER_A_PIN and ENCODER_B_PIN and GND. When button is pressed the stepper slowly accelerates to the maximum speed in selected direction. When button is released steppers stops quickly.

MANUAL_FOCUS_MODE = 0. Manual rotary encoder with push button can be connected to the Arduino board. It allows manual changes of the focuser position and also to change the speed of this manual changes. Encoder support is no longer under development and will not be supported in the future.

All manual focuser changes are reflected in current state of the ASCOM driver and connected software.

Optional buzzer was chosen to indicate different events - no more blinking and distracting LEDs that needs to be observed - we have more interesting views to be watched :) Buzzer is turned off by default and can be turned on with flag BUZZER_ON.

Clone this wiki locally