EQFocuser – Instructions

EQFocuser Description

The EQFocuser started as a DIY project powered by Arduino and ASCOM.  It is completely compliant with ASCOM and so far this is the focuser that I’m using with my telescopes.  I have a couple of variations that are using different types of motor depending on the need.  The project is open source and you can download the drivers and sketch files here https://github.com/EverettQuebral/EQFocuser

Supported Stepper Motor Controller

Hardware Parts

  • 1 Arduino (Nano – $5.00, Uno – $8.00)
  • 1 Telescope specific bracket (I 3D printed mine)
  • Set of screws for your focuser
  • Aluminum Flexible Shaft Coupling ($1.50) (Please select the size for your focuser)
  • 2 Pull Up Switch (Optional)
  • 1 Variable Resistor (Optional)
  • 1 DHT11 (Temperature/Humidity) Sensor (Optional)

For EasyDriver or Adafruit Motor/Stepper/Servo Sheild

For ST35 or 28BYJ-48


Diagram Using ULN2003 Motor Driver

ULN 2003 Motor Driver

Diagram Using EasyDriver

EasyDriver Pins

The video above shows the NEMA 17 0.4AMP with 56.7oz.in torque

Github Location


Driver Download

You can download the latest Driver at the Release section https://github.com/EverettQuebral/EQFocuser/releases

3D Model Files

Available under the Resources folder

Also available at Thingiverse

30 thoughts on “EQFocuser – Instructions”

  1. Hi. Can you share the diagram of your connections using the Adafruit Moto shield ? Additionally, I have an issue which is the EQFocuser driver never picks up the Com port. In device manager I have it there as Com9. I am using Windows 10 the latest update. Thanks in advance and for sharing this for us starting. Ago

    1. I’m using the DHT sensor library by Adafruit, version 1.3.0
      You should be able to see that on the Arduino IDE (1.8.5) via Sketch -> Include Library -> Manage Library and seach for the DHT sensor library

  2. After installing all the required libraries, I have come to a stumbling block that I have been unable to resolve even with the help of google. I am encountering this error when uploading the sketch:

    Arduino: 1.8.5 (Windows 10), Board: “Arduino/Genuino Uno”

    C:\Users\dan.doyle\Documents\Arduino\EQFocuser\EQFocuser.ino: In function ‘void humidityTemperatureReport()’:

    EQFocuser:278: error: expected primary-expression before ‘.’ token

    chkSensor = DHT.read11(DHT11_PIN);


    EQFocuser:280: error: ‘DHTLIB_OK’ was not declared in this scope

    case DHTLIB_OK:


    EQFocuser:282: error: expected primary-expression before ‘.’ token

    Serial.print(DHT.temperature, 1);


    EQFocuser:286: error: expected primary-expression before ‘.’ token

    Serial.print(DHT.humidity, 1);


    EQFocuser:290: error: ‘DHTLIB_ERROR_CHECKSUM’ was not declared in this scope



    EQFocuser:298: error: ‘DHTLIB_ERROR_TIMEOUT’ was not declared in this scope



    exit status 1
    expected primary-expression before ‘.’ token

    Invalid version found: 1.04
    Invalid version found: 1.04

    This report would have more information with
    “Show verbose output during compilation”

    Any assistance would be greatly appreciated!


    1. FYI, I’m not a programmer and have never worked with Arduinos before, so I’m surprised I’ve gotten this far.

      1. What sketch file are you using?

        I’m assuming that you are using either one of the last 2 because they are using the DHT library.

  3. Great work, many thanks for your efforts!
    Managed to compile EQFocuserStepper.ino and upload it to Arduino Uno, DHTLib library did the trick with the DHT part of the code instead of the Adafruit library.(https://github.com/RobTillaart/Arduino/tree/master/libraries/DHTlib).

    With the temperature & humidity part I however hit another speed bump – there’s no temperature & humidity values visible in the 1.0.8 driver window. Using the “k” command through the Arduino IDE serial monitor returns correct values in the serial monitor, and connection to motors works fine through the 1.0.8 driver. But there’s no temperature nor humidity values coming through. Also hitting the “advanced” button in the driver results only “444” being displayed in the humidity value window in the driver, but won’t open any further settings. Would you be able to help with any pointers how to get the temperature & humidity part working as well?

    1. Sorry about that, I just saw your message. Will take a look on what was the problem. Thanks, will keep you posted

  4. Hi, I’m finishing your focuser for my newton.
    I also use stellarmate (raspberry), could it also work with INDI?

    1. Yup, I’m still working on it, as testing as hampered me due to the weather. Will post an update

  5. I am na amateur astronomer and have this website http://www.meteorito.com.br

    First I would like to say thnk you for providing the very nice EQFocus project.

    I was able to have an Arduino nano working fine with your firmware. I was also able to connect into my desktop (Win10) and could have the ASCOM driver working with APT.

    But I am not able to make it work with both of my notebooks (Win10). Same thing happens with both notebook when I try to test using the ACOM Device Connecton Tester (both 32 and 64 bits).

    I am doing the following:

    1. Run ASCOM Diagnostics
    2. Chose Device->Chose and connect to Device
    3. Select Device Type->Focuser
    4. Click “Choose” and select “ASCOM Focuser Driver for EQFocuser”
    5. When I click Properties and the Device Connecton Tester hangs.

    My environment configuration
    • Windows 10
    • ASCON 6.4 SP1 (also tried newar and older version)

    What may be happen? Can you please help?

  6. Hello Everett,

    Thanks a lot for this amazing project. I am trying using in my newtonian 200 f4.
    I was able to run the EQFocus ASCOM driver on a PC with success but I am having problems with 2 notebooks. Is there any means to debug what is going on with the EQFocus driver? I am trying to test using the ASCOM Connection Tester 32 and 64 bit. The tester hangs when I click on the “Properties” button at the ASCOM Focuser Chooser dialog.

    Hope you can help me.. I have done the hardware and firmware part of the project but having problems to use the ASCOM driver.

    Thank you!

    1. One issue might be the conflict in the bluetooth devices in your 2 notebooks. Try to disable and see if it works. Again thanks for using this project. Grad to help you out here.

  7. Hello, Everett! Awesome project.
    I was able to run EQFocuser with a ULN2003 just fine! But when I try to use the “EQFocuserStepper.ino”, with DHT11, I stuck.
    First of all, the file come with:
    But the library I have is:
    Is this correct?

    Well, I change the dht.h to DHT.h, but there are a lot of new erros, like:

    “error: ‘dht’ does not name a type

    dht DHT;”


    “In function ‘void humidityTemperatureReport()’:

    arduinotemperatura:278:18: error: expected primary-expression before ‘.’ token

    chkSensor = DHT.read11(DHT11_PIN);”

    Am I using the wrong library?

    I tryed with “DHT sensor library” from Adafruit with versions 1.3.0, 1.3.9 and 1.3.10.

    1. Yes you can remove the DHT sensor or just comment out the code if you are not using it.

  8. Hi Everett…

    Let me ask you a question. I was able to EQFocuser with DHT11, all ok, but I had to change the stepper motor to a strong one.

    Now I am using Nema17. I Tried the code stated in the website….for Nema with DHT11 but DHt11 stopped work ! I checked the code comparing to the other one that was working… (DHT part of the code) It appears to be ok, but not working….

    is that possible to check what could be wrong?

    I am using Nema17 with A4988 and an arduino nano

    1. I’ll update the code, I can remove the DHT11 as most doesn’t want that temperature feature of the focuser.

  9. Well I have a focuser to motorize. I’ve done this in the past with a stepper and an arduino but it was cumbersome, the motor was crap and there were other issues. So over the years I gradually moved to dc motors and in the end hobby servos. Way simpler.
    But this time, I got a new setup and build a permanent post so I want to have proper and precise motorization. I could code everything myself, the firmware, the client and the ASCOM driver. But….I’m way too lazy so I hope you don’t mind if I take your code and adapt everything to my needs :p

  10. Hello Everett! I have been using this focuser for more than10 months. Unfortunately last night I could not connect in APT. When running an ASCOM diagnostics, this message came out: “Connected Disconnecting from device
    Error System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto.
    em ASCOM.EQFocuser.Focuser.set_Connected(Boolean value)
    em CallSite.Target(Closure , CallSite , Object , Boolean )
    em System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
    em ASCOM.DriverConnect.ConnectForm.btnConnect_Click(Object sender, EventArgs e) na C:\ASCOM Build\Export\ASCOM.DriverConnect\ConnectForm.cs:linha 369
    Dispose Disposing of device
    Dispose Completed disposal
    ReleaseComObject Releasing COM instance
    GC Collect Starting garbage collection
    GC Collect Completed garbage collection”
    I was running ASCOM 6.4 when the error happened, before was working pefectly. I tryed to unninstall and install the eqfocuser driver again, but it didn’t help. Now I installed ASCOM 6.5 SP1 platform version, but the error persist. Any clue how this can be fixed?

    1. Thanks for using it. Let me investigate more as I haven’t updated the code in a while. Been trying to get back to astrophotography too.

  11. Hi Everett ,
    at first, nice project and realy nice results. I´m doing astrophotography aswell, and i´m using your focuser sketch. But i´ve got a question for you, cause it´s not working quite well. I do not have any programmer knowlege but i´m slowly learning. I´m using the one Stepper solution with a 28BYJ Motor. Mostly everything works well, even with the Ascom driver via APT. But when the motor is driving, for example 1000 steps, ist stocks every few seconds for a very short time. I can see that the RX/TX Led is flashing in this moment on the Arduino Nano. What could be this case ?
    Cheers Freddy

    1. One thing that I know for sure is the 28BYJ is a very small motor comparing to the NEMA stepper motors. At least that’s what I have learned when I was experimenting with the 28BYJ.

  12. Any way to switch temp from Celsius to Fahrenheit?

    Would this work if coding is changed
    Serial.print(DHT.temperature*1.8+32, 1);
    just added conversion to this line.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.