Topics

MiniPCB2 bunches of weirdness

Dennis Hurlbut
 
Edited

I've got everything hooked up, and started testing with my MiniPCB2.
Basic Info:
Firmware 3.16
0.9A 400 step motors
TMC2130s, vref set just below 0.54
I'll post the Axis configs at the end.

  1. I cut the motor wires short so I could properly mount the connectors on the scope. When I press a button to move it, via web or basic hand controller, tne motor chatters and doesn't move. When chattering, I can fairly easily move the spindle. When not pressing the button, it has good hold torque.  I've swapped cables, swapped the motor between RA and DEC, and re-built the connector twice. Always the same result. (and yes, complete power off before disconnecting/reconnecting).
  2. The other motor has a tendency to swap directions when pressing buttons. For example, if I press E twice in a row, first time it will move one direction, the second time the opposite. Sometimes I press E and it goes one way, then first press of W it goes the same way as the E press. This happens for the first few times I press buttons, then it seems to settle in and stop switching. Again, happens with or without hand controller, and on either axis. This motor works great on either axis otherwise, nice and smooth.
  3. Sometimes one or another button on the basic hand controller doesn't work, but the same button in the web page does work.
  4. The ESP32 SHC shows the TeenAstro screen when first connected, then goes black. Never shows anything else. Doesn't work as a basic hand controller.
Any help or thoughts on this appreciated,
Regards,
Dennis

config.h for axis and ST4:
// AXIS1 RA/AZM
// see https://onstep.groups.io/g/main/wiki/6-Configuration#AXIS1
#define AXIS1_STEPS_PER_DEGREE    12800.0 //  12800, n. Number of steps per degree:                                          <-Req'd
                                          //         n = (stepper_steps * micro_steps * overall_gear_reduction)/360.0
#define AXIS1_STEPS_PER_WORMROT     16000 //  12800, n. Number of steps per worm rotation (PEC Eq mode only:)                <-Req'd
                                          //         n = (AXIS1_STEPS_PER_DEGREE*360)/reduction_final_stage
 
#define AXIS1_DRIVER_MODEL TMC2130_VQUIET //    OFF, (See above.) Stepper driver model.                                      <-Often
#define AXIS1_DRIVER_MICROSTEPS        32 //    OFF, n. Microstep mode when tracking.                                        <-Often
#define AXIS1_DRIVER_MICROSTEPS_GOTO  OFF //    OFF, n. Microstep mode used during gotos.                                     Option
#define AXIS1_DRIVER_IHOLD            OFF //    OFF, n, (mA.) Current during standstill. OFF uses IRUN/2.0                    Option
#define AXIS1_DRIVER_IRUN             OFF //    OFF, n, (mA.) Current during tracking, appropriate for stepper/driver/etc.    Option
#define AXIS1_DRIVER_IGOTO            OFF //    OFF, n, (mA.) Current during slews. OFF uses same as IRUN.                    Option
#define AXIS1_DRIVER_REVERSE          OFF //    OFF, ON Reverses movement direction, or reverse wiring instead to correct.   <-Often
#define AXIS1_DRIVER_STATUS       TMC_SPI //    OFF, TMC_SPI, HIGH, or LOW.  Polling for driver status info/fault detection.  Option
 
#define AXIS1_LIMIT_UNDER_POLE        180 //    180, n. Where n=150..180 (degrees.) Max HA hour angle + or - for Eq modes.    Infreq
#define AXIS1_LIMIT_MAXAZM            360 //    360, n. Where n=180..360 (degrees.) Max Azimuth + or - for AltAzm mode only.  Infreq
 
// AXIS2 DEC/ALT
// see https://onstep.groups.io/g/main/wiki/6-Configuration#AXIS2
#define AXIS2_STEPS_PER_DEGREE    12800.0 //  12800, n. Number of steps per degree:                                          <-Req'd
                                          //         n = (stepper_steps * micro_steps * overall_gear_reduction)/360.0
 
#define AXIS2_DRIVER_MODEL TMC2130_VQUIET //    OFF, (See above.) Stepper driver model.                                      <-Often
#define AXIS2_DRIVER_MICROSTEPS        32 //    OFF, n. Microstep mode when tracking.                                        <-Often
#define AXIS2_DRIVER_MICROSTEPS_GOTO  OFF //    OFF, n. Microstep mode used during gotos.                                     Option
#define AXIS2_DRIVER_IHOLD            OFF //    OFF, n, (mA.) Current during standstill. OFF uses IRUN/2.0                    Option
#define AXIS2_DRIVER_IRUN             OFF //    OFF, n, (mA.) Current during tracking, appropriate for stepper/driver/etc.    Option
#define AXIS2_DRIVER_IGOTO            OFF //    OFF, n, (mA.) Current during slews. OFF uses same as IRUN.                    Option
#define AXIS2_DRIVER_POWER_DOWN       OFF //    OFF, ON Powers off 10sec after movement stops or 10min after last<=1x guide.  Option
#define AXIS2_DRIVER_REVERSE          OFF //    OFF, ON Reverses movement direction, or reverse wiring instead to correct.   <-Often
#define AXIS2_DRIVER_STATUS       TMC_SPI //    OFF, TMC_SPI, HIGH, or LOW.  Polling for driver status info/fault detection.  Option
#define AXIS2_TANGENT_ARM             OFF //    OFF, ON +limit range below. Set cntr w/[Reset Home] Return cntr w/[Find Home] Infreq
 
#define AXIS2_LIMIT_MIN               -91 //    -91, n. Where n=-91..0 (degrees.) Minimum allowed declination.                Infreq
#define AXIS2_LIMIT_MAX                91 //     91, n. Where n=0..91 (degrees.) Maximum allowed declination.                 Infreq

// ST4 INTERFACE ------------------------------------------------------ see https://onstep.groups.io/g/main/wiki/6-Configuration#ST4
// *** It is up to you to verify the interface meets the electrical specifications of any connected device, use at your own risk ***
#define ST4_INTERFACE           ON_PULLUP //    OFF, ON, ON_PULLUP enables interface. <= 1X guides unless hand control mode.  Option
                                          //         During goto btn press: aborts slew or continue meridian flip pause home
#define ST4_HAND_CONTROL               ON //    OFF, ON for hand controller special features and SHC support.                 Option
                                          //         Hold [E]+[W] btns >2s: Guide rate   [E]-  [W]+  [N] trk on/off [S] sync
                                          //         Hold [N]+[S] btns >2s: Usr cat item [E]-  [W]+  [N] goto [S] snd on/off
#define ST4_HAND_CONTROL_FOCUSER      OFF //    OFF, ON alternate to above: Focuser move [E]f1 [W]f2 [N]-     [S]+            Option

Dennis Hurlbut
 

And I'm clueless:

#define PINMAP                     MiniPCB //    OFF, Choose from: MiniPCB, MiniPCB2, MaxPCB, MaxPCB2, STM32Blue,             <-Req'd
                                          //         Ramps14, MaxESP2, MaxESP3.  Check Constants.h for more info.

Let me see what happens after that is set properly as MiniPCB2. The chattering motor issue I doubt will be fixed from this though as it's not axis specific.

Dennis

Dennis Hurlbut
 
Edited

I changed to MiniPCB2 and also moved to TMC2130_QUIET instead of _VQUIET. A lot noisier, VQUIET makes a big difference. However, no change in hand controller behavior, and a new symptom that I might have missed with VQUIET on.

Initial setup good motor on RA, chattering motor on DEC
When I moved RA, actually the motor no longer did the direction reversing, which is good, and it moved smoothly. Interestingly, when I pressed a DEC button, the RA motor squealed and made noises like whale sounds. It also moved a very tiny bit at the same time.

When I swapped motors, the DEC motor moved correctly and the RA chattered a bit, but didn't achieve whale sound.

It seems when DEC moves, the RA wants to move also, but just a tiny bit.

Howard Dutton
 
Edited

On Wed, Mar 25, 2020 at 09:42 PM, Dennis Hurlbut wrote:
I changed to MiniPCB2 and also moved to TMC2130_QUIET instead of _VQUIET. A lot noisier, VQUIET makes a big difference. However, no change in hand controller behavior, and a new symptom that I might have missed with VQUIET on.
You wouldn't be the first to not get the SHC hardware put together correctly.  And watch its cable for length (<= ~5') and that it's straight through wired and checks for continuity.

Initial setup good motor on RA, chattering motor on DEC
When I moved RA, actually the motor no longer did the direction reversing, which is good, and it moved smoothly. Interestingly, when I pressed a DEC button, the RA motor squealed and made noises like whale sounds. It also moved a very tiny bit at the same time.

When I swapped motors, the DEC motor moved correctly and the RA chattered a bit, but didn't achieve whale sound.

It seems when DEC moves, the RA wants to move also, but just a tiny bit.
So you're saying one motor works on both axes?  That almost certainly means the MiniPCB2 is working properly (with regard to the motors.)  As for the other motor and/or possibly its cable, there's something wrong.

The "squealed and made noises like whale sounds" is pwm whine (I guess).  TMC2130 in spreadCycle mode can do that with some motors.  And OnStep v3 and earlier switches both axes out of stealthChop (silent) when slewing then switches them both back when normal tracking resumes (both in _QUIET mode.)  OnStep v4 (master branch) switches axes independently so it doesn't have this limitation.

Dave Schwartz
 

A chattering motor with no torque could mean a motor wiring problem to do with the phase connections. Steppers don't work well if only one coil gets energized - they just sit there and jiggle. They might move oddly/noisily if the coil pulse is great enough to move the rotor from one magnetic detent to another but it would not do anything near what would be intended.

If you get the SHC logo coming up it means your power and ground are coming in on the right wires and thus your cable stands a good chance of being correct. It probably says 'Establishing connection' and 'Connection failed' before it goes blank (which is normal after connection failure. This would mean the controller and SHC aren't properly handshaking over some of the signal lines and the most probable cause of that is a missing or installed-backwards resistor network.

On 2020-03-26 12:16 a.m., Dennis Hurlbut wrote:
I've got everything hooked up, and started testing with my MiniPCB2.
Basic Info:
Firmware 3.16
0.9A 400 step motors
TMC2130s, vref set just below 0.54
I'll post the Axis configs at the end.

1. I cut the motor wires short so I could properly mount the
connectors on the scope. When I press a button to move it, via web
or basic hand controller, tne motor chatters and doesn't move.
When chattering, I can fairly easily move the spindle. When not
pressing the button, it has good hold torque.  I've swapped
cables, swapped the motor between RA and DEC, and re-built the
connector twice. Always the same result. (and yes, complete power
off before disconnecting/reconnecting).
2. The other motor has a tendency to swap directions when pressing
buttons. For example, if I press E twice in a row, first time it
will move one direction, the second time the opposite. Sometimes I
press E and it goes one way, then first press of W it goes the
same way as the E press. This happens for the first few times I
press buttons, then it seems to settle in and stop switching.
Again, happens with or without hand controller, and on either
axis. This motor works great on either axis otherwise, nice and
smooth.
3. Sometimes one or another button on the basic hand controller
doesn't work, but the same button in the web page does work.
4. The ESP32 SHC shows the TeenAstro screen when first connected,
then goes black. Never shows anything else. Doesn't work as a
basic hand controller.

Any help or thoughts on this appreciated,
Regards,
Dennis

config.h for axis and ST4:
// AXIS1 RA/AZM
// see https://onstep.groups.io/g/main/wiki/6-Configuration#AXIS1
#define AXIS1_STEPS_PER_DEGREE    12800.0 //  12800, n. Number of steps per degree:     <-Req'd
                                          //         n = (stepper_steps * micro_steps * overall_gear_reduction)/360.0
#define AXIS1_STEPS_PER_WORMROT     16000 //  12800, n. Number of steps per worm rotation (PEC Eq mode only:)     <-Req'd
                                          //         n = (AXIS1_STEPS_PER_DEGREE*360)/reduction_final_stage
#define AXIS1_DRIVER_MODEL            TMC2130_VQUIET // OFF, (See above.) Stepper driver model.             <-Often
#define AXIS1_DRIVER_MICROSTEPS       32 //    OFF, n. Microstep mode when tracking.     <-Often
#define AXIS1_DRIVER_MICROSTEPS_GOTO  OFF //    OFF, n. Microstep mode used during gotos.      Option
#define AXIS1_DRIVER_IHOLD            OFF //    OFF, n, (mA.) Current during standstill. OFF uses IRUN/2.0 Option
#define AXIS1_DRIVER_IRUN             OFF //    OFF, n, (mA.) Current during tracking, appropriate for stepper/driver/etc. Option
#define AXIS1_DRIVER_IGOTO            OFF //    OFF, n, (mA.) Current during slews. OFF uses same as IRUN. Option
#define AXIS1_DRIVER_REVERSE          OFF //    OFF, ON Reverses movement direction, or reverse wiring instead to correct.   <-Often
#define AXIS1_DRIVER_STATUS           TMC_SPI //    OFF, TMC_SPI, HIGH, or LOW.  Polling for driver status info/fault detection.  Option
#define AXIS1_LIMIT_UNDER_POLE        180 //    180, n. Where n=150..180 (degrees.) Max HA hour angle + or - for Eq modes. Infreq
#define AXIS1_LIMIT_MAXAZM            360 //    360, n. Where n=180..360 (degrees.) Max Azimuth + or - for AltAzm mode only. Infreq
// AXIS2 DEC/ALT
// see https://onstep.groups.io/g/main/wiki/6-Configuration#AXIS2
#define AXIS2_STEPS_PER_DEGREE    12800.0 //  12800, n. Number of steps per degree:     <-Req'd
                                          //         n = (stepper_steps * micro_steps * overall_gear_reduction)/360.0
#define AXIS2_DRIVER_MODEL            TMC2130_VQUIET // OFF, (See above.) Stepper driver model.             <-Often
#define AXIS2_DRIVER_MICROSTEPS       32 //    OFF, n. Microstep mode when tracking.     <-Often
#define AXIS2_DRIVER_MICROSTEPS_GOTO  OFF //    OFF, n. Microstep mode used during gotos.      Option
#define AXIS2_DRIVER_IHOLD            OFF //    OFF, n, (mA.) Current during standstill. OFF uses IRUN/2.0 Option
#define AXIS2_DRIVER_IRUN             OFF //    OFF, n, (mA.) Current during tracking, appropriate for stepper/driver/etc. Option
#define AXIS2_DRIVER_IGOTO            OFF //    OFF, n, (mA.) Current during slews. OFF uses same as IRUN. Option
#define AXIS2_DRIVER_POWER_DOWN       OFF //    OFF, ON Powers off 10sec after movement stops or 10min after last<=1x guide.  Option
#define AXIS2_DRIVER_REVERSE          OFF //    OFF, ON Reverses movement direction, or reverse wiring instead to correct.   <-Often
#define AXIS2_DRIVER_STATUS           TMC_SPI //    OFF, TMC_SPI, HIGH, or LOW.  Polling for driver status info/fault detection.  Option
#define AXIS2_TANGENT_ARM             OFF //    OFF, ON +limit range below. Set cntr w/[Reset Home] Return cntr w/[Find Home] Infreq
#define AXIS2_LIMIT_MIN               -91 //    -91, n. Where n=-91..0 (degrees.) Minimum allowed declination. Infreq
#define AXIS2_LIMIT_MAX                91 //     91, n. Where n=0..91 (degrees.) Maximum allowed declination.  Infreq

// ST4 INTERFACE ------------------------------------------------------ see https://onstep.groups.io/g/main/wiki/6-Configuration#ST4
// *** It is up to you to verify the interface meets the electrical specifications of any connected device, use at your own risk ***
#define ST4_INTERFACE                 ON_PULLUP //    OFF, ON, ON_PULLUP enables interface. <= 1X guides unless hand control mode.  Option
                                          //         During goto btn press: aborts slew or continue meridian flip pause home
#define ST4_HAND_CONTROL              ON //    OFF, ON for hand controller special features and SHC support.    Option
                                          //         Hold [E]+[W] btns
2s: Guide rate   [E]-  [W]+  [N] trk on/off [S] sync
                                          //         Hold [N]+[S] btns
2s: Usr cat item [E]-  [W]+  [N] goto [S] snd on/off
#define ST4_HAND_CONTROL_FOCUSER      OFF //    OFF, ON alternate to above: Focuser move [E]f1 [W]f2 [N]-     [S]+         Option

Dennis Hurlbut
 

On Thu, Mar 26, 2020 at 04:18 AM, Howard Dutton wrote:
You wouldn't be the first to not get the SHC hardware put together correctly.  And watch its cable for length (<= ~5') and that it's straight through wired and checks for continuity.
Definitely straight through. It's a coiled cable, and I will check continuity on all wires. coiled length about 11 inches, stretches maybe to a little over 3 feet.

So you're saying one motor works on both axes?  That almost certainly means the MiniPCB2 is working properly (with regard to the motors.) 
Yes and no. One motor does work correctly when connected to either axis. Beyond that, when that good motor is connected to RA:
  1. It ticks away in tracking mode as it should
  2. The moment you move DEC either direction  (not RA) the squeal comes from the RA motor. If I hold the motor by the shaft so I can see the movement, it is imparting additional movement in the direction of tracking to the RA motor.
If I've got the good motor connected to DEC, when I press DEC, the bad motor on RA increases chatter, so it's motor independent.

Howard Dutton
 

On Thu, Mar 26, 2020 at 08:50 AM, Dennis Hurlbut wrote:
On Thu, Mar 26, 2020 at 04:18 AM, Howard Dutton wrote:
You wouldn't be the first to not get the SHC hardware put together correctly.  And watch its cable for length (<= ~5') and that it's straight through wired and checks for continuity.
Definitely straight through. It's a coiled cable, and I will check continuity on all wires. coiled length about 11 inches, stretches maybe to a little over 3 feet.

So you're saying one motor works on both axes?  That almost certainly means the MiniPCB2 is working properly (with regard to the motors.) 
Yes and no. One motor does work correctly when connected to either axis. Beyond that, when that good motor is connected to RA:
  1. It ticks away in tracking mode as it should
  2. The moment you move DEC either direction  (not RA) the squeal comes from the RA motor. If I hold the motor by the shaft so I can see the movement, it is imparting additional movement in the direction of tracking to the RA motor.
If I've got the good motor connected to DEC, when I press DEC, the bad motor on RA increases chatter, so it's motor independent.
Turn OFF the ST4 port and test again.

Dennis Hurlbut
 

On Thu, Mar 26, 2020 at 06:08 AM, Dave Schwartz wrote:
A chattering motor with no torque could mean a motor wiring problem to do with the phase connections. Steppers don't work well if only one coil gets energized - they just sit there and jiggle. They might move oddly/noisily if the coil pulse is great enough to move the rotor from one magnetic detent to another but it would not do anything near what would be intended.
This makes sense. I was re-building my connectors because the motor came with 3 ft of wire. One went well, the other has not even after two attempts. I'm going to move to breakout boards for the RJ45s.
If you get the SHC logo coming up it means your power and ground are coming in on the right wires and thus your cable stands a good chance of being correct. It probably says 'Establishing connection' and 'Connection failed' before it goes blank (which is normal after connection failure. This would mean the controller and SHC aren't properly handshaking over some of the signal lines and the most probable cause of that is a missing or installed-backwards resistor network.

I believe I have both connected correctly (pic attached). I checked the cable, and each wire has between 5 and 7 tenths of an ohm resistance end to end. I'm also checking whether the RJ12 jacks are soldered on well.

 

Dennis Hurlbut
 

On Thu, Mar 26, 2020 at 09:17 AM, Howard Dutton wrote:
Turn OFF the ST4 port and test again.
Done, same result. I did pay closer attention, and it seems the noise/movement is in sync with every other RA tracking pulse. Also, if changed the slew speed from fast to 1x, noise went away but could still feel that every other pulse on the RA side.

Dennis Hurlbut
 

For the hand controller stuff, I believe I have the pullup resistor on the MiniPCB backwards. The printed dot should be oriented to the square pad, correct?

Howard Dutton
 

On Thu, Mar 26, 2020 at 09:53 AM, Dennis Hurlbut wrote:
For the hand controller stuff, I believe I have the pullup resistor on the MiniPCB backwards. The printed dot should be oriented to the square pad, correct?
Yes.

I had you disable the ST4 port to see if a possibly backwards resistor array was tripping up guiding commands and causing unintended motion.

Howard Dutton
 

On Thu, Mar 26, 2020 at 09:48 AM, Dennis Hurlbut wrote:
and it seems the noise/movement is in sync with every other RA tracking pulse.
What's "tracking pulse" noise/movement?  Tracking pulses happen at about 424 times a second (due to 256x interpolation) with TMC2130's and 12800 steps/degree.

Dennis Hurlbut
 

Uploaded my first Youtube video to show this: OnStep RA Noise.

You can see that the tracking looks like a clock ticking, and then when I hit the DEC button, the noise emits from RA periodically, somewhat in sync with what looks like every other tick.

I will re-align that resistor array.

Howard Dutton
 

What do you have for a power supply?

Howard Dutton
 

What does the soldering on the MiniPCB2 look like?

Howard Dutton
 
Edited

On Thu, Mar 26, 2020 at 10:28 AM, Howard Dutton wrote:
What do you have for a power supply?
Axis2 sits in standby (lower current draw) when still.  When you move Axis2 its current is ramped up, so I'm wondering if the power supply buckles under the load and wham Axis1 stops working properly.

Dave Schwartz
 

Your SHC may be working for now (ignoring the connection to the controller for now as that may be a software issue) but it looks like issues will be likely to develop down the road due to soldering problems.

I see a lot of pads that do not have sufficient solder (e.g. voids) and that probably means cold solder joints which could let go at any time. I would touch up all the joints with a 300 degree C iron and a bit more solder. Hold the iron on the joint for at least a second and a half after you remove the solder wire to make sure you get good flow. The SHC in particular has some tricky spots to get right because the ground plane is a complete copper layer (the top layer) and as such acts as a prodigious heat sink... it requires more time to reach proper temperature than the non-ground pads. All the PCBs actually have the same issue, they all use a copper pour for the ground plane. There are lots of examples of what good (and bad) solder joints look like on the web.

If the soldering on the controller looks the same, I would go over that as well.

On 2020-03-26 12:29 p.m., Dennis Hurlbut wrote:
On Thu, Mar 26, 2020 at 06:08 AM, Dave Schwartz wrote:

A chattering motor with no torque could mean a motor wiring
problem to do with the phase connections. Steppers don't work well
if only one coil gets energized - they just sit there and jiggle.
They might move oddly/noisily if the coil pulse is great enough to
move the rotor from one magnetic detent to another but it would
not do anything near what would be intended.

This makes sense. I was re-building my connectors because the motor came with 3 ft of wire. One went well, the other has not even after two attempts. I'm going to move to breakout boards for the RJ45s.

If you get the SHC logo coming up it means your power and ground
are coming in on the right wires and thus your cable stands a good
chance of being correct. It probably says 'Establishing
connection' and 'Connection failed' before it goes blank (which is
normal after connection failure. This would mean the controller
and SHC aren't properly handshaking over some of the signal lines
and the most probable cause of that is a missing or
installed-backwards resistor network.

I believe I have both connected correctly (pic attached). I checked the cable, and each wire has between 5 and 7 tenths of an ohm resistance end to end. I'm also checking whether the RJ12 jacks are soldered on well.

Dennis Hurlbut
 

On Thu, Mar 26, 2020 at 10:28 AM, Howard Dutton wrote:
What do you have for a power supply?
This: https://www.amazon.com/DBPOWER-18000mAh-Portable-Starter-Charging/dp/B01D42TYFC

What does the soldering on the MiniPCB2 look like?
Much like the SHC. I will give every joint a once-over tonight, per Dave's input

SHC works fine now after re-installing the resistor array. Watching the RA on the screen when I change DEC, the RA increases when I press N and decreases when I press S, so the board is aware that the RA axis is moving at same time as DEC.

Dennis Hurlbut
 
Edited

On Thu, Mar 26, 2020 at 11:50 AM, Dennis Hurlbut wrote:
Watching the RA on the screen when I change DEC, the RA increases when I press N and decreases when I press S, so the board is aware that the RA axis is moving at same time as DEC

I realized DEC was up at +89 degrees. I remember seeing something in another post about RA behaving a little funky near the pole. I reduced DEC to around 78, and RA appears to be stable there.

Still going to go over the solder joints tonight.

Edit: I did the above test with the SHC with no motor's connected. With motors connected, the RA noise is still there at 78 degrees.

Howard Dutton
 

On Thu, Mar 26, 2020 at 11:54 AM, Dennis Hurlbut wrote:
I realized DEC was up at +89 degrees. I remember seeing something in another post about RA behaving a little funky near the pole. I reduced DEC to around 78, and RA appears to be stable there.
That's right this is functioning correctly, exactly as designed.  Topocentric coordinates will do this, these are not instrument coordinates returned/displayed.