Return to the Cloudy Nights Telescope Reviews home pageAstronomics discounts for Cloudy Nights members
· Get a Cloudy Nights T-Shirt · Submit a Review / Article

Click here if you are having trouble logging into the forums

Privacy Policy | Please read our Terms of Service | Signup and Troubleshooting FAQ | Problems? PM a Red or a Green Gu… uh, User

Equipment Discussions >> ATM, Optics and DIY Forum

Pages: 1 | 2 | (show all)
Jeff Phinney
super member


Reged: 02/20/13

Loc: CA
Re: DIY digital setting circles new [Re: windjammer]
      #6031626 - 08/17/13 07:38 PM

Quote:

I don't know much about Dave Ek's DSC interface I'm afraid. I understand (I think) from some of the links posted here that the DSC interface counts encoder ticks and then transmits the counts on command from the computer.

So far so good. The control CPU s/w in my project could be changed to do this - currently the head-end CPUs repeatedly issue the counts over their 9600 baud serial links without being instructed. The central CPU just has to listen when it wants an encoder position update.

The other issue is what is the format of the data on the serial links: this project expects an encoder count in a specified format - 8 ascii hex digits and delimiter characters.




Well,... that's another problem for me right there: The serial link.
The Ek interface I was/am presently using is being utilized with an old PC laptop running XP which has a serial port, but I don't know how long I can keep it limping along. I've since switched platforms from PC to MAC, and of course, the MAC has no serial port. I've ordered the USB version from FAR Circuits, but I've yet to build it. I suspect I'm going to be in for a big surprise.

Being that Dave's interface works with a number of software packages, I get the impression that it has to be some sort of standard transmittal format. Digging through all of Dave's pages I could have sworn I came across the source code for the PIC, or at least a link to it, but I can't seem to find it now. Maybe it was your's and I'm simply confused. Nothing unusual there.

Quote:

All easy enough to change - the software C source is available on the site if you want to have a go.




Years ago(25 or more), I had designed up, prototyped/breadboarded, and started building a circuit to interface and count the pulses coming off of the encoders but never got past the programming of the processor that did all the math and ran the displays stage. That's when I learned that spaghetti code was my forte and that I should stick to designing hardware. Which is one of the reasons for the second line of my signature.

Quote:

An easier approach if you are not bothered about the EK i/face would be to connect your existing encoders to the head end units: the business end of these expects a 5V signal wiggling up and down representing encoder ticks.

This is pretty much a standard output from most encoders I think. Any idea how many counts per axis rotation your encoders give ? I won't say plug and play, but could be close.




No, shouldn't be a problem. They're 1000 cpr before encoding to 4000. I'm seriously thinking of purchasing the 10,000 cpr units from Wildcard Innovations.

Not to get off the subject, looking at the gearing and hardware you built up, it reminded me that back when, I realized that with some additional hardware and an extra two sets of IR receiver/transmitters offset a quarter phase, one could get an encoded output of 8X instead of the standard 4X. Never got around to trying it out, but it looks like your setup could be easily amended to do as such.

Quote:

If you are going to make a control and display unit you might as well make the head end units as well - they are actually a lot simpler than the control unit.

Simon




If it wasn't for the serial interface issue, your circuit would be a serious contender, but I sill need that USB interface,.... or do I? Maybe I should look a bit more deeply into the bluetooth interface Dave has up on his site and just find a way to keep my iPhone charged.


Post Extras: Print Post   Remind Me!   Notify Moderator  
DAVIDG
Post Laureate
*****

Reged: 12/02/04

Loc: Hockessin, De
Re: DIY digital setting circles new [Re: Jeff Phinney]
      #6031825 - 08/17/13 09:53 PM

"Being that Dave's interface works with a number of software packages, I get the impression that it has to be some sort of standard transmittal format"

The Eck interface is using the NGC-MAX format and it is this format that has become the standard output format.

- Dave


Post Extras: Print Post   Remind Me!   Notify Moderator  
Jeff Phinney
super member


Reged: 02/20/13

Loc: CA
Re: DIY digital setting circles new [Re: DAVIDG]
      #6031918 - 08/17/13 11:07 PM

Thanks for the reply David,

In a cursory search I did find this:

"When the NGC-MAX is operating in 'BOX' mode, it blanks its own display and does nothing but pass the shaft encoders' values over the serial port. It multiplies them by the encoder ratios (the latter set in the NGC-MAX setup function), and scales them such that 00000 is the position at power-on, and 32767 is just under 1 rotation.

Communication is at 9600,8,N,1. When the NGC-MAX powers on, it sends a hello message such as 'V2.94'. When the attached computer sends a character (the sample program uses 'Q' but anything seems to work) down the port; and the NGC-MAX replies with 13 characters of the format '+00000t+00000' where the 't' is ASCII 9, and the 00000s are the two encoder values."

And this: http://www.atmsite.org/contrib/Ek/dsc_old/dsc.asm

Do you think this is a good start or is there other, better info out there.


Post Extras: Print Post   Remind Me!   Notify Moderator  
DAVIDG
Post Laureate
*****

Reged: 12/02/04

Loc: Hockessin, De
Re: DIY digital setting circles new [Re: Jeff Phinney]
      #6032007 - 08/17/13 11:55 PM

Most of that information is correct. The MAX units that I have worked with do require a "Q" to be sent and not just any character to get them to respond so many software packages send the "Q". There are other characters that can be sent as well and again some software packages do use them to check on the communication to a device to be sure it is working. Also the ASCII string sent back is zero padded so it always has to be 13 characters long and some software packages are looking for the leading zeros and not just a null character to decode the string into numbers. The older NGC-MAX units scaled the encoder reading bewteen +/- 32767 while the newer units scaled them bewteen +/- 1/2 encoder resolution, so 4000 count encoder would produce a count of +/- 2000 counts.

- Dave


Post Extras: Print Post   Remind Me!   Notify Moderator  
steveastrouk
super member


Reged: 08/01/13

Loc: Rochdale, UK
Re: DIY digital setting circles new [Re: Jeff Phinney]
      #6032487 - 08/18/13 09:37 AM

Quote:


If it wasn't for the serial interface issue, your circuit would be a serious contender, but I sill need that USB interface,.... or do I?




I just built an encoder interface for a work project using an ARM Mbed card - USB out. It does other stuff - like watching for alarm signals from a 1750 C furnace, and displaying information on a big LED bargraph...not what you want on a scope ;-)

Here's the source code !

DDM4 is my display device. Stick a printf statement in where that is, and you have encoder to USB.

#include "mbed.h"
#include "ws2801.h"
#include "HTML_color.h"
#include "QEI.h"
#include "SerialRPCInterface.h"
//The magic bit
QEI head_position (p8,p9,NC,10000,QEI::X4_ENCODING);

//P8 and P9 are pins on the Mbed for the encoder. NC is the //index pin, not used.

main()
{DDM4(0.0);
head_position.reset();

while (1)

{
wait_ms(250);


if (PosReset==false)
{head_position.reset();
while (PosReset==false);
};
height=head_position.getPulses();
height=height/206.8;
DDM4(height);

}

}


Post Extras: Print Post   Remind Me!   Notify Moderator  
StarDusty
sage


Reged: 10/02/07

Loc: Parsippany, NJ
Re: DIY digital setting circles new [Re: steveastrouk]
      #6032537 - 08/18/13 10:10 AM

I tried to put as many different DSC communication codes in my PIC firmware as I could find online. I did some research at the time. I emulated Ek's codes and some others. The DSC system is passive. It just counts encoder ticks up or down all night long. It only transmits that data via a serial link to the computer connected to the "black box". The computer might be a Palm Pilot, a PC, or now a Smartphone or Tablet. Most of the hard calculations needed to make the DSC complete are on the Computer side of this system. To rewrite that part would be a heavy lift....

Here are the Codes my PIC system can interpret along with the PIC's reaction to same.



//Receive "y" send encoder positions
case 'y':
buf[0] = lobyte(Alt);
buf[1] = hibyte(Alt);
buf[2] = lobyte(Az);
buf[3] = hibyte(Az);
sendMessage(buf,4);
break;

//Receive "h" send encoder resolution
case 'h':
buf[0] = lobyte(AltRes);
buf[1] = hibyte(AltRes);
buf[2] = lobyte(AzRes);
buf[3] = hibyte(AzRes);
sendMessage(buf,4);
break;

//Receive a "z" set and save encoder resultion in PIC
case 'z':
Altlo=getc();
Althi=getc();
Azlo=getc();
Azhi=getc();
AltRes=make16(Althi,Altlo); //Make 16 bit number
AzRes=make16(Azhi,Azlo);
AltDelt=AltRes/2;
AzDelt=AzRes/2;
buf[0] = 'r';
sendMessage(buf,1);
break;

//SOME OTHER SYSTEM CODES
//Receive a "Q" send be encoder positon in specific format
case 'Q':
AzMG=Az;
AltMG=Alt;
if(Az>AzDelt) AzMG=-(AzRes-Az);
if(Alt>AltDelt) AltMG=-(AltRes-Alt);
sprintf(buf, "%06Ld\t%06Ld\r", AzMG, AltMG);
length = strlen(buf);
if(AzMG>=0) buf[0]='+';
if(AltMG>=0) buf[7]='+';
sendMessage(buf,length);
break;

//Receive a "Z" set encoder resolutions also sends back a "*"
case 'Z':
for(i = 0; i<15; i++)
{
buf = getc();
}
buf[7] = 0;
buf[14] = 0;
AltRes = atol(&buf[9]);
AzRes = atol(&buf[2]);
AltDelt=AltRes/2;
AzDelt=AzRes/2;
buf[0] = '*';
sendMessage(buf,1);
break;

//YET ANOTHER SYSTEMS CODES
//Receive a "I" send encoder positions in a specific format
case 'I':
for(i = 0; i<14; i++)
{
buf = getc();
}
buf[6] = 0;
buf[13] = 0;
Alt = atol(&buf[9]);
Az = atol(&buf[1]);
buf[0] = '1';
sendMessage(buf,1);
break;

//Receive a "r" A different way to send encoder positions
case 'r':
sprintf(buf, "%05Lu\t%05Lu\r", AzRes, AltRes);
length = strlen(buf);
sendMessage(buf,length);
break;

Receive a "a" send back a "Y"
case 'a':

buf[0] = 'Y';
sendMessage(buf, 1);
break;

Recieve a "R" send back encoder resolutions in a specific format
case 'R':
buf[0]= getc();
if (buf[0]=='+') {
for(i = 1; i<14; i++)
{
buf = getc();
}
buf[6] = 0;
buf[13] = 0;
AltRes = atol(&buf[8]);
AzRes = atol(&buf[1]);
}
else {
for(i = 1; i<12; i++)
{
buf = getc();
}
buf[5] = 0;
buf[11] = 0;
AltRes = atol(&buf[6]);
AzRes = atol(&buf[0]);
}
AltDelt=AltRes/2;
AzDelt=AzRes/2;
buf[0] = 'R';
sendMessage(buf,1);
break;

Edited by StarDusty (08/18/13 02:06 PM)


Post Extras: Print Post   Remind Me!   Notify Moderator  
Dale Eason
member


Reged: 11/24/09

Loc: Roseville,Mn.
Re: DIY digital setting circles new [Re: windjammer]
      #6032714 - 08/18/13 11:57 AM

Another option is to use an Android tablet like the Google Nexus 7 or Nexus 10. They have a free program called SkyEye that monitors the tilt of the tablet and knows where it is pointing. Turns out it is accurate enough to find the Messier objects in an eyepiece of a Dob. You can mount it on the scope and align it to at least one star. Then it knows how it is oriented and where the scope is pointing. SkyEye has a small data base of stars and the Messier objects.

The Nexus 7 is only $250 dollars. I was very impressed with its capabilities. I have argo navis and Servo cat on my scope so I do know what some of the best systems can do. I tired this out on another scope and was surprised by how well it worked.

For those that can write programs this is a good option since you can access all of those sensors yourself and create your own modifications. For your project the neat thing is that you would not need to connect encoders to the axis of the scope. For visual work it is accurate enough to find the object at low power. It might not be accurate enough to track it. I don't know the resolution of the sensors.

Dale Eason


Post Extras: Print Post   Remind Me!   Notify Moderator  
Aaron Small
newbie


Reged: 09/27/12

Re: DIY digital setting circles new [Re: Sean Wood]
      #6032986 - 08/18/13 02:32 PM

I recently used these capacitive encoders with a Ek DSC box on my C8. Very easy to install to the scope with minimal modification. They adapt easily to any access shaft (machine screw) so I would think they would be easily adaptable for others.

Probably going to get these same encoders for my ATM Dob instead of modifying the encoders from a couple of MS mice.


Post Extras: Print Post   Remind Me!   Notify Moderator  
NHRob
Post Laureate
*****

Reged: 08/27/04

Loc: New Hampshire
Re: DIY digital setting circles new [Re: Aaron Small]
      #6033543 - 08/18/13 08:27 PM

I picked up two capacitive encoders and am building DSCs around an Arduino clone. It will be Bluetooth-wireless to my Nexus 7 running Sky Safari. I have one axis working now and just need to add the 2nd axis and get that debugged.

Post Extras: Print Post   Remind Me!   Notify Moderator  
windjammer
member


Reged: 06/02/13

Re: DIY digital setting circles new [Re: Jeff Phinney]
      #6035015 - 08/19/13 05:37 PM

Hi Jeff -

Well, David and Stardusty have given a pretty good spec on what is needed to speak to one of these eeks (thanks very much!). I'll put it on my list of upgrades but can't say when I might get round to it. I want to fix a few bugs first, clean it up, 2 star align etc etc. I don't actually possess one of these eek beasties anyway !

Major issue at the moment is the wife-required great summer DIY marathon on the house, so my spare time is a bit limited for a while....

Re adding extra detectors in the encoder, I think that is a good idea, although another 90d phase offset would put you 180d from the first detector, which would supply no further information. So the phase offsets should not be 90d - which as you say is easily done. On a different tack I experimented with putting the analogue sensor outputs through the D/A converters on the arduino as a way of generating extra encoder ticks. The full 10bit A/D conversion cycle takes an age, but to simply generate an extra 8/16 or 32 steps is much faster. Being able to do this would mean one could remove some of the gearing, which would improve accuracy and backlash. I never bottomed out completely on this approach - maybe mark 2.

Simon


Post Extras: Print Post   Remind Me!   Notify Moderator  
StarDusty
sage


Reged: 10/02/07

Loc: Parsippany, NJ
Re: DIY digital setting circles new [Re: windjammer]
      #6035465 - 08/19/13 10:03 PM Attachment (19 downloads)

Just as a double check, I went back to Dave Ek's website. Here is a screen shot of his original Communication Protocol.

Post Extras: Print Post   Remind Me!   Notify Moderator  
Matt W.
journeyman
*****

Reged: 10/02/11

Re: DIY digital setting circles new [Re: StarDusty]
      #6219669 - 11/27/13 03:40 PM

This is what I built last summer, DSC + Wifi to use with SkySafari on iOS, but would probably work with any Serial over WiFi solution out of the box, or with software mods.

https://github.com/mdw123/arduino-dsc

Uses an Arduino, a WiFly board and the AMT capacitive encoders, which work great once you epoxy the slip out of the plastic parts that connect the encoders to the shaft.

The WiFly sets up an access point that you connect to, so it can be used in the field without any additional hardware other than your phone or tablet. An 8Ah sealed lead-acid battery could easily run the DSC circuit and my fan from sunset to sunrise.

The only warning is to use a digital voltage regulator to reduce the input voltage to the circuit as close to lowest voltage allowed by the Arduino so you don't overload the heat-dissipating capacity for the arduino's voltage regulator, due to the somewhat power-hungry WiFly. Based on what I've read, it should be able to easily handle the WiFly's draw as long as you don't power the Arduino at too high of a voltage. I bought an automotive adapter for $10 or so at one of the local stores.

Matt

Edited by Matt W. (11/27/13 03:49 PM)


Post Extras: Print Post   Remind Me!   Notify Moderator  
orlyandico
Postmaster
*****

Reged: 08/10/09

Loc: Singapore
Re: DIY digital setting circles new [Re: Matt W.]
      #6220641 - 11/28/13 01:28 AM

http://orlygoingthirty.blogspot.com/2012/01/arduino-bluetooth-digital-setting...

DSC + Bluetooth for use with Skysafari. I don't claim originality of code, I used Mike Fulbright's DSC code - http://msfastro.net/articles/arduinodsc/ - the difference is I do quadrature on both encoders, and use PinChangeInt to get around the Uno's lack of interrupts (ideally you'd want 4 hardware interrupts).


Post Extras: Print Post   Remind Me!   Notify Moderator  
Matt W.
journeyman
*****

Reged: 10/02/11

Re: DIY digital setting circles new [Re: orlyandico]
      #6220688 - 11/28/13 02:21 AM

Yep - my code is forked from from https://github.com/mrosseel/arduino-dsc - the repo based on your code, right?

Works very well, except that code didn't work with SkySafari out of the box, due to if I remember correctly carriage returns and some of the commands it implemented caused SkySafari to not be able to connect. You probably have something different than that repo?

I ended up separating the initialization of the WiFly from the DSC code because of the issues with Arduino performance of software serial, which is how all of the WiFly libraries are set up. That way, bluetooth, WiFly or serial, everyone can use the same code.

Shaft expoxy and 4x interrupts definitely helped the performance.


Post Extras: Print Post   Remind Me!   Notify Moderator  
orlyandico
Postmaster
*****

Reged: 08/10/09

Loc: Singapore
Re: DIY digital setting circles new [Re: Matt W.]
      #6220695 - 11/28/13 02:49 AM

Honestly I haven't touched my code since I wrote it (since it worked fine for me). The code from github is probably more developed/fixed, and I expect yours is more developed still.

I'm planning to get started on my DIY GoTo using an Arduino and LadyAda motor shield real soon now though (the use of an existing shield means zero soldering).


Post Extras: Print Post   Remind Me!   Notify Moderator  
Matt W.
journeyman
*****

Reged: 10/02/11

Re: DIY digital setting circles new [Re: orlyandico]
      #6228295 - 12/02/13 01:27 AM

will be interesting to see what you build!

Post Extras: Print Post   Remind Me!   Notify Moderator  
Pages: 1 | 2 | (show all)


Extra information
12 registered and 29 anonymous users are browsing this forum.

Moderator:  ausastronomer, richard7, Starman81 

Print Thread

Forum Permissions
      You cannot start new topics
      You cannot reply to topics
      HTML is disabled
      UBBCode is enabled


Thread views: 2070

Jump to

CN Forums Home


Cloudy Nights LLC
Cloudy Nights Sponsor: Astronomics