====== 3D Printer extruder PEEK insulator meltdown ====== {{:mission:log:2015:03:25:felix-extruderv4-peek-meltdown.jpg|felix-extruderv4-peek-meltdown}} chrono : Uhhhh, H0u5t0n, I have some good and some bad news H0u5t0n : Bad news chrono : I think we have a problem with F3l1ks H0u5t0n : Could you be a bit more specific? chrono : Well, seems as if the beige plastic element of extruder 0 melted H0u5t0n : You mean the beige PEEK insulator between the hot- and cold-end? chrono : Affirmative H0u5t0n : How did that happen? chrono : I was prepping him for a new job, manually set the target temp of ext0 to 220°C for a quick cleaning extrusion of about 30mm of filament when I noticed a sizzling sound which turned out to be something dropping from the insulator onto the hot-end. A second or so later, the whole hot-end started to drop out of the PEEK insulator, at which point I set F3l1ks to standby to stop him H0u5t0n : Did you check the temperature at that point? chrono : Yeah, unfortunately, I didn't take a screenshot due to the hectic of the moment and octoprint doesn't offer a history function to get some hard data. All I can offer is a glimpse I had after I stopped him and saw some obvious overshoot ranging somewhere between 240-250°C. Did you guys ever verify the thermistor readouts with an external reference thermometer? H0u5t0n : Uhhhm, no... I suppose we did not chrono : Ok, I'll have to do that then. Could you put a spare PEEK into the next supply launch? I've already unmounted and secured ext0 so we should be able to continue printing in the meantime with ext1 - after a couple of more safety tests chrono : Which brings us to the good news: H0u5t0n : Let me guess, you figured out a way to collect and ship F3l1ks's metrics into the VFCC, to significantly reduce the risk of having to work without more reliable data again? chrono : Errr, yeah... exactly Since the [[https://apollo.open-resource.org/flight-control/vfcc/#/|VFCC]] already offers all the features needed to store, retrieve and visualize all metrics of the [[mission:resources:picoprint|3D Print Robot]], it was only a matter of an hour to install and configure [[https://github.com/collectd/collectd|collectd]] on the Odroid C1 to gather all system and printing related metrics, ship them into [[https://github.com/influxdb/influxdb|InfluxDB]] and mash up this fancy [[https://apollo.open-resource.org/flight-control/vfcc/#/dashboard/db/f3l1ks-3d-print-robot-stats|Live - F3l1ks - 3D Print Robot Stats Dashboard]]
Live - F3l1ks - 3D Print Robot Stats Dashboard
===== ===== Check out the [[mission:log:2015:01:08:virtual-flight-control-center-opened]] Mission-Log, if you want to learn how to build something similar with open-source components yourself. In this case, collectd was chosen as the only collecting agent to run on the Odroid C1. It collects all high level related metrics with its own plugins and the temperatures are collected by the exec plugin, which calls [[https://github.com/vishnubob/octocmd|octocmd]] - a console interface for [[mission:resources:picoprint#printing|octoprint]] - wrapped by a quickly hacked shell script. ===== HOWTO ===== ==== collectd ==== Make sure to load the exec plugin at the top of collectd.conf and add this snippet to tell collectd to use the exec plugin to call octotemp.sh wrapper script: Exec "collectd:collectd" "/var/lib/collectd/scripts/octotemp.sh" ==== octocmd ==== In order to get the data from octoprint you can use [[https://github.com/vishnubob/octocmd|octocmd]] on the console. Install and init (as the user that is calling it later, in this case collectd) according to documentation. ==== exec wrapper script ==== Put this into /var/lib/collectd/scripts/octotemp.sh or where ever you want, just make sure it's the same path as in collectd.conf and that is has the execution bit set: HOSTNAME="${COLLECTD_HOSTNAME:-`hostname -f`}" INTERVAL="${COLLECTD_INTERVAL:-5}" while sleep "$INTERVAL" do DATA=$(/usr/bin/octocmd status) BED_ACT=$(echo $DATA | awk '{print $7}' | cut -d'=' -f2 | cut -d',' -f1) BED_TGT=$(echo $DATA | awk '{print $8}' | cut -d'=' -f2 | cut -d',' -f1) EXT0_ACT=$(echo $DATA | awk '{print $11}' | cut -d'=' -f2 | cut -d',' -f1) EXT0_TGT=$(echo $DATA | awk '{print $12}' | cut -d'=' -f2 | cut -d',' -f1) EXT1_ACT=$(echo $DATA | awk '{print $3}' | cut -d'=' -f2 | cut -d',' -f1) EXT1_TGT=$(echo $DATA | awk '{print $4}' | cut -d'=' -f2 | cut -d',' -f1) echo "PUTVAL $HOSTNAME/octotemp/temperature-bed-tgt interval=$INTERVAL N:$BED_TGT" echo "PUTVAL $HOSTNAME/octotemp/temperature-bed-act interval=$INTERVAL N:$BED_ACT" echo "PUTVAL $HOSTNAME/octotemp/temperature-ext0-tgt interval=$INTERVAL N:$EXT0_TGT" echo "PUTVAL $HOSTNAME/octotemp/temperature-ext0-act interval=$INTERVAL N:$EXT0_ACT" echo "PUTVAL $HOSTNAME/octotemp/temperature-ext1-tgt interval=$INTERVAL N:$EXT1_TGT" echo "PUTVAL $HOSTNAME/octotemp/temperature-ext1-act interval=$INTERVAL N:$EXT1_ACT" done $ chmod 0755 /var/lib/collectd/scripts/octotemp.sh {{tag>lab felix 3d-printer picofab picoprint fabrication robot}} {{keywords>Apollo-NG apollo next generation hackerspace hacker space research development makerspace fablab diy community open-resource open resource mobile hackbus hackbase lab felix 3d-printer picofab picoprint fabrication robot extruder melt molten melted meltdown}} ~~DISCUSSION~~