Wednesday, October 27, 2021

Let's talk Configuration

The definition of configuration, an arrangement of elements in a particular form, figure, or combination, sure doesn't cast much light. In the context of OnStep when we speak of configuration we are referring to a list of options that the OnStep program refers to when it compiles the code that will be uploaded into the controller.

By now everyone should be using OnStep version 4.2.4. Download the OnStep package and install in your Arduino directory. Within the OnStep directory you will find the Config.h. For the Arduino development environment (IDE) the *.h suffix means "library." A library is a list of parameters that customize the OnStep software to your mount. In this way OnStep can be adapted to almost any conceivable telescope mount. You can use any basic text editor to make you changes to Config.h. I us Windows Notepad. When you open Config.h you will find a listing of about 150 definition statements that require that either an alphanumeric data or ON/OFF to be selected entered. Don't PANIC! Only about 20 or less than 5% have to be addressed. The remainder can be left at their default value. Once you have some experience with your mount and the software you can explore these options if needed or desired. 

To help you with making your configuration's selections/entries There is a Configuration Generator that greatly simplifies the whole process. Opening the Generator you will find there's something else you need to look at the OnStep Configuration Calculator. Generator-Calculator, don't worry about the heavy sounding names. The Generator is a true/false or fill-in-the blank test and the Calculator is a simple spreadsheet that helps you run what ifs to come up with the motors and gearing for you mount. You need to settle on this information to fill in those blanks on the Generator.

Here's the spreadsheet opened in Libre Office 6.1:

OK, to complete the spreadsheet we need to know a few things about our motors and mount. First how many steps per revolution does our motor perform. Generally that will be 400 (0.9° steps) or 200 (1.8° steps). Next the gear reduction of our mount's RA (or Azm) and Dec (or Alt) axis and add that to the GR2 column. These are often fairly fixed numbers. GR1 is the gear reduction we decided to add between the motor output and GR2. 

GR1 is often added to increase the tracking resolution by adding more steps. In the example above there is no GR1 as the 360:1 and the 0.9° step angle motor provide 400 steps per degree of arc. So they can be connected directly. Now you wouldn't want to observe at 400 steps per degree as the steps would be visible. This is because one degree of arc is about 4 minutes of tracking. Thus You would see a step every 1.673 seconds. But this will still because there is another way to add steps and get better resolution, add microsteps. Microsteps that can be added can be varies with the driver design selected, 1, 4, 8, 16, 32, 64, 128 and 256 are common. Generally 16, 32 & 64 are the most common except with more advanced drivers. 

In our example 32 microsteps has been selected. This results in 12,800 µsteps/step (400 X 32 X 360/360). So 12,800 divided by 239 seconds 53.5565 µsteps/second. As the brain usually can distinguish must more than 24 frames a second the jerkiness is not longer apparent. 

The spreadsheet also confirms that the adding of µsteps has brought our tracing resolution into a number that should work well for astrophotography. But we are not done with the spreadsheet yet. We have to enter a goto slewing base rate in degrees or arc/second. Numbers from 1 to 8 are common. In our example 1°of arc/second has been entered. The table on the right side of the sheet advices that our motor will have to spin 1 revolution a second to get us this spin rate of 239X of tracking speed. thing get a bit dicey if we want, say 3°/second. At this speed motor torque has dropped off about 40%. By the time we get to 8°/second the motor is only capable of 20% of its full torque. For our early tests we just need a number and 1-3 are a safe bet. Print a copy of your spreadsheet.

Now lets generate a Config.h file. Open Generator. 

Version: just leave it at the 4.x default choice. 
Mount Type: most Dobsons and some forks are Alt-Az.
Desired slewing rate was discussed above and you don't want steps/worm wheel rotation you want steps/WORM rotation. Cell C:13 from the spreadsheet. 12800 in our example.

Board: as in Controller design.

This dropdown select the OnStep file that contains the pinmap for the controller design you are using. Pinmaps are library files that define which of the numerous pins of the microcontroller's module have what of the many functions needed to run OnStep. Obviously, if the input and output signals don't get to the correct address things won't happen the way we want. OnStep runs validation routines during the flashing of the microcontroller. So if the pinmap and board type are mismatched no harm will be done. Some boards like the D1 R32/Hujer Shield have unique pinmaps that must be dealt with. Information on the D1 R32/Hujer Shield pinmap.

Next we'll deal with the output end of our configuration.
Motor stepping characteristics come first. In almost all cases this will be 400 or 200 steps/revolution. Then information about our drivers. It would make sense indicate the model first, but Config.h isn't set up that way. so Micro-Steps get priority. Just take it from the spreadsheet. MICROSTEPS GOTO: not sure why we're shouting here. Anyway, there are occasion you may want to use µsteps to slow slewing, but generally not. "OFF" tells OnStep to shift out of microstepping mode and into full step mode to give us the fastest rate possible.

Ignore the GRs for now and deal with the motor driver model. The TMC2130 and 5160 are more advanced and can be controlled by a SPI signal rather than by the three Mode pins. The 5160 is the most expensive. Spending a little more to get low current step motors can save quite a bit on high capacity drivers. I usually advise those less experienced with OnStep to start with the LV8729 drivers and upgrade later if they feel the need for the advanced features. This driver seems to be getting scarce. The TMC2209s lack the SPI control but do have a Quiet mode and 2A RMS output. At this writing about $4.

GR1 and GR2 can come over from the spreadsheet.

In the homestretch now. 

Reverse motors: leave at NO for now. Lets just get them working. Later this is useful if your tracking is set for the wrong hemisphere.

If you have a RTC it's most likely a DS3231. Not a critical function until you have more use for it.

Ah, the Buzzer, a/k/a Tone. I only sell active units and just wish they'd go away. Waste of a function IMO. Pinmap generally forces a choice  "#define Aux8 // OneWire, Status LED, Status2 LED, Reticle LED, Tone, etc." I vote for Reticle!

Power on tracking, yes for starters. Once you are set up you'll kill this and let the goto command start tracking, but for now...

Let end this thing. 

Nothing here is too critical, that is selecting these options cost you nothing if they are not present.
All the PCB board designs have ST-4 type guider ports. I test my boards using the SHC, but there is no point in drawing on the microcontroller's internal pullups resistors for it as the PCBs mostly have provision for discrete resistors and the SHC has its own pullups. All these resistors attenuate the pulldown voltage to the degree that much more than a 5" cable can't carry a signal to the controller. anyway this is the way I set up my boards for testing. 

So that's a wrap on Configuration. Select "Generate" and a Config.h will show up in your Downloads directory. Open your OnStep directory and save the new Config.h.


1 comment:

  1. I generally check this kind of article and I found your article which is related to my interest. Genuinely it is good and instructive information, Reverse Engineering PCB Board Thankful to you for sharing an article like this.