-
-
Save fritzw/7d981046b509a27e204d01c9bd73f37b to your computer and use it in GitHub Desktop.
# Send the IP address of your BambuLab printer to port 2021/udp, which BambuStudio is listens on. | |
# | |
# Ensure your PC has firewall pot 2021/udp open. This is required as the proper response would usually go to the ephemeral source port that the M-SEARCH ssdp:discover message. | |
# But we are are blindly sending a response directly to the BambuStudio listening service port (2021/udp). | |
# | |
# Temporary solution to BambuStudio not allowing you to manually specify the Printer IP. | |
# | |
# Author(s): gashton <https://github.com/gashton>, Fritz webering <https://github.com/fritzw> | |
# | |
param ( | |
[string]$PRINTER_IP = "10.80.2.50" # IP address of your BambuLab Printer | |
) | |
$TARGET_IP="127.0.0.1" # IP address of your PC running BambuStudio. | |
$PRINTER_USN="000000000000000" # Enter your own Printer Serial Number here | |
$PRINTER_DEV_MODEL="3DPrinter-X1-Carbon" # Set this to your model | |
# PRINTER_DEV_MODEL: https://github.com/bambulab/BambuStudio/tree/master/resources/printers | |
# X1C : "3DPrinter-X1-Carbon" | |
# X1 : "3DPrinter-X1" | |
# X1E : "C13" | |
# P1P : "C11" | |
# P1S : "C12" | |
# A1 mini: "N1" | |
# A1 : "N2S" | |
$PRINTER_DEV_NAME="MY-X1C" # Here you can choose any name you want for your printer, which is shown in the slicer. | |
$PRINTER_DEV_SIGNAL="-44" # Good Signal (Artificial), WiFi icon in BambuStudio will appear green with full-bars. | |
$PRINTER_DEV_CONNECT="lan" # LAN Mode | |
$PRINTER_DEV_BIND="free" # Not bound to a Cloud user-account. | |
$remoteudpport=2021 # port to send to | |
$sourceudpport = 0 # SourcePort, maybe empty uses and available port | |
$message = "HTTP/1.1 200 OK`r`nServer: Buildroot/2018.02-rc3 UPnP/1.0 ssdpd/1.8`r`nDate: $(date)`r`nLocation: ${PRINTER_IP}`r`nST: urn:bambulab-com:device:3dprinter:1`r`nEXT:`r`nUSN: ${PRINTER_USN}`r`nCache-Control: max-age=1800`r`nDevModel.bambu.com: ${PRINTER_DEV_MODEL}`r`nDevName.bambu.com: ${PRINTER_DEV_NAME}`r`nDevSignal.bambu.com: ${PRINTER_DEV_SIGNAL}`r`nDevConnect.bambu.com: ${PRINTER_DEV_CONNECT}`r`nDevBind.bambu.com: ${PRINTER_DEV_BIND}`r`n`r`n" | |
$udpClient = new-Object system.Net.Sockets.Udpclient($sourceudpport) | |
$byteBuffer = [System.Text.Encoding]::ASCII.GetBytes($message) | |
$sendbytes = $udpClient.Send($byteBuffer, $byteBuffer.length, $remoteip, $remoteudpport) | |
if ($sendbytes -ne $byteBuffer.length) { | |
write-host "Mismatch bytes" | |
} |
@R3DPanda1
Thank you for your research. I’m also looking for a solution. I tried this method, but I didn’t use it because BambuStudio disconnects my printer after 5-10 seconds. Does it work for you without any issues?
Edit:
This only happens when the printer is connected to the cloud.
I can confirm that this Works very well
@R3DPanda1 Thank you for your research. I’m also looking for a solution. I tried this method, but I didn’t use it because BambuStudio disconnects my printer after 5-10 seconds. Does it work for you without any issues?
Edit: This only happens when the printer is connected to the cloud. I can confirm that this Works very well
I tested it remotely at work and it works fine for me. Made a click-to-run version in PowerShell (with ChatGPT). Here’s an anonymized version. (The local PC IP is detected automatically.)
BambuConnectorV2.ps1
I tried different scripts and this one worked with Bambu Studio v2.xxx
https://github.com/jonans/bsnotify/tree/main
Maybe someone can port it to PowerShell. Here is what I ran in CMD:
py bsnotify.py <PRINTER_IP> <PRINTER_SERIAL> <LOCAL_PC_IP> "<PRINTER_NAME>"