Skip to content

Instantly share code, notes, and snippets.

@fritzw
Last active April 5, 2025 12:45
Show Gist options
  • Save fritzw/7d981046b509a27e204d01c9bd73f37b to your computer and use it in GitHub Desktop.
Save fritzw/7d981046b509a27e204d01c9bd73f37b to your computer and use it in GitHub Desktop.
PowerShell script to make BambuStudio discover a specific printer by IP address, even if it is not on the same subnet (see BambuStudio Issue #702)
# 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
Copy link

R3DPanda1 commented Apr 5, 2025

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>"

@Rdiger-36
Copy link

Rdiger-36 commented Apr 5, 2025

@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
Copy link

R3DPanda1 commented Apr 5, 2025

@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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment