Low Cost ESP12E Digital Setting Circles
KiCad Arduino C Makefile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
kicad update design for v1.0 release Mar 17, 2017
src/esp_dsc Add support for Encoder library and better debugging Mar 26, 2017
README.md Major code improvements & docs Mar 19, 2017
TODO.md more optimizations (which don't work) Mar 20, 2017


ESP-DSC: Digital Setting Circles for ESP-12E/F


Low cost alternative to my original Digital Setting Circles project the Teensy-DSC. This new design uses the cheap ESP-12E/F WiFi enabled microcontroller which saves about 60% of the original price (~$40 vs ~$100).

I'm also planing to include the necessary .STL files so you can 3D print the appropriate enclosure for the board.

More information about this project is available on my website.


  • Design PCB (Initial beta design is complete)
  • Port over the TeensyDSC code to the ESP-12 (WIP)
  • Verify that the ESP-12E is capable of handeling 2.5k encoders (complete!)
  • Verify that the ESP-12E is capable of handeling 10k encoders (TBD)
  • Create the necessary STL files to 3D print an enclosure for the board (TBD)

Basic Features

I wanted to do my own digital setting circles (DSC) for my Apertura AD12. The main goals were:

  • Support for at least 40K resolution via quadurature decoding (10k encoders)
  • Built in WiFi access point to allow wirelessly interfacing to an Apple iPad or Android tablet
  • Supporting at least SkySafari Plus/Pro
  • Powered via USB connection
  • Using industry standard RJ45 connection to encoders
  • Open source software & PCB design (GPLv3)
  • Inexpensive! All the components should be available for < $40.


You will need the Arduino 1.8.1+ IDE. You will need to add support for the ESP8266 by following the directions here.

Before you program your ESP-DSC you will need to:

  • Copy src/esp_dsc/config.h.sample to src/esp_dsc/config.h
  • edit src/esp_dsc/config.h
  • edit src/esp_dsc/esp_dsc.h

Under the tools menu, configure your board as follows:

  • Board: NodeMCU 1.0 (ESP-12E Module)
  • Flash Size: 4M (3M SPIFFS)
  • CPU Frequency: 80Mhz
  • Upload Speed: 115200 Baud

Do the following exactly:

  1. Disconnect the ESP-DSC from the encoders
  2. Connect a FTDI board to the FTDI header on the ESP-DSC and plug that into your computer
  3. Select the FTDI as your serial port in the Arduino IDE Tools menu
  4. Press Reset button
  5. Press Program button
  6. Release Reset button
  7. Release Program button
  8. Press the Upload button in the Arduino IDE Tools menu

Supported Software

  • SkySafari Plus/Pro
    • Select "Basic Encoder System"
    • Encoder Steps: Get Automatically
    • TCP Port 4030

Similar Projects

There are a bunch of similar projects to ESP-DSC which you should be aware of: