1
0
Fork 0

initial commit

This commit is contained in:
Michael Loveys 2023-08-20 19:45:42 -05:00
commit afb3ed129e
2 changed files with 48 additions and 0 deletions

36
p1p-broadcast.py Normal file
View file

@ -0,0 +1,36 @@
#!/usr/bin/env python3
import sys
import socket
SSDP_ADDR = "255.255.255.255";
SSDP_PORT = 2021;
ssdp_content = "NOTIFY * HTTP/1.1\r\n" + \
"HOST: 239.255.255.250:1900\r\n" + \
"Server: Buildroot/2018.02-rc3 UPnP/1.0 ssdpd/1.8\r\n" + \
"Location: 10.10.10.10\r\n" + \
"NT: urn:bambulab-com:device:3dprinter:1\r\n" + \
"USN: 000000000000000\r\n" + \
"Cache-Control: max-age=1800\r\n" + \
"DevModel.bambu.com: C11\r\n" + \
"DevName.bambu.com: 3DP-01S-174\r\n" + \
"DevSignal.bambu.com: -30\r\n" + \
"DevConnect.bambu.com: lan\r\n" + \
"DevBind.bambu.com: free\r\n" + \
"Devseclink.bambu.com: secure\r\n" + \
"\r\n"
ssdp_content = bytes(ssdp_content, 'utf-8')
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Bind to localhost so we send to loopback
sock.bind(('127.0.0.1', 1900))
# Set Packet Type to Broadcast
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
# Finally send out the interface
sock.sendto(ssdp_content, (SSDP_ADDR, SSDP_PORT))

12
readme.md Normal file
View file

@ -0,0 +1,12 @@
# Broadcast for Bambu P1P Printer
The python script included was made so I could use Bambu Studio without the need for an internet connection. Additionally, I wanted the printer to be isolated on an IoT vlan with a statically assigned ip address, allowing only necessary traffic.
For discovery, the printer uses SSDP protocol, and this python script will replicate what the printer sends.
You will need to replace the following values in the script:
- `10.10.10.10` with the ip address of the printer
- `000000000000000` with the serial number of the printer
Once updated, run the script and it will broadcast the packet on the local interface