Updating Rose Engine Butler

What Update Rose Engine Butler does

REB_Update.sh (the Update Rose Engine Butler icon on the desktop, or Applications > Rose Engine Butler > Update Rose Engine Butler):

  1. git stash - sets aside any local changes to files tracked in Git, such as the tool table;
  2. git pull - gets the latest version of the branch the machine is on (normally main);
  3. git stash pop - puts the local changes back (see below if it can't);
  4. REB_Setup/REB_Update_Settings.py - adds any new settings to this machine's settings file (see below);
  5. sudo apt update and sudo apt upgrade -y - updates Debian, LinuxCNC, and ClamAV.

This machine's settings (/home/reuben/Documents/REBset_v1.ini) are outside the repository, so Git never changes them. The only change an update makes to that file is adding new settings, below - existing values are never changed.

New settings added by an update

When a new feature adds a setting, the update adds it to this machine's settings file automatically, using the starting value from the shipped copy in /home/reuben/linuxcnc/configs/RoseEngineButler/REB_Setup/REBset_v1.ini:

  • Existing values are never changed or removed, so calibration and tuning are safe.
  • The axis assignments, limit jack choices and device-name list are left exactly as they are if present.
  • For the two-box design, an update adds the expansion_box setting (off). An existing 8-channel assignment is kept as it is; when the programs read it, channels 08 and 09 are given the roles not used elsewhere, and Limit Jacks 4 - 6 start as Not used.
  • Before changing anything, it saves a copy of the previous file as REBset_v1.ini.bak-date-time in /home/reuben/Documents.
  • The update prints what it added (or "nothing to add"). If the settings file can't be read, it is left unchanged and the update prints a warning - the rest of the update still runs.

For developers: because of this, REB_Setup/REBset_v1.ini must always list every setting with its starting value - add a new setting there in the same change that introduces it.

Local changes that couldn't be put back

If the update changed the same lines as a local edit (for example, in REB_Custom/REB_Tool.tbl or REB_Custom/REB_Custom.hal), the update leaves the files exactly as pulled and prints a warning; the local edits are kept in the stash, labeled REB_Update with the date. (Before 30 September 2026 the update never put local changes back at all, so a machine updated before then may have older stashes too.) To see and restore them:

cd /home/reuben/linuxcnc/configs/RoseEngineButler
git stash list
git stash show -p stash@{0}
git stash pop

If git stash pop reports a conflict, resolve it before starting LinuxCNC.

Moving an existing machine to the two-box network

Machines built before the two-box design have the Raspberry Pi's wired connection on 192.168.1.120 and the card at its factory address, 192.168.1.121. They keep working after an update (the base card is loaded at 192.168.1.121 while the Raspberry Pi is on 192.168.1.x), but an expansion box can't be added until the machine is moved to 10.10.10.x with REB_Change_Network.sh - see Installation and Setup for Debian 13 Trixie, 3.2 and 3.3.

On an earlier 8-channel box, channels 06 and 07 now belong to the expansion box. A role on them (e.g. Sp0 / Sp1 with the old defaults) is left out until it is moved to a base channel (00 - 05) on the Axis Selection tab - see Axis Mapping.

Branches

  • main - the released version, used by customers' systems.
  • dev-rich and others - development branches for testing new work.

To see which branch a machine is on, and to switch:

cd /home/reuben/linuxcnc/configs/RoseEngineButler
git branch --show-current
git fetch
git checkout dev-rich

Switch back with git checkout main. Back up REBset_v1.ini before testing a development branch.

Two-box note: the two-box software changes REBset_v1.ini's channel IDs, and an older version may not read the changed file. Before going back to a version from before the two-box design, restore the backed-up REBset_v1.ini, and if the cards were moved to 10.10.10.x, put the network back too: W5/W6 jumpers down on each card, and REB_Change_Network.sh back for the Raspberry Pi.

Going back to the previous version

cd /home/reuben/linuxcnc/configs/RoseEngineButler
git log --oneline -5
git checkout <commit>

This leaves the machine on that older version until you run git checkout main again. See the two-box note above before going back past the two-box changes.

########## 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