The Snapmaker U1: It's an IoT device with Klipper

I thought you might like to see the internals of the U1, from the data pulled from the Fluidd interface. Buildroot is a very slim Linux OS used mainly for embedded systems. From an engineering viewpoint, it makes sense to have only the necessary codebase for what your printer actually does. It has a much lower footprint and it’s much easier to troubleshoot without any other corner cases or deviations.

I also opened this topic to discuss a few things:

  • They haven’t open sourced their code yet. How long to wait before starting the discussion of non-compliance of Klipper’s GPLv3? Right now they’re shipping printers from a “non-sales” claim (Kickstarter) and are only taking “pre-orders” for the mainstream release.
  • Any more thoughts on compartmentalizing Klipper code (where do add-ons vs MCU-specific/internals coding reside?)
  • Any thoughts on Klipper OS? Right now you have to have a base OS that allows for Systemd, python, etc. before installing Klipper. KIAUH has been a wonderful addition that has allowed people with little to no Linux, Python coding experience to add Klipper to their printers. And I know going further back that we have a RasPi image prepped for Klipper, but that’s been almost exclusively tied to the RasPi. But if this avenue can be explored, would it solve the second bullet point?
  • The downside to a Klipper OS is that developers need to get paid. And tying it to just a Debian release schedule would be many full time jobs. So is it time to consider a Klipper Foundation? I dunno. Maybe this avenue is too big to consider. It’s just that I want contributors to be recognized and most certainly don’t want their work to end up as someone else’s patent. (I’m eyeballing you, Stratasys.) In the current US political climate, it’s dangerously easy for a company with a lot of lawyers steal or block prior art.

1 Like

Attached is their factory reset printer.cfg file.

factory.cfg (33.2 KB)

Hi @TheMonkeyKing ,

This is interesting. I’m wondering, would it be possible to extract the Klipper source code from ~/klipper/ so we can see what has been modified?

Here you go.
lava.zip

Process:
Download “firmware” from https://support.snapmaker.com/hc/en-us/categories/36087874981527
Open WSL2
Rename file U1.bin and move to WSL ~\home

 snap install binwalk
binwalk -e U1.bin
2 Likes

Has anyone else run a diff on this? Massive GPL issues.

diff_stat.txt (139.6 KB)

:grimacing:

I reached out to Snapmaker support about the open-source issue and their response was only slightly better than the usual Chinese response when questioned about licensing.

Our development team is preparing an open-source plan , and the open-source version is expected to be released by the end of March 2026 .

Please note that using open-source firmware or modifying the machine firmware carries certain risks. For detailed information and important notices, please refer to the following link:
⚠ Third-Party Firmware Risk and Important Notice! - Firmware Mods & Personal Project(Testing) - Snapmaker: where creation happens

1 Like

Yeah I have been looking through the source and comparing it to mainline klipper, they have modified a lot of the source to meet their needs :expressionless:

But they said that they well release it sometime in March or this year :crossed_fingers:

1 Like

I started a project a bit ago to dive into the various vendor modifications and environments, to see if any of them would be worth repacking and upstreaming (since GPL3), or implementing similar functionality. (also because I was curious in general).

Most of the interesting stuff is on devel.

The makefile in here can automate extracting diffs and such for the U1: project-dredge/workspaces/snapmaker/u1 at devel · Laikulo/project-dredge · GitHub

I also started breaking that patchset (based on the closest upstream I can find) into functional components here: project-dredge/patchsets/snapmaker-u1/0.0.9/klipper at devel · Laikulo/project-dredge · GitHub Though the whole one is in full.diff and summarized in summary.txt

I also did similar to the k2 plus, and it’s kinda interesting that they took a different approach for some things.

Though I’d call it an “Appliance Distro” and less an IoT one. It’s buildroot with some android bootloader bits around.

3 Likes