This repo was forked from the wonderful AnyCubic Kobra Firmware tools by ultimateshadsform. Props to them for all the amazing work they put into this!
Scripts have been modified, re-written, tweaked etc. to support similar firmware tasks for the Elegoo Centauri Carbon printer and firmware.
Please note that if a script is not specifically called-out in this README, it probably hasn't been tested with the Carbon firmware and might break something or brick your printer!
If there are two versions of a script, and one has an -ac in the name, this is the original AnyCubic version of the file for reference.
- TBD, but for now check out ./patch.sh at the top level of this repo!
- Bundled entware with openssh, refreshed branding, lots of quality of life updates for remote access to printer.
- Default root password is 'OpenCentauri', although you can ssh-copy-id a key over! You should change this.
- By default root shell fromn Sims on port 4567 is available in OpenCentauri for breakglass access, can use with
nc <my-printer-ip-or-host> 4567. - More to come!!!
-
You will need to install git and git-lfs on the host building the FW
-
If you install git-lfs after, you'll need to run
git lfs pullin the cc-fw-tools directory before building. -
You will need to have jailbroken your printer to accept third-party firmware updates. Please reach out to us on the OpenCentauri Discord for help with this.
-
For the technically savvy, this involves replacing the contents of
/etc/swupdate_public.pemwhich is the key used to digitally sign firmware updates:-
Stock ELEGOO firmware signing key:
-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnFBZ/+BuRCESalxGqlEE he3eRigUHAZZdW1nPEQZT/6V1gARirJMzT+KUFKqMgtaQuZTtizB3Uo+PbXXwkEl MaGUwRYHOY5ebTt+DfBBWEXvvklKIoKypWF6ta6B37PyHJz4ssnCcCtQRroOllXm vrYLjt5tinKJUx3XoO6iLYf2R5r6+8FB3J/i1ZhJuwCBDtIsivyxdQSHsH9pX55V MOsWKKyuOVyixL42hwiMxOL8HkmumLVDLeXsl0gp34JRN9tR80H5W5+8TUUXnKst vjf+YfzbKCIvvLl3qjDDZW9AlwrWE1mhfxFA/N2qjDQ2rsoquLPiLm3CDVBlKCUP fwIDAQAB -----END PUBLIC KEY----- -
OpenCentauri
/etc/swupdate_public.pemsigning key:-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvkLL7VK9svGKBM4Q39uB ZNkkxy6zqQeCInOE3PeIhvRa3teowz7MLiYJi+CI/4q6mPysLCo3lfY+cWFCc+U3 2lhhHJZy2+gEoTt0ecEWKIznd1GNaUMJFzHIHPCc4LssZFQ9ahZPPuoU/wYtguxA qPSWsH+SNe8xihy5WRG4363FdvwBQc+Q7DTE7firafCzjfaPuoSClDQsyTcGByxs 78s23DXbvQ8jLLlVffLMFD4y9KNbuEdyswe9QEUQar+XEwFm7EkVTX+TAHzHn40s hW+mpfZZgMxJ6a88A527e7DfBlAnt1ZSIh4xXZMlniv40kdXyqSWO/wqJcbmnUTn cQIDAQAB -----END PUBLIC KEY-----
-
- To revert back, you will need to replace your original key and then flash an official ELEGOO firmware. I recommend 1.1.25 for now since it has the most features, and this is what OpenCentauri is (currently) based on.
- Update the /etc/swupdate_public.pem key in your /etc directory via ssh to the original ELEGOO firmware signing key (above)
- Run the script
./fwdl.sh, to grab the 1.1.25 Firmware into the FW/ directory - Copying the new file
FW/FW-CentauriCarbon-v1.1.25-2025-05-09.binto your printer's USB stick at the root level, with filenameupdate.bin - Insert USB-stick into printer
- Re-boot your printer, and it should offer to update!
- Download the base FW to
./FW/(defaults to 1.1.25):./fwdl.sh [version]
- Edit the file
./patch_configwith any settings you would like to override
# How long to wait until starting /app/app on boot
# If non-zero, you can SSH in after boot and run 'noapp' to prevent start
OC_APP_BOOT_DELAY=0- Unpack the firmware of choice: (tested with 1.1.25)
sudo ./unpack.sh FW-CentauriCarbon-v1.1.25-2025-05-09.bin - Run this patch set of updates to the squashfs extracted:
sudo ./patch.sh - Generate a new update.swu:
sudo ./pack.sh
- Run through all the steps in Option 1, optionally specifying the firmware version to use (defaults to 1.1.25):
./build.sh [version]
- Install to the printer (only works if already running OpenCentauri FW to install an update):
./install.sh [--stage,--flash,--sendit] <printer-ip-or-hostname>- Stages, flashes or stages and flashes the file generated in update/update.sw by
pack.sh. - Run with no arguments for usage.
- Alternative (if just jailbroken but not running OpenCentauri yet):
- Copy update/update.swu to USB stick, in the folder update, file update.swu
- Reboot the printer and it should detect an update is available!
mount_usb: Mounts the USB drive if available to /mnt/exUDISK like /app/app doesnoapp: Run after logging in if you configured an OC_APP_BOOT_DELAY to prevent app from starting this boot