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