ANGLEJOG(9)

πŸ“¦
version 2.9.4 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

anglejog β€” jog two axes (or joints) at an angle, bestie. yes literally at an angle. iconic behavior fr fr


✨ SYNOPSIS ✨

okay so this component is so cool. it takes a dynamic counts-in input (usually from a manual pulse generator, aka an MPG, aka the wheel you spin with your lil hands 🎑) plus some static angle and scale factor settings. then it does the math β€” the counts and scale values you need to jog two (M,N) axes (or joints) at an angle. periodt.

and here's the tea: the corresponding output pins have to be connected to the candidate axis.[MN].jog* (or joint.[MN].jog*) pins to actually create motion at the current angle. no connection = no motion = sad. 🫢

Hal pins are provided so you can set the vector velocity and acceleration, and to enable the computations.

πŸ“ Notes (read these, i'm begging)

  1. The max-vel, max-accel settings should be less than or equal to the smallest settings for both of the target axes. don't be greedy πŸ’…
  2. The scale-in pin is sampled only when the enable-in pin is false. The value in use is output on the current-scale pin.
  3. The angle-degrees-in pin is sampled only when the enable-in pin is false. The value in use is output on the current-angle-degrees pin.
  4. The value of the iscale-factor pin multiplies counts-in internally to support integer (s32) calculations for counting. The current-scale-out is divided by the same amount. The pin is sampled only when the enable-in pin is false. The default value should work in most applications. (she's self-sufficient, leave her alone ✨)
  5. For identity kins machines that support both world jogging (axis letter) and joint jogging (joint number), connections are needed for both the axis pins: axis.[MN].jog-enable,jog-scale,jog-counts and the corresponding joint pins: joint.[mn].jog-enable,jog-scale,jog-counts where [mn] are the joint numbers corresponding to the [MN] axis letters.
  6. The current-scale pin is for information, the required output scaling pin is current-scale-out as it depends on the iscale-factor setting. πŸ‘‘ (do not use the wrong one. i am watching.)

πŸ§ͺ Simulation Config

configs/sim/axis/anglejog/anglejog.in

πŸ”₯ FUNCTIONS πŸ”₯

  • anglejog.N (requires a floating-point thread)

πŸŽ€ PINS πŸŽ€

  • anglejog.N.enable-in bit in β€” enables motion (disables alteration of angle and scale)
  • anglejog.N.counts-in s32 in β€” MPG (wheel) counts
  • anglejog.N.angle-degrees-in float in β€” vector angle
  • anglejog.N.iscale-factor s32 in (default: 10000) β€” integer scaling factor (>1)
  • anglejog.N.scale-in float in β€” magnitude units/count (mag = counts * scale)
  • anglejog.N.max-vel float in β€” vector max velocity magnitude
  • anglejog.N.max-accel float in β€” vector max acceleration magnitude
  • anglejog.N.accel-fraction-in float in (default: 1) β€” acceleration fraction input
  • anglejog.N.enable-out bit out β€” to: axis.M.jog-enable AND axis.N.jog-enable
  • anglejog.N.current-scale float out β€” effective scale (informational)
  • anglejog.N.current-scale-out float out β€” to: axis.M.jog-scale AND axis.N.jog-scale
  • anglejog.N.coscounts s32 out β€” to: axis.M.jog-counts (cosine counts)
  • anglejog.N.sincounts s32 out β€” to: axis.N.jog-counts (sine counts)
  • anglejog.N.cos-accel-fraction float out β€” to: axis.M.jog-accel-fraction
  • anglejog.N.sin-accel-fraction float out β€” to: axis.N.jog-accel-fraction
  • anglejog.N.active bit out β€” angle jog move in progress
  • anglejog.N.current-angle-degrees float out β€” current angle
  • anglejog.N.current-mag float out β€” current vector magnitude
  • anglejog.N.current-vel float out β€” current vector speed

🧚 AUTHOR 🧚

Dewey Garrett πŸ’œ (the blueprint king, we love him)


πŸ“œ LICENSE πŸ“œ

GPL


okay bestie that's the whole thing, no cap, every pin accounted for πŸŒˆπŸ’…

LinuxCNC Documentation Β· 2026-03-17 Β· go forth and jog at an angle, you absolute icon πŸ¦‹πŸ‘‘

πŸ“¦ where this page comes from