-
Notifications
You must be signed in to change notification settings - Fork 0
/
Send_Gcode_to_Pi.py
63 lines (50 loc) · 2.05 KB
/
Send_Gcode_to_Pi.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import subprocess
import paramiko
def slice_stl_to_gcode():
#Convert the stl file into gcode using slic3r
slic3r_path = r'C:/Users/TEMP/Documents/Slic3r/Slic3r-console.exe'#change to slic3r path on device
stl_file = r'/CombinedSTL/combined_letters.stl'
command = [slic3r_path, stl_file]
try:
subprocess.run(command, check=True, shell=True)
print('Slicing completed successfully')
except subprocess.CalledProcessError as e:
print(f'Error {e}')
def send_to_pi():
pi_ip = '192.168.12.187'
pi_username = 'dstreeb'
pi_password = '1428'
local_path = 'CombinedSTL/combined_letters.gcode'
remote_path = '/home/dstreeb/gCode/letters.gcode'
#ssh setup
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
#connect to the Raspberry Pi
ssh_client.connect(pi_ip, username=pi_username, password=pi_password)
#create an SFTP client session
sftp = ssh_client.open_sftp()
#upload the file to the Raspberry Pi
sftp.put(local_path, remote_path)
print(f"File '{local_path}' sent to '{pi_ip}:{remote_path}'")
#close the SFTP session
sftp.close()
#execute command on Pi
command = f'python Send_to_Printer.py {remote_path}'
_, stdout, stderr = ssh_client.exec_command(command)
output = stdout.read().decode('utf-8')
errors = stderr.read().decode('utf-8')
print(f'Raspberry Pi command output: {output}')
print(f'Raspberry Pi errors: {errors}')
except paramiko.AuthenticationException as auth_exception:
print(f"Authentication failed: {auth_exception}")
except paramiko.SSHException as ssh_exception:
print(f"SSH connection failed: {ssh_exception}")
finally:
#close the SSH connection
ssh_client.close()
def main():
#call slice_stl_to_gcode for slicing
slice_stl_to_gcode()
#send gcode file to Raspberry Pi and execute a command
send_to_pi()