Skip to the content
PCBKitNew board
2 layers71 × 73 mmRA Controller, the printed circuit board in 3D

RA Controller

SvenvB/star-tracker

DIY sidereal star tracker for the Orion SpaceProbe 130ST

Size
71 × 73 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
42
Pads
85
Tracks, vias
67, 0
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
3 Jun 2025
Updated
21 Aug 2026

Overview

RA Controller is an open-source printed circuit board by SvenvB, from the SvenvB/star-tracker repository on GitHub. It is a 2-layer board of 71 × 73 mm with 17 parts on 42 nets, routed with 67 tracks and 0 vias.

It is built around the AMS1117-5.0V. Its parts include 6 connectors, 4 capacitors, 1 resistor, 1 IC and 1 diode. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

DIY Sidereal Star Tracker for the EQ-13 mount (Orion SpaceProbe 130ST telescope)

I'm using the Orion SpaceProbe 130ST telescope with a ZWO ASI224MC CMOS imaging camera and enjoy deep-sky imaging without breaking the bank. I got the telescope right before Orion ceased to exist and was therefore unable to purchase their electronic tracking drive for the EQ-13 mount that came with the telescope. As a result, I decided to make a simple driver myself. The total price was around $50 (I am not fully sure since I had various components already in house), with the cost dominated by the stepper motor (~$30).

The star tracker is powered by a 12 V source using 8× 1.5 V AA batteries. This power source is also used for my Flat Frame Light Diffuser. The battery pack lasts at least one or two full nights imaging.

With this motor, I’ve been able to consistently achieve good tracking for exposure times of up to 5 seconds without noticeable star trailing. For example, see the stacked result of a 140-frame, 5-second exposure of the M27 Dumbbell Nebula:

The exposure time can be pushed up to 20 seconds, as I tried recently when imaging the M51 Whirlpool Galaxy and M104 Sombrero Galaxy. At this exposure time, I had to discard about 50% of the frames due to noticeable star trailing, but the results were still quite nice:

M51 Whirlpool Galaxy using 49 frames at 20-second exposure:

M104 Sombrero Galaxy using 162 frames at 20-second exposure:

Keep in mind that the EQ-13 mount is very flimsy, so the effective tracking speed can be inconsistent and occasionally needs to be fine-tuned with the rotary encoder. Properly balancing the telescope with the counterweight is also important.

The star tracker has two modes: Tracking (sidereal speed) and Slewing (for quick repointing). Both speeds can be fine-tuned with the rotary encoder. Clicking the encoder resets the speed to its default value.


Materials

  • Stepper motor – The 17HS19-1684S-PG51 has an 51:1 gear ratio Planetary Gearbox and 0.035 deg / step.
  • A4988 stepper motor driver - with heatsink
  • Arduino Nano
  • KY-040 Rotary Encoder - with clickable switch
  • AMS1117-5.0V voltage regulator
  • 100 uF radial electrolytic capacitor - for A4988 protection
  • 4x through hole 5mm LEDs - Three to indicate the motor mode and one to indicate that the controller is powered.
  • 6x SMD 0805 resistors - 4x for LED loading (~1 kOhm) and 2x pull-up resistors for the switch (>5 kOhm).
  • 2A glass tube fuse and fuse holder - for A4988 protection. The holder has 15mm pin spacing and can hold a 5x20mm fuse.
  • 5.5x2.1mm DC barrel jack - for controller power supply
  • 4 pin aviation plug - for connecting the stepper motor
  • 3 position rocker switch - for motor mode selection
  • 2 position rocker switch - for controller power ON/OFF
  • 2x 5-pin JST connectors - male and female for connecting the rotary encoder and Switch-and-LED board
  • 2x 2-pin JST connectors - male and female for connecting the power rocker switch and power to the Switch-and-LED board.
  • 4-pin JST connector - male and female for connecting the aviation plug.
  • 8x AA battery holder - with 5.5x2.1mm Male Jack Connector
  • various screws - to mount the PCBs to the casing and top-plate, to mount the top-plate to the casing, to connect the stepper motor to the 3D-printed mount, to prevent the 3D-printed coupling piece from slipping on the worm gear shaft, to connect the 3D-printed mount to the EQ-13 body.
  • 3D printer and filament - for the motor mount and controller box.

Optional

  • Capacitors - at the output of the voltage regulator to reduce power supply noise. I used a 10 uF radial and 100 nF + 10 nF ceramic disc capacitors in parallel.
  • Cable sleeve - to organize the stepper motor wires.
  • 3-pin screw terminal - mounted on the switch-and-LED board, to easily connect and disconnect the 3-position rocker switch.

Instructions

1. Calculate Stepper Motor Requirements

  • Stepper motors are highly accurate and provide high torque, making them ideal for this application. A typical stepper motor has 200 steps per revolution (1.8°/step).
  • I tested that the Right Ascension (RA) knob on the EQ-13 mount must be rotated about 5.5 times to move 1 hour in RA. This corresponds to roughly 132 revolutions over 24 h in RA, i.e., a worm gear ratio of 132:1.
  • One sidereal day is 23h 56m 4s, or 86,164 seconds. Therefore, the worm gear should rotate at ~0.55°/s. Since a typical stepper motor would move only once every 3+ seconds at this rate, a gearbox is needed.
  • Choosing a low gear ratio results in jerky tracking, while too high a gear ratio limits slewing speed.
  • I chose the 17HS19-1684S-PG51 stepper motor with a 51:1 gearbox. This gives a tracking speed of ~15.6 steps per second, which I would not recommend going below.

RA worm gear visible in the picture below:


2. Electrical Design

The controller uses two PCBs:

  1. Switch-and-LED board – Mounted to the front plate. This board connects to the 3-position rocker switch, integrates pull-up resistors, and drives LEDs indicating the motor mode. It is reused from another project that daisy-chains the power pins two multiple boards.
  2. Controller board – Mounted to the bottom of the casing. This board contains the Arduino, stepper motor driver, and supporting components.

Boards were designed in KiCAD. Gerber files are attached, and PCBs were ordered via JLCPCB.

Switch-and-LED Board
  • The pin-headers shown below are not needed. You can directly solder the cables to the PCB, as is shown in the Assembled Control Box photograph in Section 4 below.
  • The schematic indicates LED resistors of 470 Ohm. However, I have found that the LEDs are too bright with those values. I recommend increasing them.

KiCAD Schematic:

KiCAD 3D View:

Controller Board
  • Be sure to include the 100 µF capacitor. The A4988 can produce voltage spikes due to back-EMF from the stepper motor’s inductance. This capacitor helps absorb those spikes, protecting the driver. Place the capacitor as close to the driver as is possible.
  • The capacitors at the AMS1117 output are optional.
  • Use the method described here to limit the A4988 current to your motor’s rated current (1.68 A/phase for mine).
  • I have not employed microstepping to increase the number of steps per second. The motor might operate more smoothly if we half the step. However, it will mean tighter timing and more processing overhead for the Arduino, and a reduced torque per microstep. If the mount is imbalanced the torque might not be adequate. Something to be tested.

KiCAD Schematic:

KiCAD 3D View:

Assembled Controller Photo:


3. CAD Design

  • The control box and motor mount were designed in FreeCAD. Design files and .STLs are attached.
  • The coupling piece between the stepper motor and worm gear shaft (green part in the image) must fit very tightly to avoid backlash.
  • You will need a screw to mate the coupling piece to the worm gear shaft.

FreeCAD View – Control Box (Closed):

FreeCAD View – Control Box (Open):

FreeCAD View – Motor Mount:


4. Assembly

  • Mount the PCBs to the casing and top plate using screws.
  • Avoid contact between wires and the heatsink of the stepper motor driver.

Assembled Control Box:

Assembled Stepper Motor:


5. Arduino Coding and Operation

  • The Arduino is programmed using the standard Arduino IDE. Code is available here.
  • I found the most stable tracking at 16.3 steps/second, close to the calculated 15.6 steps/sec sidereal speed.
  • In Tracking mode, each rotary tick changes the speed by ±0.1 steps/sec.
  • In Slewing mode, each tick changes the speed by ±1× sidereal rate. Slewing is possible in both RA directions.
  • Clicking the rotary encoder resets the speed to its default value.

Clear skies!

Parts

17
QtyValueFootprintReferences
2Conn_01x02_MaleConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ3, J6
2Conn_01x05_MaleConnector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ1, J2
110 nFCapacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC4
110 uFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC2
1100 nFCapacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mmC3
1100 uFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1
12ASvens Custom Footprints:FuseHolder_SvenF1
14.7KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
1AMS1117-5.0VSvens Custom Footprints:AMS1117-5.0VU1
1Arduino_Nano_v3.xSvens Custom Footprints:Arduino_NanoA1
1Barrel_Jack_MountingPinSvens Custom Footprints:BarrelJack_HorizontalJ5
1Conn_01x04_MaleConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ4
1LEDLED_THT:LED_D5.0mmD1
1LOGOGraphics:logo_smallG***
1Pololu_Breakout_A4988Svens Custom Footprints:Pololu_Breakout-A4988A2

Questions

How big is the RA Controller PCB?

It measures 71 × 73 mm and has 2 copper layers, 1.6 mm thick.

What parts does the RA Controller use?

17 parts, built around the AMS1117-5.0V. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the RA Controller KiCad files?

From the SvenvB/star-tracker repository on GitHub, at the commit this page was made from: the board is PCBs/Controller/RA_Controller.kicad_pcb and its schematic PCBs/Controller/RA_Controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the RA Controller design in my own project?

Its repository states no licence, so its author keeps all rights: ask SvenvB before reusing the design.

More from SvenvB/star-tracker

1
  • 2 layers36.8 × 43.2 mmLED and Switch board v2, the printed circuit board in 3D

    LED and Switch board v2

    SvenvB/star-tracker

    DIY sidereal star tracker for the Orion SpaceProbe 130ST

    12 parts

Similar boards

  • 2 layers50 × 35 mmServo power, the printed circuit board in 3D

    Servo power

    earthtojake/text-to-cad

    Design physical products with AI

    17 parts26kMIT
  • 2 layers139.7 × 62.2 mmBreakout 60pin EEC IV, the printed circuit board in 3D

    Breakout 60pin EEC IV

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    17 parts1.2k
  • 2 layers29.2 × 55.9 mmDeniseadapter, the printed circuit board in 3D

    Deniseadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    17 parts1kGPL-3.0
  • 2 layers24.5 × 36.5 mmCluster, the printed circuit board in 3D

    Cluster

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    17 parts993
  • 2 layers56.3 × 55.7 mmStarNecklace, the printed circuit board in 3D

    StarNecklace

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    17 parts915
  • 2 layers25 × 25 mmSmallEncoder, the printed circuit board in 3D

    SmallEncoder

    DDeGonge/OS-ARM

    This arm is not industrial and it will not be fast, but that is not my goal. But it will hopefully be a very nice looking arm fully capable of 6dof motion, cheap enough to keep it accessable but capable enough to…

    17 parts498MIT
  • 2 layers38.9 × 16.1 mmAmoeba spc, the printed circuit board in 3D

    Amoeba spc

    mtl/keyboard-pcbs

    Keyboard PCBs

    17 parts485
  • 2 layers36 × 51 mmABSIS ALE, the printed circuit board in 3D

    ABSIS ALE

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    17 parts431