Project to automatically remove parts from build plate

Take glass plate off
Use it to trace a hole in a wooden table
Buy a PEI plate
Turn your Bambu upside down
???
Profit

1 Like

I assume the idea of not using the print-head is due to the use of carbon-rods, which are not ideal to push objects. Also the front fan-mount could detach.

Although some have done this successfullyā€¦ like @julie777 for example.

The good thing about using the print-head or any existing part is, that you can use the P1P, P1S, X1C without any mods. Though I still liked the approach of @Heliscone which then @Biocraftlab postet some pictures of.

This is awesome @julie777 and thx @Heyone777 for editing thisā€¦

The problem Iā€™m facing with this approach (and I thought this would be a problem prior to testing) that the object might (and it did in my case) not get pushed off the plate, but rather around the print-head and then stays (or worst case) lies around somewhere.

For this to work properly one would need to design some guide to attach on the print-head in order to actually push the object off the plate safely.
(it always depends on the size and form of the object of course)

Next question-mark for ā€œAutomationā€: How do you begin the next print?
Theoretically one could just copy the existing g-code and paste it at the end of it again and create a loop. But I have no idea if that actually worksā€¦

I just managed thx to Julie777 automate my A1 Mini.

I simply changed the moves to fit the 180mm build-plate and pasted it into the end-gcode. I sliced the test-object and saved the entire file as g-code.

Then opened that code and copy/pasted it 3 times - it worked.

but it would be necessary to add a wipe nozzle code before the release-motion and probably a G90 command after that, so the printer knows where it is (as mine did a deep nozzle drop (at min 0:14) at the beginning of the new print-sequence.

A1M automation attempt Nr.1

working on itā€¦ (but canĀ“t find what did that drop)

I assume its this,
;=====avoid end stop =================
G91
G380 S2 Z30 F1200
G380 S2 Z-20 F1200
G1 Z5 F1200
G90

but I sincerely donā€™t know, as there should be (2) G1 moves.

After ejection, Z goes up and then down (too far)

1 Like

I canā€™t get the video to play on a Mac or an iPad.

thatā€™s strangeā€¦ its just a Youtube link. Its not public, but with this link everybody should be able to open and see it. For me it works on PC and iPhone.

Working now, weird.

Do you have anything in the end gcode that is still being added?

End g-code:

G90
G1 X-13 Y180 F3600

G91
G1 Z-1 F600
G90
M83

; ======== eject parts =============
G0 X90 Y180 ; move to middle back of bed
G0 Z1 ; lower X until nozzle is almost touching
M140 S0 ; For some reason you need to set the bed temp again before
M190 S30 ; wait for bed to be cold
G04 S300 ; give the part time to break free so pushing it is easier
G0 Y0 F1000 ; push part of bed
G90 newly added - pending to test - culprit?
; ==== end eject ==================

M220 S100 ; Reset feedrate magnitude
M201.2 K1.0 ; Reset acc magnitude
M73.2 R1.0 ;Reset left time magnitude
M1002 set_gcode_claim_speed_level : 0

M400 S1
M18 X Y Z ; disable stepper could also be culprit as Z might drop when stepper disabled - maybe this should be deleted for automation


Start g-code that follows:

; EXECUTABLE_BLOCK_START
M73 P0 R19
M201 X20000 Y20000 Z1500 E5000
M203 X500 Y500 Z30 E30
M204 P20000 R5000 T20000
M205 X9.00 Y9.00 Z5.00 E3.00
M106 S0
M106 P2 S0
; FEATURE: Custom
;===== machine: A1 mini =========================
;===== date: 20231226 =====================

;===== start to heat heatbead&hotend==========
M1002 gcode_claim_action : 2
M1002 set_filament_type:PETG
M104 S170
M140 S70
G392 S0 ;turn off clog detect

;=====avoid end stop =================
G91
G380 S2 Z30 F1200
G380 S2 Z-20 F1200
G1 Z5 F1200
G90

;===== reset machine status =================
M290 X39 Y39 Z8
M204 S6000

M630 S0 P0
G91
M17 Z0.3 ; lower the z-motor current

G90
M17 X0.7 Y0.9 Z0.5 ; reset motor current to default
M960 S5 P1 ; turn on logo lamp
G90
M83
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
M73.2 R1.0 ;Reset left time magnitude
;====== cog noise reduction=================
M982.2 S1 ; turn on cog noise reduction

;===== prepare print temperature and material ==========
ā€¦

I assume that the lack of G90 (above mentioned) is the culprit to the drop.
Or do you (or anyone) else see what may be the problemā€¦?

Iā€™ve only taken a quick look, but, whenever Iā€™ve seen a G90 or G91 it is usually followed with a G20 or G21.

This is basically the same post as previous, but an exact cut-out from the gcode sequence when ending and starting again + translating the g-codes and my thoughts (in bold)

G90
G1 X-13 Y180 F3600

G91
G1 Z-1 F600
G90
M83

; ======== eject parts =============
G0 X90 Y180 ; move to middle back of bed
G0 Z1 ; lower X until nozzle is almost touching
M140 S0 ; For some reason you need to set the bed temp again before
M190 S30 ; wait for bed to be cold
G04 S300 ; give the part time to break free so pushing it is easier
G0 Y0 F1000 ; push part of bed
; ==== end eject ==================

M220 S100 ; Reset feedrate magnitude
M201.2 K1.0 ; Reset acc magnitude
M73.2 R1.0 ;Reset left time magnitude
M1002 set_gcode_claim_speed_level : 0

M400 S1 ; Waits until all moves are completed
M18 X Y Z ; Disable all steppers
M73 P100 R0 ; Print progress on LCD
(At this moment Z goes up and you can see the LCD changing @0:16min).

; EXECUTABLE_BLOCK_END

FIRST GCODE ENDS HERE & NEW GCODE STARTS FROM HERE

; EXECUTABLE_BLOCK_START
M73 P0 R19 ; Print progress on LCD
M201 X20000 Y20000 Z1500 E5000 ; Set max acceleration
M203 X500 Y500 Z30 E30 ; Set max feedrate
M204 P20000 R5000 T20000 ; Set travel move limits
M205 X9.00 Y9.00 Z5.00 E3.00 ; Set advances settings
M106 S0 ; Set fan speed
M106 P2 S0 ; Set fan speed
; FEATURE: Custom
;===== machine: A1 mini =========================
;===== date: 20231226 =====================

;===== start to heat heatbead&hotend==========
M1002 gcode_claim_action : 2
M1002 set_filament_type:PETG
M104 S170 ; Set Hotend Temperature
M140 S70 ; Set Hotend Temperature
G392 S0 ;turn off clog detect
;=====avoid end stop =================
G91 ; Relative Positioning
G380 S2 Z30 F1200 ; G380 is apparenlty the same as G38
I assume the fault is here - where Z goes too low @ 0:24min
G380 S2 Z-20 F1200
G1 Z5 F1200
G90 ; Abolute Positioning

THIS IS WHAT MARLIN SAYS ABOUT G38:
G38.2-G38.5 - Probe target
The Probe Target commands are used to probe towards (or away from) a workpiece to determine its precise position. You might, for example, use a grounded metal workpiece, with a metal probe spliced into the bed probe circuit.
G38.2 probes towards a target and stops on contact, signaling an error if it reaches the target position without triggering the probe.
G38.3 probes towards a target and stops on contact. No error is given if it fails to trigger the probe.
G38.4 probes away from a target and stops on contact break. An error is signaled if the target position is reached without triggering the probe.
G38.5 probes away from a target and stops on contact break. No error is given if it fails to trigger the probe.
These commands use the current homing feedrate, by default.
**That might be whats causing the Nozzle to drop too farā€¦ **
Now the question: How to mitigate thisā€¦

;===== reset machine status =================
M290 X39 Y39 Z8
M204 S6000

M630 S0 P0
G91
M17 Z0.3 ; lower the z-motor current

G90
M17 X0.7 Y0.9 Z0.5 ; reset motor current to default
M960 S5 P1 ; turn on logo lamp
G90
M83
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
M73.2 R1.0 ;Reset left time magnitude
;====== cog noise reduction=================
M982.2 S1 ; turn on cog noise reduction

G20 is Imperial, G21 is Metric.

For example G90 G21

Which translates to - Use absolute positioning and Metric measurements.

As I said I have not read the whole thing, I just noticed something that caught my eye.

The only time G21 shows up, is here:

M211 X0 Y0 Z0 ;turn off soft endstop
M1007 S1
G90
G21

G20 is not used in the generated code at all.

Hi there :slight_smile:
would it be useful for you guys if there would be a web (or offline) app, which stitches multiple gcodes? Files (or repeats of same file) would be combined in a single gcode adding a desired clearing gcode in-between. Iā€™m been working on automation for a while now (maybe you already header about JobOx) and our team has developed such tool in house for our hardware but I could adjust it and share so it can be used for other projects like yours. Would such tool help?

3 Likes

Hi Dill, that would be great and very helpful.
This thread mainly focused on automate the clearance of the bed, but thatā€™s only half the puzzle, as one needs to que the files as well somehow.

Prior to finding this thread I thought about using 3DQue, but A1M and A1 automation is still in process.

I tried gcode modded automation with my Ender 3 and it worked great for a set amount of parts, but an app or server based application would of course be much easier to handle. Also I didnā€™t really care if braking anything on the Ender as it was a klipperized Frankenstein that needed constant attention anyway. With the A1M Iā€™m not so easy on just testing code (because thats not really my worldā€¦ I get it done at some point - but rather by slow understanding and try&error)

With best regards to everyone :v:t3:

Hey Dill,

that sounds interesting, but I think Jobbox comes also with a good optimised build plate switcher hardware.

Do you think this would be possible for the Bambulab machines?

Would be interested to exchange and learn more about your ideas and possible solutions.

1 Like

Thatā€™s a pretty interesting system, which unfortunately needs a lot of spaceā€¦ but ideal for bigger parts which you canā€™t just scrape off the bed like that.

Ok, thanks for feedback. I will publish the app on github later this week and post a link. Itā€™s HTML/JS based so it can be used locally.

@Biocraftlab Automation for A1 is in progress (made by JobOx team). Automation for A1mini is ready (developed by me independently). I just need to debug the new queue app. It will handle the 3mf file and support AMS (which is not possible when using gcode files). It will be released this summer.

@NVNDO Plate swapping automation for A1mini will measure 60cm in a length + 20cm for ejected plate.

BTW, I will need beta testers (for A1mini) soon, preferably from Germany or at least from the EU. So if someone is interested feel free to drop me a personal message. :slight_smile:

1 Like

The gcode tool which I mentioned is just a helper to combine multiple gcodes. It can be used for any custom bed clearing strategy. User just need to specify the gcode which is placed in-between to clear the bed.

I made quite good experience removing some parts on the A1 (regular A1, not mini!) by simply cooling down and pushing with the X-axis (which is quite robust).

Edit: The only issue is, the firmware of the printer kind of ignores M190 command. When I set M190 S30 the printer doesnā€™t wait until the plate cools down and start executing next line already at 45Ā° which usually ends not good. So the only workaround is G4 to make the printer wait for 20 minutes or so (G4 S1200), to get sure the plate is cool enough.

Cool! How reliable is the Jobox? Because the ams will help avoid running out of filament, Jobox really does sound like a nice complementary product. I have a Prusa MK3 that the original jobox was designed for, but no way to avoid running out of filament, because the Prusa MMU is notoriously unreliable. All of which is a pity, because right now my MK3 is gathering dust, whereas a Jobox would give me a reason to dust it off and continue using itā€“if only it had a viable AMS equivalent! :man_facepalming:

JobOx works quite well on MK3. We equipped several farms already and got a lot of positive feedback so far. Surely it can happen that it stuck, but it doesnā€™t happens often. Especially the current version 1.5 got some improvements in reliability.
Filament run-out is a thing. Actually I also developed a small ā€œfew bucksā€ device which handles this on Mk3 and Mk4. It works already quite well and one farm test it currently on 50x MK3 machines. When I get enough proof of reliability on MK4 I plan releasing it as a low budget alternative to MMU for those who just care of filament runaway.