Today, I started designing the update process for THEOS, and while it might seem a bit overwhelming at first glance, I promiseโitโs not as complicated as it sounds! ๐
The goal is to integrate a new THEOS Module into the MainsailOS builder. This module will:
1๏ธโฃ Download the THE100 Configuration directly onto the operating system image.
2๏ธโฃ Set up Git Hooks for key software components like THEOS, Klipper, and Moonraker.
Git Hooks are small scripts that run automatically after a Git operation is completed. For example, when you update Klipper through Mainsail, it fetches the latest version from a central repository using Git. Afterward, a custom script Iโll provide will automatically execute to handle any required adjustments.
Some pluginsโlike ShakerTuneโneed extra setup after updates. ShakerTune modifies core Klipper functions, but updates overwrite those changes. My script will automatically reapply these adjustments so everything keeps running smoothly. This means hassle-free updates for Klipper, the THE100 Configuration, and Moonraker! ๐งโจ
The concept doesnโt stop at softwareโit also includes automatic firmware updates for managed boards.
Hereโs how it will work:
1๏ธโฃ What is a managed board?
A managed board is any board running Klipper firmware with a static serial number.
2๏ธโฃ How does it update?
When you connect a managed board via USB, a udev rule will register the device directly under /dev using its static serial number.
For instance, my BTT Kraken board would register as /dev/btt-kraken.
The firmware updater will:
Read all MCUs defined in printer.cfg with static serial numbers.
Match the serial name to a firmware configuration.
Compile and flash the firmware automatically.
3๏ธโฃ What about unmanaged boards?
Boards without a static serial number wonโt be updated automatically. When you first install THEOS, youโll need to flash your firmware manually. Once a board is managed, the firmware updater will handle all future updates for you seamlessly.
This automated process will simplify firmware management, ensure consistency, and save you timeโletting you focus on printing instead of tinkering. ๐ก
Stay tuned as I continue to refine this system and bring THEOS closer to reality! ๐
henk fischer
2024-12-18 12:46:23 +0000 UTCZ-Man23
2024-12-16 21:37:47 +0000 UTC