myFP2 312 3
myFP2 312 3
myFP2 312 3
Once built - You must setup the focuser as described in Initial Setup
otherwise you can damage your telescope.
Note:
myFocuserPro refers to v1xx of the myFocuserPro products. This was the first design and works
with the Moonlite drivers, so can be supported on the Mac (tested on MacBook with TheSky and
Moonlite drivers) and Linux systems (tested with the INDI Moonlite driver under Ubuntu and Ekos)
myFP2 refers to v2xx of the myFocuserPro2 products. This design is v2 and is NOT compatible with
Mac and Linux systems. Version 2 controllers do have a number of additional features that are not
available on the v1 design and use a different protocol. You cannot use v2xx ASCOM or Windows
software with a v1xx programmed controller or vice-versa.
Both systems are supported by either a V1 or V2 Windows application and ASCOM drivers.
If you have built a v1xx controller, and want to upgrade to v2xx ASCOM drivers and Windows
application, this is easy. Simply load the equivalent v2xx firmware into the controller and use the
supplied v2 ASCOM drivers and v2 Windows application.
CONTRIBUTIONS
Please contribute to the ongoing development of this project via PayPal and send your donation to user
[email protected] (Robert Brown). All contributions are gratefully accepted.
Note: The stepper motor wires can differ from model to model. You may need to identify which pairs are which with a multi-meter. Pair one is wired to the pins 1
and 2 of the connector, with pair two wired to pins 3 and 4. If you find the motor is turning the wrong way (when you move inwards to a lower focuser position
the motor moves the focuser out, you should reverse the wires on pin 1 and pin 2 of the connector. Then you are good to go.
10 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DISCLAIMER
This project is released into the public domain as is where is, with no obligation or responsibility accepted
on the part of the author, for any mishaps or failures caused by this product or use of this product. Users
intending to use this project or code do so at their own risk and usage of product and code is deemed to be
acceptance of those risks. The author(s) accept no responsibility to damage caused to any equipment or
goods or self by using the ideas, schematics and code associated with this project, or loss of income or all
other losses that may be incurred. No warranty is offered or implied.
COPYRIGHT RESTRICTIONS
The schematic, firmware and other code and ideas are released into the public domain. Users are free to
implement these for their personal use, but may NOT sell projects based on (or derived from) this project
for commercial gain without express written permission granted from the author(s).
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), the rights to use, copy, modify, merge, publish, distribute, sublicense
copies of the Software (from the authors), subject to the following conditions:
1. The above copyright notice shall be included in all copies or substantial portions of this Software.
2. The software may NOT be sold or charged for in any way, either as part of a package, license fee, annual
charges or premiums and shall include the copyright notice above.
3. The source-code to any software MUST be made available in full source-code form (including modified
source files) and free to download without payment and include the copyright notice above
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
11 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
OVERVIEW
This is a DIY Stepper Motor Focuser Solution based on an Arduino Nano, bread boarded (optional PCB
available) and enclosed in a project hobby box.
12 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 VARIATIONS
The myFP2 comes in a variety of different models.
myFP2
The standard myFP2 focus controller based on an Arduino Nano controller with support for a wide variety
of driver boards and configurations and is moon-lite compatible
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/
myFP2M
The basic minimum build of a myFP2 focus controller based on an Arduino Nano controller with support for
a multiple driver boards and configurations
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/
myFP2N
A basic myFP2 focus controller with a Nextion touch screen display (DRV8825 and ULN2003 drivers)
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/myFocuserPro2M/
myFP2ESP
The latest line of myFP2 WiFi controllers, based on the ESP8266 and ESP32 WiFi chip, supporting multiple
driver boards, Push buttons, IN/OUT LEDs, OLED display, WiFi operation via TCP/IP, Webserver and ASCOM
REMOTE server)
https://sourceforge.net/projects/myfocuserpro2-esp32/
13 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
WHERE TO FIND THINGS
Documentation
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/Documentation/
Android Applications
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/Android%20Bluetooth%20Apps/
ASCOM Drivers
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/ASCOM%20DRIVERS/
FIRMWARE
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/ARDUINO%20FIRMWARE/
INDI Driver
Included in the INDI package
Parts Lists
Found in the same folder as the PCB boards
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/Gerber%20Files/
SOLDERLESS VERSION
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/SOLDERLESS%20DRV8825%20NANO/
Unix Applications
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/LINUX/
Windows Applications
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/WINDOWS/
14 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SKILL LEVELS
Some controller builds require an increased skill set, and the higher skills may require you to do extra
configuration and adjustment to get the best performance from your controller.
BEGINNER
Little knowledge of programming,
configuration, soldering and wiring.
INTERMEDIATE
Worked with Arduino code previously
Comfortable soldering and connecting wires
Undertaken other Arduino projects before
EXPERT
Proficient in soldering and wiring components
Good knowledge of Arduino programming
Good troubleshooting skills
Able to use multi-meters and other tools
15 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 CONTROLLER
DIFFICULTY LEVEL: BEGINNER TO EXPERT
This is the recommended controller as outlined in this PDF. The controller consists of a DRV8825HW203
PCB featuring an Arduino Nano and a motor driver board [for the DRV8825 the PCB has a socket mount for
the driver chip; all other boards use a separate driver board].
You will first need to determine your focuser requirements as outlined here. This will help you determine
what type of controller and stepper motor you will need. Once you have finalised that information, you can
then make a judgment call on what PCB and driver chip is required.
Some options may require a specific PCB. Some options are not compatible with other options [Like either
Rotary encoder OR Infra-red remote controller]. If you need help, please ask on the Discussion page or by
sending me an email.
16 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2M CONTROLLER
DIFFICULTY LEVEL: BEGINNER TO INTERMEDIATE
The myFP2M controller is a basic myFP2 Controller, either in DRV8825 [supporting NEMA stepper motors].
L298N (NEMA stepper motor) or ULN2003 [supporting 28BYJ-48 stepper motors].
17 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2ESP [ESP8266/ESP32] WiFi CONTROLLER
DIFFICULTY LEVEL: INTERMEDIATE TO EXPERT
This is a WiFi based controller (not Arduino) that can interface to a focuser motor and provide automated
focusing.
ESP32 VIDEOS
Part 1 ULN2003 https://www.youtube.com/watch?v=o1UVqP6QM2Q
Part 2 DRV8825 https://www.youtube.com/watch?v=7UhIwJS8AEg
Part 3 L293D https://www.youtube.com/watch?v=pJeu5f40Hko
18 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2N-NEXTION TOUCH SCREEN DISPLAY
DIFFICULTY LEVEL: INTERMEDIATE TO EXPERT
This update comprises the following
• 3.5” TFT NEXTION ENHANCED DISPLAY NX4832K035_011R 480x320 (Touch screen)
• Nextion firmware
• myFP2 modified firmware for use with Nextion display using myFP2-DRV8825HW203 PCB or
myFP2-ULN2003 PCB
• dedicated myFP2N-TMC22xx PCB using TMC2225 or TMC2209 Trinamic stepper modules
The Nextion TFT can be mounted on the outside of the focuser or connected using a 4P cable (GND, 5V,
RXD, TXD) to an existing myFP2-DRV8825-HW203 controller.
This could be a valuable addition to those who operate their telescopes in the field and are not using a
laptop or have limited battery power available.
Control is based on a simple GUI comprising a number of screens. Most functions have been implemented.
19 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 SUPPORT VIDEOS
The following list of videos provide vital information about the myFP2 focus controller.
If you are considering building a myFP2 controller, please watch the Part1a and Part1b videos as a
minimum. Part1a will help you decide what you need and Part1b shows how to build a focuser based on a
PCB. Be sure to read the section Focuser Basics in this PDF
20 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Part5a myFP2 Temperature Compensation
https://www.youtube.com/watch?v=YXRqP-V1fcM
myFocuserPro RotaryEncoder
https://www.youtube.com/watch?v=9CnBHNKSRgs
Managing Profiles
https://www.youtube.com/watch?v=-LSDK2fTHwc
21 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 FAQ
Ensure you read the Frequently Asked Questions [FAQ] document.
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/Documentation/myFocuserPro2FAQ.p
df/download
myFP2 DESIGNS
This separate document details each board design (both PCB and Stripboard versions), listing the board file
and the firmware file to use with that board.
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/Documentation/myfocuserpro2-
designs.pdf/download
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/Documentation/Comparison%20v1%2
0and%20v2%20myFocuserPro.pdf/download
22 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 - BUILDING YOUR OWN CONTROLLER
The myFP2 focus controller uses an Arduino Nano controller [CH340G] and a driver chip. The driver chip
controls the stepper motor. For each stepper driver chip, you require a different printed circuit board. The
circuit boards are listed below.
OPTION NOTATION
M = Minimal, LED’s to indicate IN/OUT
MT = Minimal + Temperature Probe
F = FULL, includes LCD, temperature probe, Push buttons, LED’s etc
BT = Bluetooth option
IR = Infrared controller option
RE = Rotary encoder option
The Gerber Files folder also contains the schematics, board layout and parts lists.
After downloading the free GERBER file for your chosen controller, go to a PCB site like EasyEDA to order
the board online. Generally, 5xPCB boards will cost around $2USD excluding shipping charges. These PCB
sites have nothing to do with me or the project; they are totally independent.
If you build more than 1 focuser unit, please consider donating a controller to your local astronomy club.
Helping others is what this project is really about.
Note: I have no affiliation with any of these PCB sites. These PCB manufacturer sites have no connection to
any of these projects. These sites are recommended on the basis of user shared experiences of providing a
quality board at low cost.
23 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SAMPLE WIRING DETAIL FOR DRV8825-HW203-M-MT-F-BT PCB
Note: The stepper motor wires can differ from model to model. You may need to identify which pairs are which with a multi-meter. Pair one is wired to the pins 1
and 2 of the connector, with pair two wired to pins 3 and 4. If you find the motor is turning the wrong way (when you move inwards to a lower focuser position
the motor moves the focuser out, you should reverse the wires on pin 1 and pin 2 of the connector. Then you are good to go.
The PCB lets you build a minimal or complete (full or all options) focuser. You decide what options to include. Or add them later.
Option M: Leave out push buttons, display, temperature probe
Option MT: leave out push buttons, display
Option F: Include every-thing
24 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
FOCUSER BASICS
HARDWARE SELECTION
BUILD INSTRUCTIONS
SETUP AND CONFIG INSTRUCTIONS
25 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SOME FOCUSER BASICS TO START WITH
This is important. Please ensure you read this section first as the size of your telescopes CFZ (critical focus
zone) will determine which option is best for you.
To build the correct focuser that matches your system we need to know
• The critical focus zone
• How much your focuser moves in one full rotation (in mm)
• These two measurements will determine what stepper motor resolution is needed (steps per degree
or step-size in microns)
For accurate focusing, it is necessary to get about 10 steps within the CFZ. This is done by altering the
gearing ratio (such as using gears or a pulley belt system) or using micro stepping to increase the number of
steps per revolution of the stepper motor.
For determining this value for Schmidt-Cassegrain (SCT) telescopes, look here.
Step Size in microns = (distance one full focuser rotation in mm * 1000) / stepper motor steps per revolution
This value is used to determine how many stepper motor steps there will be within the CFZ of the telescope
(ideal is about 10). Simply divide the CFZ by the step size to get the number of steps within the CFZ.
Step Size is supported by myFP2 controllers. Some applications may require a valid setting for Step-Size in
order to work correctly. If enabled, then the Step-Size value stored by the controller will be returned. If
Step-Size is not enabled, the ASCOM driver will throw a “Not implemented” exception which the client
application should handle. For more information in this PDF, click here. You can specify the Step-Size and
enable/disable this setting when connecting to the controller. Setting values are remembered.
26 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Calculating CFZ, Step Size and Stepper Motor Resolutions
Telescope Stepper Motor
Orion ED80T-CF 28BYJ-48
With a focal ratio of f6 the 28BYJ-48 has 2048 steps per revolution
CFZ is about 79microns. The stepper motor is connected direct to the focuser shaft so one revolution of the stepper is
one revolution of the focuser knob
One full revolution of the Hence, 2048 stepper motor steps move the focuser 18.5mm, so 1 step moves the focuser
focus knob moves the (18.5*1000)/2048 = 0.009mm which is the stepsize
focuser 18.5mm The focuser moves about 9 microns per full step, thus there are about 9 full steps of the stepper
motor within the CFZ (79/9=8.77)
NEMA17-PG5
NEMA17-PG5 has 1036 steps per revolution (at full steps)
The stepper motor is connected direct to the focuser shaft so one revolution of the stepper is
one revolution of the focuser knob
The focuser moves about 17.85 microns per full step of the stepper motor (18.5*1000/1036)
There are about 4 full steps of the stepper motor within the CFZ (79 / 17.85=4.4)
Full stepping does not give enough steps within the CFZ, so try half-stepping
Using half-steps the focuser moves about 8.93 (17.85/2) microns per half step
There are about 8-9 half-steps within the CFZ (79 / 8.93 = 8.85)
The NEMA17PG5 should be operated in HALF_STEP mode!
We need a driver board that supports half stepping for a NEMA17-PG5
NEMA17-PG27
NEMA17-PG27 has 5370 steps per revolution (at full steps)
The stepper motor is connected direct to the focuser shaft so one revolution of the stepper is
one revolution of the focuser knob
The focuser moves about 3.44 microns per full step of the stepper motor (18.5*1000/5370)
There are about 23 full steps of the stepper motor within the CFZ (79 / 3.44=22.9)
Full stepping gives enough steps within the CFZ
NEMA14-0.9°
NEMA17-PG5 has 400 full steps per (1600 steps at quarter stepping)
The stepper motor is connected direct to the focuser shaft so one revolution of the stepper is
one revolution of the focuser knob
The focuser moves about 11.56 microns per 1/4 step of the stepper motor (18.5*1000/1600)
There are about 4 full steps of the stepper motor within the CFZ (79 / 11.56=6.4)
Full and stepping will not give enough steps within the CFZ, so try 1/4-stepping
We need a driver board that supports 1/4 stepping for a NEMA17-PG5
27 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Spreadsheet Calculations Showing Various Options
Example1: StellarVue Refractor f7.1 and NEMA17-PG5 half stepping
As you can see, this will give 14 half-steps within the CFZ at f7.1 and 9 steps at f5.68, which is adequate for
repeatable accurate focusing using a direct connection with a flexible coupler.
Example2: Orion ED80T-CF f6 Refractor with 28BYJ-48 Stepper Motor and ULN2003 Driver
As you can see, this will give 9 full-steps within the CFZ at f6 and 6 steps at f4.8. Using half-steps, this would
be adequate for repeatable accurate focusing using a direct connection with a flexible coupler.
28 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Examples
My example focuser has four (4) full turns of the focuser knob from the minimum full IN position to the
maximum full OUT position.
We turn on the focuser and run the myFP2 Windows application, select the correct COM port and connect
to the controller. The focuser is currently at position 5000 (the controller has defaulted to position 5000).
We enter 0 as the focuser position and click the SET POSITION button, which tells the controller that the
current focuser position is reset to position 0. This ensures that the stepper cannot drive the focuser fully
home (it will stop one half turn away).
DETERMINE MAXSTEPS
We assume that we will drive the focuser OUT but stop one half turn before the maximum stop of the
focuser. For our example, this is three full turns of the focuser knob. In stepper motor steps this is 2048*3 =
6144, so we need to set maxStep to 6144 in the setup dialog box.
In the myFP2 Windows Application we enter 6144 as the Maximum Position and click the SET button to
send this value to controller.
For the initial focuser position, we determine the half-way point (0-6144) and so the initial focuser position
will be 3072.
Next, we move the focuser from position 0 to the mid-point by entering 3072 in the focuser position text
box and then click the GOTO POSITION button to move the focuser. Once the focuser has stopped moving,
we can then close the application and power off the focuser. If you notice that the focuser does not move
when the GOTO POSITION command is sent to the controller, it is likely that the direction is incorrect. Try
enabling Reverse Direction and then clicking the GOTO POSITION button again.
To check that everything is set, we turn on the focuser and restart the myFP2 Windows application. You will
see that the focuser position will be set to the midway point (in our example 3072) and that the maximum
position is set to 6144.
As long as the focuser is not manually moved, or the coupler disconnected, the focuser is now setup with
the correct values. Each time we connect to the focuser, the correct settings will be sent to the controller
and will be saved so they can be recalled next time we run the software or access the ASCOM driver.
We turn on the focuser and run the myFP2 Windows application, select the correct COM port and connect
to the controller. The focuser is currently at position 5000 (the controller has defaulted to position 5000).
We enter 0000 as the focuser position and click the SET POSITION button, which tells the controller that the
current focuser position is reset to position 0. This ensures that the stepper cannot drive the focuser fully
home (it will stop one half turn away).
29 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DETERMINE MAXSTEPS
To determine maxStep, we also assume that we will drive the focuser OUT but stop one half turn before
the maximum stop of the focuser. This is three full turns of the focuser knob. In stepper motor steps this is
2072*3 = 6216, so we set maxStep to 6216 in the setup dialog box.
In the myFP2 Windows Application we enter 6216 as the Maximum Position and click the SET button to
send this value to controller.
For the initial focuser position, we determine the half-way point (0-6216) and so the initial focuser position
will be 3108.
Next, we move the focuser from position 0 to the mid-point by entering 3108 as the focuser position and
then click the GOTO POSITION button to move the focuser. Once the focuser has stopped moving, we can
then close the application and power off the focuser. If you notice that the focuser does not move when the
GOTO POSITION command is sent to the controller, it is likely that the direction is incorrect. Try enabling
Reverse Direction and then clicking the GOTO POSITION button again.
To check that everything is set, we turn on the focuser and restart the myFP2 Windows application. You will
see that the focuser position will be set to the midway point (in our example 3108) and that the maximum
position is set to 6216.
As long as the focuser is not manually moved, or the coupler disconnected, the focuser is now setup with
the correct values. Each time we connect to the focuser, the correct settings will be sent to the controller
and will be saved so they can be recalled next time we run the software or access the ASCOM driver.
In order for the focuser to work correctly. Incorrect values for Maximum Position or setting the zero position
incorrectly may cause damage to either the focuser or stepper motor.
Please note that the values will be different for your focuser and these will need to be determined by you in
order for the focuser to work correctly. Incorrect values for Maximum Position or setting the zero position
incorrectly may cause damage to either the focuser or stepper motor.
It is important that the stepper motor stops and does not try to drive past the minimum and maximum
points of your focusers travel.
30 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
STEP SIZE AND CRITICAL FOCUS ZONE
This section will examine the relationship of Step-Size (SS) to the CFZ.
Q: I Have an SCT telescope, focal ratio is f10. How do I calculate the step size?
A: This involves a number of inter-related maths. We know that CFZ in microns = focal_ratio * focal_ratio *
2.2, thus for an f10 telescope this is
CFZ = 10 * 10 * 2.2
CFZ = 220 microns
thus a Step-Size of around 22microns is required. Now for the sake of simplicity, we will make some
assumptions.
What we do NOT know is how far your focuser moves in one full turn of the focuser knob. This is important
and we cannot go much further without this information. That distance is something you will need to
measure (in milli-meters) before continuing.
Please watch this video to review the information on CFZ and step-size and how to calculate this.
Q: How to measure how far the SCT focuser (primary mirror) moves in one focus knob
revolution?
A: Using a Bahtinov mask to determine best focus, attach a diagonal and eyepiece (around 40mm is okay)
which is inserted fully into the diagonal) and achieve good focus.
Next rotate the focus knob one full revolution. Then, without changing focus, slowly move the eyepiece
outwards of the diagonal till focus is achieved. If focus gets worse as the eyepiece is slowly retracted, then
you will need to start again, and after achieving best focus with the eyepiece fully inserted, this time rotate
the focuser knob in the other direction.
Next measure the distance that the eyepiece has moved away from the top lip of the diagonal. Now we
have the distance for one revolution of the focuser knob. Let us assume that you did measure it and your
focuser moves 20mm in one full revolution.
Now we will proceed on that basis and in the following you can substitute the real value instead of the
20mm I am using.
Let us chose a NEMA stepper motor that runs at 12V, is rated at 400mA and has 200 steps per revolution.
31 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
CASE 1: NEMA at 200 steps per revolution at FULL STEPS
1 full stepper motor revolution is 200 steps and 1 full focuser knob revolution moves 20mm, so per step =
20/200 = 0.1mm or 100microns. This is not good enough because we need a step size of 22microns.
Even using HALF STEPS there would be 400 steps per revolution giving a step size of 50 microns, still too
large. This means a standard NEMA is inadequate and we need a geared stepper motor for higher
resolution (more steps per revolution)
If your SCT focuser moved 20mm per focuser knob revolution then a PG5 NEMA will be good to go.
So, what is the important need to know information - how far your focuser moves in one revolution.
For a refractor or Newtonian telescope, this is much easier and has already been covered.
An alternative is to affix a Crayford type focuser to the rear cell, and focus using the Crayford rather than
the SCT focus knob. This eliminates the worst of the backlash. Special focusers are available that can be
used with a field flattener/reducer (they house the flattener/reducer within the focuser). But using a
Crayford focuser attached to the SCT rear cell can be expensive.
With an SCT you calculate how much distance is travelled by the primary mirror for one turn of the focus
knob (to calculate the step size and thus how many steps you have in the critical zone), so if there were 80
turns then it is 80 * (number of steps of motor to move focuser knob one full turn).
That is ONLY if you wanted to operate the SCT over the full range. You can of course operate it over such a
smaller range of say 10 [or even 5] focuser knob revolutions by first positioning the focuser at focus, then
step in 5 turns and set that to 0, and out 10 turns and set that to max-steps.
Focusing is normally done over probably less than a couple of turns of the focuser knob.
32 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
STEPPER MOTORS
If using direct drive (stepper motor is connected to the focuser shaft using a flexible coupler) then the ideal
requirements are
• Bipolar stepper motor
• 12VDC at less than 500mA
• Holding High torque (> 75oz.in)
• Small step angle (0.9°) or geared planetary reduction drive, micro-stepping
• Low weight (<300g)
Choosing the right stepper motor is also combination of voltage, current, steps per revolution, inertia
torque, holding torque, size and weight). The voltage and current requirements are controlled by the driver
board being used (or you could build your own driver circuit to supply higher voltages and currents).
If you decide not to use the recommended motors suggested here, then make sure that the current rating
(*2) of your stepper motor does NOT exceed that of the driver board you have selected. For example, if you
selected a 1.4A stepper motor, then the current draw when both coils are energized is 2.8A, which exceeds
most of the driver boards listed here.
The Nema17 stepper motor provides much greater torque than the 28BYJ-48 stepper motor. The Nema17-
PG27 provides the highest torque; the greatest number of steps per revolution and is suitable for heavy
imaging trains.
When using NEMA17 stepper motors with the L293D Motor Shield and L298N driver boards (and the
ULN2003 with the 28BYJ-48), the number of steps per revolution must be specified in the Arduino firmware
file. For all other driver types, this is not necessary.
33 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
AVAILABLE/RECOMMENDED STEPPER MOTORS
The following stepper motor is recommended for heavy imaging trains
Gear Ratio 27:1 Planetary Gearbox with Nema 17 Stepper Motor 17HS13-0404S-PG27
http://www.omc-stepperonline.com/gear-ratio-271-planetary-gearbox-with-nema-17-stepper-motor-
17hs130404spg27-p-249.html
$28.29USD
5370 steps per revolution full-step, 10740 steps per revolution half-step
*ample torque and suited to fast telescopes f2 – f8
http://www.omc-stepperonline.com/nema-17-stepper-motor-34mm-12v-04a-26ncm37ozin-17hs130404s-
p-166.html
8.28USD, 200 steps per revolution full-step, 400 steps per revolution half-step
*steps per revolution is not enough for accurate focusing < f7 (would need to use gears or belt drive)
https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2510209.m570.l1313&_nkw=uln2003+28byj-
48&_sacat=0
1.06USD, FULL STEP = 2038 steps per rev, HALF STEP = 4076 steps per rev (only with L293D Shield)
* May not have enough torque for heavier imaging trains
* Operate on 7.5VDC else motor will overheat if using Coil Power ON
Keep in mind that the stepper motor will be the single most expensive item, and it is best to get a stepper
motor that will give great results. The stepper motors recommended here are excellent choices.
34 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
START HERE
Decide on the stepper motor and driver board combination you will use.
Decide if you want the optional LCD, push buttons and temperature probe
YES Implement the FULL option
NO Implement the Minimal option
Test the controller (remember to use precautions in connection and a 12V external power supply)
Connect the stepper motor to your focuser and ensure that the initial setup is completed
The Arduino UNO + L293D Motor Shield mounted in an Arduino case requires soldering of the push
buttons, RS232 connector, temperature probe socket,12V power socket, and some header pins on the
L293D shield in order to be able to connect +5, GND, D2 and other pins to components.
35 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DIY BOARD OPTIONS
• Stripboard Full but used as Minimal (you can add the LCD and temperature probe later if desired)
• DIY PCB Full but used as Minimal (you can add the LCD and temperature probe later if desired)
NOTE: If you just want to use the ASCOM driver, you can test the ASCOM driver installation and operation
using the following application: myFocuserAscomAppVxxx
NOTE: The recommended method to reset the maxStep value is to use the Windows Application. You
would do this during the initial setup of the focuser. All versions are supported by a Windows Application
and an ASCOM driver.
ADDITIONAL OPTIONS
There are a range of additional options that some boards support
• Home Position Switch
• Rotary Encoder
• Infra-red control
• Bluetooth
• TFT or UTFT display
• Nextion Touch Screen display
The availability of these additional options for each PCB build is listed here.
36 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
TRINAMIC DRIVER CHIPS
DIFFICULTY LEVEL: EXPERT
The implication of this means that VERY FEW features can be configured before exceeding the program
storage space of the Nano.
For example, using a temperature probe is fine, but if you then try to add a display option, buzzers, LED’s
and other features then you will exceed the recommended 88% threshold of storage space and you can
except random errors and crashes when the controller is running.
The TMC2209 features STALL GUARD which is used to implement a Home Position Switch in software.
PLEASE READ THE myFP2-TRINAMIC PDF FOR THE TRINAMIC STEPPER MODULES. THIS HAS VITAL
INFORMATION IN ADJUSTING AND CONFIGURING THE FIRMWARE PARAMETERS FOR THESE MODULES.
IF YOU DO NOT, THEN PERFORMANCE WILL BE IMPAIRED AND THE MOVE MAY NOT MOVE CORRECTLY
OR OTHER FEATURES LIKE THE HOME POSITION SWITCH FOR THE TMC2209 WILL FAIL.
myFP2-TRINAMIC-PDF
SPECIAL THANKS
Paul Porters, the major driving force behind the idea and code
and supporters
Pierre-Yves
Ziv Arazi
Vedran Doboš
37 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
PRINTED CIRCUIT BOARD OPTIONS
There are a number of PCB designs (double sided, plated through holes, silk screened, professionally made)
that can be ordered online.
The F (Full) boards also support MT (Minimal plus Temperature probe) and M (Minimal) options if the
associated components are not mounted on the PCB. In other words, you can use the same PCB to build a
Minimal, MT or Full focuser option simply by adding or omitting certain components and changing the
firmware version file.
The ASCOM driver and Windows software supports ALL options. The correct Arduino code version must be
used with the correct driver board build option.
There is NO PCB for the UNO+L293D Shield. Not all options are available for each board [some boards do
not support Bluetooth, Home Position Switch or other options.
Nomenclature
TP = Temperature Probe
PB = Push buttons for manual control
HPSW = Home Position Switch
NEMA = NEMA stepper motor
IR = Infrared controller
RE = Rotary encoder
BT = Bluetooth
// NOTE 1: YOU CANNOT USE A STRAIGHT 4P-4P HEADER CABLE FOR THE OLED DISPLAY
// NOTE 2: IF USING LCD, USE A STRAIGHT 4P-4P HEADER CABLE
38 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
PCB DRV8825HW203-M-MT-F-BT
DIFFICULTY LEVEL: INTERMEDIATE
This is the recommended PCB and supports
DRV8825 with up to 1/32 micro-stepping with a NEMA stepper motor
Buzzer, IN/OUT LEDS and PWR LED
IN/OUT Push buttons (optional)
Temperature Probe (optional)
Display (OLED and LCD) (optional)
Power-On reset circuitry
Bluetooth (optional)
Home Position switch (optional)
Voltage regulator for operating focuser from 12V
With this PCB you can choose to implement a minimal PCB (just a focuser) or a fully implemented focuser
with display, push buttons and temperature probe.
PCB DRV8825HW203-M-MT-F-BT
If you want to leave off some options, the table below identifies the hardware option and associated
components
Push Buttons Push button 1 and 2, R1, R2, R3, J1, J1. Note: You must fit R4
Display Display, J7, 4P to 4P header cable
Temperature Probe DS18B20 probe, R6, J8
Stepper Power Detect R12, D3
IN and OUT LED’s Blue and Green 5V Prewired LED, J4, J5
Buzzer Continuous tone buzzer, R13, J6
Home Position Switch Small momentary switch, R5, C5, J14
Bluetooth HC05 HC05, R10, R11, J12
39 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DRV8825HW203-M-MT-F-BT SCHEMATIC
Not all options need to fitted to the board. You can leave options out and then configure the software to match the options you have added to the board.
40 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
WIRING DRV8825HW203-M-MT-F-BT
Note: The stepper motor wires can differ from model to model. You may need to identify which pairs are which with a multi-meter. Pair one is wired to the pins 1
and 2 of the connector, with pair two wired to pins 3 and 4. If you find the motor is turning the wrong way (when you move inwards to a lower focuser position
the motor moves the focuser out, you should reverse the wires on pin 1 and pin 2 of the connector. Then you are good to go.
41 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 COMPARISON OF DRIVER BOARDS
Each build option has specific current limits imposed by the stepper motor driver selected. The current limit
of the driver board affects the choice of stepper motor.
Note: The ULN2003, L293D, L298N, TB6612FNG and L293D Shield options only provide for half stepping.
This means the best stepper motor choice for L298N, L293D Shield and TB5512FNG will be the PG27, PG14
or PG5 geared stepper motor (which depends on the step size and how many steps you can into the CFZ).
If you already have a stepper motor, find its operating voltage and current rating and select a driver board
from above that will be able to support your stepper motor (and still have some room to cope – you cannot
run a 2A stepper motor on a 2A driver board as the driver board cannot run at maximum all the time).
If your stepper motor is rated at 1A or above, it cannot be supported due to the high current and you will
need to buy a suitable stepper motor – the recommend stepper motor is the NEMA17-PG27
The coil rating of your stepper needs to be below 0.5A for reliable operation.
42 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
If your stepper motor is a unipolar stepper motor, it can only be supported by the ULN2003 and L293D
motor shield options.
Bipolar motors are preferred as they provide higher torque than a unipolar stepper motor.
NOTE
The L9110S driver board is no longer recommended but still supported.
EXAMPLE
I purchased a NEMA stepper motor from eBay which has a rated coil current of 1.6A. Which
option should I chose?
Sorry – NONE. The maximum current will be 3.2A (there are two coils in a NEMA stepper motor)
and no driver board above will supply that much current.
It is best to use the recommended NEMA stepper motors for this project which all have a current
rating of 400mA.
PARTS LISTS
There is a single spreadsheet for all the boards. Each board has its own worksheet with the file, accessed
using the bottom tabs.
Parts_List
43 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DIY STRIPBOARD
If you do not wish to use a PCB you can build a stripboard version. There are a number of build options for
strip-boards. Each board requires the corresponding Arduino code version in order to work.
Stripboards are based on the original prototypes. This means that they have not been updated with new
features that have been added to the PCB versions.
In other words, you can use the same strip-board to support different build options
• Minimal
• Minimal plus temperature probe
• Full including display
• Full including Blue tooth control
simply by adding or omitting certain components and changing the firmware version file.
To find out more about the available driver board options, the Gerber or Stripboard folders contains is a list
of all the Driver board options, Schematics, Layout, PCB, Parts Lists and other details.
44 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
MICRO-STEPPING STEPPER MOTORS
It is important to get a sufficient number of steps per revolution as this will determine the accuracy of
focusing. The number of steps required depends on the focal ratio of the telescope. It is possible to
determine what is best for a particular telescope (see the section on Critical Focus Zone).
There are three basic methods for increasing the number of steps per revolution of a stepper motor. Each
has advantages and disadvantages.
1. Micro-stepping
2. Gears and drive belt
3. Geared stepper motor
or combinations of the above. The L293D shield supports half-stepping on both the 28BYJ-48 and the
NEMA17-PG5 stepper motors.
If you have an f6 or f7 refractor telescope, then half-stepping should be used with the NEMA17-PG27
unless the stepper motor has been attached using a belt drive and reduction gears.
When micro-stepping, if coil power is not maintained, then the position of the stepper motor becomes
quickly invalidated with each move. Consider a focuser move with micro-stepping. Coil power must be ON
to move the stepper. The stepper motor completes the move, and then the user disabled coil power off. At
this point, the stepper motor will fall to the FULL step. Where that is depends on a lot of things (strength of
magnets, position of rotor, spacing between rotor and magnets etc) and may NOT be always the same.
Sometimes the motor shaft might fall backwards, other times forward. The net effect though is that the
focuser has indeed lost some “steps” for every move.
Another issue with micro-stepping is the loss of torque. The full power of the stepper is no longer available,
and this can make the difference between moving the focuser tube and not moving the focuser tube.
Using a GEARED stepper motor significant increases torque AND reduces the requirement to micro-step
the motor. Hence, using a geared stepper motor at full steps is the recommended solution.
This also explains why using a modified “position” of converting micro-steps to full steps like
“Position:microsteps” is a really bad idea and is no more accurate than any other method. Other systems
which automatically adjust the position based on changes in micro-stepping also suffer from this issue.
45 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
A NOTE ABOUT TORQUE
Torque is a measure of how much force the stepper motor can exert on an object. The higher the torque
value the greater the force that can be exerted. Torque is dependent upon voltage, current, number of
coils, the efficiency of the motor, strength of the magnets used and other factors.
• Bipolar stepper motors provide 40% more torque than an equivalent unipolar stepper motor
• Choosing to operate the stepper motor in HALF-STEP mode will result in a 30% reduction of torque.
Each further reduction reduces torque by additional 30%.
• Torque can be increased significantly by using a gear reduction or pulley/belt drive system, but there
are trade-offs
• It requires more torque to drive a focuser when the telescope is in the vertical position. The system
should always be tested with the telescope pointing at Zenith to see if the stepper can drive the
focuser inwards without any issues (such as missed steps or failure to move)
• For a small telescope with a light focuser and light camera, the 28BYJ-48 stepper should have enough
torque to drive the focuser
• Increasing the voltage or current is not really an option. The L293D Motor Shield cannot readily
support higher currents than 400mA continuous
• For the L293D Motor Shield, the AF_MOTOR library supports SINGLE and DOUBLE parameters when
stepping the motor, with DOUBLE resulting in more torque. The controller code uses DOUBLE
• With any system, the user must ensure that the stepper motor does not attempt to drive the focuser
either below or beyond the focuser mechanical limits
There are really two different types of torque that you need to consider. The first is the inertia force, the
amount of force that the stepper can apply when attempting to drive a stationary motor so that the
stepper motor can overcome the inertia of the system, weight of focuser, imaging train and friction and
begin to move.
The second is the holding torque, which is the force the stepper motor exerts to prevent the motor from
turning when the motor is stationary. This is done by applying power to the coils (referred to as coil power
in the software). If the holding torque is low then the focuser imaging train could have enough weight to
move or slip either during a move command or once the move command is finished. A geared motor with
coil power ON is preferred for heavier imaging trains or imaging near the Zenith.
Whatever you do, DO NOT purchase a stepper motor that requires more than 0.6A [600mA] coil current
to operate. Doing so can damage the driver boards or severely shorten the working life of the driver
board.
46 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
STEPPER MOTOR WIRING (PCB)
DRIVER RS232 Pin NEMA17PG27/NEMA17PG5 NEMA17 14HM11-0404S
Jx-STEPPER
HEADER 4P
DRV8825/A4998/DRV8825-HW203
Jx-Pin1 4 RED (Coil2) GREEN RED
Jx-Pin2 3 BLUE (Coil2) BLUE BLUE
Jx-Pin3 1 GREEN (Coil1) BLACK BLACK
Jx-Pin4 2 BLACK (Coil1) RED GREEN
L9110S
B+ 4 RED (Coil2) BLUE BLUE
B- 3 BLUE (Coil2) GREEN RED
A- 1 BLACK (Coil1) RED GREEN
A+ 2 GREEN (Coil1) BLACK BLACK
L293D-MINI
A+ 4 RED (Coil2) BLACK BLACK
A- 3 BLUE (Coil2) RED GREEN
B+ 1 BLACK (Coil1) GREEN RED
B- 2 GREEN (Coil1) BLUE BLUE
L298N and TB6612FNG
B1 4 RED (Coil2) BLACK BLACK
B2 3 BLUE (Coil2) RED GREEN
A2 1 BLACK (Coil1) GREEN RED
A1 2 GREEN (Coil1) BLUE BLUE
Note: The stepper motor wires can differ from model to model. You may need to identify which pairs are
which with a multi-meter. Pair one is wired to the pins 1 and 2 of the connector, with pair two wired to pins
3 and 4. If you find the motor is turning the wrong way (when you move inwards to a lower focuser position
the motor moves the focuser out, you should reverse the wires on pin 1 and pin 2 of the connector. Then
you are good to go.
PARTS LISTS
The parts list for each build is in the PCB sub-folder for that design.
PRECAUTIONS
WARNING - NEVER CONNECT/UNPLUG STEPPER MOTOR CABLE WHEN EXTERNAL POWER IS ON
47 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
NANO CH340G
The controller uses the “Mini USB Nano V3.0 ATmega328 16M
5V Micro-controller CH340G board for Arduino”. This board
does NOT use an FTDI chip so there will be no issue powering
the board from 12VDC via an LM7808 voltage regulator wired
to VIN.
The Arduino Nano can derive power from the mini-USB, VIN (pin 30) or 5V (pin 27). The Nano will select the
highest voltage source (which will be VIN when the 12VDC is connected).
This means if we use a Nano FTDI chip we cannot connect VIN to 12VDC as we would lose the RS232
connection, so it is best not to use a Nano chip which has an FTDI driver.
Be sure to purchase the CH340G Nano option. Other Nano boards may not work.
ARDUINO EVERY
This is NOT supported and will not work.
Once this has been tested, power off the board, insert the
Nano into the 15P headers and testing can then continue.
PRECAUTIONS
Never disconnect or connect the stepper motor when the myFP2 Controller or external power is
ON. This will result in damage to the driver board
Never disconnect or connect the temperature probe when the myFP2 Controller or external
power is ON. This may result in damage to the Nano board
48 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
POWER AND PROTECTION FOR VIN
You cannot power everything from a USB cable. A USB connection has a limited power capability, which can
be exceeded if you try to power everything including the stepper motor from a USB connection.
The recommended NEMA stepper motors require a 12V external power supply. This voltage can also be
used to power the controller via a voltage regulator circuit. The Arduino chip looks at the voltage on the
VIN pin, and if higher than the 5V USB supply will use that power connection as a preference. Some clone
Nano chips purchased off eBay tend to suffer damage if run off 12V, so a step-down voltage regulator is
used to lower the voltage from 12V to 8V for VIN.
This means the controller can be powered in the field from 12V or a car battery. If using a USB connection,
the external power supply is still required to power the stepper motor.
The LM7808 voltage regulator circuit provides over-voltage protection for the Nano controller.
The capacitors provide noise suppression on the input and output of the voltage regulator and are
required.
The L293D Motor Shield does not require power-on circuitry or protection for VIN. On all other builds, this
circuit is required to avoid potential burnout of the Nano controller if the supply voltage is too high.
The maximum current draw to the stepper motor is around 350mA (for 28BYJ-48) or 400mA for the
Nema17. The forward voltage drop across the diode is around 1.1V. A 3A Resettable Polymer fuse provides
excess current protection. The voltage drop of the diode does not cause any issue with the circuits and is
not an issue.
The maximum recommended input voltage is 12VDC. Ensure this protection circuit for VIN is implemented
if attempting to power the controller from a car battery.
Note: Use 7.5-9VDC with the 28BYJ-48 stepper motor if using Coil Power ON otherwise the stepper motor
may get very hot.
The PCB drill holes for the Diode may be too small. You can either solder the diode to a 2p header pin first
then insert the 2p header into the PCB and solder it in place, or try to file down the diode leads a little bit so
that the diode fits the PCB hole.
Early designs used a 10A10 diode, which has been replaced with a 1N5408 diode.
49 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
CONNECTION RESET PREVENTION CIRCUIT
The following circuit provides a means of disabling the Arduino reboot that occurs when connecting to the
controller via USB.
For an Arduino controller such as a focuser controller this can take 2-3 seconds. If an application connects
to the controller and a reset happens, the controller cannot respond until the 2-3 seconds has elapsed.
If the application connects then immediately sends a request without waiting, the application can time out
with a serial response error – the Moonlite driver for example will only wait 1s.
To prevent the Arduino resetting when a connection is made, which stops the reset cycle and thus making
the Arduino respond immediately, we need to stop the reset.
This is done via a capacitor between the RST line and either VCC or GND. There are many ways to do this.
Including using resistors.
We need to prevent the RST line from going low, so it has to be held high.
One way is to put a 4.7K resistor from RST to 5V, and then use a 47uF electrolytic (bipolar) capacitor
between RST and GND (+ve lead to RST, -ve lead to GND). This keeps the RST line high and prevents the
reset from occurring when a connection is made.
The downside is that you will not be able to reprogram the Arduino chip unless the reset prevention circuit
is removed. There needs to be some way to remove this circuit (either using jumpers or a switch) so that
the Arduino chip can be reprogrammed with new firmware updates. This project uses a small slide ON/OFF
switch.
50 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 MODES OF OPERATION
The focus controller can operate in a number of different modes, depending on the user requirements
• Local Manual
The controller operates on External Power (7.5-12VDC) and the user presses the IN and OUT buttons
to control the focuser position
• Using the ASCOM driver OR the Windows application to control the focuser
The controller operates on External power and is connected to a computer via USB cable. The client
application sends commands to control and move the focuser
• Using the LINUX application to control the focuser
• Using INDI to control the focuser
• Using the Android app to control the focuser via Bluetooth or OTG USB
Depending on the wiring of the stepper motor coils to the driver board or the way in which the stepper
motor is physically connected to the focuser, pressing the IN button or sending an IN command (using the
Windows or ASCOM driver) could move the focuser in the wrong direction.
If this is the case, AND you are not using a HOMEPOSTION switch, then check the Reverse Direction
checkbox to ensure that when an IN command is sent or the IN button pressed, that the focuser moves
INWARDS.
However, if you intend to use the HOME POSITION switch, then do NOT use the reverse direction checkbox.
You MUST change the physical wiring of the stepper motor coils to make the focuser move in the correct
direction.
The recommended way to change the stepper motor direction is to change the wiring order of the stepper
motor coils. To do this reverse the wires on pin 1 and pin 2 of the rs232 connector [pin1 wire goes to pin2
and pin2 wire goes to pin1].
When connected to the focuser, using the Windows App, clicking a -100 button moves the focuser draw
tube inwards (away from you) and clicking a +100 button moves the focuser draw tube outwards
(towards you).
If this is the case, do NOT use reverse direction. You must reverse the wires on pin 1 and pin 2 of the rs232
connector [pin1 wire goes to pin2 and pin2 wire goes to pin1] so that the rotational direction is changed.
51 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
LCD1602/I2C DISPLAY [Optional]
The focuser project has support for a LCD1602 display
that shows the current and target positions of the
focuser.
Program running
C=NNNNN PW=OF + Current focuser position, Coil Power, Temperature Compensation
The LCD display is split across two pages, displayed one after the other after a short delay. The length of
time an LCD screen is displayed for is user configurable.
PW indicates if power is kept to the stepper coils once a move is completed. For further information, please
refer to the Readme.htm file that is available when the ASCOM driver is installed.
// NOTE 1: YOU CANNOT USE A STRAIGHT 4P-4P HEADER CABLE FOR THE OLED DISPLAY
// NOTE 2: IF USING LCD, USE A STRAIGHT 4P-4P HEADER CABLE
52 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ENABLING THE LCD DISPLAY IN THE FIRMWARE
If an LCD display is fitted to the controller, it needs to be enabled in the section SPECIFY HARDWARE
OPTIONS HERE of the file focuserconfig.h
The example below shows the LCD display enabled in the firmware
// -----------------------------------------------------------------------------
// SPECIFY HARDWARE OPTIONS HERE
// -----------------------------------------------------------------------------
// To enable the LCD DISPLAY uncomment the next line (LCD1602, I2C)
#define LCDDISPLAY 1
// -----------------------------------------------------------------------------
// SPECIFY LCD DISPLAY TYPE
// -----------------------------------------------------------------------------
// only uncomment one of the following LCDxxxx lines depending upon your lcd type
//#define LCD1602 1 // 16 character, 2 lines
//#define LCD1604 2 // 16 character, 4 lines
#define LCD2004 3 // 20 character, 4 lines
LCD WIRING
The LCD display uses an I2C backpack and the 4 wires of the I2C backpack connect to the specified display
connector on the PCB. You must ensure that each wire goes to the correct pin.
The example below shows the PCB DRV8825HW203-M-MT-F-BT and an LCD I2C display.
53 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
OLED I2C 0.96” DISPLAY [Optional]
An OLED 0.96” display I2C display (128x64, SSD1306) is
supported.
The example below shows the OLED display enabled in the firmware
// -----------------------------------------------------------------------------
// SPECIFY HARDWARE OPTIONS HERE
// -----------------------------------------------------------------------------
// To enable the LCD DISPLAY uncomment the next line (LCD1602, I2C)
//#define LCDDISPLAY 1
OLED WIRING
4P-4P XH2.54 Straight through cable 15cm
The firmware supports the SSD1306 OLED I2C
128x64 display. Other displays are not supported.
54 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
OLED DISPLAY TYPES SSD1306 AND SSH1106
The 0.96” OLED I2C display uses an SSD1306 driver chip.
The 1.3” OLED I2C display uses an SSH1106 driver chip. When using this display with myFocuserPro2
firmware, users often report an issue with the text on the display, where the first character or two
characters are missing.
The default OLED supported is the SSD1306. If you intend to use an OLED 1.3” display that uses the
SSH1106 driver chip, you need to make a change in the firmware to support this.
In the section SPECIFY OLED DISPLAY DRIVER TYPE of the file focuserconfig.h file is where you need to make
the change for using an SSH1106 OLED display.
// ------------------------------------------------------------------------------------
// SPECIFY OLED DISPLAY DRIVER TYPE
// ------------------------------------------------------------------------------------
// only uncomment one of the following USE_SSxxxx lines depending upon your lcd type
// For OLED 128x64 0.96" display using the SSD1306 driver, uncomment the following line
#define USE_SSD1306 1
// For OLED 128x64 1.3" display using the SSH1106 driver, uncomment the following line
//#define USE_SSH1106 2
To use the SSH1106 display, comment out the USE_SSD1106 line and uncomment the USE_SSH1106 line
as follows.
// ------------------------------------------------------------------------------------
// SPECIFY OLED DISPLAY DRIVER TYPE
// ------------------------------------------------------------------------------------
// only uncomment one of the following USE_SSxxxx lines depending upon your lcd type
// For OLED 128x64 0.96" display using the SSD1306 driver, uncomment the following line
//#define USE_SSD1306 1
// For OLED 128x64 1.3" display using the SSH1106 driver, uncomment the following line
#define USE_SSH1106 2
There are no holes in the lid designs because there is a wide difference in hole positions for OLED displays.
You could purchase a display that would not fit any existing holes and have to drill more holes.
The OLED is mounted on the underside of the lid. Position the OLED in place and then mark and drill the
holes [2.5mm drill]. It is then secured in place using 2mm bolts and nuts.
Extreme care must be taken securing the OLED because the glass corners of the top of the display at the
bottom carry signal wires, and if you snap off the corners the OLED will no longer work.
I generally run a little hot glue along the line between the two bottom holes face side up then put the OLED
in place and wait for the hot glue to set, then use the bolts and NOT tighten them up too tight that it snaps
the corners. The hot glue provides a means of trying to keep pressure being applied to the bottom corners
of the OLED.
55 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DISPLAY PAGES
If you are using a display, the following lists the various pages that are displayed for each of the display
types [some display types are not available on some PCB boards].
56 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
OLED [128x64 16characterx8lines 0.96” SSD1306 or 1.3" SSH1106]
Oled page 1
Position=
Target =
Coil.Pwr=0 | 1
Rev.Dir =0 | 1
StepMode=
Temp =
MotorSpd=0 | 1 | 2
MaxSteps=
Oled page 2
TComp Steps =
TComp State = 0 | 1
TComp Dir = 0 | 1
Backlash In = 0 | 1
Backlash Out= 0 | 1
Backlash In#=
Backlash Ou#=
Serial Mode | Bluetooth Mode
NOKIA [5110]
Nokia page 1
Posn=
Targ=
CPwr= Y | N
RDir= Y | N
Temp=
MSpd= Slow | Med | Fast
Nokia page 2
StepMd= Full | 1/2 |
StepSi=
Maxpos=
TComp =Yes | No
TCoeff=
Note:
UTFT Stripboard HW203-DRV8825
TFT Stripboard HW203-DRV8825
Nokia L283DMini, ULN2003
57 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
TEMPERATURE PROBE [Optional]
One temperature probe (DS18B20) is supported. The default resolution is set by the controller to 10-bit
giving 0.25 degree of resolution (the resolution can be changed). The accuracy of the measured
temperature is within 0.5 degrees Celsius. The controller uses a GX12 connector for the temperature probe.
Disconnection or reconnection of the probe must be done when power is OFF. VCC and GND are wired
separately.
The controller automatically detects the DS18B20 probe on start-up or reset. If no temperature probe is
connected the temperature is set to 20 (Celsius).
Note: The temperature probe is NOT used for reading ambient temperature. The probe is used to read the
temperature of the focuser tube. This reading can then be used to adjust the position of the focuser as the
tube temperature changes, keeping the image in focus. This is called temperature compensation. The
amount by which the focuser tube expands or contracts according to temperature change is called the
temperature coefficient, and is measured in motor steps per degree Celsius.
You need to secure the temperature probe where it can actually measure the temperature of the focuser
tube. For a refractor this would be about half-way down the tube length.
// -----------------------------------------------------------------------------
// SPECIFY HARDWARE OPTIONS HERE
// -----------------------------------------------------------------------------
58 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
PUSH BUTTON MOMENTARY SWITCHES [Optional]
Two momentary switches (SPST ON-OFF) connected via a
voltage divider network provide an option for manually moving
the stepper motor IN or OUT.
Instead of push buttons, you could use a Rotary Encoder (Keyes 040 supported) or an IR Remote Control.
When temperature compensation is enabled, the push buttons are disabled as well as any move
commands.
Note: If the momentary switches are NOT implemented, then it is important to NOT ENABLE the push
buttons in the firmware otherwise the controller will not function correctly.
The example below shows the push buttons enabled in the firmware
// -----------------------------------------------------------------------------
// SPECIFY HARDWARE OPTIONS HERE
// -----------------------------------------------------------------------------
// Caution: Do not enable a feature if the associated hardware circuits are not fitted
// on the board
// Enable or disable the specific hardware below
// To enable the Push Buttons for manual focusing, uncomment the next line
#define PUSHBUTTONS 1
59 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
INFRARED REMOTE CONTROLLER [Optional]
The infra-red remote controller is only available on the following PCB
• DRV8825HW203_FIRBT
The Infra-red remote controller is NOT compatible with the following options
• Rotary encoder
• Bluetooth HC-05
The IR remote option is a better alternative to the push button switches. The focuser can move +1, -1, +10,
-10, +50, and 50 and reset position to 0. If the code is changed more functions could easily be added.
https://www.ebay.com/itm/HX1838-NEC-Code-Infrared-Remote-Control-module-DIY-Kit-
NEW/251895571659
RECOMMENDED CONTROLLER
ONLY THE SUGGESTED HX1828NEX REMOTE CONTROLLER IS SUPPORTED
Note:
If the IR is not supplied with a little PCB daughter-board, you will need to use a 10KΩ resistor between OUT
and VCC.
// -----------------------------------------------------------------------------
// SPECIFY HARDWARE OPTIONS HERE
// -----------------------------------------------------------------------------
// To enable infra-red Remote, uncomment the next line (only available on some boards)
#define INFRARED 1
60 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
IR REMOTE KEY MAPPINGS
CH- SLOW
CH MEDIUM
CH+ FAST
1 IN 1 STEP
3 OUT 1 STEP
4 IN 10 STEPS
6 OUT 10 STEPS
7 IN 50 STEPS
8 HALT
9 OUT 50 STEPS
- IN 100 STEPS
EQ OUT 100 STEPS
0 RESET POSITION TO 0
It is possible to map other keys for specific tasks. This would require changes to key-mappings defined the
firmware file myIRremotemappings.h
61 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ROTARY ENCODER [Optional]
The Keyes-040 rotary encoder is supported ONLY on some PCB boards.
• DRV8825HW203_FRE
• EasyDriver F-RE
RECOMMENDED ENCODER
ONLY THE RECOMMENDED KEYES-040 ROTARY ENCODER IS SUPPORTED
// -----------------------------------------------------------------------------
// HARDWARE OPTIONS HERE
// -----------------------------------------------------------------------------
// To enable a Rotary encoder uncomment the next line (only available on some boards)
#define ROTARYENCODER 1
IF using a rotary encoder, PLEASE WAIT for the motor to STOP before turning the encoder again.
62 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
KEYPAD 4x4 [Optional]
The 4x4 matrix soft membrane keypad is supported ONLY on the following board
• DRV8825HW203_M_MT_F
RECOMMENDED KEYPAD
ONLY THE RECOMMENDED 4x4 KEYPAD IS SUPPORTED
KEYPAD WIRING
The 4x4 keyboard is attached to a daughter board, which connects to the main board via an I2C connector.
63 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
BLUETOOTH HC-05 [Optional]
The HC-05 blue-tooth module is supported on most PCB boards.
• A4998
• DRV8825
• DRV8825HW203_FIRBT
• DRV8825HW203_M-MT-F-BT
• EasyDriver M-MT-F-BT
• L293DMINI
• L298N
• L9110S
• TB6612FNG
• ULN2003
RECOMMENDED MODULE
ONLY THE SUGGESTED HC-05 BLUETOOTH MODULE IS SUPPORTED
// -----------------------------------------------------------------------------
// SPECIFY HARDWARE OPTIONS HERE
// -----------------------------------------------------------------------------
// To enable bluetooth, uncomment the next line (only available on some boards)
#define BLUETOOTH 1
64 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
HOME POSITION SWITCH [OPTIONAL]
The myFP2 controller supports a home position switch (HPSW).
This is mounted on the telescope and is adjusted so that the switch
is activated (closes) when the focuser position is 0 (just about all
the way IN, there should be around 1cm for safety issues).
For users with remote observatories, it is sometimes necessary to have a solid way of determining the
focuser position. myFP2 supports the use of an external HPSW, which must be fitted to the focuser and
activated just before the focuser is at the zero or home position.
However, not all driver boards support a HPSW. In addition, if other options like a Rotary Encoder are
implemented, they conflict with the HPSW and thus using a HPSW with these options is not available.
© Clive Garner
65 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ENABLING/DISABLING THE HOME POSITION SWITCH
The firmware file focuserconfig.h is used to enable or disable the HPSW. The default setting for HPSW is
disabled. To enable the HPSW, uncomment the line as shown below, then reprogram the controller.
//-----------------------------------------------------------------------
// SPECIFY HARDWARE OPTIONS HERE
//-----------------------------------------------------------------------
// do NOT uncomment HOMEPOSITIONSWITCH if you do not have the switch fitted
// To enable the HOMEPOSITION SWITCH, uncomment the next line
#define HOMEPOSITIONSWITCH 1
NOISE SUPPRESSION
The long wires of the leads to the HPSW are capable of picking up noise from other leads around the
telescope.
To help isolate the HPSW wires from induced noise, a small ceramic
capacitor C5 (ceramic 100nF) is highly recommended as well as a
small ferrite coil on the wires close to the switch as shown below.
Perform the following tests with the 12V power to the focuser OFF. You need to be at the telescope to
carry out this test.
1. Connect the USB cable to the focus controller. Run the windows application and ensure the focuser is
somewhere in the middle (at least 500 steps away from the home position).
2. From the settings menu, select Home Position->Check Status, and the focuser will report the status in
the Status message text box. The status should say open.
3. If the status message reads closed then the switch has been wired wrong, or the resistor is the
wrong value or not connected etc, and you will need to correct this before continuing.
66 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Start the myFP2 Windows application and
connect to the focuser.
The controller will respond with the current state of the HPSW and this will be displayed in the Status
message text field as open.
To test the state when the HPSW is closed, manually close the HPSW and then reissue the same command
from the menu. If the switch is wired correctly, the results are displayed in the Status message text filed
(switch is closed).
67 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
TMC2209 STALL GUARD
The TMC2209 driver chip supports stall guard which signals when the chip has detected the stepper has
stopped due to increased resistance. This increased resistance could be the stepper motor reaching
position 0 and is unable to move inwards. This feature is used to replace the physical Home Position Switch
(if enabled in firmware).
//-----------------------------------------------------------------------
// SPECIFY HOME POSITION SWITCH OPTIONS HERE
//-----------------------------------------------------------------------
// do NOT uncomment HOMEPOSITIONSWITCH if you do not have the switch fitted
// To enable the HOMEPOSITION SWITCH, uncomment the nextline
#define HOMEPOSITIONSWITCH 1
// If your DRVBRD is NOT TMC2209 or TMC2209P THEN DO NOT ENABLE THESE OPTIONS
// If using STALLGUARD or HOMEPOSITIONSWITCH, uncomment one of the following (not both)
#define USE_STALL_GUARD 1
//-----------------------------------------------------------------------
// SPECIFY HOME POSITION SWITCH OPTIONS HERE
//-----------------------------------------------------------------------
// do NOT uncomment HOMEPOSITIONSWITCH if you do not have the switch fitted
// To enable the HOMEPOSITION SWITCH, uncomment the nextline
#define HOMEPOSITIONSWITCH 1
#define USE_PHYSICAL_SWITCH 2
68 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
MANUAL CONTROL OF FOCUSER
There are a number of options for manual control of the focuser
• Push buttons
• Infra-red remote controller
• Rotary encoder
• Keypad
There is a very good reason why push buttons are not available on commercial focusers..............
In normal operation, the focuser will be at near focus. This means you only need to go a few steps either
side to get good focus. You need the steps to be small and slow. If you have large steps and fast, then
you will overshoot best focus, so then press other button, then that overshoots again and you play ping
pong either side of focus and just pure luck to get good focus.
The buttons are NOT designed to travel long distances. What one normally does is probably start from
home, tell the focuser to move to near focus position, then use computer or buttons slowly to get good
focus. If you want to use buttons for both LONG and FAST and then SMALL and SLOW that is not going
to work well. All focusers, not matter what versions or authors will have this restriction.
Another method is fit a home position switch, then in the final part of setup() tell the focuser to move to
home, and then, follow with a statement that will move the focuser to near focus for your setup. That way
the focuser is at near focus and steps to move using the push buttons will only be small and slow because
if you are using FWHM or Bahtinov mask then you do not want quick movement.
If you are manually focusing using buttons, always best to start near focus position.
69 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 SOFTWARE
1. Arduino Firmware code that runs on the Arduino and can be operated in manual mode by pressing the
IN/OUT buttons to move the focuser
• The focus controller on power up defaults to the last known position 5000. This can be overridden
with a specific value when connecting to a controller
• The 0 position can be set by holding down both IN/OUT buttons for 2 seconds (there will be a beep
to confirm – then release both buttons) – or by using the Windows software or ASCOM driver
2. myFP2 Windows application that can remotely control the focuser
3. myFP2 ASCOM driver that can be used with the controller
• To run two focus controllers, you need to install the secondary ASCOM driver (see Appendix D)
4. myFP2Linux application that runs on Linux platforms
5. myFocuserPro2 INDI driver
6. myFP2Android app (for Bluetooth)
INDI DRIVER
myFocuserPro2 has its own INDI driver. Support is available for
• KStars/EKOS
70 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
BOUNDARY RULES FOR maxStep
The following table defines the boundary rules for maxStep as implemented in the Arduino code.
Variable Minimum Value Maximum Value
maxStep 1000 v246 and lower = 65000
v247 and above = 2000000000
If a move or Set Target Position command is sent to the focuser which would result in the focuser being
less than 0 or greater than maxStep, then the focuser will stop at either 0 or maxStep respectively.
A direct connection has the least noticeable backlash of any method used to connect the stepper motor to
the focuser unit and gives the best repeatable results (see Appendix B).
Pulley/gear systems may slip intermittently if the weight is too much and this will result in lost steps and
inaccurate movement. These systems also suffer from increased backlash. They are ideal if you want to
control the focus of a DLSR camera lens where direct connection of the stepper motor is not possible (see
Appendix J).
A direct connection to the single focuser shaft is preferred as this will have the least backlash and
generate the lowest axial loads.
A direction connection requires the use of a mounting bracket (normally L or U shaped) that permits
connection of the stepper motor shaft to the focuser shaft via a flexible coupler. The bracket aligns the
center of the focuser shaft with the center of the stepper motor shaft and provides space to connect the
shafts via a flexible coupler. Slots in the bracket provide the necessary adjustments in order to line the
stepper motor correctly as well as attaching it to the focuser body.
Once connected with a flexible coupler, you cannot move the focuser manually. You must remove the Focus
Lock screw or keep the screw loose.
71 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
The L-bracket which attaches to the base of the focuser holds
the stepper motor. The slots provide ample room for aligning
the stepper motor with the focuser shaft.
So why do some users try connecting to the fine focus knob? The answer is that it already provides a 10:1
reduction so this increases the resolution without any cost. The downside is the cost in replacing the
focuser mechanism when the 10:1 reduction is damaged by the stepper.
If you need to drive the fine focus mechanism (FFM) then it would be better using a belt drive to prevent
damage in the event of exceeding the focuser limits. It is not recommended.
However, using a belt drive significantly increases the axial loads placed on the focuser and over time will
lead to significant wear and tear on the focuser mechanism.
Remember NOT to use the Focus Lock Screw on your focuser; leave the screw loose or remove it.
The Stepper motor will hold the focuser in place. If you leave the screw in and accidently tighten
the focus lock screw, then serious damage can occur to the stepper motor or focuser.
72 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
HOW DO I CONNECT THE STEPPER MOTOR TO THE FOCUSER?
You will need to find a way to connect the stepper motor to the focuser. You will probably need to make a
mounting bracket. How you affix the stepper motor will also vary depending upon telescope type (SCT-
MAK, Refractor, Newtonian).
The following folder contains a ZIP file that has a lot of user submitted photos showing how they attached
their stepper motor to their focuser. You will find many different ways in which this can be done.
If you are using a geared NEMA stepper motor directly connected to the main focuser shaft, one way to
offset the extra weight is to rotate the focuser around so that the focuser shaft runs vertically instead of
horizontally with the stepper motor above the tube. This will make balancing easier.
The advantage of mounting the stepper motor like this is that the weight is mostly underneath the focuser
and thus telescope balancing is not affected as mush as hanging the stepper motor out to one side of the
focuser.
73 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
28BYJ-48 BRACKETS
https://www.thingiverse.com/thing:3731843
NEMA14 14HM11-0404S
https://www.thingiverse.com/thing:3731855
16HS13-0604S-PG5
https://www.thingiverse.com/thing:3731917
74 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
NEMA17-17HS15-0404S
https://www.thingiverse.com/thing:3731927
NEMA17-PG5-0404S
https://www.thingiverse.com/thing:3731932
NEMA17-PG27-0404S
https://www.thingiverse.com/thing:3731940
75 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
WILLIAM OPTICS FD80
https://www.thingiverse.com/thing:3731836
76 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Gears are normally using in ratios like 1:2, 1:3 or 1:4
This means
1:1 1:2 1:3
15T 30T 45T
16T 32T 48T
18T 36T 54T
20T 40T 60T
30T 60T
40T 80T
3D PRINTING GEARS
Infill 100%
Nozzle 0.4mm
Layer Height 0.2mm
Speed SLOW
All measurements in mm, designed to fit a standard 3D printer GT2 belt (2mm pitch)
77 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
3D PRINTED GEARS NEMA 5mm and 6mm shaft
15T 20T
16T 18T
40T
30T 32T 36T
45T
48T
54T 60T
72T
80T
78 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
3D PRINTED GEARS FOR CELESTRON C8/9.25 SCT
For the C8 there are a number of different knob sizes. Newer Celestron telescopes have a rubber knob
which can be pulled off. Older 8" telescopes will have a metal focus knob which must be removed using a
1/16” hex-head wrench to loosen a small set-screw. Remove the knob to expose the brass focus shaft.
60T 90T
60T 90T
To download a zip file containing STL files for all NEMA, 28BYJ-48 and CelestronTM SCT gears,
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/3D%20Printed%20Parts/Gears/
79 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
3D PRINTED GEARS AND BRACKETS
https://www.thingiverse.com/thing:2514652 http://www.thingiverse.com/thing:1542952
ewoud_design Druidosh
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/Documentation/Belt%20Length%20Ca
lculator.xlsx/download
80 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
HOW DO I CONNECT MY STEPPER MOTOR ON AN SCT?
There are many images on the Internet showing users innovative solutions to attaching a stepper motor to
an SCT. Download this file
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/MOUNTING%20BRACKETS%20AND%2
0IDEAS/User%20Builds%20and%20Bracket%20Examples.zip/download
and unzip it. In the folder SCT-MAK you will find a number of examples.
81 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Here is an example of the commercially available Pegasus Astro controller bracket
Meade LX-90
© Colin Dawson. 2021
The STL files are at https://www.thingiverse.com/thing:4758388
82 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SCT
© Joe Bauer 2021
83 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 UNO-L293D SHIELD PROTOTYPE BUILD PICTURES
Initial prototype and breadboard to test LCD, push button switches, LEDS, L293D shield and stepper motor
Top plate with RS232 connector (for stepper motor), Power LED, 12V DC Input jack, Temperature probe
input jack, on right photo LEDS for push buttons fitted
84 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
A minimal focuser using an Arduino Nano, ULN2003 driver mounted in a small case
A few days later, the user turns the focus knob manually by hand half a turn. Then the user starts the
application software, which defaults to the last known position of 4605, which is now invalid (not the same)
because the physical position was altered.
Once you have determined your step mode setting – do not change it.
Consider the case where the focuser has been set up as 0 to 6000 maxStep and the focuser is currently at
position 4000. The step mode is Half steps. Using some maths, this means there are 2000 half-steps
available before the maximum position is reached (or in terms of full-steps, 1000).
The user decides to change the step mode to Full steps and then issues a Goto to focuser position 5500.
This equates to 1500 full-steps from the current position of 4000. So the focuser will attempt to drive to
position 5500 using full steps (doing some maths that is 3000 half-steps or a final real position of 7000).
This could damage the focuser by driving beyond the maximum safe position.
85 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 FIRMWARE
Create a project folder on your computer that will hold all the files required for the controller. Download
the firmware zip file from the Sourceforge site.
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/ARDUINO%20FIRMWARE/
The Arduino IDE will automatically place the Nano chip into flash mode and once the upload is completed,
the Nano is reset and the controller starts running the firmware.
Do not edit or replace any of these provided library files. They have been edited and modified to use with
the myFP2 firmware.
86 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ARDUINO IDE CONFIGURATION
Under File, Preferences, turn on line numbers and Show verbose output during compilation.
FIRMWARE FILES
Each driver board has its own firmware file. For example, the A4998 driver board has the folder
myFP2_A4998_xxx and in that folder is the file used to program a controller with a A4998 driver board.
Features like the OLED display, Temperature Probe, Backlash are all options. These are either enabled or
disabled by the user.
The idea is the user configures the firmware options to match the hardware they have purchased.
These options are in the focuserconfig.h file and most options are disabled by default.
87 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SPECIFY THE DRIVER BOARD
You first need to specify the Driver board you are using. This is done in the section SPECIFY DRIVER BOARD
HERE of the main firmware file. The following example shows the driver board as DRV8825TFT22.
// ---------------------------------------------------------------------------
// SPECIFY DRIVER BOARD HERE
// ---------------------------------------------------------------------------
// Set DRVBRD to the correct driver board, ONLY ONE!!!!
// uncomment the correct line for your controller
//#define DRVBRD DRV8825HW203
#define DRVBRD DRV8825HW203TFT22 // Wiring details in myBoards.h
Some driver boards may also require you to change an option in the myBoards.h file. If this is a case, a
comment will be in SECTION 1 of the main firmware .ino file instructing you to do this.
Enable the correct line which matches the stepper motor configuration you are using. For example, if using
a NEMA14 0.9° stepper motor running at half steps, the correct setting is shown below
The above numbers are based on FULL stepping. If using HALF stepping, multiply these values by 2.
Find and change the line below IN GREEN to reflect the motor port you are using
// Stepper Motor stuff - USE THE CORRECT ONES FOR YOUR STEPPER MOTOR
// Motor port on the L293D shield to use
#define Motor_Port 2 // use M3 and M4 as its easier to connect
// change the above line to match the port you are using on the L293D shield
// it is either 1 (M2/M1) or 2 (M3/M4)
88 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
THE focuserconfig.h FILE
This is the main configuration file for hardware options. The section SPECIFY HARDWARE OPTIONS HERE of
this file lets you enable options like a display or temperature probe.
HARDWARE OPTIONS
The following example enables the LCD display and the temperature probe, but disables the pushbutton
switches
// ---------------------------------------------------------------------------
// SPECIFY HARDWARE OPTIONS HERE
// ---------------------------------------------------------------------------
// Caution: Do not enable a feature if the associated hardware circuits are not
fitted on the board
// Enable or disable the specific hardware below
// To enable the Push Buttons for manual focusing, uncomment the next line
//#define PUSHBUTTONS 1
// To enable the LCD DISPLAY uncomment the next line (LCD1602, I2C)
#define LCDDISPLAY 1
// ---------------------------------------------------------------------------
// SPECIFY LCD DISPLAY TYPE
// ---------------------------------------------------------------------------
// uncomment one of the following LCDxxxx lines depending upon your lcd type
//#define LCD1602 1 // 16 character, 2 lines
//#define LCD1604 2 // 16 character, 4 lines
#define LCD2004 3 // 20 character, 4 lines
If you are using a 1.3” OLED display using the SSH1106 driver chip, make the following change.
// ---------------------------------------------------------------------------
// SPECIFY OLED DISPLAY DRIVER TYPE
// ---------------------------------------------------------------------------
// uncomment one of the following USE_SSxxxx lines depending upon your lcd type
// For OLED 128x64 0.96" display with SSD1306 driver, uncomment next line
//#define USE_SSD1306 1
// For OLED 128x64 1.3" display with the SSH1106 driver, uncomment next line
#define USE_SSH1106 2
89 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Once you have made the required changes, reprogram the controller with the
revised firmware.
For example, if you enable the OLED display in the firmware and the hardware has not been added to the
controller - then you can expect some pretty annoying and frustrating problems to occur.
Important settings are stored in the controller EEPROM; are remembered from session to session; and can
be configured using the Windows Application as part of the Initial Setup of the myFP2 controller.
Values are retrieved from the controller when connecting using the Windows Application or ASCOM driver.
Some of these settings can be updated when connecting to the myFP2 controller.
Note: Stepper Coil power means that at the end of the move, when the stepper motor is stationary, power
is either OFF or ON to the stepper motor coils. If OFF, this saves power, but it might mean that a heavy
focuser might start to slip if pointed towards zenith (less of a problem if using a geared NEMA stepper
motor). To minimize this slippage, set the Stepper Coil Power to ON. The ON setting consumes power when
the stepper motor is not moving. Some stepper motors might get hot in operation if this setting is ON. You
will need to check your stepper motor if this is happening. The recommended PG27 stepper motor is fine
with Coil Power OFF. If using micro-stepping (any stepping mode other than FULL steps) with a NON-
GEARED MOTOR then Coil Power should be set to ON.
Note: Remember NOT to use the Focus Lock Screw on your focuser; leave the screw loose or remove it. The
Stepper motor will hold the focuser in place. If you leave the screw in and accidently tighten the focus lock
screw, then serious damage can occur to the stepper motor or focuser.
90 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
UPLOADING ARDUINO FIRMWARE CODE TO THE UNO/NANO
To upload any firmware to the controller, select the correct board from the Tools > Board menu. Next
select the correct serial port from the Tools > Serial Port menu.
Press the upload button in the Arduino environment. The board will automatically reset and the sketch
will be uploaded.
The term “Arduino Firmware Code” refers to the Arduino program (ends in .ino) that contains the focuser
code and when executed by the Arduino, makes the chip act like a myFP2 controller.
Note: Depending on the Arduino Nano chip you are using, with the newer Arduino IDE v1.8.13 you may
need to specify the Old bootloader to reprogram the chip.
91 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
INITIAL SETUP FOR ALL CONTROLLER BOARDS
Some values are sent to the controller when connecting and some values are retrieved from the controller
when connecting. Please see the following video’s
https://www.youtube.com/watch?v=mZmWG_vQ1uM
https://www.youtube.com/watch?v=yuXUDxkdAgU
https://www.youtube.com/watch?v=jsq7kXDv3_Y
In operating the focuser, you will need to determine the correct settings for maxStep that matches your
focuser and type of stepper motor being used.
Once you have determined the right step mode setting to use, do NOT change it. If you decide to use full
steps then perform the initial setup using full steps. If you decide later to change to half steps, you will need
to perform the initial setup again. It is NOT recommended to change step mode during an observing or
imaging session.
CHANGING STEP MODE INVALIDATES THE FOCUSER POSITION. YOU WILL NEED TO DO THE INITIAL SETUP
AGAIN IF YOU CHANGE THE STEP MODE.
Remember that if using half steps or a gear drive pulley belt system, the number of steps can be quite large.
However, using a stepper motor at full steps which has 100 steps per revolution and is direct connected
means that that you cannot use a maxStep size of 32000 as this is 320 full turns of the focuser knob, and
would result in damage to either the stepper motor or the focuser.
What you will do as part of the initial setup is connect the focuser to the computer via a USB cable, run
the Windows application, and ensure that the stepmode, step-size and maxStep values are entered and
sent to the controller.
Within the Windows application, the parameters for Step-Size and maxStep (maximum permissible) are set
on the Extra Settings menu and must be set before connecting to the controller.
92 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
HOW TO SET THE FOCUS CONTROLLER
In this section we cover how to initially set up the focus controller and the settings that are required for
basic operation.
// To enable the Push Buttons for manual focusing, uncomment the next line
//#define PUSHBUTTONS 1
and make sure that the #define is commented out (preceded with // )
93 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ADJUSTING THE STEPPER MOTOR DRIVER POT MANUALLY
It is best to use a ceramic or plastic screwdriver when adjusting the pot. I would suggest a plastic knitting
needle which has the end filed down to look like a screwdriver.
1. With the controller connected via USB, and 12V power to the driver board, set the focuser position
to 0 and the Motor Speed to SLOW
2. Set the step mode to what you have calculated as needed for your system
3. Enter a focuser position of 5000 and click the Goto button
4. Wind the pot all the way anticlockwise until the motor stops moving
5. Now very slowly turn the pot clockwise until you see the motor start to turn. If the maxSteps is
reached, just reset the focuser position to 0 and then type in 5000 for the position and click Goto
again
6. Slowly turning the pot, when you see the stepper start to move ok without jerking, then slowly turn
no more than 1/8th clockwise from that point
7. It should now be close enough
8. If you go too far then there will be too much current and the motor will run hot. You should use no
more than 12V external power
On some driver-boards clockwise might be anticlockwise. Once current is set, the stepper motor should run
smoothly without missing steps (a missed step will be a sudden jerk which you will be able to feel or hear).
If there is any of this, you might need to ever so slightly turn it a little more. Be careful as a little turn can
make significant changes in current.
94 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SET STEP SIZE
Select the MotorSettings tab. Enter the correct settings for step size.
SET MAXSTEPS
95 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SET STEP MODE
When the controller connects, the step mode is retrieved from the controller. Select the Motor Settings
tab. From the drop-down list, choose the correct step mode, then click the Set Step Mode button to update
the controller. The step mode is now saved in the controller and will be remembered.
Each driver board type has its own limit for micro-stepping. If you try to send an invalid step-mode to any
driver-board it is ignored by the controller firmware.
For instance, sending a step-mode of 4 to a ULN2003 controller will cause the controller to ignore the
request and the controller will use the default of full-steps.
96 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
TEST DIRECTION
Now that the focuser has the correct values, you can test the direction setting to ensure the focuser is
moving in the correct direction. Reverse direction is on the Motor Settings tab.
This assumes that you have set the stepper current correctly if using a DRV8825/EasyDriver/RAPS128 or
A4998 driver board.
a) In the focuser position text box, enter 0 as the current focuser position and click the SET POSITION
button to send the position to the controller
b) Ensure that external power is ON to the stepper motor. The focuser is currently at position 0
c) Click the +100 button
d) If the focuser does not move at all, then click the Reverse Direction button to enable that setting, then
click the +100 button again
e) The focuser should move 100 steps outwards
f) Clicking any + button should move the focuser outwards and any – button the focuser should move
inwards towards 0
When connected to the focuser, using the Windows App, clicking a -100 button moves the focuser draw
tube inwards (away from you) and clicking a +100 button moves the focuser draw tube outwards
(towards you).
If this is the case, do NOT use reverse direction. You must swap over the coil pairs of the stepper motor so
that the rotational direction is changed.
Please read this section in the PDF about how you can change the direction of the stepper motor.
The controller will remember stepsize, maxSteps, stepmode, coil power, reverse direction and focuser
position. You can also set other defaults such as Motor Speed, LCD Display Time and other settings at this
time.
FROM THIS POINT ON, DO NOT CHANGE THE STEP MODE OR ENTER A NEW FOCUSER POSITION AND CLICK
SET POSITION AS THIS WILL ALTER THE CONFIGURATION OF THE STEPPER AND RESULT IN LOSS OF
ACCURACY OF POSITION AND ALSO POSSIBLE DAMAGE TO THE FOCUSER OR STEPPER MOTOR.
If you need to set up backlash [on the Backlash tab], consider doing this once you have your focuser
configured and working. Please see the section on backlash to determine how these settings can be
determined and configured.
97 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ADDITIONAL FIRMWARE SETTINGS
These settings appear in the section SPECIFY HARDWARE OPTIONS HERE of the focuserconfig.h file
SUPERSLOWJOGGING
This option allows an extra delay to be inserted in jogging moves to enable very slow jogging to take place.
SHOW BOOTMESSAGES
This option will display a number of boot messages during start-up (on the display) and should only be used
for diagnostic purposes.
// To enable start boot screen to show start-up messages, uncomment next line
//#define SHOWBOOTMSGS 1
The downside of this option is that the display [if enabled] will only be updated after 5s has elapsed since
the last pushbutton move occurred.
98 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 WINDOWS APPLICATION
The myFP2 application gives full control of the focuser (supports ALL build options). Note that the majority
of settings are remembered/saved by the application or within the controller. The Menu provides access to
Exit (quit the program), Settings, Language and About (Copyright message).
The application is arranged as a series of tabs. When first started, the application will ask for the location
where data logfiles and error logfiles will be stored.
Click the button and select the desired location. Once selected, the form will look like
Click the Close button to continue. The application displays the connection tab.
99 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
CONNECTION TAB
The connection tab allows you to specify the serial port [COM port] and speed [9600] to which the
controller is connected. Buttons are also provided for Connecting, Disconnecting and Refreshing the list of
serial ports.
Once connection is established, controller parameters will be retrieved and then the Main tab will be
displayed.
Board
This text box is updated to reflect the current board type. This update occurs when a connection is made to
the controller. Possible board types are
• myFP2 is for all myFocuserPro2 boards and myFocuserPro2 firmware
• myFP2N is for Nextion boards running Nextion firmware myFP2N
• myFP2M is for the myFP2M boards and myFP2M firmware
• myFP2E is for all myFP2ESP boards running myFP2ESP firmware (includes WEMOS and CUSTOM
board types)
Version
This text box is updated to reflect the current firmware revision number. This update occurs when a
connection is made to the controller.
Controller is a Micro
Check this box if the Arduino controller is a Micro. For all other controllers, leave unchecked. This also
requires special changes to the Arduino firmware file.
COM Port
Use the dropdown list to select the correct comport that the myFP2 is connected to
Connect
After selecting the correct comport, click Connect to connect to the myFP2 controller.
Disconnect
Disconnects the myFP2 controller.
Refresh
Refreshes the list of available comports.
When connecting to a controller, the On Connect send group lets you choose how the controller will be
initialized.
• Profile
This option lets you send a profile [file that contains controller settings] to the controller when
connecting. This sets the controller parameters to a specific value or state. Profiles are loaded and
saved on the Profile tab. Please read the section on Profiles for more information. After sending
the values to the controller, any remaining controller values or settings are read from the
controller.
• Update on Connect
This option will set any of the values which are checked in the Update On Connect group. You
would enable the required checkboxes BEFORE connecting to the controller. After sending the
values to the controller, any remaining controller values or settings are read from the controller.
• Nothing
This option does not initialise the controller with any values. When the connection is made, the
application requests all controller settings and sets the application values to match the controller.
101 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
UPDATE ON CONNECT SETTINGS
The connection tab has a group named Update On Connect. These checkboxes allow you to send specific
values to configure the controller when a connection is made.
In general, because the controller remembers specific settings, there is no need to do this all the time, but
it should be done at least once or twice when initially setting up the controller.
If the checkbox is checked, the current value for that setting in the application will be send to the controller
when connecting. If the checkbox is unchecked, the value will be read from the controller once a
connection is made, and the values in the Windows application will be updated to reflect the current values
in the controller.
Backlash compensation
If this checkbox is checked, the following values (on the Backlash tab) in the Windows application will be
sent to the controller when a connection is established.
• Backlash IN enabled state
• Backlash IN step-count
• Backlash OUT enabled state
• Backlash OUT step-count
Step-Size
If this checkbox is checked, the following values (on the Motor Settings tab) in the Windows application will
be sent to the controller when a connection is established.
• Step-size enabled state
• Step-size in micros
102 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Motor Speed
If this checkbox is checked, the following value (on the Motor Settings tab) in the Windows application will
be sent to the controller when a connection is established.
• Motor speed
Coil Power
If this checkbox is checked, the following value (on the Motor Settings tab) in the Windows application will
be sent to the controller when a connection is established.
• Coil Power enabled state
Reverse Direction
If this checkbox is checked, the following value (on the Motor Settings tab) in the Windows application will
be sent to the controller when a connection is established.
• Reverse Direction state
Step Mode
If this checkbox is checked, the following value (on the Motor Settings tab) in the Windows application will
be sent to the controller when a connection is established.
• Step mode
Sending a step mode value that is not supported by the focuser will be rejected by the firmware. However,
in most cases, the Windows application will check the step-mode value and issue a warning if the controller
cannot support the selected step-mode.
103 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
MAIN TAB
The Main tab provides basic control of the focus controller, with operations such as move, halt, go and
home. The jogging control is also on the main tab. Status messages are displayed in the fields at the bottom
of the application. The Exit button will exit the application.
Focuser Position
This text fields displays the current focuser position. This filed can be changed by typing a new value in the
text field. After typing the new value in the field, you must use the ENTER key to ensure the value is
validated. If the value you entered is invalid, then the field is updated with a default value. If a new value is
entered, you can then go to the desired position by clicking the GOTO Position button, or you can change
the current focuser position to the new value [without moving the focuser] by clicking the Set Position
button.
GOTO Position
Type in the desired focus position in the Focuser Position text box (digits only, < maxStep, 0 or > 0) and
press the ENTER key to finish the text entry. Next click the GOTO Position button. The focuser will move to
the specified position.
Get Position
Returns the current myFP2 controller position in the Focuser Position text box.
Set Position
Type in the desired focus position in the Focuser Position text box (digits only, less than Maximum Position,
0 or greater than 0), press ENTER to terminate the text entry, then click the Set Position Button. The focuser
will NOT move but the focuser position is updated.
HOME
The focuser will move to position 0 and stop.
104 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Set Maximum Position
Type in the desired maxStep value in the Maximum Position text box (digits only, greater than the focuser
position) and terminate the text entry by pressing the ENTER key, then click the Set Button.
HALT
Halts the focuser if currently moving.
-500 to 500
These buttons provide a means to move the myFP2 controller by a specified number of steps. For example,
clicking +10 will move the focuser +10 steps. Moves are not permitted when temperature compensation is
enabled.
Jogging
This control lets the user move the focuser under jog control. Dragging the control to the left moves the
focuser IN whilst dragging the control to the right moves the focuser OUT. The speed is controlled by the
motor speed setting. Jogging continues as long as the mouse is held down or the control is NOT at the
midpoint of the control. When the mouse is released, the control is set to 0 and de-activated, jogging stops
and the current focuser position is retrieved from the controller. Jogging also stops if the HALT button is
clicked. A single click on the control stops the focuser moving by sending a HALT command to the
controller.
Status Messages
Text box used to indicate status messages and responses from myFP2 controllers.
EXIT
Exits the application.
TEXT IDENTIFIERS
T: Temperature
SM: Step Mode
MS: Motor Speed
Idle Motor moving status, changes to Moving when the motor is moving
Connected: True if connected, False otherwise
105 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
TEMPERATURE TAB
Temp Offset
The Temp offset entry-box provides a mechanism for adjusting the returned temperature value for
calibration.
Adjustment values range from –3 to +3. For example, typing -1.5 into the entry-box will subtract 1.5
degrees C from the returned temperature value.
To set the temperature offset, click inside the entry-box and type the desired value (for example -1,32) and
then press Enter. Once the Enter key is pressed, the entered value is validated (rounded to 2 decimal places
and bound checked at -3 and +3) and shown corrected in the entry-box (using a decimal separator of a
decimal point).
After typing the new value in the field, you must use the ENTER key to ensure the value is validated. If the
value you entered is invalid, then the field is updated with a default value.
Temperature
The temperature text field displays the current temperature read from the controller (if one is fitted and
working).
Get “Temperature”
Requests the temperature from the myFP2 controller (if a temperature probe is supported and attached)
and display the adjusted value in the Temperature Text Box.
TC Available
Updated when connected to a myFP2 controller. If checked, the controller supports temperature
compensation.
106 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Temp Comp Direction
When checked means that the focuser temperature compensation move will be applied inwards. When
unchecked, the focuser temperature compensation move will be applied in an outwards direction. If the
application is connected to the controller, then the new value will be sent to the controller.
TC ON/OFF
If the controller supports temperature compensation, this checkbox can be used to turn temperature
compensation in the controller ON or OFF. If the application is connected to the controller, then the new
value will be sent to the controller.
Celsius
When checked displays temperature value in Celsius. If the application is connected to the controller, then
the new value will be sent to the controller.
Temperature Coefficient
Steps per degree (0-400) is the coefficient value, which determines how many steps the focuser will move
on a one-degree temperature drop (each focuser is different and this value must be calculated). After
typing the new value in the field, you must use the ENTER key to ensure the value is validated. If the value
you entered is invalid, then the field is updated with a default value. If the application is connected to the
controller, then the new value will be sent to the controller.
Temperature Precision
The drop-down box provides a list of the currently available temperature precision settings, from 0.5
degree to 0.06125 degree resolution. The current highlighted value is shown. If the application is connected
to the controller, then the new value will be sent to the controller.
107 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
GRAPH TAB
If refresh temp is enabled [on the Logging tab] then a plot of the measured temperature will be displayed
and updated at regular intervals.
108 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
PRESETS TAB
There are 8 preset focuser positions
which a user can access. Preset
positions and labels are remembered
by the application and preset
positions set to 0.
TO SET A PRESET
Enter the position in the text field for that preset. When finished entering the position press the ENTER key
to save the entered value. The new preset position value is saved.
Go
To move the focuser to a preset position, click the Go button for that preset.
CURRENT POS
To set a preset position to the current focuser position, click the Preset’s CurrentPos button. The preset
position is updated and saved.
HALT
If the focuser is moving to a preset, the move can be aborted by clicking the HALT button.
Clear
To clear all the preset labels and position values to defaults, click the Clear button.
109 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
MOTOR SETTINGS TAB
Motor-Speed
This controls the relative speed of the stepper motor. The speed can only be changed when the focuser is
NOT moving. If the application is connected to the controller, then the new value will be sent to the
controller only when the Set button is clicked.
Step-Mode
To set the Step-Mode, select the desired stepping mode from the dropdown list. This should be set only
ONCE during the initial setup and after than remain unchanged. Changing stepmode during a session
invalidates the focuser position. If the application is connected to the controller, then the new value will be
sent to the controller only when the Set button is clicked.
Please see the section in this PDF on determining your focuser step size value.
Coil Power
When ON coil power is ON [checked] and the stepper coils remain powered after the move is completed. If
the application is connected to the controller, then the new value will be sent to the controller only when the
Set button is clicked.
110 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Reverse Direction
When ON [checked] the motor moves in the opposite direction (IN means OUT and OUT means IN). If the
application is connected to the controller, then the new value will be sent to the controller only when the Set
button is clicked.
GET
Retrieves the values on the Motor Settings tab from the controller and updates the form’s values.
SET
Sends the values on the Motor Settings tab to the controller.
111 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
EXTRA SETTINGS TAB
SlowJogging
When checked enables super slow jogging
112 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
BACKLASH TAB
The myFP2 supports backlash for both IN and OUT directions. Backlash is only applied if the move is in the
OPPOSITE direction to the previous move, and the number of backlash steps is applied BEFORE the move is
executed.
IN Steps (0-255)
The number of steps of backlash to apply after the IN move has completed. After typing the new value in
the field, you must use the ENTER key to ensure the value is validated. If the value you entered is invalid,
then the field is updated with a default value. If the application is connected to the controller, then the new
value will be sent to the controller only when the Set button is clicked.
113 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DISPLAY TAB
LCD Enabled
When checked enables the controller’s display. If the application is connected to the controller, then the
new value will be sent to the controller only when the Set button is clicked.
DELAYDISPLAYEDUPDATE
When checked disables updating of the controller display and temperature till 5s has elapsed after a move
has completed If the application is connected to the controller, then the new value will be sent to the
controller only when the Set button is clicked.
114 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Page Display Option
This option provides a means of enabling or disabling each display page. The text box accepts a string of
binary digits [0 or 1]. If the bit=1 the page is shown; if the bit=0 the page is not displayed. If the application
is connected to the controller, then the new value will be sent to the controller only when the Set button is
clicked.
Example
I want pages 0,1 showing I would write
0011
then click the SET button. The default is 11 – only the first two pages are shown.
Note the following for the number of pages for each display type
GET
Get the settings from the controller and update the values shown on the Display tab.
SET
Send the settings on the Display tab to the controller.
115 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DELAYS TAB
Delay (s) 2-10 on Connect
Specify the delay in seconds after
connecting that the driver will wait
before sending a command to the
myFP2 controller.
DelayAfterMove
Specifies the delay in milliseconds (0-255) that is applied after a move, to prevent any blurring of images
captured caused by any mechanical residual movement or vibration of the stepper or focuser during
focusing.
This is most useful when auto-focusing because the capture time is relatively short in duration.
After typing the new value in the field, you must use the ENTER key to ensure the value is validated. If the
value you entered is invalid, then the field is updated with a default value. If the application is connected to
the controller, then the new value will be sent to the controller only when the Set button is clicked.
GET
Get the setting DelayAfterMove from the controller and update the value shown on the Delays tab.
SET
Send the setting value of DelayAfterMove on the Delays tab to the controller.
116 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
LOGGING TAB
Position Update
Select the desired (5s, 10s, 30s, 1m) refresh interval for getting the current focuser position from the
controller (when connected).
Temp Update
Select the desired (5s, 30s, 1m, 5m) refresh interval for getting the current focuser temperature from the
controller (when connected). In the Windows app we now have a separate timer for Position and
Temperature. For Temperature compensation, you must set the temperature coefficient AND start the
Refresh Update timer BEFORE enabling temperature compensation.
Refresh Position
When ON [checked] the application will periodically poll the myFP2 controller and request a position
update. The polling interval is set under the settings menu
Refresh Temp
When ON [checked] the application will periodically poll the myFP2 controller and request a temperature
update. The polling interval is set under the settings menu
Log Errors
To generate a log file for debugging and trouble-shooting purposes, check the Log Errors checkbox.
117 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
PROFILES TAB
Profiles are a text file that contains all of the controller settings. These settings are listed in the two
windows as text items to inform you of the values which will be sent when connecting.
Profiles are useful when using the same application to work with different controllers [not at the same
time]. For example, you might have an observatory scope and a grab and go scope. Each of the telescopes
has a dedicated myFocuserPro2 controller, each with different settings.
You can create a profile for each of these and save the profile in a text file. Using the profile tab, you can
load the profile before connecting to the controller. This ensures that the settings for each controller are
managed correctly.
Name
When creating a saved profile, type the name of the profile into the text field.
Load
Loads a profile. A file chooser dialog will be displayed,
• Navigate to where the profile is stored
• Click on it to select the profile
• The application will upload all the saved setting into the application
• When this process is done, select the Profile radio button in the On Connect Send group on the
Connection tab
• Click Connect
118 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Save
To save a profile
• Type a name for the profile in the name text field
• Set all the required settings by using the various tabs of the application to set the values required
• Once all values have been specified, go back to the Profile tab and click Save
Typical Profile
--myFocuserPro2 Controller Profile
MaxSteps=12000
BacklashEnabledIn=False
BacklashEnabledOut=False
BacklashStepsIn=10
BacklashStepsOut=20
CoilPower=True
ComPortString=COM4
ComPortSpeed=9600
DelayAfterMove=0
DisplayEnabled=False
LCDPageDisplayString=11
LCDPageDisplayTime=2
LCDUpdateOnMove=False
DelayedDisplayUpdate=False
MotorSpeed=2
ReverseDirection=False
StepMode=1
StepSizeEnabled=False
StepSize=22.20
TempCoefficient=24
TempMode=True
TempResolution=10
TempCompDirection=True
TempOffset=-1.5
Some additional values [non-controller] are saved in the profile. The profile is a text file and can be edited
with a text editor [not recommended].
119 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
THE SETTINGS MENU
ChangeInStepModeWarning
Enabled or disabled. When enabled, it warns the user
about changing the step-mode when the focuser is
connected.
Force Exit
In the event of problems, this provides a clean method of
exiting the program Jogging - Get the jogging status and
the last jogging direction.
Log File
Reset Error Log File path displays a dialog box to specify
the drive and directory where the error log file and other
log files are to be stored.
Motor Speed
Reboot Controller
This will restart the Arduino focus controller. Please wait 3-5s before issuing any command.
SourceForge Site
Opens a web browser and display the myFP2 website where you can download the latest drivers, software
and documentation.
120 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Step Size
This menu has two options – “Check if StepSize is enabled in the controller” queries the controller and
displays if StepSize is enabled, and “Get controller StepSize” displays the current controller setting for
StepSize.
Temperature Compensation
Please read the section on temperature compensation.
Temperature Precision
This setting allows the user to control the resolution of the DS18B20 temperature probe from 0.5 degrees
down to 0.0625 degrees. This setting is remembered by the controller.
Shortcut Keys
This will list all the shortcut keys for the application. The ALT key + another key represents a command.
121 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
THE ERRORLOGPATHNAME FORM
You can specify the directory/folder where
the error log file and other settings files will
be stored.
When the application is first installed, this path is set to NULL, so that when the application is run for the
first time, this dialog box appears at start-up for the first time.
122 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
LANGUAGE SUPPORT
Other languages can easily be added. Translations have been done using online translation sites and may
not be a true or accurate translation.
If you find or would like to suggest a better alternative translation or another language, please let me know.
123 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
GETTING YOUR FOCUSER SETTINGS CORRECT
To ensure your focus controller is working correctly, there are a couple of adjustments you should do once
the controller has been programmed.
MOVING OUT
means the focuser tube is moving away from the telescope towards you
When connected to the focuser, using the Windows App, clicking a -100 button moves the focuser draw
tube inwards (away from you) and clicking a +100 button moves the focuser draw tube outwards
(towards you).
If your telescope moves is opposite to this then you will need to rewire the stepper motor coils by reversing
the wires on pin 1 and pin 2 of the RS232 connector [pin1 wire goes to pin2 and pin2 wire goes to pin1] so
that the motor is moving in the correct direction.
If you do not do this then the home position code will not work no matter what you do.
In the firmware myBoards.h file, there are THREE delay settings for each board that is used to control the
motor speed for each setting.
There are different values for each board type. For the DRV8825HW203 board, the settings look like
If a user wanted to change the motor speed, they would alter these settings by changing the values to a
different number. Lower values increase the motor speed and higher values slow the motor speed.
Note: The lowest value is 1 and the highest value is 14000. It is critical that you use values within this range.
For some boards the stepper might not speed at all if a low value is used.
The process is simple – you can send a new delay setting (for the current motor speed setting) and then you
can issue a move command to test the result. This can be repeated without reprogramming the controller
till a suitable value is found. You can also change the speed setting and repeat this process to determine
suitable values for other speed settings. Once you have the correct values, you can then edit the correct
boards settings in the myBoards.h file and reprogram the controller to make the changes permanent.
124 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
The following steps illustrate how to do this using the Windows application.
Click OK.
A form is displayed allowing a new value for the motorstepdelay for FAST to be entered. Type in the new
value then press the ENTER key [values are only checked if the ENTER key is pressed]
In this example a new value of 2000 is typed and the ENTER key is pressed. Click Save new value then click
the Close button
125 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
STEP4: TEST THE MOTORSPEED USING THE MOVE BUTTONS
For a NEMA motor it is best to use Moves of 100 or 200 steps as this can easily be translated into motor
movement [a 200 steps per revolution NEMA motor at HALF steps would go ½ a revolution]. If the motor
pully is marked, degrees of rotation can easily be seen when moving.
After STEP3 setting a new stepdelayvalue, this step involves sending the motor a specified number of steps.
Ensure that the motor steps smoothly and there is no missed steps [missed steps will occur if the
stepdelayvalue is too low).
It is best to alter values around 500 to 1000 at a time. If the current value is 1, try 500, then try 1000 and so
on till you find a suitable value.
Use the Arduino IDE to edit the myBoards.h file and update the value for your board. In our example, we
used the DRV8825HW203 board. The values which we found were acceptable was 1200.
In the myBoards.h file we look for the line that is #define DRVBRD DRV8825HW203
We make the necessary changes to DRVFAST, save the files, then reprogram the controller.
It is only necessary to calculate the delay for FAST speed. The values that the firmware uses for MEDIUM
and SLOW speeds is calculated from the FAST value.
Please see the video which demonstrates changing the motor speed delay.
https://youtu.be/d5wK81s87Lg
126 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
THE BACKLASH SETTINGS
Because the backlash is implemented in this way, the final position will end up being the same position as
that requested by the move.
You will need to use the Windows application to perform the tests below.
Remember that backlash is only applied if enabled and the direction of move
is opposite to the previous move.
It is best to use a dial indicator (or digital caliper) to determine if the focuser
has moved. These can be setup on the end of the focuser lip, eyepiece,
imaging camera etc to give an indication of movement. If you do not have
one, you could mark a small dot on the larger focuser knob or gear.
127 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Once you have the dial indicator positioned correctly,
start the Windows Application (ensure 12V is connected
and turned on else the stepper will not move).
TO SET BACKLASH
• Click the Connection tab
• Connect to the controller.
• Go to the Backlash tab.
• Check or Uncheck the IN and OUT enabled checkboxes to the desired state. If the checkbox is
checked then the state is Enabled. These states will be sent to the controller.
• In each of the In and OUT steps fields, type the new value, then press the Enter key. These states
will be sent to the controller.
DO NOT have backlash compensation in both the client application and the firmware enabled at the
same time.
Once you have setup the correct backlash values in the controller, you can UNCHECK the Send Backlash
Settings when connecting to controller checkbox.
128 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Do Not Be Fooled
Do not be fooled by trying to determine backlash visually. Inherently you will get different and inconsistent
values. You must make sure that the focuser is outside the critical focus.
The original goal was to get around 10 steps within the critical focus zone. If you try to determine backlash
when the focuser is within the critical focus zone, you may need up to 10 steps or more before any visual
indication of change occurs. The exact amount of backlash steps cannot be determined.
Determining backlash using the visual approach is fraught with inherent issues and should be avoided.
129 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
JOGGING
The Windows application provides an ability to jog the focuser in either direction. Dragging the control to
the left moves the focuser IN whilst dragging the control to the right moves the focuser OUT.
Jogging continues as long as the mouse is held down or the control is NOT at the midpoint of the control.
When the mouse is released, the control is set to 0 and de-activated, jogging stops and the current focuser
position is retrieved from the controller.
A single click on the control stops the focuser moving by sending a HALT command to the controller.
If backlash out is enabled, and backlash out steps is set to 50, then consider the following scenario.
1. The user sets the speed to SLOW and then drags the jogging control to move the focuser in
2. The focuser begins to move inwards
3. The user sees that they have gone past best focus so they drag the control to move out
4. The focuser immediately applies backlash out and moves the focuser by 50 steps out (the backlash
out amount), then starts jogging one step at a time.
If you intend to use jogging for MANUAL FOCUS, it is best to disable backlash.
SUPER-SLOW JOGGING
Some users find normal jogging speed to quick. The option for super slow jogging applies to jogging only
and is specified in the firmware section SPECIFY HARDWARE OPTIONS HERE of the focuserconfig.h file
To enable super slow jogging, uncomment the line in the firmware as shown below
130 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2 MINI APPLICATION
The myFP2Mini is a slimmed version of the myFP2 Windows application, but retains most of the same
features. It is designed to be compact and save on screen real-estate.
The majority of the menu options are the same as the main
Windows application.
EXTRA SETTINGS
131 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
DATA LOG VIEWER
The option “Log Temperature and Position” allows the user to save the temperature probe reading and the
focuser position value to a log file for later analysis (such as determining temperature compensation values
for your focuser setup).
This feature is enabled only when the automate feature is enabled. During the automatic update (when the
automate check box is checked), the routine will get the current temperature and focuser position from the
myFP2 controller. If the temperature logging file is enabled, then these values will also be written to the
associated log file.
Below is an example of the application myLogViewerPro, which can display both myDewControllerPro3 and
myFP2 data log-files for analysis.
132 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2-ANDROID-BLUETOOTH
The provided Android application was developed and tested on a Samsung S9+ phone and Samsung Tablet
A4.
133 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
How to pair the BT Controller – 2
If you tap on the HC-05 Bluetooth device, a
pairing request will be established and you will
need to enter a pin number to pair the HC-05
device to the Android device.
134 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
How to pair the BT Controller - 3
The picture shows the HC-05 as paired.
135 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Main Activity Screen
It is best to have the HC-05 enabled controller powered on and paired with the Android device before
starting the application.
136 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Turn On
Turns on Bluetooth.
137 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Turn Off
Turns off Bluetooth.
138 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Discover Devices
List all available Bluetooth devices that are not
paired.
139 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Get Paired Devices
Get all paired Bluetooth devices.
140 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Compass
Tapping the Compass button will display a
compass based on the user’s current phone
heading.
141 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Quit
When the QUIT button is tapped, a dialog box
will appear asking to quit (Yes or No).
142 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Connect-1
The Connect activity is displayed when the user
has done Setup, followed by tapping the Connect
button.
143 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Connect-2
This example shows an established connection to the Bluetooth controller and the user has tapped the GET
ALL button.
All buttons are self-explanatory. For example, to
get the current controller temperature, tap the
GET TEMP button. To move the focuser 100
steps out, tap the +100 button.
How to calibrate the Compass for the Samsung Galaxy S9+ Android Phone
1. When you are on the start screen, open the phone app
2. Select the dial keypad to manually enter numbers.
3. Next, type *#0*# on your Samsung Galaxy S9 or S9 Plus smartphone.
4. The service menu will open up. Select "Sensor" and scroll down to the bottom of the next menu.
5. You will see "Magnetic Sensor" and below it a circle with a line and a number behind it. This has the
following meaning: Red line with a 0 = The compass sensor must be calibrated Blue line with a 3 = The
magnetic sensor is calibrated 6.
To calibrate the compass, rotate the Samsung Galaxy S9 phone once around all three axes. Do this until the
circle shows a blue line and a 3. Only then is your compass calibrated.
Source: https://www.solvemix.com/index.php/android-smartphones/17-year-2018/2522-samsung-galaxy-
s9-google-maps-arrow-shows-wrong-direction-compass
Android Smartphones, © Solvemix - quick tips, tricks and solutions
145 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myfp2lusb-Linux
The Linux application was written in Free Pascal using the Lazarus IDE on an older laptop (32 bit) running
Ubuntu Mate OS. The application will require generation from the source files so that it will run on your
system. You will need to follow the instructions about how to recompile the application. When you have
done this, copy the myfp2lusb AND myfp2lusb.ini files to a user folder on your Linux system (like a folder
under the desktop).
Controller features are arranged as a series of tab pages. Navigation to tabs is via the tab page control
below the menu bar.
The provided LINUX USB application supports a serial connection to a myFP2 or myFP2ESP focus controller.
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/LINUX/
CONNECTION TAB
Serial Port specifies the local tty device to which
the controller is attached.
Serial Read Timeout (in seconds) is the time the application will wait after sending a command. Once this
time has elapsed without a response, the application flags the connection as dropped.
The Send On Connect group is used to specify which values or settings will be sent to the controller when
establishing a connection.
The Connect button will connect to the myFP2 focuser controller. After connection, the application will
retrieve data values from a connected myFP2 Focus Controller.
Controller parameters are saved in the local file myfp2lusb.ini and sent to the controller when connecting,
and are saved when the program exits.
The Write SPIFFS button will cause the controller to immediately save all focuser settings in internal
memory, saving them for future use.
146 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
LOGGING TAB
The Logging tab lets you control logging for
- Errors
- Focuser Position
- Temperature
The Start buttons are used for both starting and stopping the refresh timers. Once the refresh timer is
started, the text on the button will change to Stop
DISPLAY TAB
The Display tab controls the OLED settings.
147 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
TEMPERATURE TAB
The Temperature tab display the current
measured temperature of the probe attached to
the myFP2ESP focuser controller.
The Temp Comp Direction specifies the direction of the temperature compensation move. The Graph
displays the measured temperature when the Get or Get Values buttons are clicked.
MAIN TAB
The Main tab is the primary tab used after a
connection to a myFP2ESP Focus Controller is
established.
When a move command is issued, the form will update the position on the form during the move.
148 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
CHANGE PORT SETTINGS IN THE myfp2lusb.ini FILE
The INI file will need changing. There is a string for the variable serialport which looks like
serialport=/dev/ttyUSB0
You may need to change this to what is used for your system.
You will need to specify the path where your log files will be stored. The path below points to user bob’s
home folder, and there is a folder on bob’s desktop called myLogFiles
logfilepath=/home/bob/Desktop/myLogFiles
After making the required changes to the myfp2lusb.ini file, save the file.
Alternatively, when the application runs the first time, it will detect that the logfile path has not been
specified in the INI file and ask you to specify the folder where the log files can be saved. Once this is
specified, then the log path is saved for future use.
INSTALL LAZARUS
If you need to recompile the source code, you will need to install Lazarus
149 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
RE-COMPILING THE SOURCE
To recompile the source,
Download the source files and extract the zip file into a folder.
- Start Lazarus
- Menu-Project-Close
Click on the myfp2lusbpi.lpi file in the form and then click Open
From the menu bar select Run-Compile. Once the program is built, the myfp2lusb file can be executed. The
file myfp2lusb.ini must be in the same folder as the executable file.
When the program is first executed, and you did not specify where the log files are to saved, the application
will first ask where to save the log files. After selecting a folder location, the application will save the log file
path and continue.
All files in these sub-folders should be deleted BEFORE starting Lazarus again.
- backup
- lib
o i386-linux
o i386-win32
o x86_64-linux
o x86_64-win64
RASPBERRY PI
The documents are located in the Zip file under the documents folder. This folder contains information
about modifying the synaser.pas file.
150 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
UBUNTU-MATE
You must be a member of the group tty. Use menu, administration, users and groups, manage groups, tty,
properties and ensure that your name is checked, then click OK.
Run a terminal window (as root) in the folder and change permissions of file
chmod +x myfp2lusb
or you can right mouse click the file, properties, permissions and check allow executing file as program.
I had to right mouse click file and chose run as administrator, it seems it cannot connect to tty0 device
without admin privilege
[SETTINGS]
serialport=/dev/ttyUSB0
serialspeed=0
serialreadtimeout=5
delayonconnecttime=2
sendtempmode=1
sendmaxsteps=1
sendreversedirection=1
sendcoilpower=1
sendbacklash=1
sendmotorspeed=1
sendstepmode=1
sendstepsize=1
lcdenable=1
tempmode=1
stepsize=33.29
stepsizeenabled=1
blinenabled=1
bloutenabled=1
backlashinsteps=12
backlashoutsteps=23
reversedirection=0
coilpower=0
stepmode=1
motorspeed=0
tempcoefficient=0
tempcompdir=1
tempoffset=-0.3
refreshtempinterval=10000
refreshposinterval=5000
maxsteps=12000
pageoption=111
pagetime=2000
errorlogging=0
logfilepath=/home/rufus/Desktop/myFP2L/myFP2LUSB/LogFiles
The red settings will need to be changed for your system and username, OR you can leave them unchanged
and when the application runs for the first time, you can specify these when the application loads.
151 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM
myFP2 ASCOM DRIVER
The myFP2 ASCOM driver provided comes with an installer program. The ASCOM driver works with ALL
driver build options.
When run the first time, the settings you see are default settings from the install program. They are NOT
the settings of the controller.
In ASCOM, there is no way to retrieve the settings from the controller BEFORE showing the setup dialog
form. The values for the settings either show the default settings from the installation, OR, if you have
connected previously, the last known state of the ASCOM driver settings.
Settings are arranged as a group, for which there will be an Update on Connect checkbox. If this checkbox
is checked, then the values in that group will be sent to the controller when connected. If this checkbox is
unchecked, then the ASCOM driver will retrieve those settings from the controller and update the ASCOM
settings to match, at which point they will be saved for later use.
To run two focus controllers, you need to install the secondary ASCOM driver (see here)
IT IS IMPORTANT THAT IF USING BOTH THE ASCOM DRIVER AND WINDOWS APPLICATION TO CONTROL
THE FOCUSER THAT YOU USE THE SAME SETTINGS FOR REVERSE DIRECTION, HALF STEPS (or stepmode)
AND COIL POWER IN BOTH THE ASCOM DRIVER AND WINDOWS APPLICATION.
The ASCOM DRIVER has a setup dialog form that is displayed when accessing the Drivers Properties. This
form is arranged as a series of tabs, each tab is accessible by clicking on the name of tab.
Controls must be SET to their correct state BEFORE connecting to the controller, if you want to send
those settings to the controller when connecting.
If you want the group of settings to be sent to the controller when connecting, the Update on Connect
checkbox for those settings must be checked before connecting to the focuser.
152 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM DRIVER CONNECTION TAB
The connection tab provides the main connection point for the driver to connect to the controller.
Controller is a Micro
Check this box if the Arduino controller is a Micro. For all other controllers, leave unchecked. This also
requires special changes to the Arduino firmware file.
Enable TC on connection
When checked, temperature compensation will be turned ON in the controller once a connection is
established.
Trace On
Debug messages are written to a trace file
FocuserSettings MaxSteps
This setting specifies the maximum number of steps for the focus controller and will vary depending upon
each user’s configuration. You should set this to the maximum number of steps that you have calculated
for your focuser [see determining maxStep]. This setting must be specified before connecting to the
controller and will be remembered by the application. See the section on the initial setup of the focuser for
further information. After typing the new value in the field, you must use the ENTER key to ensure the value
is validated. If the value you entered is invalid, then the field is updated with a default value.
153 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
FocuserSettings Update on Connect
If enabled, the Initial focuser position and maxStep values will be sent to the controller when connecting. If
unchecked, the focuser will use the previous saved values in the controller.
CONNECT
When all the settings have been set to their desired states, click the CONNECT button.
REFRESH
The refresh button updates the list of com ports shown in the drop-down list of available com ports.
CANCEL
Aborts the setup dialog form
154 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM DRIVER DELAYS TAB
DelayAfterMove (0-255)
Specifies the delay in milliseconds that is applied after a move is completed to prevent any blurring of star
caused by any mechanical residual movement or vibration of the stepper or focuser during focusing. After
typing the new value in the field, you must use the ENTER key to ensure the value is validated. If the value
you entered is invalid, then the field is updated with a default value. If
155 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM DRIVER DISPLAY TAB
Example
I want pages 0,1 showing I would write
0011
then click the SET button. The default is 11 – only the first two pages are shown.
Update on Connect
If checked, the ASCOM driver will send the LCD Page Time and Update LCD When Moving settings to the
controller when connecting. If unchecked, the LCD Page Time and Update LCD When Moving settings will
be retrieved from the controller when connecting and saved for future use.
156 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM DRIVER BACKLASH TAB
IN Steps (0-255)
The number of steps of backlash to apply after the IN move has completed. After typing the new value in
the field, you must use the ENTER key to ensure the value is validated. If the value you entered is invalid,
then the field is updated with a default value.
Update on Connect
If checked, the ASCOM driver will send the Backlash Settings to the controller when connecting. If
unchecked, Backlash settings will be retrieved from the controller when connecting and saved for future
use.
157 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM DRIVER MOTOR SETTINGS TAB
Motor Speed
The speed of the stepper (delay between steps) can be adjusted in the range Slow-Medium-Fast. The speed
setting is remembered by the controller. If the Update on Connect checkbox is checked, then the value of
motor speed will be sent to the controller when connecting. If the checkbox is not checked, then the
controller will use the last remembered motor speed setting, and the ASCOM driver will retrieve this value
when connecting to the controller and save it for future use.
Coil Power
When enabled (ticked), indicates that coil power is ON and the stepper coils are powered after the move is
completed. If the Update on Connect checkbox is checked, then the value of Coil Power will be sent to the
controller when connecting. If the checkbox is not checked, then the ASCOM driver will retrieve this value
when connecting to the controller and save it for future use.
Reverse Direction
When enabled (ticked), indicates that the motor moves in the opposite direction (IN means OUT and OUT
means IN). If the Update on Connect checkbox is checked, then the value Reverse Direction will be sent to
the controller when connecting. If the checkbox is not checked, then the ASCOM driver will retrieve this
value when connecting to the controller and save it for future use.
Step Mode
The desired micro stepping mode.
Update on Connect
If the Update on Connect checkbox is checked, then the Step Mode setting will be sent to the controller
when connecting. If the checkbox is not checked, then the ASCOM driver will retrieve this value when
connecting to the controller and save it for future use.
158 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM DRIVER STEPSIZE TAB
Enable
This setting turns ON or OFF the reporting of the StepSize value from the myFP2 controller. If you do not
know your step size value, DO NOT enable this feature.
Update on Connect
If checked, the ASCOM driver will send the Step Size Settings to the controller when connecting. If
unchecked, Backlash settings will be retrieved from the controller when connecting and saved for future
use.
159 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM DRIVER TEMPERATURE TAB
Temperature Resolution
Allows the user to control the resolution of the DS18B20 temperature probe from 0.5 degrees down to
0.0625 degrees (9=0.5, 10=0.25, 11=0.125, and 11=0.0625). This setting is remembered by the myFP2
controller.
Temp Offset
The value to subtract from the temperature reading returned from the myFP2 controller before returning it
to the requesting application. Adjustment values range from –3 to +3. For example, typing -1.5 into the
entry-box will subtract 1.5 degrees C from the returned temperature value. After typing the new value in
the field, you must use the ENTER key to ensure the value is validated. If the value you entered is invalid,
then the field is updated with a default value.
Celsius/Fahrenheit
When checked, temperature is displayed in Celsius (default). When unchecked, temperature is displayed in
Fahrenheit. This temperature display setting can be changed at any time.
Update on Connect
If checked, the ASCOM driver will send the temperature settings to the controller when connecting. If
unchecked, Backlash settings will be retrieved from the controller when connecting and saved for future
use.
160 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
ASCOM DRIVER CONFORM VALIDATION
Every release of the myFP2 ASCOM drivers are tested against the CONFORM utility. This program tests to
ensure that the functions/methods/properties provided by the ASCOM driver are compliant to the ASCOM
standard.
All myFP2 drivers are ASCOM compliant and the validation reports are available on the myFP2 site.
Temperature compensation is enabled by the ASCOM Client application. If your client application does
not support this then please contact the developer to have this function added to their application.
For temperature compensation to work, you need to calculate the temperature co-efficient for your
focuser/telescope. The Windows application can automatically calculate the temperature coefficient and
store the value in the controller. Use the Windows application to calculate the temperature coefficient and
store this value in the controller. Once set, the ASCOM driver can use this value.
Here is the part of the ASCOM Conform report for the myFP2 related to temp compensation
17:30:58.416 TempCompAvailable OK True
17:30:58.456 TempComp Read OK False
17:30:58.465 TempComp Write OK Successfully turned temperature compensation on
17:30:58.473 TempComp Write OK Successfully turned temperature compensation off
17:31:06.998 Move - TempComp True Moving to position: 61748
17:31:07.005 Move - TempComp True OK .NET InvalidOperation Exception correctly raised as expected
Conformance test complete
No errors, warnings or issues found: your driver passes ASCOM validation!!
If the client application implements its own temperature compensation support, please disable it. Do not
enable the client support if temperature compensation is implemented in the controller.
Some client applications may not have temperature compensation as a feature. If this is the case, then
enable temperature compensation in the ASCOM driver.
161 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2ASCOM LANGUAGE SUPPORT
Support is provided for multiple languages. Translation has been done by Google translate. Buttons, Labels,
menu items and Hover messages are all translated. If the menu option Language, On Load, Enable is
checked then the ASCOM driver will remember the language setting and reapply the setting each time the
ASCOM driver is loaded.
Other languages can easily be added. Most translations have been done using online translation sites and
may not be a true or accurate translation.
If you find or would like to suggest a better alternative translation or another language, please let me know.
162 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
myFP2-ASCOM-Client APPLICATION TESTER
The myFP2ASCOMClient application that
is actually an ASCOM client and will talk
to any ASCOM focuser driver and allow
you to control the focuser.
You cannot use two instances of the same Windows application to control both scopes. The reason for this
is because the Windows application uses an application setting file that stores certain settings and these
settings need to be different for each scope (such as com port) and hence the application can get confused
as to which controller it is communicating with. As indicated above, Option 3 indicates controlling both
scopes using the ASCOM and ASCOM1 available drivers.
163 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
INDI
Thanks to Alan Townshend the INDI driver is at https://indilib.org/devices/focusers/myfocuser-pro-2.html
Use the Serial interface, enter the correct port, select the correct speed, then select the Main Control tab
and click Connect.
164 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
INDI Main Control
If the connection is successful, the parameters on the Main Control tab will be updated to reflect the
current controller’s settings.
INDI OPTIONS
Click the Options tab. Change the Polling Period to 2000 or 5000. Do not use a value lower than 2000.
165 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
INDI PRESETS
Presets are available on the Presets tab.
166 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
INDI INSTALLATION
The INDI myFocuserPro2 driver is included with libindi >= 1.8.2
Under Ubuntu, you can install the driver via:
167 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
TEMPERATURE COMPENSATION
Temperature compensation is the automatic adjustment of focus position based on changes in
temperature. It will be different for each telescope. This feature is turned ON or OFF by an ASCOM client by
sending the correct command to the ASCOM driver. The Windows application can talk directly to the
controller and enable/disable temperature compensation.
Each user must determine their own compensation value for their equipment. This means calculating a
temperature coefficient value, which is the number of steps the focuser needs to move to best focus when
the temperature changes by 1 degree.
The user waits for the telescope optics to achieve thermal equilibrium and then takes a series of
measurements over a period of temperature change. These measurement results are readings of focuser
position versus temperature which can be plotted on a graph. The slope of the graph then is the
temperature coefficient (ideally the graph should be a linear line but this might not be the case).
Generally, as temperature drops over the course of the evening, the focuser position will move inwards.
We are going to record the in movements over changes in temperature.
Generally, temperature compensation is only applied in one direction (inwards or as a fall in temperature
reading), though some systems might have compensation in both directions.
Assuming we only do temperature compensation in one direction, this also avoids backlash issues which
might accrue from a reverse change in focuser direction.
The following pages outline how to do this with the myFP2 controller and application software.
The first step is to access the Read Instructions option from the Temperature Compensation menu of the
myFP2 windows application. Select the Read Instructions option
168 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
This displays the following MessageBox of the steps you must follow to determine and apply a temperature
coefficient value and enable temperature compensation for your myFP2 controller. The steps are
performed one after the other in order. If you make a mistake, simply start again from Step 1.
If you have already focused the telescope within the last few minutes, click Yes, else click No and refocus
the telescope before starting again.
169 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
When you click Yes, you will be automatically taken to the record dialog option and the following
MessageBox appears.
Just wait for the application to monitor the temperature and prompt you when ready. During this time
interval DO NOT MAKE ANY CHANGES TO ANY SETTINGS. You will be able to see the progress in the Status
messages textbox, as indicated below
170 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Once the program detects a 3 degree change in temperature, a new dialog MessageBox will automatically
appear asking you to refocus the telescope. Click OK and then refocus the telescope.
After refocusing, get the latest temperature reading by clicking the GET button for temperature. Once the
new temperature value is displayed, click the Continue TempCompensation menu option on the settings
menu under Temperature Compensation.
The application will automatically calculate the temperature coefficient and display the value in a
MessageBox (example below) and include an option for you to now update the controller and enable
temperature compensation.
Click YES to Goto the next step. The application will now display the Apply Coefficient Form as shown
below.
171 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
The Steps per Degree is automatically preloaded from the previous calculation. To send this value to the
controller, and enable temperature compensation, check the box Enable Temperature Compensation and
then click the Close button.
Note: If you know the temperature coefficient value for your focuser, you can access this menu directly and
enter the Steps per Degree value manually.
The values are sent to the myFP2 controller and temperature compensation is enabled.
The push buttons and moves are disabled when temperature compensation is enabled in the controller.
The application will query the controller and display the current settings in the status area.
The Windows Application and ASCOM driver support temperature compensation. However, the
controller handles the changes internally when enabled.
172 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
AT THE BEGINNING OF THE EVENING SHOULD YOU FOCUS AT LEAST TWO OR THREE TIMES
WHEN THE TEMPERATURE CHANGES?
That would depend upon your temperature coefficient setting compared to step-size.
If the temperature coefficient setting was 28 steps, and your step size was 4.2, then this means that for
every degree of temperature change, the focuser must move by 28 steps [117.6 microns] to compensate
for the focus change. This pdf explains how to calculate step size, critical focus zone and temperature
coefficient steps.
If the temperature drops by 1 degree, this means we need to move the focuser 28 steps to stay in focus
[the temperature coefficient].
The step size is 4.2 and we have 10 steps in the critical focus zone. So that means the focuser has 10 steps
where it is in focus. But we need to move 28 steps. which is way outside the critical focus zone and so the
image is out of focus and we must move the focuser to stay in focus.
This would mean adjusting the focus every time there is a temperature change of 1 degree.
The direction of temperature compensation moves is set in the Windows application as illustrated below,
173 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
For the ASCOM driver, the screenshots below show how to set the temperature compensation direction
174 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
EEPROM USAGE
The myFP2 controller remembers important focuser settings in the EEPROM of the controller. A smart
algorithm is used to minimize the number of EEPROM writes, as there is a limit of around 10,000 writes
before the EEPROM location becomes unusable.
Whenever you make an important change, the controller will wait 30s before saving the value in
EEPROM. You have to wait 30s before disconnecting and reconnecting or power off.
If you cannot wait 30s, then use the settings menu - option is - Write focuser settings to EEPROM - this
does the save immediately.
The myFP2 controller code, on power up or reset, restores the focuser settings from EEPROM.
You need an ATMEGA328 Nano chip which has 1024 bytes of EEPROM
It is very unlikely that the contents of the EEPROM will wear out even after years of use.
175 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
WHAT TO DO IF YOU LOSE YOUR FOCUSER SETTINGS
1. Unclamp the focuser coupler connecting the stepper motor to the focuser (or remove belt if using a
pulley system)
2. Manually move focuser to initial 0 position (1/2 turn out as described above)
3. Power focuser and start myFP2 Windows application software (not ASCOM driver)
4. Set the step mode to what you used in the initial setup of the controller
5. Enter 0 as the focuser position and click the SET POSITION button
6. Clamp the focuser coupler so that the focuser motor can now drive the focuser
7. Enter your determined maxStep value into the Maximum Position text box and click the Set Button
8. The focuser is now setup. Enter the position for reasonable focus into the Focuser Position text box
and click the GOTO POSITION button to move the focuser to the focus position
These options are designed to work with upgrades to the Arduino firmware or Windows application.
Restore from file - Restores the previously saved myFP2 controller and Windows application settings from
a text file in the specified folder. After restoring the settings, the application will save the myFP2 controller
settings to EEPROM, reboot the myFP2 controller, and exit the application. Next time the application is
started the restored settings will be in effect.
Save to file - Saves the current myFP2 controller and Windows application settings to a text file in the
specified folder (the name of the file is automated)
New releases often occur after you have built and set-up your myFP2 controller.
It is important to realize that new drivers, software and firmware (the Arduino code file) fix issues in
previous versions as well as introduce new features. Make sure you save any downloaded firmware and
software in a folder in case you want to revert back to a previous version.
Support is freely given concerning any current release. Please contact me and I will do my best to work with
you to help resolve any issues you might have. Previous releases are not supported.
I know that updating is a pain, and that sometimes you might be hesitant to change something that works.
Having said that, rest assured that newer releases are produced for sound reasons, and they might fix an
issue that you might be having.
Sometimes the NOTICE with updates will ask you to uninstall the current software before installing the new
release (this occurs with the Windows Application and sometimes the ASCOM driver).
176 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
When a new release of firmware or application software is released, before upgrading, save the settings to
a file. Then install the update, reload the new application, connect to the controller, and then restore the
settings.
Any changes that you make to the either the application or controller settings after a save and before a
restore are lost. The save to file option saves BOTH the firmware settings and the software application
settings at the time that the save to file option is run.
NOTE: I always move the focuser to position 0 before updating any new firmware. This means that once
the new firmware is loaded and the new Windows/ASCOM installed, all I need to do is reset the current
focuser position to 0 after reloading all the settings.
Select from the Settings Menu the Save and Restore Focuser/App settings, then Save to file
Select from the Settings Menu the Save and Restore Focuser/App settings, then Restore from file
Once the settings are restored from the file, the firmware settings are written to EEPROM, the controller is
rebooted, and the application will exit (it needs to exit to update the settings).
When the application is restarted, the new settings will take effect.
177 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
UPGRADING FIRMWARE AND SOFTWARE – METHOD 2
Previous manual method still works and is effective. Only retained here as an alternative.
The important settings are (some of these are recent so might not be on your system)
• Backlash settings
• Focuser Position
• Max Steps
• Coil Power
• Reverse Direction
• Motor speed
• Step mode
• Temp offset
• Step Size
• Temperature Precision
• Temperature Compensation value (if you have undertaken to calculate this)
• Refresh rate of display – how long each LCD page is displayed
• Backlash
You can get these values by running the existing software (like the Windows application). Be sure to write
them down.
NOTE: I always move the focuser to position 0 before updating any new firmware. This means that once
the new firmware is loaded and the new Windows/ASCOM installed, all I need to do is reset the current
focuser position to 0 after reloading all the settings.
For example, let’s say that your current firmware file is Focuserv217_DRV8825_HW203_F.ino
So you would look for the latest file DRV8825_HW203. The zip file contains a folder called
myFP2_DRV8825HW203_307 (as of April 2021) so this is the folder you use.
If you built the myFP2 controller with the power-on reset circuitry, remember to slide the switch into the
program position first before turning on power to the controller.
What I do is just remove the controller from the telescope and then reprogram the controller on the work-
bench. Once you have finished re-programming the controller, remember to slide the power-on reset
switch back to its normal setting (if fitted).
178 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Update the Windows application and ASCOM driver
Once you have updated the Arduino firmware, proceed to installing the new version of the Windows
application and ASCOM driver.
The install file should always be run from the same location. Simply create a folder on your hard drive
where you can save all the files needed. Then you can download any new updates to the same folder. If you
attempt to run the installer from a different directory compared to the previous install, then Windows will
complain and you will need to uninstall the application before installing the new version.
Run the Windows Application and set the controller default settings
1. Connect to the controller
2. Select this option from the Settings menu
3. Disconnect
4. Wait 10s
5. Reconnect to the controller
6. Now set all the focuser settings as per the settings you wrote down earlier (such as focuser position,
maxSteps, stepmode etc)
7. Select this option from the Settings menu to write these
new settings to the controller
If you have any issues, please feel free to contact me for assistance/advice.
IT IS IMPORTANT THAT TO REALIZE THAT THE ARDUINO FIRMWARE AND WINDOWS APPLICATIONS
OFTEN INTRODUCE NEW FEATURES AT THE SAME TIME. WHAT THIS MEANS IS YOU MUST UPDATE THE
FIRMWARE AS WELL AS THE WINDOWS APPLICATION AND ASCOM DRIVER TOGETHER. YOU CANNOT
RUN THE LATEST WINDOWS APPLCIATION OR ASCOM DRIVER ON ARDUINO FIRMWARE THAT MAY BE
SEVERAL VERSIONS EARLIER.
179 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
BRACKET MOUNTING IDEAS
https://sourceforge.net/projects/arduinoascomfocuserpro2diy/files/Documentation/Mounting%20Exampl
es.zip/download
There are lots of pictures from contributors in how to mount the stepper motor on various telescopes.
These are is in the folder Mounting Bracket Examples included with the firmware zip file. Included are
some 3D printer bracket designs.
NEMA14HM11-0404S-Bracket NEMA17-17HS13-0404S-PG5-PG27-Bracket
180 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
181 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
RECOMMENDED PCB BUILD IS NANO+DRV8825 HW203 BOARD
182 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
MANUAL AND AUTOMATED FOCUSING OPTIONS
MANUAL FOCUSING
Several programs allow you to see the peak intensity or FWHM (full width half maximum) profile of a star.
Examples of these are MaximDL, Nebulosity, PHD2, ScopeFocus, APT and others.
In step 5 you would move the focuser by sending commands to the myFP2 controller to move IN or OUT (I
prefer to go OUT first till the star is out of focus, then slowly move IN). This means
1. looking at the star profile and FWHM value
2. letting the values settle for a few exposures to take into account variations in seeing
3. moving in (perhaps by 5 or 10 steps depending on how many steps are within the critical focus zone of
your focuser setup)
4. repeat 1-3
183 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
BAHTINOV MASK FOCUSING USING BAHTINOV GRABBER AND NEBULOSITY
1. Start Nebulosity and connect to camera
a. Turn on reticule grid – View – Overlay – Grid
b. Preview 1s exposure, ensure star is centred in FO
c. Click Frame and Focus –ZOOM to 100% and center star in FOV by using sliders, adjust focus for
best result
2. Run Bahtinov Grabber
a. Set capture area over the star in Nebulosity
b. Enter telescope data related to OTA and camera
c. Eg; Telescope ED80, f=0.480, D=0.080, pixelsize=4.54
d. Eg; Telescope SV102T-25SV, f=0.714/, D=0.102, pixelsize=4.54
e. Config – choose ASCOM focuser, 1, AF Speed=3.00 (allows for download)
f. Autofocus
g. Quit
3. Nebulosity
a. Abort
b. Preview
4. Remove Bahtinov mask
AUTOMATED FOCUSING
Right now, out of the box, you can do automated focusing on stars with any myFP2 controller fitted to a
telescope. You can use the controller with MaximDL, APT and Scopefocus. You could also use FocusMax v3
which was the last free version of Focusmax before it became commercial. We recommend FocusMax v4.
Automated focusing requires that you first configure or train your system to determine the slope for each
side of focus and enter details related to your OTA, camera and focuser configurations. These can then
normally be saved in a “profile” settings file. After entering the required details, it is then necessary for the
focusing program to learn about the focuser by taking a number of exposures at different settings, which
are used to create a V curve (an upside-down bell shaped curve that plots how focus of the star is related to
focuser position). A number of V curves are generated and averaged to create a V curve for that
configuration. This V curve can then be used to automate focusing.
In automated focusing, the focuser will first move to one side of focus and off focus. The star profile is then
measured and compared to the V-curve plot. Now the program has a good estimate of where the best
focus position will be and will move the focuser close to that position and recapture the star profile. A few
further small adjustments may be necessary.
The advantage is quicker focusing, no need for a Bahtinov mask or having access to the telescope (which
could be hundreds of miles away in a remote location).
The downside is the time required to train your system, as well as the generated V curve only works for
that particular configuration. Change anything like adding a focal reducer or a different telescope or a
different camera and you have to start all over and generate new V-curves.
If you want to do automated focusing on DLSR lens that is a different issue. APT is best for this.
Below are photos of a belt drive for a Coronado SolarMax and DLSR which shows you how to attach the
stepper motor. You would need to make a suitable bracket. Be aware that focusing a DLSR lens is much
more difficult as the steps between focus and out of focus occur over such a small range it is at best,
problematic.
184 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Nema 17 with belt drive as a focuser for a Canon EOS Lens (f2.4)
185 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SUPPORTED ASCOM CLIENTS
The following software has been tested and works with myFocuserPro2
• Nebulosity
• APT
• NINA
INDI DRIVER
myFocuserPro2 has its own INDI driver. Support is available for
• KStars/EKOS
186 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
SYMBOLS AND MEANINGS USED IN BOARD LAYOUTS
Stripboard layouts are found in the STRIPBOARDS folder.
187 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
COMPARISON BETWEEN STRIPBOARD AND FINISHED BOARD
Note: This is a previous version stripboard which used a Zener diode regulator which has since been
replaced with a LM7808 voltage regulator (top right of board).
Note: Not all software features may be available on Stripboards due to missing hardware components.
188 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
THE ULTIMATE FOCUSER SOLUTION
DIFFICULTY LEVEL: INTERMEDIATE TO EXPERT
The closed loop focuser solution uses a special closed
loop NEMA17 stepper motor and closed loop driver.
https://www.omc-stepperonline.com/closed-loop-stepper-kit/tp-series-1-axis-closed-loop-stepper-cnc-kit-
48ncm-67-99oz-in-nema-17-motor-and-driver.html
The PCB supports the following options [if components fitted to PCB]
• Push buttons switches
• Display [LCD or OLED]
• Home Position Switch
• Bluetooth [HC05]
• Temperature Probe [DS18B20]
189 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
CLOSED LOOP SCHEMATIC
190 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
CLOSED LOOP FIRMWARE
The myFP2 firmware file to support the closed loop PCB and system is in the folder
myFP2_CLOSEDLOOP_3xx
MICROSTEPPING
The micro-stepping settings are done by hardware switches [SW1-SW4] on the CT42T driver unit]
PACKAGE KIT
The stepper motor and driver package can be purchased from stepperonline
https://www.omc-stepperonline.com/closed-loop-stepper-kit/tp-series-1-axis-closed-loop-stepper-cnc-kit-
48ncm-67-99oz-in-nema-17-motor-and-driver.html
191 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX A: ASCOM SUPPORT
The following lists the ASCOM support provided by myFP2 ASCOM Driver. The myFP2 ASCOM driver has
passed the CONFORM report.
Property
Absolute Implemented
Connected Implemented
Description MyFP2 ASCOM Driver
DriverInfo Implemented
DriverVersion Implemented
InterfaceVersion 2
Halt Implemented
IsMoving Implemented
Link Implemented
MaxIncrement Implemented
maxStep Implemented
Move Implemented
Name myFP2 ASCOM driver
Position Implemented
StepSize Implemented
SupportedActions returns a NULL list as not implemented
TempComp Implemented
TempCompAvailable Implemented
Temperature Implemented
192 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX B: TESTING THE myFP2 CONTROLLER
The firmware zip file, when extracted, creates a Tests folder that contains all the test programs needed to
test each function of the myFP2 controller. If you have a specific issue, you should look in the Tests folder
for the specific test program related to your issue.
A number of sample test programs are listed below which assist in verifying correction operation of the
controller once built. It is recommended to ensure that the assembled controller passes each one of these
tests before the full release program is tried for the first time.
Start at test 1 and run each test in order. Run each program and view the output of the serial port monitor.
Compare the operation of the controller against the displayed messages. If any issue is detected
(unexpected result), correct the problem first before running any other test. Problems could be shorted
tracks on the Vero-board, unsoldered pins, tracks which have not been cut, and wires/components
mounted in the wrong place.
Test programs are included in the firmware ZIP file. When the files are extracted, the folder Tests contains
the test programs for this project.
The second ASCOM driver (if installed) is known as myFP2ASCOM1 in the chooser (and must connect to a
different focuser controller than the first driver).
193 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Consider the case where you have a DRV8825 controller on COM PORT3 and a second ULN2003 controller
on COM PORT 4. To set this up, you would connect the myFP2ASCOM to the DRV8825 controller by
specifying COM PORT3 under properties, and specify myFP2ASCOM1 to the ULN2003 controller by
specifying COM PORT4 under properties for that driver.
Remember that there are additional settings accessible from the other tab pages.
194 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX D: WHAT ABOUT STEP SIZE?
Step size is the amount in microns that the focuser travels for a single step. The myFP2 controller supports
the implementation of step size (ASCOM driver can return the step size if enabled, else the driver returns a
not implemented exception).
Be aware that there can be no common value for this as each implementation is different, depending upon
the step mode, stepper motor, gearing and connection to the focuser.
If you have some software that needs step size (like Maxim DL), then you will need to calculate the correct
value and then use that value in the software application (like Maxim DL) and specify it for your controller.
You can only calculate the step size once your focuser is fully setup.
Note that if you change the stepping mode then the step size will also change. So, the best thing to do is
use one step mode (like half steps) and never change the step mode!
To calculate the step size, position the focuser at say 1000 steps. If your focuser has indicator marks note
the position. If the focuser does not have any position marks, try to use an electronic calliper to measure
how far out the focuser is and use that position as 0. Now you will send a command to move the focuser
outwards 1000 steps from its current position. Once the focuser has moved to the new position, take
another measurement, and subtract the first measurement from it.
If the first reading was 62mm and the final reading was 87mm, then the distance the focuser actually
moved for 1000 stepper motor steps was 25mm. To calculate the step size, divide the distance in microns
(to convert a millimetre to a micron multiply by 1000) by the number of steps
25 * 1000 / 1000
= 25000 / 1000
= 25 microns
The controller implements bounds checking for the value of Step Size, which has been set to Step size > 0
and < 50
The settings for StepSize and whether it is enabled in the controller is specified in the Extra Settings form of
the Windows Application or the Settings form for the ASCOM driver.
To enable stepsize in the controller, you must specify the step size value, check the Enable Step Size box
and check the Update on Connect box before connecting to the controller.
195 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
STEP SIZE IN SGPRO
SGPRO has a “step size” setting in the focuser properties. This is NOT the same as the focuser step size.
STEPSIZE IN APT
In APT under GEAR, stepsize does not refer to the stepsize of the controller.
In APT stepsize refers to when APT issues a step, how many steps does the focuser move. In our case it
should be set to 1.
In focus-aid settings,
FWM Threshold - take about 4-5 images and measure the FWHM. Let’s say it came as 4.5, 4.65, 4.4 and
4.45
This means that FWM is varying through seeing by 0.25 so you would set this threshold to a little higher
than the variation, say 0.3 or 0.35. Note that this will vary from night to night depending upon seeing.
Fine step - this is closely related to how many steps there are in the CFZ. If you calculated say 10 steps in
CFZ then I would set this to maybe slightly less like 7 or 8.
Coarse step - set this to at least fine step * 2, a good number should be number of steps in cfz * 2 (rounded
to whole number)
YOU NEED TO BE NEAR FOCUS WHEN RUNNING THE AUTO-FOCUS AID - within say 50 steps or so of best
focus, unless you change Max Moves.
Note: This information has been gleaned from user feedback and the authors own testing. This might not
apply to your particular imaging setup, but may serve as a starting point. All feedback most welcome.
196 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX E: STEPPER MOTOR TO CONTROLLER CONNECTION
The final version uses an RS232 cable and connectors between the controller and the stepper motor.
I have used 6 feet RS232 cables between the myFocuser2Pro controller (mounted on a Pier/tripod) to the
stepper motor (mounted on the telescope) without any loss in performance.
197 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
WIRING THE NEMA17 COILS TO RS232 CONNECTOR
Note: The stepper motor wires can differ from model to model. You may need to identify which pairs are
which with a multi-meter. Pair one is wired to the pins 1 and 2 of the connector, with pair two wired to pins
3 and 4. If you find the motor is turning the wrong way (when you move inwards to a lower focuser position
the motor moves the focuser out, you should reverse the wires on pin 1 and pin 2 of the connector. Then
you are good to go.
198 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX F: NEMA17-PG5 STEPPER MOTOR BRACKET
The NEMA17-PG5 connects via a home-made bracket to the focuser. The following diagram and photos
show the U-shaped bracket that is used on the Orion ED80T-CF refractor.
199 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX G: USING A PULLEY AND BELT DRIVE
A belt reduction drive can be used to connect the stepper motor to focuser or DLSR camera lens. You can
also put the belt over the focus knob and drive the knob using the belt.
The above pulley 14T has 14 teeth, the 320-GT2 belt has 160T, giving a ratio of 1:22.857 (eBay supplier
speed_smart). This means that using the NEMA17 motor which has 200 full steps per revolution, it will take
4571 steps to rotate the focuser (or lens) ONE complete revolution, which is more than adequate for most
setups.
If purchasing the pulley and belt separately, ensure that the pitch of the pulley matches that of the belt.
200 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX H: DRV8825 DRIVER BOARD
PRECAUTIONS
Never disconnect or connect the stepper motor when the Arduino or
External Power is ON. This can result in damage to the driver board
The advantage of using the DRV8825 is that higher torque (more current = more torque) stepper motors
can be used, as well as using a fairly low resolution stepper motor (200 steps) with micro-stepping (up to 32
times). With maximum micro-stepping of 32, a 200-step motor would give 6400 steps per revolution.
For the recommended NEMA17PG27, most solutions would use FULL or ½ stepping to get the desired
resolution (number of stepper motor steps within the Critical Focus Zone).
Note: Stepper Coil power means that at the end of the move, when the stepper is stationary, power is
either OFF or ON to the coils. If OFF, this saves power, but it might mean that a heavy focuser might start to
slip if pointed towards zenith. To prevent this set the Stepper Coil Power to ON. Because this board uses
micro-stepping, Coil Power should be set to always ON.
201 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Note: Remember NOT to use the Focus Lock Screw on your focuser; leave the screw loose or remove it. The
Stepper motor will hold the focuser in place. If you leave the screw in and accidently tighten the focus lock
screw, then serious damage can occur to the stepper motor or focuser.
MICROSTEPPING
The DRV8825 board supports micro-stepping which can increase the resolution of the stepper motor (give
more steps per revolution).
• Micro-stepping capability, Full, half, 1/4, 1/8, 1/16, 1/32, giving 200, 400, 800, 1600, 3200 and 6400
steps per revolution with a NEMA17 200-step bipolar stepper motor
The micro-stepping is controlled by the M0/M1/M2 pins of the DTRV8825 driver board.
HOWEVER – the current limiting potentiometer must be correctly set else the stepper motor may vibrate or
miss steps when stepping. For micro-stepping to work correctly, Coil Power should be ON.
1. With the controller connected via USB, and 12V power to the driver board, set the focuser position
to 0 and the Motor Speed to SLOW
2. Enter a focuser position of 5000 and click the Goto button
3. Wind the pot all the way anticlockwise until the motor stops moving
4. Now very slowly turn the pot clockwise until you see the motor start to turn. If the maxSteps is
reached, just reset the focuser position to 0 and then type in 5000 for the position and click Goto
again
202 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
5. Slowly turning the pot, when you see the stepper start to move ok without jerking, then slowly turn
no more than 1/8th clockwise from that point
6. It should now be close enough
7. If you go too far then there will be too much current and the motor will run hot. You should use no
more than 12V external power
https://www.dropbox.com/s/ks3cwabbg2cxcou/Stepper%20Motor%20Issues-01.mp4?dl=1
On some driver boards clockwise might be anticlockwise. Once set, then switch to 1/4 stepping and repeat
the 0 then 5000 Goto. The motor should run smoothly without missing steps (a missed step will be a
sudden jerk which you will be able to feel or hear). If there is any of this, you might need to ever so slightly
turn it a little more. Be careful as a little turn can make significant changes in current.
Arduino Nano, DRV8825 sub-board housed in small plastic case (minimal solution) and RS232 connector for
stepper motor, 12VDC panel mount socket, two LEDS for indicating stepper direction (IN/OUT)
203 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
Finished DRV8825 controller
Note: The stepper motor wires can differ from model to model. You may need to identify which pairs are
which with a multi-meter. Pair one is wired to the pins 1 and 2 of the connector, with pair two wired to pins
3 and 4. If you find the motor is turning the wrong way (when you move inwards to a lower focuser position
the motor moves the focuser out, you should reverse the wires on pin 1 and pin 2 of the connector. Then
you are good to go.
204 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX J: WIDE FIELD IMAGING WITH CANON EOS LENS
This article discusses how the myFP2 can be used to provide a focusing solution for a CANON EOS
Telephoto lens (which could be connected to a DLSR or Astro-imaging camera.
A toothed belt system is used to connect the myFP2 unit to the Canon EOS
lens. The focuser is using a minimal build of Arduino Nano + DRV8825
driver board and NEMA17 bipolar stepper motor (200 steps).
The NEMA17 stepper motor is fitted with a 14-tooth gear and drives a
6mm wide with 2mm pitch toothed belt. The following table shows the
gearing ratio.
Using half-stepping with the 320mm belt thus gives 9142 steps per revolution of the Canon EOS Lens (each
step = 0.039 degrees)
The NEMA17 stepper motor is attached to an L shaped bracket and fitted with the 14T gear. The stepper is
driven in this case by the DRV8825 controller (minimal solution). The following photo illustrates how the
brackets and stepper motor are positioned with the toothed belt relative to the Canon EOS lens.
In the first instance, the toothed belt is kept loose and the lens is rotated manually till the object is very
close to focus. Now the brackets are adjusted so that belt is tightened.
205 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
The myFP2 application is started. As the focuser is already near focus, any fine adjustment of focus will be
relatively small, so the initial focus position is set to 5000, maxStep set to 10000 and half-steps enabled.
This should provide more than enough steps to achieve good focus. Focus is then achieved by moving the
myFP2 controller IN or OUT as required.
APT WITH CANON EOS 500D WITH F2.8 70-200L LENS FITTED WITH myFP2 DRV8825 and NEMA17
Focusing done in LIVEVIEW WITH ZOOM and ASCOM focuser jogged till best focus achieved.
206 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX K: TEMPERATURE DS18B20 PROBE PRECISION
The resolution of the temperature sensor is user-configurable to
9 0.5°C
10 0.25°C
11 0.125°C
12 0.0625°C
Both the Windows application (via the Settings, Temperature Precision menu) and ASCOM driver (on the
main Setup dialog form) lets the user specify the temperature precision when connecting to a myFP2
controller.
The temperature precision value is saved in EEPROM of the myFP2 controller, thus is remembered from
session to session. For the ASCOM driver, this is found on the Settings form.
207 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX L: SMALL STEP MODES AND DIODES
A big thanks to Ken who kindly researched and provided this information.
When using DRV8825 at high stepping modes like 1/8 or smaller, the
waveforms to the stepper can cause it to miss steps. The pulses tend to become
more like a sinewave than a square-wave. To restore the waveform pulses a
diode network can be used.
This rounding of the pulses can be overcome using pairs of diodes which are
wired in series with the coil pairs of the stepper motor. The diodes help reshape
the waveform going to the motor.
Original Article
http://cabristor.blogspot.co.nz/2015/02/drv8825-missing-steps.html
An alternative would be to use 1N5822 Schottky diodes which have a similar rating but react faster and
have a lower forward voltage drop than the 1N5404 diodes.
Or you can purchase the TL-Smoother boards from eBay which do the same thing.
208 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .
APPENDIX M: myFP2 COM SERVER
This program is a myFP2 controller emulator which I use for testing purposes. To use the application first
install Com0Com from http://com0com.sourceforge.net/
The output to CNCA0 port should be the input from CNCB0 port and vice versa. But you have to use the
COMx and COMx associated with the CNCA0 and CNCB0 ports, which on my system CNCA0=COM7 and
CNCB0=COM6.
To run this
1. Start this program
2. Select COM6 as the com port and connect
3. Start the myFP2 windows app and connect to COM7 as the com port
and away it should go. Avoid trying to change parameters in this program when it is running. Change any
parameters BEFORE connecting a client to this emulator.
COM0CM SETTINGS
209 | P a g e © R B r o w n 2 0 1 4 - 2 0 2 2 , A l l r i g h t s r e s e r v e d .