Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Autodrop3d/autodrop3dClient
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.2
Choose a base ref
...
head repository: Autodrop3d/autodrop3dClient
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 14 commits
  • 952 files changed
  • 1 contributor

Commits on Oct 10, 2020

  1. updating pin info

    mmiscool authored Oct 10, 2020
    Copy the full SHA
    432556b View commit details
  2. Copy the full SHA
    25ece23 View commit details

Commits on Oct 11, 2020

  1. Update README.md

    mmiscool authored Oct 11, 2020

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    a09122c View commit details

Commits on Nov 28, 2020

  1. Copy the full SHA
    2e6726b View commit details
  2. Copy the full SHA
    4f03326 View commit details
  3. stuff

    mmiscool committed Nov 28, 2020
    Copy the full SHA
    61e34c5 View commit details
  4. Update README.md

    mmiscool authored Nov 28, 2020

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    f55e7f9 View commit details

Commits on Nov 29, 2020

  1. Delete AutoDrop.py.save.1

    mmiscool authored Nov 29, 2020

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    ad9eb14 View commit details
  2. Delete AutoDrop.py.save

    mmiscool authored Nov 29, 2020

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    95cd00b View commit details

Commits on Aug 27, 2021

  1. Update AutoDrop.py

    mmiscool authored Aug 27, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    7a79d21 View commit details
  2. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    624accb View commit details
  3. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    ede21ac View commit details

Commits on Sep 9, 2021

  1. Add files via upload

    mmiscool authored Sep 9, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    088deca View commit details

Commits on Oct 21, 2021

  1. Moved image in README.md

    mmiscool committed Oct 21, 2021
    Copy the full SHA
    a88d27d View commit details
Showing 952 changed files with 724,126 additions and 23 deletions.
64 changes: 48 additions & 16 deletions AutoDrop.py
Original file line number Diff line number Diff line change
@@ -76,7 +76,7 @@ class currentMachineState:
printerServer = ""
wifiAPname = ""
wifiAPpass = ""

disableAllOffsets = "false"
wifiAPmode = False


@@ -156,13 +156,14 @@ def printServerBaseURL():

try:
f = open("../settings.txt",'r');
currentMachineState.AutoDropSerialPort = str(f.readline()).strip()
currentMachineState.AutoDropSerialPortSpeed = str(f.readline()).strip()
currentMachineState.printerName = str(f.readline()).strip()
currentMachineState.clientAcessKey = str(f.readline()).strip()
currentMachineState.AutoDropSerialPort = str(f.readline()).strip()
currentMachineState.AutoDropSerialPortSpeed = str(f.readline()).strip()
currentMachineState.printerName = str(f.readline()).strip()
currentMachineState.clientAcessKey = str(f.readline()).strip()
currentMachineState.printerPositionOffsetOverideX = str(f.readline()).strip()
currentMachineState.printerPositionOffsetOverideY = str(f.readline()).strip()
currentMachineState.printerPositionOffsetOverideZ = str(f.readline()).strip()
currentMachineState.disableAllOffsets = str(f.readline()).strip()
f.close()
except:
print("No configuration file supplied. Configure from web browser")
@@ -218,7 +219,8 @@ def index():
currentMachineState.printerName = request.form['printerName']

currentMachineState.clientAcessKey = request.form['clientAcessKey']


currentMachineState.disableAllOffsets = request.form['disableAllOffsets']

currentMachineState.printerPositionOffsetOverideX = request.form['printerPositionOffsetOverideX']
currentMachineState.printerPositionOffsetOverideY = request.form['printerPositionOffsetOverideY']
@@ -237,6 +239,13 @@ def index():
f.write( currentMachineState.printerPositionOffsetOverideX + "\n")
f.write( currentMachineState.printerPositionOffsetOverideY + "\n")
f.write( currentMachineState.printerPositionOffsetOverideZ + "\n")
f.write( currentMachineState.disableAllOffsets + "\n")
f.write( "\n")
f.write( "\n")
f.write( "\n")
f.write( "\n")
f.write( "\n")

f.close()

currentMachineState.wifiAPname = request.form['wifiAPname']
@@ -252,7 +261,7 @@ def index():
except:
PLUGINFUNCTIONS = ""

return render_template('index.html', listOfSerialDevices = listOfSerialDevices, AutoDropSerialPort = currentMachineState.AutoDropSerialPort , AutoDropSerialPortSpeed = currentMachineState.AutoDropSerialPortSpeed, printerName = currentMachineState.printerName, PLUGINFUNCTIONS = PLUGINFUNCTIONS, clientAcessKey = currentMachineState.clientAcessKey, printerPositionOffsetOverideX = currentMachineState.printerPositionOffsetOverideX, printerPositionOffsetOverideY = currentMachineState.printerPositionOffsetOverideY, printerPositionOffsetOverideZ = currentMachineState.printerPositionOffsetOverideZ)
return render_template('index.html', listOfSerialDevices = listOfSerialDevices, AutoDropSerialPort = currentMachineState.AutoDropSerialPort , AutoDropSerialPortSpeed = currentMachineState.AutoDropSerialPortSpeed, printerName = currentMachineState.printerName, PLUGINFUNCTIONS = PLUGINFUNCTIONS, clientAcessKey = currentMachineState.clientAcessKey, printerPositionOffsetOverideX = currentMachineState.printerPositionOffsetOverideX, printerPositionOffsetOverideY = currentMachineState.printerPositionOffsetOverideY, printerPositionOffsetOverideZ = currentMachineState.printerPositionOffsetOverideZ, disableAllOffsets = currentMachineState.disableAllOffsets)



@@ -287,7 +296,13 @@ def EjectStuff():


def offsetGcodeDuringRaft(orgNonManipulatedString = ""):
if currentMachineState.disableAllOffsets == "TRUE":
return orgNonManipulatedString


ManipulatedString = ""
#print("this is the original un manipulated string")
#print(orgNonManipulatedString)
for member in orgNonManipulatedString.split( ):
#print(member[0], member)
if (member[0] == "X"):
@@ -313,36 +328,47 @@ def SendGcodeLine(ll = '', returnJustPrinterResponse = 0):
if ServerTestMode != "on":
currentMachineState.s.flushInput()
currentMachineState.s.write(ll.encode("ascii") + b'\n')
print("Sent : " + ll + " | waiting for response")
print("Sent " +str( currentMachineState.currentPrintLineNumber) + " : " + ll + " | waiting for response")

beReadingLines = 1
millis = int(round(time.time() * 1000))
print("this is the start time")
print(millis)

while beReadingLines:
grbl_out = ""

thatEndOfLineIsHere = False
while True:
for c in currentMachineState.s.read():
theCurrentSerialBuffer = currentMachineState.s.read()
#print("this is the serial buffer")
#print(theCurrentSerialBuffer)
for c in theCurrentSerialBuffer:
grbl_out = grbl_out + str(chr(c))
if (chr(c) == '\n'):
#print("We got an end of line character:")
thatEndOfLineIsHere = True
break
if (chr(c) == '\r'):
#print("We got an end of line character:")
thatEndOfLineIsHere = True
break
if currentMachineState.cancellCurentPrint == 1:
break
if (thatEndOfLineIsHere == True):
break
if currentMachineState.cancellCurentPrint == 1:
break
if millis + 60000 < int(round(time.time() * 1000)):
if millis + 10000 < int(round(time.time() * 1000)):
currentMachineState.s.write(("M114").encode("ascii") + b'\n')
print("Some thing must have stalled the gcode send" )
print(millis)
print(int(round(time.time() * 1000)))
break

#print("got that line back")
print('response : ' + grbl_out.strip())
currentMachineState.s.flushInput()
#currentMachineState.s.flushInput()
beReadingLines = 0
if "T:" in grbl_out:
beReadingLines = 1
@@ -355,7 +381,7 @@ def SendGcodeLine(ll = '', returnJustPrinterResponse = 0):
if currentMachineState.cancellCurentPrint == 1:
break
else:
time.sleep(.001)
time.sleep(.002)
if (returnJustPrinterResponse):
return " Sent : " + ll + " Result: " + grbl_out
else:
@@ -469,7 +495,12 @@ def PrintFile(gcodeFileName = 'test.g'):

else:
ll = str(l.split(b';',1)[0],"ascii")
ll = offsetGcodeDuringRaft(ll)


if ll.startswith("G28"):
print("not goint to manipulate G28 gcode lines")
else:
ll = offsetGcodeDuringRaft(ll)
if ll != "":
SendGcodeLine(ll)

@@ -516,15 +547,16 @@ def StatusUpdateLoopWhilePrinting():
print("final picture taken")

howFarAlongInThePrintAreWe = str((currentMachineState.currentPrintLineNumber / currentMachineState.currentPrintTotalLineNumber) * 100)

#print("howFarAlongInThePrintAreWe")
#print(howFarAlongInThePrintAreWe)
if (currentMachineState.cancellCurentPrint == 1):
howFarAlongInThePrintAreWe = "canceled"

data = { "jobID":currentMachineState.PrintNumber, "name":currentMachineState.printerName, "key":currentMachineState.clientAcessKey, "stat":"update", "jobStatus": howFarAlongInThePrintAreWe , "img":image_to_data_url('./static/junk.png'), "ip": get_Host_name_IP()}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}

#print(data,headers,currentMachineState.printerServer)
response = requests.post(currentMachineState.printerServer , json=data).content.decode("utf-8")

#print(response)
if response.find("CANCELED") > -1:
print("Job should be canceled now")
currentMachineState.cancellCurentPrint = 1
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# autodrop3dClient
Client software for 3d printers interfacing with AutoDrop3D
Client software for 3d printers interfacing with AutoDrop3D. This software will let you connect your printer to the https://autodrop3d.com cloud.


This is the client software for the autodrop3d printer system.
@@ -8,10 +8,12 @@ This software automatically retrieves gcode print jobs from the autodrop3d serve
There are additional features to make automatic part ejection possible by toggling the GPIO pins of the raspberry pi using wiringpi. It is also capable of using filament run out detectors with out any modifications to printer firmware.


![Image description](hookup.png)

#Instructions
1) Hook up push buttons, LEDs and other items to GPIO header on the raspberry pi.
pin numbers are using the board pin header numbers for the raspberry pi
![Image description](link-to-image)


A minimal setup dose not require all pins listed to be used.

@@ -35,7 +37,7 @@ There are additional features to make automatic part ejection possible by toggli


2) Download prebuilt raspberry pi image image from the following link
https://github.com/Autodrop3d/autodrop3dClient/releases/download/1.0/AD3d.image.zip
https://github.com/Autodrop3d/autodrop3dClient/releases/download/latest/autodrop3dimage-20201128.zip

3) Extract the ZIP file and use etcher (https://www.balena.io/etcher/) or similar softwar to write the image file to a 16gb sd card.

Binary file added belt-engine.part
Binary file not shown.
Loading