Difference between revisions of "Cerealbot"
m (My wallet is brandishing a razor; I believe it intends on retribution.) |
m (→Progress Log: I mean, cereal-sy?) |
||
Line 31: | Line 31: | ||
** The pop bar has worked well for the past dozen or so prints and failed prints. Collection of ways to remotely screw up the printer and then recover is growing quickly. | ** The pop bar has worked well for the past dozen or so prints and failed prints. Collection of ways to remotely screw up the printer and then recover is growing quickly. | ||
** I learned to NOT try melting plastic off of the print nozzle, because then the plastic inside will char and clog everything. Will test whether a lower temperature is appropriate. | ** I learned to NOT try melting plastic off of the print nozzle, because then the plastic inside will char and clog everything. Will test whether a lower temperature is appropriate. | ||
+ | ** The print bed is warped, contributing to the jammed nozzle. I cannot determine if this happened while milling, or due to torque from mounting it on the printer. I rigged up a vice and flexed the plate back to near-level, but it appears to be bending again once remounted. Future print beds must be designed to minimize this. | ||
* 22-1-2015 | * 22-1-2015 | ||
** The second pop-bar, which I am considering a true prototype, has been created and linked to an active servo. | ** The second pop-bar, which I am considering a true prototype, has been created and linked to an active servo. |
Revision as of 21:09, 25 January 2015
Creator: |
Contents
[hide]Overview
I am retrofitting a Printrbot Simple Metal 3D printer with tools to allow for serialized printing. Then I hope to release the use of it to schools. For Free.
Cereally 3D Printer Extension
3D printers are nice, but I feel the consumer grade ones are seriously lacking in simple engineering processes that provide a more encapsulated solution. For instance: my printer can not print without me present. Sure, I can start a print and then drive home knowing that for several hours the printer will be occupied without me, but two days later when I next revisist the printer it will have been idle for over 30 hours. I find this unacceptable. Working from a basis of "a good print" where nothing goes wrong, the printer really only requires human intervention to remove the previous part that is firmly stuck to the aluminum plate it was printed on, then it can reset and begin printing again all from software.
The Cereally 3D extension is a project of mine to make the best remote-controlled 3d printer for minimal cost. The keystone for the project is an idea I call the pop-bar, which is an attempt to break finished parts free from the build platform with as little force or complexity possible. I will also investigate other low-cost automation solutions for non-optimal prints, listed below under "Types of Failures".
It is my hope that this project will bring about an affordable printer that can be placed in a school and maintained in a low-overhead, ad-hoc manner. The serialization will also allow for maximal student use from each printer, meaning that more investigative minds have access to this technology.
Progress Log
- 25-1-2015
- The pop bar has worked well for the past dozen or so prints and failed prints. Collection of ways to remotely screw up the printer and then recover is growing quickly.
- I learned to NOT try melting plastic off of the print nozzle, because then the plastic inside will char and clog everything. Will test whether a lower temperature is appropriate.
- The print bed is warped, contributing to the jammed nozzle. I cannot determine if this happened while milling, or due to torque from mounting it on the printer. I rigged up a vice and flexed the plate back to near-level, but it appears to be bending again once remounted. Future print beds must be designed to minimize this.
- 22-1-2015
- The second pop-bar, which I am considering a true prototype, has been created and linked to an active servo.
- Undated, X-1-2015
- The testbed for train_rec was a success. Rather than use the length of the pop-bar as a lever to pry the piece off of the bed, I think its better to twist the bar along the length to push the 3d printed part up.
- Undated, X-12-2014
- Milling the "production/testing" bed is next on the list.
Types of Failures
Clogged Print Nozzle
Symptom:
The printer gradually or suddenly ceases to extrude filament, although the extruder stepper motor appears to be working and the filament is now pinched.
Abatement:
Manual Maintenance. I will try cleaning my print head with a 0.4mm drill bit and report my findings.
- 25-1-2015
- Possibly a welding torch cleaning wire can unclog the nozzle. Will test soon.
Loss of filament
Symptom:
The printer continues printing even after the filament is either used, or accidentally breaks due to stress.
Abatement Procedure:
Prints cannot be saved from this error, but I believe a small analog sensor with wires on the extruder GT2 gear and ball bearing roller can detect the contact between the two items that results from a lack of filament, thus the printer can be autonomously stopped and self-report the situation.
Part traveling
Symptom:
Sometimes a part will break free from the print bed before it is supposed to, and will drag under the extruder.
Abatement Procedure:
Possibly a switch attached to a servo with a long wire on it can be swung into contact with the first few layers of a print, and if it detects the print move the job can be stopped and amended remotely?
Plastic Adhering to Extruder Nozzle
Symptom:
The plastic is either pushed up by the plate, or wraps up on its own and become stuck on the print head. Generally this requires manual intervention to chip off the plastic.
Abatement Procedure:
I believe that large amounts of plastic may be slowly melted off of the print head, and that the remaining plastic which may interfere with a print can be cleaned by a small field of silicon walls, which can be tested but cutting up a kitchen mitt.
- 22-1-2015
- I will attempt to remove cooled plastic from the print head by turning on the extruder fan, and then heating the extruder to 180C. I hope and anticipate that the plastic will slough off and cool on the print bed, where it can be removed remotely.
- visual contact with the underside of the print head is lost, I will have to go on-location to check the progress of this test.
- 90 minutes of heat appears to have dislodges most of the plastic. The extruder is now cooling down and I will inspect it in person later tonight.
- Alright! Most of the plastic sloughed off very cleanly from the extruder, so much so that i left it as-is and started printing again. I'm putting a note here: great success!
This system may be augment-able with a custom g-code file which first performs the above to get most of the plastic off, and then has the print head mix up a small sphere of plastic on the print bed, which it then melts and very slowly rises out of to get remaining spots of plastic which may interfere with printing. More testing is required.
Software / Connection Issues
Symptoms:
It stops printing.
Misc:
The connection could accidentally be reset by my improperly wired killswitch, I shall need to go back and calculate the appropriate resistor values for the NPN transistor I'm using.
OR
The connection could accidentally be reset by a loose USB cable which drops the serial port momentarily as the printer shakes while running.
Needs further investigation.
Misalignment
Symptom:
The z-axis can become misaligned which may result in damage to the printer.
Belt slippage
Symptom:
The x and y axis belts may slip during fast travel on a print, this results in the part printing with slosh or cliffs in either direction.
Contributors
People who have helped make this happen:
Phillip Showers Tyler Crumpton Hunter Fuller
Thanks!
Software Configuration
Webcam
Webcamera Information
To list available formats:
v4l2-ctl --list-formats
or
v4l2-ctl -d /dev/video0 --list-formats-ext
With Octoprint
To use an http stream with octoprint, the URL has to be formatted correctly.
At first glance, I tried: cerealbox.256.makerslocal.org:8081, which didn't work.
Turns out Octoprint blindly appends a GET variable to the URL, which turns the above into: cerealbox.256.makerslocal.org:8081?2354jk345 which isn't a valid URL anymore.
So, you have to set up the webcam URL like: http://cerealbox.256.makerslocal.org:8081/
Here the trailing slash lands the GET variable. It took Hunter Fuller to figure all that out.
v4l-mjpg-streamer
I tried using v4l-mjpg-streamer after seeing that mjpg-streamer is the defacto for raspberrypi + octoprint. I couldn't find a working build of mjpg-streamer on armv7h, so I fell back to this package. It works well with octoprint, but is buggy and runs high cpu overhead.
systemd unit file:
[Unit] Description=Stream motion JPEG from a Video4Linux enabled camera. For MS Lifecam. [Service] Type=simple User=v4l-mjpg-stream ExecStart=/usr/bin/mjpg_streamer -i "input_uvc.so -d /dev/video0 -y -n" -o "output_http.so -w /usr/share/mjpeg-streamer/www_lifecam -p 8080" Restart=on-failure [Install] WantedBy=basic.target
ffmpeg + ffserver
I also tried ffmpeg+ffserver. Didn't go over well, I'm not patient enough to learn how to set it up correctly.
motion
Network
IP address: 10.56.1.34
Hostname: bns-daedalus.256.makerslocal.org
Public URL: cerealbox.256.makerslocal.org
Services: HTTP-80, WEBCAM-8080
Slic3r Config
Archlinux
To run octoprint from port 80 as user 'octoprint', I adjusted the systemd unit file to launch with authbind.
[Unit] Description=Octoprint 3d Printing Web Server After=network.target [Service] User=octoprint Group=octoprint Type=simple ExecStart=/usr/bin/authbind --deep /usr/bin/octoprint --port 80 Restart=on-failure [Install] WantedBy=multi-user.target
Right now I'm streaming the webcam from v4l-mjpg-streamer, total pain, will look for something better.
Hardware Configuration
Current
- Killswitch, both remote and local
Planned
Immediate:
- Detect use of emg stop button in arduino
- Pop-bar and channel
- servo structure
- Removal arm. Can also double as print surface cleaner?
- New GT2 belt mount for print bed
Later:
- Just melt failed prints from the printhead? Then clean with silicon sponge?
- Use accelerometer to detect grinding gears/belts?
- larger print surface to maximize hotplate use
- Longer steel rods
- more GT2 belt
- Print a GT2 belt clip? Zipties suck
- Better webcamera setup
- different embedded computer?
- Filament absence sensor
- Just look for the circuit completion when the extruder rollers connect?
- Birdsnest detection
- Print adhesion detection
- General failure detection
- Detect belt slipping?
- Use linear encoders? I mean, they really ought to be standard on a 3d printer.
- Heater dead-mans switch
- Ping the webpage?
- snoop on gcode over serial?
Printed Upgrades
Images incoming.
- Extruder Fan Duct
- Filament Guard
- Filament Clips
- Spool Stand
- Filament Cleaner
Upgrades to be printed:
- Fan mounts for motors
- GT2 belt mounts for print bed?
Printed Parts
Failed Prints
Date | Failure Type | Details | Image |
---|---|---|---|
21-1-2015 | Molten Plastic on Extruder | Part quickly came unadhered to print surface and began pushing plastic back up past the print nozzle. Recovering from this remotely was the first successful attempt at melting of plastic with gravity. | Example |
22-1-2015 | Serial Communication Error | It appears that the arduino killswitch malfunctioned and disabled the printer 2/3rds through a print. | Example |
Project Cost Breakdown
Does not include existing things that I own which have been purposed for this project.
dd-mm-yyyy
- 28-11-2014
- Printrbot Simple Metal Unassembled - $539.00
- Filament - $22.50
- 14-12-2014
- Kapton Tape - $17.99
- Extruder Fan - $6.13
- Extruder Fan 2 - $5.95
- 8 Channel Relay - $9.99
- Went missing x(
- 12V Power Supply - $22.14
- Hot Bed - $19.99
- 25-1-2015
- 12V Relays for hotbed - $13.60
- Raspberry Pi to run octoprint - $33.19
- 5V relays to upgrade killswitch - $11.99
- Kapton Tape, because its awesome - $25.95
- 0.4mm drill bits to clean clogged nozzles - $10.99
- 4x Futaba Servos to make armatures that clean the print surface - $51.52
- More x-y axis belt, because I now consider it ablative - $25.00
- Mini breadboards to wire up test circuits - $6.95
- Wire for breadboards - $4.33
Project Cost: $867.06
External Resources
Parts
Amazon is an OK outlet for GT2 gear/belt parts for the X-Y motion
Source for 2-3mm Hex Bolts like those used in the simple metal
MISC
Printrbot initial config guide
Protoparadigm plastic I'm interested in
Quick guide on authbind, which allows octoprint to bind port 80