Description

THE WORLD'S FIRST STAND ALONE ARDUINO BASED TELESCOPE CONTROL GOTO.

The initial idea was to create cheap and easy to build alternative of commercially available GOTO hand controllers, but in a better, feature rich way. In the heart of the system is the rDUINOScope Software, some 2500 rows, controlling all HW components and handling communcation with external devices (Stellarium, SkySafari and others) .

rDUINOScope is a stand-alone device! On the opposite side, currently available open source telescope GOTOs either use Raspberry Pi, which consumes a lot of power, or uses Arduino as extension to a computer, smart phone or tablet. rDUINOScope can do both!

The best part of rDUINOScope is that it is an OPEN SOURCE SOFTWARE and HARDWARE! You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation (version 3 or later).

Details

rDUINOScope is an Open Source, Arduino Due based Telescope Control System (GOTO). Drafted as stand alone system, rDUINOScope does not need PC, Tablet or Cell Phone, nor Internet connection in order to operate and deliver stunning views! It does however supports Bluetooth and LX200 protocol to connect and be controlled by smart devices!

rDUINOScope uses database with THE BEST ~250 stellar objects ( Messier and Hidden Treasures Catalogues) and 200 stars, calculates their position on the sky and points the telescope. Implemented Alignment procedures allow for "Always in the eyepiece" experience when slewing to selected objects and once the object is in the eyepiece, the system keeps tracking it.

The challenge the project addresses:Every amateur astronomer knows the trouble of finding an object to observe, when starting in the hobby. It is the steep learning curve that one needs to overcome, that makes most people give up after few unsuccessful tries. To overcome this roadblock, telescope manufacturers come up with idea to computerize a telescope and make it GOTO telescope. One simply pushes a button ....and voila – The Great Orion Nebula is in the eyepiece!

Those computerized (GOTO) telescopes unfortunately are proprietary and are quite expensive on top of the Euro/Dollar you already spent for your tube and optics. You can’t simply buy the cheapest GOTO and put it on your mount, as they are specific for each telescope. Maybe you aquired an old mount and find out that it is no longer supported for a GOTO ... or that existing GOTOs keeps their high prices!

If you however decide to buy a new shiny GOTO Telescope, you will be amazed to discover that most of them are old looking, feature phone like handhelds, and most importantly all the goodies are sold separately like:

No graphical screens or touch screens;

GPS sold separately or enter the coordinates manually;

Connection to PC or Bluetooth devices are sold separately;

To use your smartphone application you need to buy additional hardware;

Not possible to share your observations with your favorite social media,

…. And many more restrictions simply not acceptable for the amount you pay!

Project Logs

In the recent days two new wonderful clones of the rDUINOScope software emerged. As you probably know, low level coding is closely related to the hardware you are using, thus it is not so easy to simply swap a TFT screen for example and use the one you have around in the workshop.

Thanks to Khairey Nouhe and Giacomo Mammarella we now have two clones of the software dealing with different TFT screens.

The other clone made by Giacomo uses LI9488 480x320 px. display in SPI, instead of the original HX8352B 400x240 px, so bigger screen and less pin used. You can check the GitHub link: https://github.com/giacu92/rDUINOScope

Both makers have not only translated the code to talk to a different hardware, but also added functionality and cool graphics!

rDUINOScope Boiana is now truly an Open Source Project!

Here are few screenshots from Khaire's port of rDUINOScope Boiana v2.3.1

I have received number of questions regarding BlueTooth connection with Stellarium on PC. Thus I created a video showing a step-by-step approach and explaining aome of the pitfalls you might encounter.

I have decided to put development on hold for the holiday season. I'm planning to participate few star parties and deliver presentations about rDUINOScope. I hope that many new people will become interested in the project and thus we will gain additional support.

This means that the Alt/AZ version is put on hold (... yet again unfortunately), along with the new revised HW and SW versions.

I and the project team are now discussing some new ideas and possible opportunities. We hope that some changes in the code and probably the screen, will allow us to have animations and great new design.

Sorry that animated GIF cannot be uploaded as the earth's rotation is spectacular on the background of the screen!

There are some advanced options to support this project, in addition to sharing, writing articles and/or donating!

We call this Patronizing the Project ! When you patronize rDUINOScope, your name and/or the name of your business is bond to the enrichment and positive influence that the project brings to the Amateur Astronomy World. Your name becomes a synonym to all the great benefits and opportunities that this project creates and last but not least, your contribution will be acknowledge on every advertising material we create!

You should choose the best way to patronize this project! It could include:

funding the next R&D cycle;

fund and become godfather of release version;

fund specific features;

become a longtime supporter and bond your name with the rDUINOScope code for eternity!

Build Instructions

Before we start, it is important that you understand how the software works in order to be able to make changes and customize it for you. After all this is one of the most significant strengths of this project!

To understand this part you need to download the code from the Project Files, along with the "libraries" files ... or simply download the whole package from : http://rduinoscope.co.nf/downloads.php. All referenced row numbers are according the code of V2.1. Boiana EQ

You should know how the Arduino code works... Usually Arduino program have 2 sections- SETUP(); and LOOP();SETUP() is executed at the beginning of the program and basically it utilizes the system;LOOP() is a constant loop function which fires multiple times per second. So in order to assure we have screens, touch inputs and etc. and the screen not flickers because of the LOOP() we need to invent a mechanism to let Arduino know what is the User expects it to do. Thus in the LOOP() section you will see a very small portion of the code that only says "Consider Touch.. or Consider Time ..." and etc. The rest of the activities happen within those functions which allows us to alter the flow of the program so that the screens are not refreshed multiple times per second.

Calculations: I have used some information found on internet on how to calculate position of stellar objects. Most of the information I collected from the following link: http://www.stargazing.net/kepler/altaz.html - Describes needed formulas and approach to calculate Hour Angle (HA), knowing location, current time, and stellar object RA and DEC.

The main issue I found was not the formulas themselves, but the way Arduino deals with variable types and in particular the precision of the calculations.

Now once we have the HA and DEC calculated for a given object, we want to make the mount point the telescope and to do so, we need to somehow know how much exactly motors needs to turn. To succeed in this I need to know what is the worm to gear ratio – i.e. how many turns should the worm do in order that the gear makes 360°. I have Vixen Super Polaris and quick search on internet revealed that it uses 144 tooth gear for both RA and DEC shafts.I have created a simple Excel file (*.XLS - http://rduinoscope.co.nf/downloads/Gears_Stepper_Calculation.xlsx) to calculate how much the motors should turn once I calculated HA and DEC, and also how often to "fire" motors in order to compensate for the Earth rotation.

The same mathematical model I used in the XLS is also implemented in the code, so what you need to do is simply substitute the values for your mount in the beginning of the code (rows 34 to 37).

Now once we calculated ratios, the code will know how much to turn the motors in order to point the telescope to the corresponding coordinates and also what is the clock speed so that the mount can track the object. Functions taking care of the above starts at row 906 and row 917:

voidSidereal_rate(){
}
voidcosiderSlewTo(){
}

Considerations: You know, this is not a consumer ready product. It allows you to customize it for your needs and thus is very flexible, but with the flexibility comes some drawbacks. I have included this “considerations” section in order to make sure those are not dropped from your To Do list.

- Mounting motors is a simple task, which however impact the way your calculations should work. In my scenario Vixen Super Polaris have their original gears put on the right side of the worm shaft. I however found those shafts to be short in order to replace the gears with pulleys and thus moved the pulleys on the opposite side of the shaft (left). This caused that the motor actually needs to turn backwards in order to increase telescope position and thus I had to revise the original code I have created. You should definitely revise the directions you motors turn other ways you will end up with wrong counting of the steps, thus wrong position. Let me show you what I mean: See row 1028 where I command motor to STP_BACK, but on row 1031 I increase the counter +=...... (All referenced row numbers are according the code of V2.1. Boiana EQ)

- Northern VS.Southern Hemispheres: The code also inverses the FORWARD move depending on the hemisphere you are located. This is done in a part of the code, where I take care of the Touch inputs. You might need to revise the code section.

- Gearing on DEC and RA axis: My code works assuming that both DEC and RA axis use 144 tooth gear. This is the case for Vixen Super Polaris. In case you have a different setup you might need to revise some portions of the code. If you have issues to identify those parts of the code, drop me a message and I’ll try to help you out!

Plan your activities: Now we reached a point where we need to plan our activities to actually build the rDUINO Scope GoTo system. Rough estimation is that you should be able to complete the system in 2-3 days considering you have everything needed (HW, Tools and Materials). It took me something like 4-5 months to complete it, considering I was only able to work during the night (not every night), and also I needed to do a lot of research. Putting it all together took me like:

- 1 day to build the Shield board and live up the system;

- 1 day to pack everything in a box;

- 1 day to fix motors and pulleys to the mount.

2

Step 2

STEP 2 Materials

Now, as we know how basically the program works, you need to plan your procurement and obtain needed materials.

When this project started the HW was created using pre-assembled componets like GPA board, RTClock, DHT sensor and Populou DRV8825. This is an open source however and as it started to grew in popularity some people created a better HW architecture with their own custom boards and elements. You now can have 2 approaches:

Bill of Materials: Most of the materials I used are bought from Chinese suppliers on Internet. Few of them however I decided to buy locally mostly because they were considered good to have and I wanted to avoid delays: GPS, Bluetooth and Joystick. It cost me roughly $190 USD to get all this, so tit is really a low cost compared to how expensive is to buy such system from manufacturers.

You can find list of materials along with their prices and where you can buy them on the project website: http://rduinoscope.co.nf/rDUINO_step2.html, but the list is also available on this website in the "COMPONENTS" section.

If you can find them cheaper or deliver them faster I strongly suggest you do so.

Additionally depending on your design, you might need 40 pin. cable with connectors for the TFT, some plastic bolts to fasten the joystick, USB cable to ensure the Arduino Due is still programmable when enclosed in the box, fan and others.

If you don’t have those at home (as I didn’t) you should also buy some soldering materials, solder, nippers, digital multimeter, and others.

Software you will need: One important part of building your rDUINOScope is to download and install the Arduino IDE and all related Software (drivers, board definitions and libraries). Follow the below list in order to install needed on your computer:

Go to Arduino website and download the IDE: https://www.arduino.cc/en/Main/Software. Install the software – Once the software is installed it will also install drivers needed so that your computer recognizes the Arduino board when connected.

Download the libraries pack that I used as part of the program and copy-paste them in the “libraries” folder of your Arduino IDE installation. (NOTE: "libraries" is a folder on your computer, but it is also a folder within the COMPLETE PACK available on the project website: http://rduinoscope.co.nf/downloads.php, so what you need to do is to download the pack, rename the extension to .ZIP, open it and copy the content of the "_libraries" folder from the ZIP to the "libraries" folder on your computer.)

Restart the IDE and open the main program file - “_02_Boiana_EQ.ino”. You will noice that 4 more files will open in a separate TABs. Those are supporting files taking care of different parts of the software.

You should be able now to compile the code and load it to the Arduino Due board after connecting Arduino to your Computer.

Now is the time to create the Shield board. A Shield board is a board with pinouts which you stack on top of the ArduinoDUE board.Some of the components needs to be on that board and some are better positioned on the enclosure box instead. My split goes like this:

Monthed on the box components are: GPS Module NEO 6M - RX so that the antenna can always points toward the sky, DHT22 temperature sensor sticked outside of the box through a hole, PS2 Joystick , the TFT Screen and all switches (ON/OFF switch and Day/Night Mode switch). Additionally I have drilled holes for the Motor Drives connectors, 12V power supply connector and a USB cable port that goes to ArduinoDUE Native port to allow for Software updates without opening the box.

How to connect components to ARDUINO DUE board:

Component

Hardware Pin

Arduino Pin

GPS (VCC: +3.3V)

GPS NEO 6M - RX

16

GPS NEO 6M - TX

17

RTC (VCC: +3.3V)

RTC DS3231 - SDA

A4

RTC DS3231 - SCL

A5

Bluetooth (VCC: +3.3V)

BT HC-05 - TXD

14

BT HC-05 - RXD

15

DHT (VCC: +3.3V)

DHT22 - out

3

Speaker

Piezo Speaker

2

PS2 (VCC: +3.3V)

PS2 joystick - VRx

A1

PS2 joystick - VRy

A0

Declination DRV8825

DEC DRV8825 - STEP

6

DEC DRV8825 - DIR

7

DEC DRV8825 - FAULT

+3.3 V

DEC DRV8825 - M0

10

DEC DRV8825 - M1

9

DEC DRV8825 - M2

8

DEC DRV8825 - ENABLE

DEC DRV8825 - RESET

DEC DRV8825 - SLEEP

Right Ascention DRV8825

RA DRV8825 - STEP

4

RA DRV8825 - DIR

5

RA DRV8825 - FAULT

+3.3 V

RA DRV8825 - M0

11

RA DRV8825 - M1

13

RA DRV8825 - M2

12

RA DRV8825 - ENABLE

RA DRV8825 - RESET

RA DRV8825 - SLEEP

TFT Screen

use with TFT Shield

pins (22-53) + SPI

Day/Night (VCC: +3.3V)

Mode Switch

A3

Right... Now we are ready to assemble the Shield Board.Get a prototyping PCB and assess how to cut it, so that it can hold all components, to have some room for wiring and have the pinouts soldered in such a way that it can be stacked on top of Arduino. Please note that you need to solder all the pins used by Arduino and connect them either to the components on the Shield board, or to a connector on this shield bord so that components put on the box itsels can be connected too.

I'm including some photos below of the process:

Once those were done, I connected the board and tested the shield! ... It wasn't working! :( I checked the wiring and it turned out that I have created a bridge between 2 connections and I had to fix it. Please note that as of this moment I started to check every soldering for issues as I really got lucky to not burn my Arduino or anything else with the wrong wiring.

NB! - Make sure you check all connections!

Make sure you follow the following wiring diagram for the DRV8825 and motor drives as it is important....

Make sure you use suitable power adapter (12V, 1.6A) and connect the motor drives before the power is ON! NB!: Never connect motor drives when DRV8825 is under load as it might burn the drivers!

Now as all components are soldered in place, I suggest you to also connect the motor drives, load the software to the Arduino board and test the entire setup. It should work without glitches at this point.

You should now be able to play around with the software and get to know the User Interface.

Hi Dessi. Im looking at changing the stepper drivers to allow larger current steppers to be used. Ive found it a bit hard to get anything under 2Amp as the weight of my scope(DOB) requires a larger stepper to counter the stiction in the turntable and the tube. Have you looked at any other drivers with your project i.e TB6600 drivers. Can you point me in the area of the code i need to make some changes. Looking forward to making this work as i feel its a GR8 project you've created.Cheers Glenn

Ii is an amazing project and found on google, because I tried to find a related GOTO project, I am very luck to find this. So I bought Arduino DUE, GPS module, BT module, and very hard to find the HX8352A chip driving TFT LCD, most of the TFT LCD is drove by HX8352C, and the seller tell me that it can not work on the software for 8352A, finally I found 8532A TFT mudle but it not as same as yours, it is just a TFT PCBA without shield, I have to build my own shiled for the TFT PCBA..I wonder if the 1.4D ver PCB is open source or not? IF yes, I am going to order a formal PCB in Chinese. If it is not open source, i have to use my homemade PCB with much wires.

At the risk of sounding stupid, I am now thinking the pulleys are actually 3:1, as there is a 60 tooth pulley for the worm gear, and a 20 tooth pulley on the stepper motor. I was going by apparent size, but is this right?

I'm VERY Excited about this! I have been wanting to upgrade my old CI-700 mount for years! I ordered 10:1 gearbox steppers (will need the extra torque) and the timing wheels are 4:1 so how do I setup the spreadsheet calc? would that end up being 40:1?

Your calculations are correct, you will have 40:1 reductor (need to write 40 in the cell). Also you need to add the RA tooths (180 I believe) and data for the stepper to play around wiht precision. Please, note that gaining precision will decrease slew speeds and vice versa! So take time to find your sweet point assuming that when SlewTo is activated the motors does ~500 RPM in full step mode.

Revising the code to work with different screens is a serious effort. I'm planning to do this for later versions in order to incorporate smarter, faster screens but this will be probably in the next year.

basically YES.... You need to replace the UTFT library and play around with the code a bit. I think it should be a simple change once you revise the Initialization and Touch inputs in the Setup() and Loop().

You can however try asking in the Facebook group... I know a few guys who have revised the code to use UTFT library.

Before all, I'd like to thank you for your interest in rDUINOScope. It really feels great.

I'd like to share with you that the free hosting I used for the project website exceeded allowed bandwidth of 5GB in just a few hours and the site went down. Thus I have created a mirror website wth all instructions and files to download.