Please sign in to access this page

print_mate

print_mate Used AI

21 devlogs
71h 16m
Created by Benjamin Yang

A react/next.js based controller for Bambu Lab 3D printers. Supports MQTT and FTP printer communication.

Timeline

Ship 1

1 payout of shell 1158.0 shells

Benjamin Yang

about 1 month ago

Benjamin Yang Covers 21 devlogs and 71h 16m

Fixed issues with path resolution on the windows build, which now works, and the project is ready to be shipped. (no i will not activate windows)

Update attachment

Got the app packaged with electron as a wrapper to make running the app easier, and spent a lot of time struggling with Github actions and cross-compiling (which did not work) to get the app built with electron-builder.

Update attachment

Fully implemented the cloud mqtt (including Bambu cloud authentication) and added support for local camera/ftp connections in cloud mode (there is no way to get these connections over the cloud even though Bambu Handy can do it, as the apis are undocumented). Here is an in-progress firmware update tested using the cloud mqtt

Update attachment

Added support for the Bambu cloud MQTT server, which removes the restriction of operating the printer in LAN only mode, although with reduced functionality (haven't gotten camera or files browsing to work yet)

Update attachment

Implemented timelapse file downloading from FTP, implemented the settings view to change printer settings, and tried (and failed) to make MQTT subscriptions faster, as the printer's implementation does not send status updates on a published command, but only at a defined interval (2s). Some of the settings in the video that look like they are not working have just not updated due to the slow status updates.

Implemented skip objects functionality. The implementation downloads the 3mf print file from the printer through FTP, then extracts it and obtains the top_X.png, which is the top view image of the print for selecting objects, plate_X.json which contains bounding box data for the pick image, and slice_info.config which contains object ids sent to the printer for skipping.

Implemented the Bambu HMS system, implemented some more MQTT commands, started implementation of settings view

Update attachment

Implemented the camera stream. For some reason Bambu Lab streams the video as a series of JPEGs on a TCP server, which made implementation much more difficult. The implementation connects to the TCP server, sends an authentication header, then receives the frames.

Update attachment

Sending new prints to the printer over MQTT now works. All the settings available on the printer's touchscreen are also available through the new view.

Update attachment

Implemented most MQTT functions used by the printer, and now it is now able to retrieve the print image over FTP.

Update attachment

The MQTT is working, but it can't yet retrieve some data, like print image or filaments info. Also the ui is ugly and I haven't made the icons yet.

Update attachment

Publishing commands and making subscriptions over MQTT now works. I made a pool of persistent connections so it doesn't have to reconnect every time.

Update attachment

Finished the filament chooser, file browser, and control UIs.

Update attachment

Made the printer list editable, some ui changes

Update attachment

Changed the hardcoded values in most views to states so they are variable, and added popups to modify those values.

Update attachment

Changed to a sidebar navigation, added actual stuff to some more views

Update attachment

Got ftp working to scan the printer for printable files

Update attachment

Made a basic files view with fake data

Update attachment

need to post something...started working on the backend (messing around in mqttx)

Update attachment

Created the controller view as a clone of the A1 UI.

Update attachment

Needed a way to control my Bambu A1 from my phone in LAN only mode. Home Assistant is overkill (I don't have anything else to use it for) and most of the available solutions don't support Android.

Update attachment