Rinkhals: custom firmware for Anycubic Kobra printers running Kobra OS
Custom firmware for the Anycubic Kobra series of 3D printers (Kobra 2 Pro, Kobra 3, Kobra 3 V2, Kobra S1, Kobra 3 Max and Kobra S1 Max)
At a glance
- What is it?
- Rinkhals replaces the firmware layer on Anycubic Kobra printers that run Kobra OS, keeping the stock screen, tools and calibration while adding Mainsail and Fluidd with Moonraker, USB camera support, SSH and an apps system. The original repository is deprecated and work has moved to the Rinkhals-community repository, and the Kobra X is blocked by signature verification.
- Who is it for?
- Rinkhals suits an owner of a Kobra 3, Kobra 2 Pro, Kobra S1 or the Max and V2 variants who wants a Klipper style web interface, SSH access and camera support on a printer that ships with a closed firmware. It does not suit a Kobra X owner, since the K4 software base and the SWU signature requirement make that platform unsupported rather than merely unfinished.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 149 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The project moved, and the old repository says so in red
The most important line in this repository is the banner at the top. This repository will be deprecated on July 1st, 2026. The project has moved from the original maintainer's repo to the Rinkhals-community repo at github.com/rinkhals-community/Rinkhals, and the readme asks that issues, pull requests and requests be submitted on the new site.
So the repository you are reading is the historical one. The releases page still carries the firmware packages and the downloads badge is still live, and the readme also points to a separate firmware archive at rinkhals.firmwareforge.org for older builds. But the direction of travel is unambiguous.
Rinkhals itself is custom firmware for some Anycubic Kobra 3D printers, specifically the ones running Kobra OS. The goal is stated as expanding existing Anycubic features with better compatibility, apps and more, and the author is upfront that he will likely not support all use cases, like running vanilla Klipper or a specific feature or plugin.
The project is named after the rinkhals, a subspecies of cobra, with the joke spelled out in the readme for anyone who did not get the Kobra to rinkhals to Rinkhals connection.
The community is on Discord, and the readme carries the usual funding note: donations are accepted but the author works on Rinkhals for fun and not for the money, and will not accept donations to work on specific bugs or features.
What you keep and what you gain
The design goal of Rinkhals is that you lose nothing from the stock firmware and gain a lot. The readme states that by using Rinkhals you keep all stock Anycubic features, the print screen, the Anycubic tools, calibration and so on, and get even more.
What you gain is listed concretely. Mainsail and Fluidd, the two web interfaces for Klipper, running with Moonraker as the API layer. USB camera support in Mainsail and Fluidd, which turns the printer into something you can watch over the network. Prints started from Orca showing up on the physical print screen, which is a small detail that matters when the printer is in another room. SSH access for customisation, with the credentials given in the readme as user root and password rockchip. OTA Rinkhals updates. And an apps system, covered by a separate Rinkhals.apps repository, with OctoEverywhere, Cloudflare and Tailscale given as examples.
That apps system is the part that extends the project's reach furthest. Tailscale in particular turns a printer on a home network into something reachable from anywhere without exposing it to the public internet, and OctoEverywhere gives remote monitoring and notifications without any server you run.
There is also a maintenance model worth understanding. The latest version will likely support the two latest firmwares from Anycubic unless specified, and for older firmware the guidance is to check the older releases or the firmware archive.
So the firmware is versioned against the stock firmware it replaces, and you are expected to match the two. Installing a Rinkhals build that was made for a different Anycubic firmware is not a supported configuration.
The supported model and firmware table is the compatibility contract
The readme carries a table of the GoKlipper and K3 family printers with the firmware versions supported by the latest Rinkhals release, and it is the single most useful page for anyone deciding whether to install.
The Kobra 3 and its combo variant are listed with firmwares 2.4.5 and 2.4.6.7. The Kobra 2 Pro is listed with 3.1.2.3 and 3.1.4, with a hardware caveat: only with the Trigorilla Spe B v1.0.x mainboard, the stock new revision, and a note that 3.1.4 seems to be buggy for some people.
The Kobra S1 and its combo are listed with 2.6.0.0 and 2.7.0.9. The Kobra 3 Max and combo with 2.5.1.7 and 2.5.2.8. The Kobra 3 V2 and combo with 1.1.0.4 and 1.1.2.8. The Kobra S1 Max and combo with 2.6.6 and 2.6.9.3.
A red circle marker in the legend means in testing, not yet ready, so a model can appear in the table and still not be finished.
The Kobra 2 Pro caveat is the one to look at closely, because it is a board revision restriction rather than a firmware one. A printer on the earlier Trigorilla mainboard revision is not in the supported set at all.
The Kobra X has its own separate status table and it is a flat no. The Kobra X is not supported because it uses the KlipperC++ and K4 software base and is currently blocked by SWU RSA signature verification.
The Kobra X section explains why in more depth. Some Kobra X firmware packages are publicly available and the SWU password has been recovered, but Anycubic moved from the K3 software base, GoKlipper, to a K4 software base using a C++ Klipper port, so support is not expected to be a simple port of the current Rinkhals stack. On top of that, the SWU update flow requires a trusted certificate for package acceptance, and until a reliable bypass is discovered, SWU based firmware injection similar to Rinkhals is not currently feasible.
Installing: rename the file, make a FAT32 folder, plug in USB
There are two ways to install, and the difference between them is the kind of file you download.
Option one is to use the provided Rinkhals installer, named install-*.swu. Option two is to install the raw swu directly, named update-*.swu. Either way the procedure is the same after that, and it is worth reading carefully because it is not the usual drag a file onto a printer workflow.
You download the release or file you want from the Releases page. You rename the downloaded SWU file as update.swu. You copy it into a directory named aGVscF9zb3Nf, or update for the Kobra 2 Pro in certain conditions, on a FAT32 USB drive, with MBR partitioning and GPT not supported. Then you plug the USB drive into the printer.
The directory name aGVscF9zb3Nf is a base64 encoding of a short string, which is the sort of detail that looks like magic until you know it is a fixed path the stock bootloader looks for. The exception for the Kobra 2 Pro is because that printer looks for a different directory name.
There is a quick start guide linked from the readme at jbatonnet.github.io/Rinkhals for getting Rinkhals up and running, and a separate page on recovering boot issues.
The readme carries two warnings that are not boilerplate. The first says to make sure you are confident tweaking your printer and understand what you are doing, and that the author is not responsible if you brick the printer, even though there is some documentation about that. The second is a caution about changing the Klipper printer configuration, the printer.cfg file: the author strongly advises not modifying the stock printer configuration, because Rinkhals offers additional protection that you do not have when modifying it directly, and says explicitly that no support will be offered and that the printer might not work properly or boot at all.
The build is a Docker image that produces the SWU package
The repository builds the firmware through a multi-stage Dockerfile, which is the unusual part of the project and explains how a Python repository produces printer firmware.
The Dockerfile header describes it as the main Dockerfile for building Rinkhals, a multi-stage Dockerfile that includes all steps to go from a clean repository to an installable SWU package. The note at the top says Buildkit and buildx are required, but should already be enabled by default in most nonlegacy Docker installations.
The build comments give the exact commands, which is unusual and useful.
docker build --output type=local,dest=./build/dist .For a release you pass a version build argument.
docker build --build-arg version=yyyymmdd_nn --output type=local,dest=./build/dist .The version pattern matches the release tags, which are dates: the listed releases are 20260501_01, an Rinkhals 20260501_01, with 20260501_01_test and 20260415_01_test alongside as test builds.
The Dockerfile also documents the developer loop for making quick changes to buildroot, copying .config, busybox.config and external/ from the build directory into a rebuild directory, making changes there, and rebuilding packages with the rebuild build argument, with a note that clean_buildroot=0 will require a full rebuild the first time because the intermediate files are normally deleted to save space.
For debugging a specific stage there is a docker build --target form, and the comment says to take note of the image hash in the output and run the hash with sh to inspect it. There is also a path for deploying a development build to a printer, using a container with the build directory mounted and a deploy-dev.sh script, with KOBRA_IP set to the printer address.
Where Rinkhals is the wrong choice
Four limits, and the first two are hard.
The Kobra X is unsupported, and the explanation is architectural rather than a matter of time. Anycubic changed the software base from GoKlipper to a C++ Klipper port, so the Rinkhals stack would have to be ported rather than adapted, and on top of that the update flow requires a trusted certificate that the project does not have a reliable way around. That is two independent hard blockers on one model.
The second is the risk of bricking a printer. The readme says it plainly, and it is a real risk on consumer printers where the recovery path is undocumented by the vendor. A user who is not comfortable with a recovery procedure, or who cannot physically access the printer, is taking an unnecessary risk.
The third is the scope of what Rinkhals replaces. It is a modification of the Kobra OS layer, and the author says plainly that he will likely not support all use cases, like running vanilla Klipper or your specific feature or plugin. If you want unmodified Klipper with full access to its configuration, Rinkhals is the wrong tool and the stock firmware plus the Anycubic tools is the right one.
The fourth is the version coupling. Each Rinkhals release is tied to specific Anycubic firmware versions, and the latest release will likely support only the two latest. Anycubic pushing a new firmware means either waiting for a Rinkhals build or going back to stock, which is a recurring cost of the approach rather than a one-off.
The alternative approach depends on what you want. If you want a web interface and remote access on a printer, Rinkhals is the route. If you want the Klipper experience with none of the Anycubic hardware integration, a different printer running Klipper natively is a cleaner answer, since you gain the same Mainsail and Fluidd interface without a firmware port to maintain. And if you want to keep the stock firmware and add remote monitoring, OctoEverywhere, which the Rinkhals apps system itself offers, does that without touching the firmware at all.
Editorial conclusion
Rinkhals suits an owner of a Kobra 3, Kobra 2 Pro, Kobra S1 or the Max and V2 variants who wants a Klipper style web interface, SSH access and camera support on a printer that ships with a closed firmware. It does not suit a Kobra X owner, since the K4 software base and the SWU signature requirement make that platform unsupported rather than merely unfinished. Before installing anything, check the tested firmware table for your exact model against the firmware you are running, because the project states that the latest version will likely support only the two latest Anycubic firmwares, and note that this repository is deprecated in favour of rinkhals-community/Rinkhals, so any issue or pull request belongs there.
Frequently asked questions
Which Anycubic printers does Rinkhals support?
The supported table lists the Kobra 3, Kobra 2 Pro, Kobra S1, Kobra 3 Max, Kobra 3 V2 and Kobra S1 Max with their tested firmware versions, and the Kobra X is marked not supported. The Kobra 2 Pro entry is limited to the Trigorilla Spe B v1.0.x mainboard.
How do I install Rinkhals on a Kobra printer?
Download the release from the Releases page, rename the SWU file as update.swu, copy it into a directory named aGVscF9zb3Nf, or update for the Kobra 2 Pro in certain conditions, on a FAT32 USB drive with MBR partitioning since GPT is not supported, then plug the USB drive into the printer. A quick start guide is available on the project documentation site.
Why is the Kobra X not supported by Rinkhals?
The Kobra X uses the KlipperC++ and K4 software base and is blocked by SWU RSA signature verification. Anycubic moved from the K3 software base, GoKlipper, to a C++ Klipper port, so support is not expected to be a simple port, and the SWU update flow requires a trusted certificate for package acceptance.
Where should I report issues for Rinkhals now?
On the new repository. The readme states that this repository will be deprecated on July 1st, 2026, that the project has moved from the original maintainer's repo to the Rinkhals-community repo, and that issues, pull requests and requests should be submitted on the new site.
What does Rinkhals add to the stock Anycubic firmware?
Mainsail and Fluidd with Moonraker, USB camera support in those interfaces, prints started from Orca showing on the print screen, SSH access, OTA Rinkhals updates and an apps system covering things like OctoEverywhere, Cloudflare and Tailscale, while keeping the stock print screen, Anycubic tools and calibration.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/jbatonnet-rinkhals)Was this useful?