Git Product home page Git Product logo

Comments (7)

NameOfTheDragon avatar NameOfTheDragon commented on July 29, 2024 1

You can look in the CommandProcessor.cpp file to see how commands are handled, the code isn't complicated. In most cases, parameters are limited by hardware and the firmware doesn't place any limits on them. Commands that take a step position or range, for example, are 32-bit integers and can generally take any valid uint32 value. Step positions are always in whole steps (not microsteps). So its up to the client application to decide what makes sense. In the ASCOM driver, I use the following:

Item Min Max Default
Max Speed/velocity (whole steps/sec) 200 1000 600
Ramp time (ms) 1000 5000 1500
Dead zone (whole steps) 1 circumference @RRR 2400
Circumference (whole steps) 1 maxint 55080

Note: I don't recommend changing the circumference. There are a fixed number of teeth in the rack so this should never need to change. Dead zone can be changed but because of how the move commands work, dead zone is essentially rounded to 1 degree increments.

The microstep generator bandwidth is a bit less than 250Hz up to something way faster than any stepper motor would be able to handle. So that's 250 microsteps/sec or about 32 whole steps per second (8 microsteps per step) up to way more than the motors will be able to handle. The default of 600 steps/sec appears to work well. Note that the motors are 200 whole steps/revolution but this is further geared down by a (not quite exactly) 15:1 gearbox, so its about 3,060 whole steps (24,480 microsteps) for one revolution of the pinion. There are 288 rack teeth and 16 pinion teeth, giving 18 pinion revolutions per dome revolution, or 55,080 whole steps, 440,640 microsteps. See https://github.com/nexdome/Firmware/blob/master/Gear%20and%20Step%20Calculator.xlsx for details.

Given that the number of teeth in the rack is fixed at 288, then the dome circumference should be fixed at 55,080 whole steps. It's best to treat this as fixed and I don't recommend letting the user change it or you risk introducing positioning errors and making support incidents for yourself.

The shutter connection is automatic. You have to pay attention to the XBee event notifications to work out the connection state. You are looking for XBee->Online to signal that the shutter is connected. Any other state means it's offline and shutter commands will be ignored.

Open the shutter using @OPS and close it using @CLS

Did I miss anything?

from firmware.

knro avatar knro commented on July 29, 2024

Thanks! That answers all my questions. I have other concerns that I talked about in PR #5

from firmware.

knro avatar knro commented on July 29, 2024

Also, what's the maximum range in steps for the shutter? It appears that dead-zones are also applicable to shutter.

from firmware.

NameOfTheDragon avatar NameOfTheDragon commented on July 29, 2024

As for the rotator, you can set any uint32 value for the shutter range. The default is 46,000 whole steps which was chosen to be "a bit more" than where I empirically determined the most likely location of the limit switch magnet to be. This shouldn't really need to be changed in a client application and I don't recommend doing so - but that's up to you.

The shutter does not have a dead zone because it currently doesn't support moving to any position other than fully open or fully closed. The user can do so manually with the rocker switch, but the firmware only has commands for @OPS (fully open) and @CLS (fully close).

from firmware.

knro avatar knro commented on July 29, 2024

Thank you, that clears it up.

For battery voltage, it says it's in ADU? I am getting 878, how to translate that to volts?

from firmware.

NameOfTheDragon avatar NameOfTheDragon commented on July 29, 2024

from firmware.

knro avatar knro commented on July 29, 2024

Thank you! Now the INDI driver is ready for testing, once we are done with testing, I'll inform the Facebook group if they can test it more thoroughly. Thank you for the great documentation, design, and support!

from firmware.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.