Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FW 1.08.03.00 from Bambu WILL BREAK ORCASLICER for X, P and A series #8063

Open
1 task done
WimVDK opened this issue Jan 16, 2025 · 223 comments
Open
1 task done

FW 1.08.03.00 from Bambu WILL BREAK ORCASLICER for X, P and A series #8063

WimVDK opened this issue Jan 16, 2025 · 223 comments
Labels
enhancement New feature or request

Comments

@WimVDK
Copy link

WimVDK commented Jan 16, 2025

Is there an existing issue for this feature request?

  • I have searched the existing issues

Is your feature request related to a problem?

Bambu is going to release a "security" firmware update that will essentiall break the current networking plugin, ALL functionality.

https://blog.bambulab.com/firmware-update-introducing-new-authorization-control-system-2/

This includes

  • initiating a print job (cloud AND LAN MODE!)
  • calibrations
  • AMS settings
  • ....

Network Plugin for Third-party Slicer

Network plugin API for Third-party slicing tools (e.g. OrcaSlicer) based on open-source Studio development will no longer be able to utilize Studio’s network plugin API for authorization control. For these users, Bambu Connect client software will act as a replacement. This new software removes slicing functions while enabling remote control and print initiation.

Another piece of proprietary blob "Bambu Connect" WILL BE REQUIRED

https://wiki.bambulab.com/en/software/bambu-connect?ref=blog.bambulab.com and will need to be called using an url scheme

ANY AND ALL BAMBU USERS should immediately complain to Bambu Lab as this virtually takes full control over what YOU can do with YOUR PRINTER! DO NOT UPDATE TO 1.08.03.00 if you rely (like myself) on orcaslicer until support for Bambu Connect has been added!

Which printers will be beneficial to this feature?

Others

Describe the solution you'd like

Implement support for Bambu Connect

Describe alternatives you've considered

There are no alternatives

Additional context

No response

@WimVDK WimVDK added the enhancement New feature or request label Jan 16, 2025
@24c
Copy link

24c commented Jan 17, 2025

Yeah, this is scandalous...just read it this morning. You will have to export .3mf files from Orca to Bambu Connect (beta, that doesn't support live çamera view still) so another layer of crap to go through. I really like that in Orca I can send GCode to more than one brand of printer I own.

@WimVDK
Copy link
Author

WimVDK commented Jan 17, 2025

It will be able to be called via a formatted URL but it's still annoying that's for sure, they're taking control over OUR printer

@ziehmon
Copy link

ziehmon commented Jan 17, 2025

Network plugin API for Third-party slicing tools (e.g. OrcaSlicer) based on open-source Studio development will no longer be able to utilize Studio’s network plugin API for authorization control.

I am curious to see how they are planning to prevent the usage of libnetworking.so in external software (like Orca), since with BambuStudio you don't require BambuConnect, so the .so definitely includes the whole binding implementation.

This can be easily reverse engineered, same as the crappy encryption of log and config files.

@withoutgettingwet
Copy link

withoutgettingwet commented Jan 17, 2025

Sorry to hijack the topic, but where would be best to complain to bambu about this?

New readers, you can complain to bambu here

@petercockroach
Copy link

Excuse my ignorance but shouldn't we use this report to just implement the new formatted URL scheme?

@WimVDK
Copy link
Author

WimVDK commented Jan 17, 2025

There's no real answer to that but complain on social media, email them , file a complaint support ticket...

Excuse my ignorance but shouldn't we use this report to just implement the new formatted URL scheme?

Yes, but that doesn't fix the inherit bad move by bambu. They have no authority to lock down EVEN LAN MODE!

@ziehmon
Copy link

ziehmon commented Jan 17, 2025

Excuse my ignorance but shouldn't we use this report to just implement the new formatted URL scheme?

This is one option, right. The other is to just build the functionality of the BambuConnect agent into Orca.

I had a quick check and it looks like they started to use certificates (maybe x509) for message/payload encryption. The certificate used by the client (BambuStudio or BambuConnect) probably would have to be trusted there upfront (likely included in firmware update). Essentially, mTLS.

The thing is, the certificate and it's key would have to be embedded both in BambuStudio and BambuConnect. It won't take long to reverse and obtain it. The "problem" Bambu Lab is trying to solve is rather complex and the abilities they have in "solving" it are limited.

But of course, one could follow their wishes and implement the URL handler.

@petercockroach
Copy link

This is one option, right. The other is to just build the functionality of the BambuConnect agent into Orca.
...
But of course, one could follow their wishes and implement the URL handler.

I think there's space for both solutions. I would suggest as a community we should prioritize the URL handler to get unblocked, then pursue the direct implementation.

The problem is the latter may end up being a cat & mouse situation which isn't great for the community at large.

@WimVDK
Copy link
Author

WimVDK commented Jan 17, 2025

Either way @SoftFever has his work cut out unless someone else implements support in a pull request. I know 1 thing I ain't updating fw unless I have too anymore

@ziehmon
Copy link

ziehmon commented Jan 17, 2025

I think there's space for both solutions. I would suggest as a community we should prioritize the URL handler to get unblocked, then pursue the direct implementation.

I agree with you.

Either way @SoftFever has his work cut out unless someone else implements support in a pull request. I know 1 thing I ain't updating fw unless I have too anymore

Did anyone noticed that Bambu Lab states that @SoftFever was informed about this upront? Maybe there were already some thoughts how to continue.

Before announcing this change publicly, we shared it with the lead Orca Slicer developer to ensure alignment and collaboration.

https://blog.bambulab.com/firmware-update-introducing-new-authorization-control-system-2/, section "FAQ"

@gschintgen
Copy link

Also: Will Orca stay compatible with non-updated printers?

@mattgauf
Copy link

mattgauf commented Jan 17, 2025

I had the same thought as @gschintgen, but on a more time sensitive level... The PR containing the updates to the Bambu material presets (and the fix for TPU for AMS) has been merged but Orca hasn't posted a release with those fixes.

In this case I can manage, but I'm also worried that future updates to material presets etc will become dependent on "playing nice" with whatever Bambu cooks up. So I definitely hope that @SoftFever will provide some clarity on their intentions for non-updated printers.

eta: "also" in 2nd paragraph

@Anthony-Bec
Copy link

Bambu Lab released "bambu connect" which will fix this issue, you upload the .gcode.3mf file from orca and it will send it to the printer.

@LBowers23
Copy link

Sure but will Orca be able to query the AMS for what filament is loaded so it knows how to slice and if Bambu introduces new filament types will Orca be able to recognize them?

@WimVDK
Copy link
Author

WimVDK commented Jan 17, 2025

Bambu Lab released "bambu connect" which will fix this issue, you upload the .gcode.3mf file from orca and it will send it to the printer.

It doesn't fix anything until OrcaSlicer is updated to automatically send sliced files through BC. And they still limit what YOU can do with YOUR printer even in kan mode

@cryptonym64
Copy link

Sure but will Orca be able to query the AMS for what filament is loaded so it knows how to slice and if Bambu introduces new filament types will Orca be able to recognize them?

Supposedly the read of values (other than can) is not protected.

@cryptonym64
Copy link

Excuse my ignorance but shouldn't we use this report to just implement the new formatted URL scheme?

This is one option, right. The other is to just build the functionality of the BambuConnect agent into Orca.

I had a quick check and it looks like they started to use certificates (maybe x509) for message/payload encryption. The certificate used by the client (BambuStudio or BambuConnect) probably would have to be trusted there upfront (likely included in firmware update). Essentially, mTLS.

The thing is, the certificate and it's key would have to be embedded both in BambuStudio and BambuConnect. It won't take long to reverse and obtain it. The "problem" Bambu Lab is trying to solve is rather complex and the abilities they have in "solving" it are limited.

But of course, one could follow their wishes and implement the URL handler.

Would be interesting to know expiration dates on those certs as those effectively become the day the printer died if not renewed. A true end of life date.

@withoutgettingwet
Copy link

withoutgettingwet commented Jan 18, 2025

For reference, Bambu has an option for "complaints" on their general inquiry form, here.

I would encourage anyone who is concerned or opposes this change to use this.

@ronoverdrive
Copy link

Excuse my ignorance but shouldn't we use this report to just implement the new formatted URL scheme?

This is one option, right. The other is to just build the functionality of the BambuConnect agent into Orca.

I had a quick check and it looks like they started to use certificates (maybe x509) for message/payload encryption. The certificate used by the client (BambuStudio or BambuConnect) probably would have to be trusted there upfront (likely included in firmware update). Essentially, mTLS.

The thing is, the certificate and it's key would have to be embedded both in BambuStudio and BambuConnect. It won't take long to reverse and obtain it. The "problem" Bambu Lab is trying to solve is rather complex and the abilities they have in "solving" it are limited.

But of course, one could follow their wishes and implement the URL handler.

The only problem with reversing it from their code is it becomes a cat and mouse game with every software update to reverse the cert again. Not to mention it may put Orca at odds with Bambu with them labeling us as some kind of cracking group they can issue C&D legal threats to. Honestly Bambu Connect wouldn't be so bad if it wasn't still in a feature incomplete Beta state and offered a real API that 3rd party slicers can connect through to maintain current functionality, but right now its half @$$ed and feels like they're trying to push us back to Bambu Studio.

In the mean time we don't seem to have a choice in the matter, implement a URL handler for printers on 1.08.xx+ and keep current functionality as legacy support for those of us who will stay on 1.07.xx. Until Bambu Connect becomes feature complete and obtains a Linux package I will be staying on 1.07.xx for the time being.

@SoftFever
Copy link
Owner

Bambu informed me of this change two days before their announcement.
They provided access to a beta version of "Bumbu Connect." I gave them feedback to help improve the workflow if this becomes their chosen path. Nonetheless, sending a print through another software after slicing will always be inconvenient. I requested an authorization key from them to enable OrcaSlicer to communicate with their device, just as BambuStudio does. However, I haven't received a response yet. I will share more updates once they become available. I'm uncertain how receptive they will be to authorizing OrcaSlicer with the same capabilities as BambuStudio. We'll have to wait and see.

@Aggeloz
Copy link

Aggeloz commented Jan 18, 2025

Bambu Lab released "bambu connect" which will fix this issue, you upload the .gcode.3mf file from orca and it will send it to the printer.

Why would we have to go through hoops just to send a file to the printer? It works nicely now, i dont need to add another program in the middle to take care of file sending, it's just going to make things slower.

@WimVDK
Copy link
Author

WimVDK commented Jan 18, 2025

Bambu informed me of this change two days before their announcement. They provided access to a beta version of "Bumbu Connect." I gave them feedback to help improve the workflow if this becomes their chosen path. Nonetheless, sending a print through another software after slicing will always be inconvenient. I requested an authorization key from them to enable OrcaSlicer to communicate with their device, just as BambuStudio does. However, I haven't received a response yet. I will share more updates once they become available. I'm uncertain how receptive they will be to authorizing OrcaSlicer with the same capabilities as BambuStudio. We'll have to wait and see.

Considering BS and OS are a fork of the other, can't you legally just reverse it?

@mrambossek
Copy link

Considering BS and OS are a fork of the other, can't you legally just reverse it?

the "main program" is open source. no need to RE anything. their binary blobs, that the main program interfaces with, are not. whether or not it is legal to RE that has nothing to do with OS' license.

@SoftFever
Copy link
Owner

I heard back from their development team; they are not going to greenlight OrcaSlicer to send prints directly to their machine. It has to be done through their Bambu Connect application.

@WimVDK
Copy link
Author

WimVDK commented Jan 18, 2025

Well that just sucks. Definitely not updating fw now untill they kill legacy mode

@SoftFever
Copy link
Owner

Bambu informed me of this change two days before their announcement. They provided access to a beta version of "Bumbu Connect." I gave them feedback to help improve the workflow if this becomes their chosen path. Nonetheless, sending a print through another software after slicing will always be inconvenient. I requested an authorization key from them to enable OrcaSlicer to communicate with their device, just as BambuStudio does. However, I haven't received a response yet. I will share more updates once they become available. I'm uncertain how receptive they will be to authorizing OrcaSlicer with the same capabilities as BambuStudio. We'll have to wait and see.

Considering BS and OS are a fork of the other, can't you legally just reverse it?

They use a closed-source network plugin to communicate with their printer. They are going to require authentication to use the plugin, so...

@axhe
Copy link

axhe commented Jan 18, 2025

@SoftFever Can you please keep the current functionality for all that go LAN Only mode and stop updates as it is now as a separate way of connecting addionally to whatever cloud connection they want to go for?

@ziehmon
Copy link

ziehmon commented Jan 18, 2025

If this was really about security and invalid costly usage of their APIs they would provide a key for usage of the networking plugin to Orca. They could literally review the usage/invocation in Orca and they'd have leverage to ensure it is used properly there.

This is NOT about any of the above. This is about lock-in and control. I am no pessimist but you have to face the facts.

All of you have correctly pointed out that obtaining certificates by reversing of the plugin is a cat and mouse game. But even if it's just about resistance to their malicious practice, I believe it's the right choice to pick the battle. Edit: this however shall not be affiliated in any way with Orca due to various reasons, including but not limited to legal concerns.

@3vi1
Copy link

3vi1 commented Feb 19, 2025

@cryptonym64

TIL. My impression from using 3rd party projects that also depended on the DLL was that BL had already restricted some of the MQTT functionality, but perhaps they were only using it to get access to the camera?

I had previously tried to access the camera stream directly, but ended up using a project that calls the DLL. Is there an alternative way to poll the camera as well, or would we be losing that functionality?

@spali
Copy link

spali commented Feb 19, 2025

@cryptonym64
Is there an alternative way to poll the camera as well, or would we be losing that functionality?

You can access the stream directly, did it in the past. Can't remember the stream URL, but google for it will for sure help.

@cryptonym64
Copy link

cryptonym64 commented Feb 19, 2025 via email

@cryptonym64
Copy link

Aye, this isn't just an X1 problem. Having a plan is fine, discontinuing the current plugin as long as it's working without even knowing a date the legacy control would stop working (if it'll even stop at all) is a bad idea.

Alternative firmware doesn't exist for the P/A series, if and until 'legacy' access is killed by bambu, there is no reason to stop support for the current plugin

One method is set your own timeline. The other is have it dictated to you, perhaps just a week or two notice even. I'm only saying to disable it for lan only mode. Those in hybrid or cloud mode could be left on it as needed. The sooner the Bambu "wedge" stuff is eradicated the better. There is zero reason to retain cloud connected plug in for lan only mode, unless a dev can say otherwise.

@spali
Copy link

spali commented Feb 19, 2025

You would only have to have it offline instead of downloading it from bambu, so the risk of having nothing is small. To not mess with redistribution rights, you can let the user organize it. A copy of all pre 1.08.03 stuff is on https://wiki.rossmanngroup.com/.

@cryptonym64
Copy link

You would only have to have it offline instead of downloading it from bambu, so the risk of having nothing is small. To not mess with redistribution rights, you can let the user organize it. A copy of all pre 1.08.03 stuff is on https://wiki.rossmanngroup.com/.

That ignores IP rights in redistributing it. It's why even X1Plus doesn't deploy Bambu bits but only has the install pull from Bambu then overlays it.

The other thing to remember is that the dll talks to Bambu services, irrespective of lan only mode on the printer. If they alter cloud services to require a special handshake or whatever, that is the end of it functioning.

Being dependent in any manner on Bambu closed source code is problematic at best, perhaps suicidal. Once people jump ship, they often don't swim back.

@3vi1
Copy link

3vi1 commented Feb 19, 2025

@cryptonym64
Is there an alternative way to poll the camera as well, or would we be losing that functionality?

You can access the stream directly, did it in the past. Can't remember the stream URL, but google for it will for sure help.

From the posts I found googling, you could do it with older firmware but it was removed in one of the previous updates. The only project I got to work with it was BambuP1Streamer, and that one is using the Bambu proprietary DLL under the cover.

@cryptonym64
Copy link

cryptonym64 commented Feb 19, 2025 via email

@psiberfunk
Copy link

psiberfunk commented Feb 20, 2025

If that's the case the X1 is a lost cause. Works fine on P series and I've
seen A1 video posted in Home Assistant which isn't using any plug in.

Are you in lan only mode? Not just trying local access, but have set it to
lan only mode?

Have you even heard of X1Plus ? You cited it above and then kinda seemed to forget it existed . The X1 is not a lost cause because of it …

@WimVDK
Copy link
Author

WimVDK commented Feb 20, 2025

Have you even heard of X1plus

That's what I did to mine too. Flashed it over. MY printer, MY network, MY rules

@cryptonym64
Copy link

If that's the case the X1 is a lost cause. Works fine on P series and I've
seen A1 video posted in Home Assistant which isn't using any plug in.
Are you in lan only mode? Not just trying local access, but have set it to
lan only mode?

Have you even heard of X1Plus ? You cited it above and then kinda seemed to forget it existed . The X1 is not a lost cause because of it …

Sure, what's your point? You do realize that is only an overlay applied to the stock firmware and that it does not include the actual base, it pulls it at install time from Bambu. If bambubdecises to block the image, game over. Well, game over unless they decide to ignore the legal IP protecting it and go toe to toe with big corporate lawyers.

@psiberfunk
Copy link

psiberfunk commented Feb 20, 2025

If that's the case the X1 is a lost cause. Works fine on P series and I've
seen A1 video posted in Home Assistant which isn't using any plug in.
Are you in lan only mode? Not just trying local access, but have set it to
lan only mode?

Have you even heard of X1Plus ? You cited it above and then kinda seemed to forget it existed . The X1 is not a lost cause because of it …

Sure, what's your point? You do realize that is only an overlay applied to the stock firmware and that it does not include the actual base, it pulls it at install time from Bambu. If bambubdecises to block the image, game over. Well, game over unless they decide to ignore the legal IP protecting it and go toe to toe with big corporate lawyers.

It's going to be hard for them to block the download of the base firmware considering 1) The non-X1Plus printers all need it too. 2) If they update to a new version it possible to patch over that 3) We already have their firmware decryption key.

The whole chain/root of trust on the X1 is jail-broken. There's not much they can do there.

@spali
Copy link

spali commented Feb 20, 2025

The other thing to remember is that the dll talks to Bambu services, irrespective of lan only mode on the printer. If they alter cloud services to require a special handshake or whatever, that is the end of it functioning.

Didn't know this or at least not thought about it. So does anyone know what it talks (assume it's encrypted) and what happens if I block it too using these services?

@cryptonym64
Is there an alternative way to poll the camera as well, or would we be losing that functionality?

You can access the stream directly, did it in the past. Can't remember the stream URL, but google for it will for sure help.

From the posts I found googling, you could do it with older firmware but it was removed in one of the previous updates. The only project I got to work with it was BambuP1Streamer, and that one is using the Bambu proprietary DLL under the cover.

I think it requires "LAN Only" and "LAN MOde Liveview" modes enabled on the printer, as you need the access code:
rtsps://bblp:[bambucode]@[bambuIP]:322/streaming/live/1
also on windows I think it requires codec or ffmpeg to view the stream, but it works out of the box from i.e. home assistant camera integration.

Sure, what's your point? You do realize that is only an overlay applied to the stock firmware and that it does not include the actual base, it pulls it at install time from Bambu. If bambubdecises to block the image, game over. Well, game over unless they decide to ignore the legal IP protecting it and go toe to toe with big corporate lawyers.

Not sure if this applies in most countries, as long the open source project does not redistribute and the user has to "organize" it. I think for such a case it would be "fine" for the project itself😉
And rossmanngroup already took that path to host and share them, so we can just grab it there. But I'm sure most of us already stored also copies of everything.
But anyway, this path would be the last wanted for all projects, as it's directly affects the install-ability and usability for the user.

@psiberfunk
Scary for me is, that we are dependent on BL not cutting down the third-party firmware and 'rootable firmware downgrade' route currently required to i.e. install X1Plus.

@3vi1
Copy link

3vi1 commented Feb 20, 2025

@spali : I'm in lan-only mode, from Linux, ffplay to that URL (with my details substituted) returns a "Connection refused" error. It's one of the very first things I tried.

@spali
Copy link

spali commented Feb 20, 2025

@spali : I'm in lan-only mode, from Linux, ffplay to that URL (with my details substituted) returns a "Connection refused" error. It's one of the very first things I tried.

Live mode on the printer enabled? Otherwise I'm out 🤔

@cryptonym64
Copy link

cryptonym64 commented Feb 20, 2025 via email

@3vi1
Copy link

3vi1 commented Feb 20, 2025

@spali : I'm in lan-only mode, from Linux, ffplay to that URL (with my details substituted) returns a "Connection refused" error. It's one of the very first things I tried.

Live mode on the printer enabled? Otherwise I'm out 🤔

What is "live mode". I see no option for that on the printer and google searches show nothing for that term.

@spali
Copy link

spali commented Feb 20, 2025

What is "live mode". I see no option for that on the printer and google searches show nothing for that term.

One off the first pictures (screenshot of the X1C display) the red arrow: https://www.wolfwithsword.com/bambulabs-x1c-camera-in-home-assistant/

@cryptonym64
Copy link

cryptonym64 commented Feb 20, 2025 via email

@3vi1
Copy link

3vi1 commented Feb 20, 2025

@spali : X1 specific you say.

@spali
Copy link

spali commented Feb 20, 2025

@spali : X1 specific you say.

I only have an X1C, so I can only say X1C has this button in the interface. Don't know about the other printers if they have the same setting somewhere. If I understand cryptonym64 right, only X... printers have this...
Edit: lets move this topic maybe to a discussion or even to the bambu fforum... here is the wrong place for this.

@3vi1
Copy link

3vi1 commented Feb 20, 2025

I think it's very pertinent to this topic that there's no camera solution for P1 owners, and that we'd lose functionality without the proprietary dll. We need to fix this.

@cryptonym64
Copy link

I think it's very pertinent to this topic that there's no camera solution for P1 owners, and that we'd lose functionality without the proprietary dll. We need to fix this.

No idea what you are talking about about. It is a simple rtsp stream. I've been streaming videos on home assistant via RTSP for a long no time. No plug in needed. Enable lan only mode on printer, it works. X1 is the one with what appears to be extra steps to enable live streaming.

The only thing needed on a P1 is lan mode on, cloud crap off. I believe A1 is the same. One menu option handles getting rid of cloud interference on the printer.

@cryptonym64
Copy link

@spali : X1 specific you say.

The extra slide button yes. On newer models camera just works with no extra steps.

@3vi1
Copy link

3vi1 commented Feb 20, 2025

I think it's very pertinent to this topic that there's no camera solution for P1 owners, and that we'd lose functionality without the proprietary dll. We need to fix this.

No idea what you are talking about about. It is a simple rtsp stream. I've been streaming videos on home assistant via RTSP for a long no time. No plug in needed. Enable lan only mode on printer, it works. X1 is the one with what appears to be extra steps to enable live streaming.

The only thing needed on a P1 is lan mode on, cloud crap off. I believe A1 is the same. One menu option handles getting rid of cloud interference on the printer.

Could you please post exactly how you're viewing the RTSP stream? It doesn't work here.

@cryptonym64
Copy link

cryptonym64 commented Feb 21, 2025 via email

@cryptonym64
Copy link

cryptonym64 commented Feb 21, 2025 via email

@3vi1
Copy link

3vi1 commented Feb 21, 2025

Here is the best link on the X1 specifics. X1 uses rtsps:// and a lot of
viewers do not support the secure version. Apparently FFplay does per
another thread I found.

https://www.wolfwithsword.com/bambulabs-x1c-camera-in-home-assistant

Does not work for P1's: https://i.imgur.com/VHAI9DW.png

From what I've been able to discern, the reason is that the P1s output JPEG images on port 6000 instead of using actual RTSPS. So, there's an alternate path to accessing it directly without the DLL - it will just require extra steps.

@bigtreetech
Copy link

It's MJPEG out of the P1S. Accessible directly.

@3vi1
Copy link

3vi1 commented Feb 21, 2025

It's MJPEG out of the P1S. Accessible directly.

This project appear to be converting it to MJPEG: https://github.com/kurim/P1Stream/blob/main/p1.py Is there another port that makes MJPEG directly accessible without this extra step?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests