Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
Mary spotted three eggs on the ground under one of the garden bird boxes, surrounded by a spray of feathers. We first thought that a hawk had dismantled another songbird, but the feathers came from many different birds.
All three eggs were stone cold and this one had a puncture wound:
Sparrow egg in garden
We think one of the myriad blackbirds inhabiting the forsythia along the property line cleaned out the nest. It seems sparrows completely fill their nesting cavity, putting their eggs hazardously close to the hole.
This side view shows the entire column of fill:
Abandoned sparrow nest box
We’d cleaned out those boxes not long ago, so we’ll let the sparrows handle this one on their own. A pair of Carolina wrens have been hauling grass into the other garden box and we hope the sparrows won’t bother them.
I’m grinding uphill at about 5 mph on Jackson Drive, in the middle of the surprisingly good shoulder, with the bright-red Planet Bike taillight blinking away to the rear. I am not inconspicuous, but …
You’ll never see the one that kills you:
Near Miss – Jackson Drive – 2014-05-03 – 1
The speed limit is 40 mph = 60 ft/s. The door-to-shoulder clearance might have been the better part of a foot; the mirror didn’t quite clip my arm.
The license plate is legible in the original image, although I’ve blurred it here:
Near Miss – Jackson Drive – 2014-05-03 – 2
Adrenaline is wonderful stuff; I caught up with him at the next light … uphill and 1/3 mile later:
Near Miss – Jackson Drive – 2014-05-03 – 3
I said “Hey!” When he looked over, I explained I needed a face to go with the plate and pointed to the camera. He said he was really, really, really sorry.
I’ll not ascribe to malice what can be explained by distraction; if he wanted to hassle me, I’d be dead now. Most likely, it’s one of those distracted driving things that happens to all of us … to some, alas, far more frequently than to others.
Took a while for the shakes to stop.
Put down that damn phone / tablet / burger and pay attention!
[Update: Still images captured from the Sony HDR-AS30V helmet camera, recorded at 1920×1080 60 fps.]
The whole reason I got a 3D printer in the first place was to make things that would otherwise be too difficult or tedious by hand or on a CNC mill. Most of the things I make look like brackets and I don’t do sculptures … this stuff solves problems!
Being able to go from “I need a part shaped like that” to holding the thing in my hand a few hours (or, for complex designs, days) later is empowering. Being able to adjust a dimension by changing the source code and “recompiling” to get a new part is wonderful.
These five slides from the presentation show my answers to the question “Why would anyone want a 3D printer?” Clicky for more dots.
Things I Designed – 1Things I Designed – 2Things I Designed – 3Things I Designed – 4Things I Designed – 5
Herewith, the MHVLUG – 3D Printing Status 2104 slides (remember slides?) I’ll be using for my talk this evening at the MHVLUG meeting; you don’t get the audio track in the PDF, but the pictures may be informative.
If you believe everything you read, you might think personal 3D printing will go like this:
3D Printing 2014 – What They Say
But it requires entirely too much of this:
3D Printing 2014 – What They Dont Say
Personal 3D printing requires that you take full control:
3D Printing 2014 – Personal 3D Printing
Not knowing the answers, I’ll still make some guesses about what lies ahead:
3D Printing 2014 – The Future
And I found the best tchotchkes ever:
3D Printing 2014 – Tchotchkes
See you there…
(The PDF has clickable links for those images, plus the 60-some-odd other slides. The plan: talk like an auctioneer for an hour!)
Seeing as how the Tux chocolates were produced in a facility containing a big nut, some folks may prefer an (inedible, at least by humans, but correspondingly more permanent) Tux tchotchke in PLA. I plan to have the M2 running off more of them, so there should be enough to go around.
For what it’s worth, you can actually buy a 3D chocolate printer that seems rather overpriced for what’s basically a desktop CNC gantry mill with a heated syringe. The site seems dead, so maybe other folks came to that conclusion, too.
I’m producing more Tux chocolates with the 16 cavity silicone mold, so I dumped four bags (each with 50 g of chocolate chips) into a big pot of tepid water:
Milk Chocolate Bags – in Tempering Bath
I taped them closed to ensure the zip tops didn’t come unzipped while squeezing the chocolate, which worked out quite well: highly recommended.
Based on previous experience, I paid a bit more attention to the water temperature and kept it at 88±1 °F, transferring a cup or two at a time between this pot and the slightly hotter water (about 95 °F) in another pot. Although I’m sure a closed-loop sous vide bath would maintain tighter tolerances, I’m also sure that wouldn’t make any real difference in this operation.
I also wore thin white cotton gloves, in an attempt to prevent my hands from warming the chocolate above the proper temperature while squeezing the bags. That probably didn’t make any difference, because you must get pretty chummy with the bags and the gloves didn’t amount to much.
The results, just after extracting the second set of 16 chocolates (minus some, ah, shrinkage), looks pretty good:
Tux – Milk Chocolate – Batch 1
I called it quits for the evening, extracted the two unopened bags from the bath, and let them cool overnight. The next morning revealed an interesting sight:
Milk Chocolate Blooming – Tux and bags
Now, I’d kneaded all the bags to mash the melting chocolate chips together and squeeze out the air, but hadn’t done much more than that. The patches of white cocoa butter seem to correspond to individual chips within the melted mass, so it’s not entirely a temperature thing; I don’t see how to make an individual chip hotter (or colder) than everything else in the bag.
Remelting those two bags the next morning produced these Tuxen, with the very brown ones having just emerged from the mold:
Tux – Milk Chocolate – Batch 2
The proper temperature for dark chocolate is about two degrees higher than for milk chocolate, so I boosted the water bath from 88 °F to 90 °F and dropped in four bags of dark chocolate chips.
At those low temperatures, the chocolate resembles putty, rather than honey, and requires firm pressure on the bags. I think the close contact with my fingers, even with gloves, raises the temperature too much; the chocolate isn’t untempered (I think that’s the right word; “distempered” sounds much more ominous), but it may be more prone to blooming.
Thinking that the silicone mold might chill the chocolate too rapidly, I put a warming pad under the aluminum pizza pad, brought the silicone slab up to about 85 °F, and found that the chocolate molded much more readily. Cooling the mold to 72 °F, just over room temperature, took quite a while.
The first dark chocolate Tuxen were already blooming when the second set emerged:
Tux – Dark Chocolate – Batch 1
I tried cooling the mold by putting a damp towel under the pizza pan, with equivocal results: the last two sets of dark chocolate bloomed about as rapidly as the first.
It is, perhaps, significant, that the blooming seems confined to the chocolate surfaces in contact with the mold. The flat back surface of each Tux remains in good condition, which suggests that the mold temperature is more critical than I expect.
So my process, such as it is, doesn’t produce good results. Obviously, I need more practice…
Some pix that serve as a stick in the ground showing that my current Slic3r configuration constellation doesn’t produce thin infill…
All of the layers in the 20 mm calibration cube look just like this:
Solid cube – Slic3r normal infill
The bottom layer of the Tux mold comes out solid:
Tux thread fill – bottom
As does the top:
Tux thread fill – top
The Gcode Analyzeralgorithm that assigns colors to numeric values tends to produce many aliases, although most of the time you can figure out what’s going on. If somebody wants to dive into the code, I’d like to have unique colors and get the color table sorted in ascending order.
The current Slic3r configuration:
# generated by Slic3r 1.1.1 on Sat May 3 10:31:36 2014
avoid_crossing_perimeters = 0
bed_size = 190,250
bed_temperature = 70
bottom_solid_layers = 3
bridge_acceleration = 0
bridge_fan_speed = 100
bridge_flow_ratio = 1
bridge_speed = 150
brim_width = 0
complete_objects = 0
cooling = 1
default_acceleration = 0
disable_fan_first_layers = 1
duplicate_distance = 6
end_gcode = ;-- Slic3r End G-Code for M2 starts --\n; Ed Nisley KE4NZU - 15 November 2013\nM104 S0 ; drop extruder temperature\nM140 S0 ; drop bed temperature\nM106 S0 ; bed fan off\nG1 Z180 F2000 ; lower bed\nG1 X130 Y125 F30000 ; nozzle to right, bed front\nM84 ; disable motors\n;-- Slic3r End G-Code ends --
external_perimeter_speed = 25
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 25
extruder_clearance_radius = 15
extruder_offset = 0x0
extrusion_axis = E
extrusion_multiplier = 1.07
extrusion_width = 0.4
fan_always_on = 0
fan_below_layer_time = 30
filament_diameter = 1.79
fill_angle = 45
fill_density = 100%
fill_pattern = rectilinear
first_layer_acceleration = 0
first_layer_bed_temperature = 70
first_layer_extrusion_width = 0.4
first_layer_height = 100%
first_layer_speed = 25
first_layer_temperature = 175
g0 = 0
gap_fill_speed = 50
gcode_arcs = 0
gcode_comments = 0
gcode_flavor = reprap
infill_acceleration = 0
infill_every_layers = 3
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 1
infill_only_where_needed = 0
infill_speed = 150
interface_shells = 0
layer_gcode =
layer_height = 0.2
max_fan_speed = 100
min_fan_speed = 75
min_print_speed = 4
min_skirt_length = 15
notes =
nozzle_diameter = 0.35
only_retract_when_crossing_perimeters = 1
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0.4
perimeter_speed = 150
perimeters = 2
post_process =
print_center = 0,0
raft_layers = 0
randomize_start = 1
resolution = 0.05
retract_before_travel = 1
retract_layer_change = 0
retract_length = 1
retract_length_toolchange = 5
retract_lift = 0
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 60
skirt_distance = 3
skirt_height = 1
skirts = 3
slowdown_below_layer_time = 20
small_perimeter_speed = 25
solid_fill_pattern = rectilinear
solid_infill_below_area = 5
solid_infill_every_layers = 0
solid_infill_extrusion_width = 0
solid_infill_speed = 150
spiral_vase = 0
standby_temperature_delta = -5
start_gcode = ;-- Slic3r Start G-Code for M2 starts --\n; Ed Nisley KE4NZU - 15 Nov 2013\n; 28 Feb 2014 - 6 Mar 2014 - tweak Z offset\n; Z-min switch at platform, must move nozzle to X=130 to clear\nM140 S[first_layer_bed_temperature] ; start bed heating\nG90 ; absolute coordinates\nG21 ; millimeters\nM83 ; relative extrusion distance\nG92 Z0 ; set Z to zero, wherever it might be now\nG1 Z10 F1000 ; move platform downward to clear nozzle; may crash at bottom\nG28 Y0 ; home Y to be sure of clearing probe point\nG92 Y-127 ; set origin so 0 = center of plate\nG28 X0 ; home X\nG92 X-95 ; set origin so 0 = center of plate\nG1 X130 Y0 F30000 ; move off platform to right side, center Y\nG28 Z0 ; home Z with switch near center of platform\nG92 Z-4.40 ; set origin to measured z offset\nG0 Z2.0 ; get air under switch\nG0 Y-127 F10000 ; set up for priming, zig around corner\nG0 X0 ; center X\nM109 S[first_layer_temperature] ; set extruder temperature and wait\nM190 S[first_layer_bed_temperature] ; wait for bed to finish heating\nG1 Z0.0 F500 ; put extruder near plate \nG1 E25 F300 ; prime to get pressure, generate blob\nG1 Z5 F2000 ; rise above blob\nG1 X15 Y-125 F20000 ; jerk away from blob, move over surface\nG1 Z0.0 F1000 ; dab nozzle to attach outer snot to platform\nG4 P1 ; pause to attach\nG1 X35 F500 ; slowly smear snot to clear nozzle\nG1 Z1.0 F2000 ; clear bed for travel\n;-- Slic3r Start G-Code ends --
start_perimeters_at_concave_points = 1
start_perimeters_at_non_overhang = 1
support_material = 0
support_material_angle = 0
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_extruder = 1
support_material_interface_layers = 0
support_material_interface_spacing = 0
support_material_pattern = honeycomb
support_material_spacing = 2.5
support_material_speed = 150
support_material_threshold = 0
temperature = 175
thin_walls = 1
threads = 2
toolchange_gcode =
top_infill_extrusion_width = 0.4
top_solid_infill_speed = 25
top_solid_layers = 3
travel_speed = 250
use_firmware_retraction = 0
use_relative_e_distances = 0
vibration_limit = 0
wipe = 0
z_offset = 0