Last edited · 98 revisions  


Frequently Asked Questions


Q:  I need assistance in completing my OnStep build. Is there anyone that I can contact for information, parts etc?

A:  Yes! There is a list of "Helping Hands" here...

Q: The N and S button behave in an unexpected way

A: Normal OnStep Behaviour.

If this is near the celestial pole of your hemisphere, then it is the way OnStep normally behaves. It is the classic question of what is north of North (or south of South). North and South reverse when you pass the celestial pole; so the next guide North can move in the opposite direction.  A guide North always starts by moving in the direction needed to get to the NCP.

Another explanation for the behavior:

The basic rule is that it always wants to go North when you press the N button.  If it can't it will head South until you let go of the button.

OnStep starts with the telescope at NCP (North Celestial pole). Pressing the N button will cause the telescope to head South. This is the only direction it can go since it is already at North. Release the button and press North again. It will reverse direction because now it can and will go North. Keep holding the button passing the polar axis (scope aligned with mount) and it  will continue, but now it is actually going South. Let go of the button and press North again. It will reverse direction again,  heading North.

This can take a while to wrap your head around. Play with it and it will become obvious.  Of course, all of this is reversed for our friends below  the equator.

Q: OnStep doesn't point where it should

A: There is a problem with your drive design and/or configuration and/or software setup, etc.

Drive design:

  • Motors and drive components move the mount reliably, not slipping or skipping steps.


  • See the Wiki section here for "Preliminary Firmware Configuration" instructions.  Be sure you are not attempting to use settings in Config.h that are being overridden by the "Advanced Configuration" settings stored in EEPROM, you can disable this feature in the SWS or send the :ENVRESET# command from the Arduino Serial Monitor to be sure the Config.h settings are used (which is the default) if you like.
  • Correct stepper micro-step mode is set and actually used in the driver (hardware/connections setup.)
  • Motor direction of motion is correct.
    • Use a planetarium program for control, start tracking; these instructions apply Eq mounts.
    • Move Declination a little (10 or 20 deg.) left and right of the home position (NCP/SCP) and watching from behind the mount see if the telescope movement matches the screen.  Reverse Axis2 if it goes the wrong way.
    • Once that is working do a goto to a point half way up in the sky but not too far in home position (40 degrees away or so.)  If it points down toward the ground RA needs to be reversed.
  • Correct steps per degree settings for Axis1 and Axis2; these instructions apply Eq mounts.
    • Use a planetarium program for control, start tracking.
    • Move Axis2/Declination a fair bit (45 deg.) left or right of the home position (NCP/SCP) and take note of the angular distance traveled, is it about 45 degrees?
    • Move Axis1/RA to near the Meridian and 0 degrees Declination and take note of the angular distance traveled.  Did RA move 90 degrees?

Software setup, etc:

  • Correct date/time and location in both OnStep and any control software.  This includes OnStep UTC Offset and control software time-zone settings.
  • Also be sure to set the mounts start position, etc. correctly as described in the Using OnStep section of the Wiki.

Q: The RA (Right Ascension) reported by OnStep at startup doesn't correspond to the expected HA (default Hour Angle at startup) relative to the current LST (Local Sidereal Time.)

A: Normal OnStep Behaviour.

The default reported RA/Dec are in Topocentric coordinates (which considers atmospheric refraction) not Instrument coordinates.  Refraction makes the celestial pole (NCP or SCP) appear higher in the sky hence instrument coordinates are pointing just a little below where the refracted pole is, as though our the Earth's atmosphere were not present.  Thus, the reported RA at startup lies opposite (12 hours from) the Meridian.  Similarly Declination is affected as well.  Even more confusingly, in recent OnStep's, when exactly at the pole, refraction is disabled so KStars polar alignment routines can function properly.

Q: When tracking, or slewing, OnStep pauses intermittently

A: Overheating. When the stepper driver overheats it temporarily shuts down, then restarts. This causes pauses in tracking during which time the stepper motor isn't energized.  Overheating is caused by the setting Vref being too high.  Vref should be set to give a current that matches your stepper motors within the stepper drivers' thermal and current limits.  More in this discussion as well as this message.

A: Insufficient power supply current.

Q: Tracking motion isn't smooth or "jumps" once every second or two

A: Zero-crossing "step-stuck" trouble which A4988's and DRV8825's sometimes have happen, search here in the group or google "step stuck.  Change the stepper drivers, change stepper motors, use the diode hack, or hack to switch to fast decay mode.  No guarantees that any of these will work or be acceptable (audible noise of fast decay, wasted power of diode hack, etc.)

A: Insufficient wire gauge to the stepper motors' can cause poor micro-stepping performance.

A: Vref set incorrectly (too low or too high.) Too low or high and the motor can cog to full step positions.

Q: Why is the WiFi module assigning an IP address of 169.254.x.x to my phone?

A: The WiFi module, usually a Wemos D1 Mini, or another ESP8266 should have an address of to itself, and assign your phone an address starting with 192.168.0.x. If you see an IP address that is 169.254.x.x, then you are using the wrong version of the ESP8266 board manager. Make sure you use one of the versions that are verified to work from this page.


Q: How can I reset all the EEPROM values in OnStep?

A: Use the NV reset command or set a flag in OnStep.ino  In the latest versions of OnStep there is a command :ENVRESET# you can send from the Arduino Serial Monitor.  When sent you will get a message telling you that the NV (EEPROM) will be cleared (once) on the next power cycle.  If that isn't available (release 3.16 and earlier) set NV_FACTORY_RESET to ON in the OnStep.ino file, upload and wait about 30 seconds.  Then set NV_FACTORY_RESET back to OFF and upload again.  It is important to turn it off again otherwise OnStep will not work properly and it also will cause excessive NV (EEPROM) wear.

Q: Can I start with a cheaper A4988 or 8825 as motor driver?

A: This is not usually recommended.  If you have them on-hand and they happen to work we understand the motivation.  If you want to use them for a focuser or rotator we understand.  But for the RA/Dec or Alt/Az axes they are often poor performers.  Typically the A4988 performs ok but has limited current handling and only reaches 16x micro-step mode.  The DRV8825 is all too often just aweful though there is the occasional success story.  Usually the LV8729 or S109 is a better option vs. the A4988 or DRV8825.

Q: I can connect to my ESP32 device with the Arduino IDE on Windows, but the connection fails with the OnStep ASCOM driver.

A: The cause is unknown and so an easy solution is unknown.  The Arduino IDE's method of accessing the (virtual) Serial Port is no doubt different than the OnStep ASCOM driver which uses the ASCOM Serial Port Class.

  • Conditions:
    • Isolated to ESP32's only.
    • Isolated to Windows 10 only.
    • The Arduino IDE can connect and upload the OnStep Sketch after-which a connection with my ASCOM driver is possible IF you do not disconnect the USB cable.
  • Possible solutions:
    • Some users have reinstalled Windows 10 and corrected the problem.  This supports the theory that it's an operating system and/or driver problem that only presents itself under certain conditions.
    • You could try to update to the latest CH340 drivers or CP210x drivers (etc, check your hardware to determine which USB bridge chipset you have) and see if that clears the problem.  It is unknown if this is likely to succeed.
    • You could try to enable the serial interface RTS control in my ASCOM driver.  This requires using the ASCOM profile explorer as described here.
    • There is an breakout/header on the MaxESP3 that exposes the TTL Serial port pins (that go over to the USB bridge chip), one could in theory attach a serial port bridge breakout using a different chipset (ebay) and overcome the issue.
  • Notes:
    • RTS and/or DTR control being enabled in my ASCOM driver may or may not cause the processor/OnStep to be reset for firmware upload (as the Arduino IDE does.)  You can watch the controller to determine if this is happening during the connection attempt and if so adjust settings.  The typical reset/firmware control circuit (and DTR/RTS states) per the ESP32 Dev Kit C design can be seen here.

Q: How can I configure the focuser?

A: This is covered in this message.

Q: How can I manage meridian flips with KStars/Ekos/INDI?

A: Read this document.

Q: What can you tell me about the Instein OnStep Controllers and Kits?

A: Mixed Feedback and No Community Support. Members in the community have reported mixed feedback on the Instein controllers. Some praise them technically, others had problems getting replies from Instein.

The OnStep Community cannot support the Instein controllers, since their software is modified from the base OnStep. Please do not ask for support on the group.

There is limited support in OnStep 4.20 and later for the ESP32 based Instein controller. A community member, Guilherme Venere, has kindly provided a document on this ESP32 based controller. You can see the document here.

Q: Which Micro-controller option should I choose?

A: That depends on your budget and requirements.  The micro-controller you use can dictate what performance and limitations you will have with it.  In this section, we detail the major differences between different micro-controllers supported in OnStep.  Below is a breakdown of the performance and features for some commonly used options:

Micro-controller Performance (roughly in order slowest to fastest, all things considered):
----Board----- --Processor-- -----MCU~Speed---- ---Memory--- --Flash-- ---EEPROM/NV--- ---Hardware--- Timers --Hardware-- FP Math -Fastest*- Step Rate
MKS Gen-L -Mega2560 16 MHz 8K 256K 4K 3 x 16 bit No 13kHz
Bluepill -STM32 72 MHz 20K 128K 4K (on RTC) 3 x 16 bit No 50kHz
MiniPCB -Teensy3.2 72 MHz 64K 256K 2K 4 x 32 bit No 71kHz
-STM32F401CC 84 MHz
2 x 32 bit Yes
MaxESP -ESP32 2 Core, 240 MHz 512K 4M 4K 2 x 32 bit Yes 62kHz
MaxSTM -STM32F411CE 100 MHz 128K
512K 8K
2 x 32 bit Yes 62kHz
FYSETC S6 -STM32F446VE 168 MHz 128K 512K 2K 2 x 32 bit Yes 71kHz
MaxPCB -Teensy3.5 120 MHz 192K 512K
4 x 32 bit
MaxPCB -Teensy3.6 180 MHz 256K 1M 4K 4 x 32 bit Yes 384kHz
MiniPCB -Teensy4.0 600 MHz 1M 2M 1K 4 x 32 bit Yes 667kHz
Board/platform Features (in order least features to most):
-----Board----- ----RTC---- --Encoder-- support --Focusers/-- Rotator _Stepper_Driver_Mode_

Aux~I/O -Dew~Heaters~etc.**~ _Difficulty_
-Board+Processor- Approx. Cost
--MiniPCB - + + Any Aux0,1,2,3,4*** Mid $70
--Bluepill DS3231 + 1x Any Aux0,1,2,3,4 Mid/High $20
--MaxESP DS3231 Built in 2x Fixed+ or TMC SPI Aux3,4,7,8*** High
--MaxPCB DS3231 Built in 2x Any Many High $100
Built in 2x
TMC SPI Many Low/Mid
$20 (@ Qty 20)
--MKS Gen-L DS3234+ + 3x Shunts+or TMC SPI
Many,4x MOSFETs***
--FYSETC S6 DS3234+ + 3x Shunts or TMC SPI Many,7x MOSFETs*** Low

+ Means the feature can be added but it requires extra effort and might increase the difficulty of the build or otherwise has limitations.
* These figures assume square wave mode, pulse mode is 1.6x faster.  Where "on-the-fly" micro-step mode switching can be used the maximum goto speed is almost always limited by the motors/drive design not OnStep (even on a "slow" Mega2560.)  Teensy4.0 does not allow pulse mode.
** Aux0 is normally the Status LED.  Aux1 & Aux2 are normally MISO for the TMC2130 (or for ESP-01 firmware upload control.)  Aux3 & Aux4 are normally for Home SW support.  If not used for the default these can be PWM (dew heater or screen for flats) or SW (OTA cover,) etc.  There are rules about which pins can do PWM not covered here.
*** I2C is either difficult to hack into working, not functional for our purposes, or involves trading Aux pins.

Alignment Capabilities/Accuracy:

Note: the maximum alignment points and resolution are Goto Assist (GTA) limitations within the micro-controller only.  Sky Planetarium can be used on any Eq mode OnStep to perform the n-star alignment with up to 50 stars and 1 arc-second resolution.

Arduino Mega2560

Maximum number of alignment points: 6
Minimum alignment resolution 128 arc seconds

STM32 Blue Pill/Teensy 3.1/Teensy 3.2

Maximum number of alignment points: 6
Minimum alignment resolution 64 arc seconds


Maximum number of alignment points: 9
Minimum alignment resolution 16 arc seconds

Q: I'm having trouble flashing software to an STM32 processor, what could be the problem?

A: STM32's are designed to be flashed at 25 degrees C. Maybe the processor is too hot or too cold.

Information from ST Microelectronics indicates that a problem with USB timing may occur if the temperature of the processor is too far from 25 degrees Celcius. The reason is that in DFU mode, the USB timing relies on the frequency of the external crystal. However, the DFU software does not know what that is so it attempts to calibrate it using the internal RC oscillator. The internal oscillator is much more temperature-sensitive and while it is factory-calibrated to 1% at 25 degrees Celcius if too far from this temperature value the calibration may determine an incorrect value and resulting timing errors can result in USB communications failures. The problem doesn't occur in non-DFU mode because the external crystal frequency is programmed into the support software.

If you suspect this may be the case, try warming a cold processor with your finger or cooling a warm processor with airflow (a 'canned air' duster is a good source of cooled air).