Axis Mapping (HAL to Hardware)

The Rose Engine Butler has up to 10 motor plugs: 6 on the base box (channels 00 - 05) and 4 on the optional expansion box (channels 06 - 09). Each plug is wired to one channel, a step generator on that box's Mesa 7i92TH card. The operator chooses which role each channel plays - any of the axes X, Z, U, V, W, A, B, C or the spindles Sp0, Sp1 - on the Axis Selection tab of the Settings program. With both boxes there is one channel for each of the 10 roles.

Channels 06 - 09 are only used when Expansion Box - Connected is ticked on the Axis Selection tab (saved as expansion_box in REBset_v1.ini). Without it, those channels are greyed out and any role on them is left out of the configuration.

Plugs and channels (fixed wiring)

The plugs are laid out with the even numbers on the top row and the odd numbers on the bottom row, the same way they are shown on the Axis Selection tab and on the main panel's Axis Assignments tiles:

Box Channels Mesa card Step generators
Base box 00 / 02 / 04 hm2_7i92.0 (10.10.10.10) Channels 00 - 05 = hm2_7i92.0.stepgen.00 - .05
01 / 03 / 05
Expansion box 06 / 08 hm2_7i92.1 (10.10.10.11) Channels 06 - 09 = hm2_7i92.1.stepgen.00 - .03
07 / 09

Note that the expansion card numbers its step generators from 00 again: channel 06 is hm2_7i92.1.stepgen.00, not stepgen.06. See Mesa 7i92 Pin Mapping for the header pins.

Default roles

These are the roles a new system ships with (from REB_Setup/REBset_v1.ini):

Channel 00 01 02 03 04 05 06 07 08 09
Box Base Expansion
Role X Z B W Sp0 Sp1 U V A C
Type Linear Linear Angular Linear Spindle Spindle Linear Linear Angular Angular

Earlier 8-channel (development) boxes

An earlier 8-channel box is used as a base box: channels 00 - 05 work, and its other two plugs are not used. On such a box, channels 06 and 07 now mean the expansion box's first two plugs, so a role saved on 06 or 07 (the old default was Sp0 and Sp1 there) is left out until it is moved to a base channel on the Axis Selection tab. The rest of a saved assignment is kept as it was.

How roles become LinuxCNC joints

Joint numbers are not fixed - they are worked out at every launch by REB_Setup/REB_Generate_Local_Ini.py (see Launching Rose Engine Butler):

  • The axis letters in use are numbered 0, 1, 2 ... in the order X, Z, B, U, V, W, A, C, skipping any that aren't on a channel in use. With the default roles and no expansion box that gives X=0, Z=1, B=2, W=3. With the expansion box connected it gives X=0, Z=1, B=2, U=3, V=4, W=5, A=6, C=7.
  • A role is only "in use" if its channel is in use - so a role on channels 06 - 09 counts only when the expansion box is connected.
  • The spindles in use become LinuxCNC spindle 0 and 1, in the order Sp0, Sp1.
  • Every HAL net is named after the role, not the channel (pid.x, x-enable, ...), so it always means "whichever channel is X right now". The generator points each role's HAL at its channel's card and step generator.
  • Type is fixed by the letter: X, Z, U, V, W are linear (inches or mm); A, B, C are angular (degrees).
  • Y is not available, because REB.ini sets LATHE = 1.
  • Sp1 can only be used when Sp0 is also used (its speed is a percentage of Sp0's).
  • The same role can't be on two channels; this is checked across all 10 channels, even when the expansion box isn't connected.

Step timing (DIRSETUP, DIRHOLD, STEPLEN, STEPSPACE) and the home sequence are in each axis's [AXIS_x] / [JOINT_n] section of REB.ini. Scale, Max Speed, Max Acceleration, backlash and the PID gains are this machine's own values, set in the Settings program and kept in /home/reuben/Documents/REBset_v1.ini (REB.ini's speed and acceleration figures are only the starting values for a new machine).

See also, Mesa 7i92 Pin Mapping and Hardware Build.

########## Standard Footer for all pages ##########
 

About the Rose Engine Butler System
Terms of Use

eMail comments to
ColvinTools @ Gmail [period] com -> mailto:ColvinTools [snail] Gmail [period] com