Jump to content

Creality K2 series GPLv3 violation: Difference between revisions

From Consumer Rights Wiki
Background update, references pending to be reviewed and cleaned up
Quotation formatting: use italics for quoted passages in blockquotes and run-in quotes
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{IncidentCargo
{{IncidentCargo
|Company=Creality
|Company=Creality
|StartDate=2025-12-12
|StartDate=2025-02-03
|Status=Active
|Status=Active
|ProductLine=K2 Series 3D Printers
|ProductLine=K2 Series 3D Printers
}}The Creality K2 series 3D printer firmware (encompassing the K2, K2 SE, K2 Pro, and K2 Plus) contains a systemic violation of the GNU General Public License v3 (GPLv3) due to the inclusion of proprietary binary blobs compiled directly into the open-source Klipper host environment. Despite marketing the flagship hardware lineup as a fully open-source ecosystem, Creality has formally refused to share the corresponding source code for multiple critical communication modules, instead utilizing Cython to compile proprietary control logic into CPython shared object files. The ongoing non-compliance has been formally escalated to the Software Freedom Conservancy (SFC) and the Free Software Foundation (FSF) following a series of admissions by the company's support team.
|Product=Creality K2 SE, K2, K2 Pro, K2 Plus
|ArticleType=Product
|Type=Repairability,Software Licensing
|Description=Creality K2 firmware ships Cython-compiled binary blobs inside GPLv3 Klipper without source; developers allege a GPLv3 violation
}}
 
The Creality K2 series 3D printer firmware (covering the K2 SE, K2, K2 Pro, & K2 Plus) ships proprietary modules compiled with Cython into the GPLv3-licensed Klipper host environment without releasing the corresponding source code.<ref name="creality_forum_tracker" /><ref name="cfs_github" /> Klipper's community developers & the independent reverse-engineering project fake-name/cfs-reverse-engineering have documented these closed binaries as a violation of the GNU General Public License v3 (GPLv3), the license under which Klipper is distributed.<ref name="creality_forum_tracker" /><ref name="cfs_github" /> [[Creality]] opened a public GitHub repository for the K2 line in December 2025 & markets it as open source, but the published code lacks the source for several hardware communication modules.<ref name="creality_forum_launch" /> A correspondence log uploaded to the Internet Archive in May 2026 records Creality support telling a requester it was ''unable to directly provide the corresponding source code,'' & shows the requester copying the [[Software Freedom Conservancy]] (SFC) & the Free Software Foundation (FSF) on the demand.<ref name="email_demand" />


==Background==
==Background==
The Creality K2 series firmware represents a systemic copyleft compliance dispute involving a derivative work based on Klipper, which is licensed under the GNU General Public License v3 (GPLv3). In December 2025, Creality launched their official GitHub repository for the K2 Series, publicly promoting the flagship line as a fully open-source hardware and software ecosystem <ref name="creality_forum_launch" />. However, community developers quickly discovered that the released codebase was severely outdated, out of sync with active printer configurations, and conspicuously lacked the corresponding source code for critical operational modules <ref name="creality_forum_launch" />.  
The K2 series firmware is built on Klipper, the open-source 3D-printer host software that its creator Kevin O'Connor distributes under the GPLv3.<ref name="klipper_discourse_violation" /> In December 2025, Creality opened a public GitHub repository for the K2 series & promoted the line as open source.<ref name="creality_forum_launch" /> Community developers found that the published code was outdated, out of sync with shipping printer configurations, & missing the source for several hardware communication modules.<ref name="creality_forum_launch" /><ref name="creality_forum_tracker" /> The dispute predates that repository: a Creality-forum thread asking where the required K2 Klipper sources were had been open since February 2025.<ref name="creality_forum_tracker" />


While Cython is occasionally used for performance optimization, its primary utility in this context was to obfuscate the implementation logic of the printer’s primary hardware integrations <ref name="creality_forum_tracker" />. By placing these binary wrappers directly inside Klipper’s process directory, Creality forced the GPLv3-licensed Klipper host process to dynamically link to and execute opaque binaries at runtime, creating a copyleft compliance conflict <ref name="creality_forum_tracker" />.
The missing modules ship as Cython-compiled shared objects. The reverse-engineering project fake-name/cfs-reverse-engineering describes these files as compiled with Cython ''to make them opaque.''<ref name="cfs_github" /> Because the wrappers sit inside Klipper's own process directory, the GPLv3-licensed Klipper host loads & executes the closed binaries at runtime.<ref name="creality_forum_tracker" /><ref name="cfs_github" />


This licensing issue systemically affects the firmware images distributed across the entire flagship K2 hardware line:
The missing source affects the firmware images shipped across the K2 line:
*'''K2 SE:''' V2.3.6.49 and V2.3.6.66 (`CR4CU220812S11_ota_img_V2.3.6.49.img`)
*'''K2 SE:''' V2.3.6.49 (<code>CR4CU220812S11_ota_img_V2.3.6.49.img</code>) <ref name="email_demand" />
*'''K2:''' V1.1.5.5 (`CR0CN200400C10_R_202605061516_ota_img_V1.1.5.5.img`)
*'''K2:''' V1.1.5.5 (<code>CR0CN200400C10_R_202605061516_ota_img_V1.1.5.5.img</code>) <ref name="email_demand" />
*'''K2 Pro:''' V1.1.5.5 (`CR0CN200400C10_R_202605061516_ota_img_V1.1.5.5.img`)
*'''K2 Pro:''' V1.1.5.5 (<code>CR0CN200400C10_R_202605061516_ota_img_V1.1.5.5.img</code>) <ref name="email_demand" />
*'''K2 Plus:''' V1.1.5.5 (`CR0CN240110C10_R_202605081127_ota_img_V1.1.5.5.img`)
*'''K2 Plus:''' V1.1.5.5 (<code>CR0CN240110C10_R_202605081127_ota_img_V1.1.5.5.img</code>) <ref name="email_demand" />


==Incident==
==Incident==
Creality distributes Cython-compiled shared library objects (`.so`) inside Klipper's core process directory structures (`/usr/share/klipper/klippy/extras/`) without providing the corresponding source code <ref name="creality_forum_tracker" />. These files handle proprietary hardware wrappers and communicate intimately with the GPLv3 host:
Creality distributes Cython-compiled shared objects (<code>.so</code>) inside Klipper's process directory at <code>/usr/share/klipper/klippy/extras/</code> without the matching source.<ref name="creality_forum_tracker" /><ref name="extracted_fw" /> Extracted K2 Plus firmware lists six such wrappers in that directory:
*`serial_485_wrapper.cpython-39.so` (Manages the custom RS-485 serial communication protocol linking the mainboard to the CFS feeder) <ref name="creality_forum_tracker" />
*<code>serial_485_wrapper.cpython-39.so</code>, which the cfs project ties to the RS-485 serial link between the mainboard and the CFS feeder bus <ref name="creality_forum_tracker" /><ref name="cfs_github" />
*`box_wrapper.cpython-39.so` (Handles logical state routing, filament changes, and multi-material commands) <ref name="creality_forum_tracker" />
*<code>box_wrapper.cpython-39.so</code> <ref name="creality_forum_tracker" />
*`filament_rack_wrapper.cpython-39.so` (Controls physical spool selection, drive gears, and filament runout sensors inside the CFS) <ref name="creality_forum_tracker" />
*<code>filament_rack_wrapper.cpython-39.so</code> <ref name="creality_forum_tracker" />
*`motor_control_wrapper.cpython-39.so` (Governs specialized stepper motor accelerations and hardware-level load balancing) <ref name="creality_forum_tracker" />
*<code>motor_control_wrapper.cpython-39.so</code> <ref name="creality_forum_tracker" />
*`prtouch_v2_wrapper.cpython-39.so` (Governs strain-gauge-based automatic bed leveling and nozzle probing) <ref name="creality_forum_tracker" />
*<code>prtouch_v2_wrapper.cpython-39.so</code> <ref name="creality_forum_tracker" />
*`prtouch_v3_wrapper.cpython-39.so` (Handles advanced real-time Z-axis compensation algorithms) <ref name="creality_forum_tracker" />
*<code>prtouch_v3_wrapper.cpython-39.so</code> <ref name="creality_forum_tracker" />
A Klipper community thread on the K2 Plus documents that these compiled modules implement the printer's automatic filament-changing feature & ship only as shared-object files, & a moderator there describes Creality as in violation of the GPLv3.<ref name="klipper_discourse_k2" />
 
According to a correspondence log uploaded to the Internet Archive in May 2026, a requester pressed Creality for the complete GPLv3 source code, & Creality support acknowledged the request on May 15, 2026.<ref name="email_demand" /> The log's outgoing letters, signed by a sender identifying himself as Alex Mercer, were copied to the [[Software Freedom Conservancy]] ([email protected]) & the Free Software Foundation (license-[email protected]) on May 27 & May 29, 2026, & state that the violation is ''logged with the Software Freedom Conservancy and the Free Software Foundation.''<ref name="email_demand" /> The log records a single recurring demand, that Creality either release the source or stop shipping the firmware. The May 29, 2026 letter reads:
<blockquote>''I reiterate my demand: immediately provide the complete corresponding source code or halt all distribution of the K2 series firmware until compliance is achieved.''</blockquote><ref name="email_demand" />
Creality continues to distribute the same firmware images while the source remains unreleased.<ref name="creality_forum_tracker" />
 
===Creality's response===
Through May 2026, community members documented a repeating set of stalling & denial templates from Creality's front-line support on GPL inquiries.<ref name="creality_forum_tracker" />


Following a formal compliance demand issued on May 14, 2026, and an official acknowledgment from front-line support on May 15, 2026 <ref name="ticket_ack_may15" />, a 14-day compliance deadline was established on May 20, 2026 <ref name="mercer_demand_may20" />. Because compliance was not met, a formal license complaint was logged with the Software Freedom Conservancy (SFC) and the Free Software Foundation (FSF). Creality continues to distribute the K2 hardware and locked-down firmware images to retail consumers while remaining in active violation of the GPLv3 license terms.
In the correspondence log, a May 15, 2026 reply from Creality Customer Service reads:
<blockquote>''We have officially forwarded your application for the complete GPLv3 source code for all firmware versions of the K2 series to our R&D team for processing. ... Please stay tuned for further announcements on our official website.''</blockquote><ref name="email_demand" />


===Creality's Response & Admissions===
A May 24, 2026 reply in the same log, attributed to Creality Service, reads:
Throughout May 2026, the community documented a highly structured deflection loop used by Creality's front-line support staff to handle GPL inquiries, frequently issuing direct denials or stalling templates <ref name="creality_forum_tracker" />.
<blockquote>''Due to the involvement of custom firmware modules, underlying dependencies, and the need to clarify copyrights from multiple parties, the compilation of relevant materials requires a considerable period of time. Currently, we are unable to directly provide the corresponding source code or updated repository links.''</blockquote><ref name="email_demand" />


On May 15, 2026, Creality Customer Service formally acknowledged the initial source code application, stating: *"We have officially forwarded your application for the complete GPLv3 source code for all firmware versions of the K2 series to our R&D team for processing. ... Please stay tuned for further announcements on our official website."* <ref name="ticket_ack_may15" />
A May 29, 2026 follow-up in the log states:
<blockquote>''cleaning up a fully compliant source code package without affecting commercial proprietary code does require an internal process that, for now, does not have a publicly available timeline.''</blockquote><ref name="email_demand" />


On May 24, 2026, following a warning that the ticketing system would close automatically, Creality sent a written response detailing their inability to provide immediate source code matching the distributed binaries:
The log records no substantive reply after May 29, 2026; per the log, Creality forwarded the case to its internal legal department & R&D manager without giving a compliance timeline.<ref name="email_demand" />
<blockquote>"Due to the involvement of custom firmware modules, underlying dependencies, and the need to clarify copyrights from multiple parties, the compilation of relevant materials requires a considerable period of time. Currently, we are unable to directly provide the corresponding source code or updated repository links." <ref name="creality_refusal_may24" /></blockquote>


On May 29, 2026, Creality issued a follow-up response confirming that *"cleaning up a fully compliant source code package without affecting commercial proprietary code does require an internal process that, for now, does not have a publicly available timeline."* <ref name="creality_confession_may29" /> Open-source legal experts note that this statement serves as an explicit corporate admission that proprietary commercial code was actively compiled and dynamically linked into a distributed GPLv3 copyleft work—an architectural contamination directly forbidden under the license guidelines.
==Consumer response & hardware bypass==
The K2 firmware drew criticism on the Creality forums, where the cfs project author argued that withholding the source for the parts that matter moved Creality from incompetent to ''actively malicious'': promoting a printer as open source while keeping its core features behind closed binaries.<ref name="creality_forum_tracker" />


On May 31, 2026, Creality deflected subsequent inquiries regarding the legal implications of copyleft contamination, closed active communication on the ticket, and forwarded the entire case history to their internal legal department and R&D managers without providing a compliance timeline <ref name="ticket_closure_may31" />.
The closed binaries created practical problems for owners: blocked hardware repair, no support for third-party toolheads, & restricted access to the printer's underlying Linux system.<ref name="creality_forum_tracker" />


==Consumer Response & Hardware Bypass==
Creality had faced the same complaint over the earlier K1 series. Issue #9 on its K1_Series_Klipper GitHub repository flagged binary-only extensions as a GPLv3 violation & demanded the corresponding source; the issue remained open as of March 2025.<ref name="k1_github_issue" /> On the later K1C, Creality removed root access; owners on the Creality forum note that the printer's own documentation describes the removal as intentional.<ref name="creality_k1c_forum" />
The release of the K2 series firmware triggered significant backlash across Klipper Discourse, Creality Forums, and Reddit <ref name="creality_forum_launch" />. The community strongly criticized Creality for "malicious compliance"—promoting a printer as open-source while lockboxing its core features behind closed binaries <ref name="creality_forum_tracker" /> <ref name="reddit_k2" />.


These licensing omissions created severe, practical issues for consumers, blocking hardware repair, preventing the use of third-party toolheads, and restricting underlying Linux access <ref name="creality_forum_tracker" /> <ref name="klipper_discourse_k2" />. This backlash was compounded by the fact that Creality had previously repeated the exact same violation when launching the K1 series, only releasing the `prtouch` source code months later after intense public pressure <ref name="k1_github_issue" />. The restriction of root access on subsequent iterations like the K1C 2025 further intensified user distrust <ref name="creality_k1c_forum" />.
Independent developers started the fake-name/cfs-reverse-engineering project to map the Creality Filament System (CFS) feeder bus.<ref name="cfs_github" /> The project documents that the CFS uses a GigaDevice GD32F303VET6 microcontroller, which its firmware notes describe as binary-compatible with an ''STM32F106VET6''.<ref name="cfs_github" /> By building a hardware interposer board to reroute the isolated RS-485 lines to an unused MCU header, the developers converted the CFS link into a standard CAN bus running candleLight_fw & upstream Klipper, bypassing Creality's closed serial protocol.<ref name="cfs_github" />


Kevin O'Connor, the original creator of Klipper, publicly reiterated: *"Klipper is licensed under the GNU GPLv3. Any redistribution of that code is required to follow the license. I have not dual-licensed the code nor provided any exceptions."* <ref name="klipper_discourse_violation" />
Kevin O'Connor, the creator of Klipper, restated the license terms on the Klipper Discourse forum:
<blockquote>''Klipper is licensed under the GNU GPLv3. Any redistribution of that code is required to follow the license. I have not dual-licensed the code nor provided any exceptions.''</blockquote><ref name="klipper_discourse_violation" />


Frustrated by these restrictions, independent developers launched the `fake-name/cfs-reverse-engineering` project to manually map the Co-extrusion Filament System (CFS) feeder bus <ref name="cfs_github" />. Developers discovered that the CFS's GigaDevice GD32F303VET6 microcontroller was binary-compatible with the STM32F106VET6 <ref name="cfs_github" />. By designing a custom hardware interposer board to reroute the isolated RS-485 lines to an unused MCU header, developers successfully bypassed Creality's closed-source serial protocol, converting the CFS communication layer into an open CAN bus running standard *candleLight_fw* and native upstream Klipper <ref name="cfs_github" />.
==Prior violations & the Bambu Lab AGPLv3 case==
Creality already appears on TH3D Studio LLC's 3D Printer GPL Violation List for withholding source code on its Marlin-based printers & the Klipper-based Sonic Pad.<ref name="th3d_list" /><ref name="klipper_discourse_violation" />


==Industry Context & Legal Precedents==
Creality's open-source disputes go back to 2018. After it shipped its CR-10 line with Marlin, a GPLv3-licensed firmware, without releasing complete corresponding source, US distributor Printed Solid stopped selling Creality printers over the non-compliance.<ref name="hackaday_marlin" /> Community pressure followed, & technology figure Naomi Wu was credited, alongside that pressure, with getting Creality to release the Marlin source for the CR-10S, including its filament-sensor & power-loss-recovery code, in April 2018.<ref name="3dprintingnerd_nw" />
Creality's ongoing non-compliance occurs amidst a broader industry crackdown on open-source license violations. Creality has a documented history of violations, previously being blacklisted on TH3D Studio LLC's 3D Printer GPL Violation List for withholding source code for Marlin-based printers and the Klipper-based Sonic Pad <ref name="klipper_discourse_violation" />.


Furthermore, on May 18, 2026, the Software Freedom Conservancy (SFC) launched a major compliance initiative against Bambu Lab over violations of the GNU Affero General Public License v3 (AGPLv3) <ref name="sfc_bambu" /> <ref name="toms_hardware_bambu" />. When Bambu Lab attempted to keep their networking library (`libbambu_networking.so`) proprietary and issued a cease-and-desist to an independent developer, the SFC launched Project "baltobu" to reverse-engineer the closed-source libraries and host a fully independent fork of the slicer <ref name="sfc_bambu" /> <ref name="reddit_sfc" />. This underscores a shifting industry landscape where enforcement bodies are taking direct legal and technical action against companies isolating commercial IP within copyleft frameworks.
On May 18, 2026, the Software Freedom Conservancy published a response to violations of the GNU Affero General Public License v3 (AGPLv3) by [[Bambu Lab]] over its proprietary networking library <code>libbambu_networking.so</code>.<ref name="sfc_bambu" /><ref name="toms_hardware_bambu" /> After Bambu issued a cease-and-desist to Pawel Jarczak, the developer of an OrcaSlicer fork, the SFC announced Project baltobu (''Bringing Affero Licensed Things (On)to Bambu Users'') to reverse-engineer the closed library & host an independent slicer fork.<ref name="sfc_bambu" />


==References==
==References==
<references>
<references>
<ref name="creality_forum_launch">[https://forum.creality.com/t/creality-open-source-3d-printer-firmware-is-here/47218 "Creality Open-Source 3D Printer Firmware is Here!"], Official Creality Forum.</ref>
<ref name="creality_forum_launch">[https://forum.creality.com/t/creality-open-source-3d-printer-firmware-is-here/47218 "Creality Open-Source 3D Printer Firmware is Here!"], Official Creality Forum.</ref>
<ref name="creality_forum_tracker">[https://forum.creality.com/t/where-are-the-required-to-be-released-sources-for-crealitys-modifications-to-klipper-the-k2/30019 "Where are the (required to be released) sources for Creality's modifications to Klipper the K2"], Creality Forum Tracker.</ref>
<ref name="creality_forum_tracker">[https://forum.creality.com/t/where-are-the-required-to-be-released-sources-for-crealitys-modifications-to-klipper-the-k2/30019 "Where are the (required to be released) sources for Creality's modifications to Klipper the K2"], Creality Forum.</ref>
<ref name="ticket_ack_may15">Creality Support Ticket #20260515750685, Official Email Correspondence from [email protected], 15 May 2026.</ref>
<ref name="email_demand">[https://archive.org/details/creality-k-2-gplv-3-compliance-demand-may-2026 "Creality K2 GPLv3 Compliance Demand Correspondence Logs (May 2026)"], correspondence log uploaded to the Internet Archive.</ref>
<ref name="mercer_demand_may20">Alex Mercer Email Communication to Creality Support, Ticket #20260515750685, 20 May 2026.</ref>
<ref name="extracted_fw">[https://github.com/Guilouz/Creality-K2Plus-Extracted-Firmwares/tree/main/Firmware/usr/share/klipper/klippy/extras Guilouz/Creality-K2Plus-Extracted-Firmwares, /Firmware/usr/share/klipper/klippy/extras directory], GitHub Repository.</ref>
<ref name="creality_refusal_may24">Creality Support Team Response, Ticket #20260515750685, 24 May 2026.</ref>
<ref name="k1_github_issue">[https://github.com/CrealityOfficial/K1_Series_Klipper/issues/9 "This repository contains binary-only extensions, violating the Klipper GPLv3 license"], K1 Series GitHub Issue #9.</ref>
<ref name="creality_confession_may29">Creality Support Team Response, Ticket #20260515750685, 29 May 2026.</ref>
<ref name="ticket_closure_may31">Creality Support Case Closure Notification, Ticket #20260515750685, 31 May 2026.</ref>
<ref name="reddit_k2">[https://www.reddit.com/r/Creality/comments/1hcer2j/k2_plus_firmware_source_code/ "K2 Plus Firmware Source Code"], r/Creality Community Discussion.</ref>
<ref name="klipper_discourse_k2">[https://klipper.discourse.group/t/creality-k2-plus-and-gpl-violations/22402 "Creality K2 Plus and GPL violations"], Klipper Discourse Group.</ref>
<ref name="klipper_discourse_k2">[https://klipper.discourse.group/t/creality-k2-plus-and-gpl-violations/22402 "Creality K2 Plus and GPL violations"], Klipper Discourse Group.</ref>
<ref name="k1_github_issue">[https://github.com/CrealityOfficial/K1_Series_Klipper/issues/9 "This repository contains binary-only extensions, violating the Klipper GPLv3 license"], K1 Series GitHub Issue #9.</ref>
<ref name="creality_k1c_forum">[https://forum.creality.com/t/k1c-2025-orcaslicer-workarounds-for-missing-web-interface/47164 "K1C 2025 + OrcaSlicer: Workarounds for Missing Web Interface"], Creality Community Forum.</ref>
<ref name="creality_k1c_forum">[https://forum.creality.com/t/k1c-2025-orcaslicer-workarounds-for-missing-web-interface/47164 "K1C 2025 + OrcaSlicer: Workarounds for Missing Web Interface"], Creality Community Forum.</ref>
<ref name="hackaday_marlin">[https://hackaday.com/2018/08/27/gpl-violations-cost-creality-a-us-distributor/ "GPL Violations Cost Creality A US Distributor"], Hackaday, Tom Nardi, August 27, 2018.</ref>
<ref name="3dprintingnerd_nw">[https://web.archive.org/web/20210509124858/https://the3dprintingnerd.com/creality-gpl-update-naomi-wu-released-cr-10s-marlin-source-code/ "Creality GPL Update: Naomi Wu Released CR-10S Marlin Source Code"], 3D Printing Nerd, April 9, 2018 (archived).</ref>
<ref name="klipper_discourse_violation">[https://klipper.discourse.group/t/creality-violating-klipper-license/8990 "Creality Violating Klipper License"], Klipper Discourse Group.</ref>
<ref name="klipper_discourse_violation">[https://klipper.discourse.group/t/creality-violating-klipper-license/8990 "Creality Violating Klipper License"], Klipper Discourse Group.</ref>
<ref name="cfs_github">[https://github.com/fake-name/cfs-reverse-engineering fake-name/cfs-reverse-engineering], GitHub Repository.</ref>
<ref name="cfs_github">[https://github.com/fake-name/cfs-reverse-engineering fake-name/cfs-reverse-engineering], GitHub Repository.</ref>
<ref name="th3d_list">[https://web.archive.org/web/20231109014621/https://www.th3dstudio.com/3d-printer-gpl-violation-list/ "3D Printer GPL Violation List"], TH3D Studio LLC (archived November 9, 2023).</ref>
<ref name="sfc_bambu">[https://sfconservancy.org/news/2026/may/18/bambu-studio-3d-printer-agpl-violation-response/ "Comprehensive Response to Bambu's AGPLv3 Violations"], Software Freedom Conservancy.</ref>
<ref name="sfc_bambu">[https://sfconservancy.org/news/2026/may/18/bambu-studio-3d-printer-agpl-violation-response/ "Comprehensive Response to Bambu's AGPLv3 Violations"], Software Freedom Conservancy.</ref>
<ref name="toms_hardware_bambu">[https://www.tomshardware.com/3d-printing/open-source-non-profit-claims-bambu-lab-violated-license-move-follows-cease-and-desist-demand-on-orcaslicer-fork-that-restored-cloud-printing-features-without-using-bambu-connect "Open-source non-profit claims Bambu Lab violated license"], Tom's Hardware.</ref>
<ref name="toms_hardware_bambu">[https://www.tomshardware.com/3d-printing/open-source-non-profit-claims-bambu-lab-violated-license-move-follows-cease-and-desist-demand-on-orcaslicer-fork-that-restored-cloud-printing-features-without-using-bambu-connect "Open-source non-profit claims Bambu Lab violated license"], Tom's Hardware.</ref>
<ref name="reddit_sfc">[https://www.reddit.com/r/BambuLab/comments/1tjku6z/the_software_freedom_conservancy_sfc_just/ "The Software Freedom Conservancy (SFC) launched a counter-offensive against Bambu Lab over AGPL violations"], r/BambuLab - Reddit.</ref>
</references>
</references>
{{Ph-I-C}}

Latest revision as of 02:02, 2 June 2026

The Creality K2 series 3D printer firmware (covering the K2 SE, K2, K2 Pro, & K2 Plus) ships proprietary modules compiled with Cython into the GPLv3-licensed Klipper host environment without releasing the corresponding source code.[1][2] Klipper's community developers & the independent reverse-engineering project fake-name/cfs-reverse-engineering have documented these closed binaries as a violation of the GNU General Public License v3 (GPLv3), the license under which Klipper is distributed.[1][2] Creality opened a public GitHub repository for the K2 line in December 2025 & markets it as open source, but the published code lacks the source for several hardware communication modules.[3] A correspondence log uploaded to the Internet Archive in May 2026 records Creality support telling a requester it was unable to directly provide the corresponding source code, & shows the requester copying the Software Freedom Conservancy (SFC) & the Free Software Foundation (FSF) on the demand.[4]

Background

[edit | edit source]

The K2 series firmware is built on Klipper, the open-source 3D-printer host software that its creator Kevin O'Connor distributes under the GPLv3.[5] In December 2025, Creality opened a public GitHub repository for the K2 series & promoted the line as open source.[3] Community developers found that the published code was outdated, out of sync with shipping printer configurations, & missing the source for several hardware communication modules.[3][1] The dispute predates that repository: a Creality-forum thread asking where the required K2 Klipper sources were had been open since February 2025.[1]

The missing modules ship as Cython-compiled shared objects. The reverse-engineering project fake-name/cfs-reverse-engineering describes these files as compiled with Cython to make them opaque.[2] Because the wrappers sit inside Klipper's own process directory, the GPLv3-licensed Klipper host loads & executes the closed binaries at runtime.[1][2]

The missing source affects the firmware images shipped across the K2 line:

  • K2 SE: V2.3.6.49 (CR4CU220812S11_ota_img_V2.3.6.49.img) [4]
  • K2: V1.1.5.5 (CR0CN200400C10_R_202605061516_ota_img_V1.1.5.5.img) [4]
  • K2 Pro: V1.1.5.5 (CR0CN200400C10_R_202605061516_ota_img_V1.1.5.5.img) [4]
  • K2 Plus: V1.1.5.5 (CR0CN240110C10_R_202605081127_ota_img_V1.1.5.5.img) [4]

Incident

[edit | edit source]

Creality distributes Cython-compiled shared objects (.so) inside Klipper's process directory at /usr/share/klipper/klippy/extras/ without the matching source.[1][6] Extracted K2 Plus firmware lists six such wrappers in that directory:

  • serial_485_wrapper.cpython-39.so, which the cfs project ties to the RS-485 serial link between the mainboard and the CFS feeder bus [1][2]
  • box_wrapper.cpython-39.so [1]
  • filament_rack_wrapper.cpython-39.so [1]
  • motor_control_wrapper.cpython-39.so [1]
  • prtouch_v2_wrapper.cpython-39.so [1]
  • prtouch_v3_wrapper.cpython-39.so [1]

A Klipper community thread on the K2 Plus documents that these compiled modules implement the printer's automatic filament-changing feature & ship only as shared-object files, & a moderator there describes Creality as in violation of the GPLv3.[7]

According to a correspondence log uploaded to the Internet Archive in May 2026, a requester pressed Creality for the complete GPLv3 source code, & Creality support acknowledged the request on May 15, 2026.[4] The log's outgoing letters, signed by a sender identifying himself as Alex Mercer, were copied to the Software Freedom Conservancy ([email protected]) & the Free Software Foundation ([email protected]) on May 27 & May 29, 2026, & state that the violation is logged with the Software Freedom Conservancy and the Free Software Foundation.[4] The log records a single recurring demand, that Creality either release the source or stop shipping the firmware. The May 29, 2026 letter reads:

I reiterate my demand: immediately provide the complete corresponding source code or halt all distribution of the K2 series firmware until compliance is achieved.

[4]

Creality continues to distribute the same firmware images while the source remains unreleased.[1]

Creality's response

[edit | edit source]

Through May 2026, community members documented a repeating set of stalling & denial templates from Creality's front-line support on GPL inquiries.[1]

In the correspondence log, a May 15, 2026 reply from Creality Customer Service reads:

We have officially forwarded your application for the complete GPLv3 source code for all firmware versions of the K2 series to our R&D team for processing. ... Please stay tuned for further announcements on our official website.

[4]

A May 24, 2026 reply in the same log, attributed to Creality Service, reads:

Due to the involvement of custom firmware modules, underlying dependencies, and the need to clarify copyrights from multiple parties, the compilation of relevant materials requires a considerable period of time. Currently, we are unable to directly provide the corresponding source code or updated repository links.

[4]

A May 29, 2026 follow-up in the log states:

cleaning up a fully compliant source code package without affecting commercial proprietary code does require an internal process that, for now, does not have a publicly available timeline.

[4]

The log records no substantive reply after May 29, 2026; per the log, Creality forwarded the case to its internal legal department & R&D manager without giving a compliance timeline.[4]

Consumer response & hardware bypass

[edit | edit source]

The K2 firmware drew criticism on the Creality forums, where the cfs project author argued that withholding the source for the parts that matter moved Creality from incompetent to actively malicious: promoting a printer as open source while keeping its core features behind closed binaries.[1]

The closed binaries created practical problems for owners: blocked hardware repair, no support for third-party toolheads, & restricted access to the printer's underlying Linux system.[1]

Creality had faced the same complaint over the earlier K1 series. Issue #9 on its K1_Series_Klipper GitHub repository flagged binary-only extensions as a GPLv3 violation & demanded the corresponding source; the issue remained open as of March 2025.[8] On the later K1C, Creality removed root access; owners on the Creality forum note that the printer's own documentation describes the removal as intentional.[9]

Independent developers started the fake-name/cfs-reverse-engineering project to map the Creality Filament System (CFS) feeder bus.[2] The project documents that the CFS uses a GigaDevice GD32F303VET6 microcontroller, which its firmware notes describe as binary-compatible with an STM32F106VET6.[2] By building a hardware interposer board to reroute the isolated RS-485 lines to an unused MCU header, the developers converted the CFS link into a standard CAN bus running candleLight_fw & upstream Klipper, bypassing Creality's closed serial protocol.[2]

Kevin O'Connor, the creator of Klipper, restated the license terms on the Klipper Discourse forum:

Klipper is licensed under the GNU GPLv3. Any redistribution of that code is required to follow the license. I have not dual-licensed the code nor provided any exceptions.

[5]

Prior violations & the Bambu Lab AGPLv3 case

[edit | edit source]

Creality already appears on TH3D Studio LLC's 3D Printer GPL Violation List for withholding source code on its Marlin-based printers & the Klipper-based Sonic Pad.[10][5]

Creality's open-source disputes go back to 2018. After it shipped its CR-10 line with Marlin, a GPLv3-licensed firmware, without releasing complete corresponding source, US distributor Printed Solid stopped selling Creality printers over the non-compliance.[11] Community pressure followed, & technology figure Naomi Wu was credited, alongside that pressure, with getting Creality to release the Marlin source for the CR-10S, including its filament-sensor & power-loss-recovery code, in April 2018.[12]

On May 18, 2026, the Software Freedom Conservancy published a response to violations of the GNU Affero General Public License v3 (AGPLv3) by Bambu Lab over its proprietary networking library libbambu_networking.so.[13][14] After Bambu issued a cease-and-desist to Pawel Jarczak, the developer of an OrcaSlicer fork, the SFC announced Project baltobu (Bringing Affero Licensed Things (On)to Bambu Users) to reverse-engineer the closed library & host an independent slicer fork.[13]

References

[edit | edit source]
  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 "Where are the (required to be released) sources for Creality's modifications to Klipper the K2", Creality Forum.
  2. 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 fake-name/cfs-reverse-engineering, GitHub Repository.
  3. 3.0 3.1 3.2 "Creality Open-Source 3D Printer Firmware is Here!", Official Creality Forum.
  4. 4.00 4.01 4.02 4.03 4.04 4.05 4.06 4.07 4.08 4.09 4.10 4.11 "Creality K2 GPLv3 Compliance Demand Correspondence Logs (May 2026)", correspondence log uploaded to the Internet Archive.
  5. 5.0 5.1 5.2 "Creality Violating Klipper License", Klipper Discourse Group.
  6. Guilouz/Creality-K2Plus-Extracted-Firmwares, /Firmware/usr/share/klipper/klippy/extras directory, GitHub Repository.
  7. "Creality K2 Plus and GPL violations", Klipper Discourse Group.
  8. "This repository contains binary-only extensions, violating the Klipper GPLv3 license", K1 Series GitHub Issue #9.
  9. "K1C 2025 + OrcaSlicer: Workarounds for Missing Web Interface", Creality Community Forum.
  10. "3D Printer GPL Violation List", TH3D Studio LLC (archived November 9, 2023).
  11. "GPL Violations Cost Creality A US Distributor", Hackaday, Tom Nardi, August 27, 2018.
  12. "Creality GPL Update: Naomi Wu Released CR-10S Marlin Source Code", 3D Printing Nerd, April 9, 2018 (archived).
  13. 13.0 13.1 "Comprehensive Response to Bambu's AGPLv3 Violations", Software Freedom Conservancy.
  14. "Open-source non-profit claims Bambu Lab violated license", Tom's Hardware.