This page is about my interests, projects, and profession (technical artist in the video games industry).  Most of my hardware\software projects are coded in PythonProcessing, & Arduino.  I also enjoy 3d printing, you can find my designs for download over on Thingiverse.  More pics over on Instagram.

Find Processing\Android\Python programs\apps I’ve developed via the above title bar.

I also maintain several wikis on Maya\Python\Pygame\Processing that I update far more often than this blog.  See them on their page.

All information on this site is copyright under the Apache Licence v2.0, unless otherwise noted.  Which means you can pretty much use the information here for whatever you like, but I always appreciate credit where applicable.

Have a look around.  Thanks for stopping by.

— Eric Pavey

Building the C-Bot 3d Printer : Part 36 : Adding an inductive z-probe to RepRap Firmware / RADDS

Jump to C-Bot blog index to see all the posts.


This post describes how I installed an inductive Z-probe on my C-Bot 3d printer, using RADDS hardware with RepRap Fimrware.

My C-Bot printer has a 12″ square build plate, with 4-point screw leveling: Not the easiest thing to keep level.  I decided to tackle installing an inductive Z-probe to help with the leveling, since RepRap Firmware supports it.

Very important:  Before you get started, you’ll either need an aluminum build plate, or some copper tape you can stick on your existing surface at the points you want to probe.

Other info:

  • This sensor works in conjunction with your Z-endstop:  You still home using the endstop.  But after the home, the probe takes over fine-tuning the leveling process.

Get the probe:

I picked up a LJ12A3-4-Z/BY inductive probe off E-bay some time back.  It’s stats:

  • 4mm sensing distance (to iron)
  • NO, PNP
  • 6-36v input, 300ma
  • Brown = Positive, Blue = Negative, Black = signal

Make a bracket:

I modeled up a bracket for it in Autodesk Maya, that would hang off the rear of my hotend gantry.

After the probe was mounted to the bracket, I adjusted the probe so it was about 1mm from the build-plate, if the nozzle was touching the plate.  Basically, a different in 1mm from nozzle to probe-base.


You can download the bracket from Thingiverse here.

Wire it up:

Voltage Divider:

Update:  I’ve been told you can drive these sensor directly off 5v:  I’ve not tested this,but if you’re going to attempt it, it’s worth a shot.  Save you from having to deal with the voltage divider below, and it means you can wire + & – directly into the RADDS board itself.

The probe needs 6-36v, the signal input on the RADDS board only accepts 5v, and my PSU is 12v:  Need to make a voltage divider!  Generally speaking, you need two resistors, with the smaller one half the value of the larger one. Like 10k & 5k.  Of course none of my resistors worked this well, and even when I did find some that may ‘sort of match’, they value they split wasn’t 5v.

After MUCH combinations, I came up with this:  Big 2k (really 1970 on my meter).  Small was two in a series: 1k (really 970) and 670 (really 660) for a total of 1730:  1730 isn’t remotely half of 1970, not even close.  However when setup on my beadboard, it was splitting out to 5.6v, which was the closest I got all day.

Later I read that anything over 3v would trigger things fine, so I was probably making this way harder on myself than I should have.

Mockup on the breadboard, using my Macbook Air as the ‘inductive aluminum surface’ 😉


Final shrink-wrapped setup.  Resistors hidden beneath the wrap.


RADDS Board:

The signal line needs to run into the “Servo PWM3 pin” (aka Due digital 39, AKA E0_AXIS endstop[3]), which is located in a cluster of solder-points on the corner of the board:  I soldered in a header, so that I could plug my signal line into it.


Connect the wires:

Signal from probe (since having it’s voltage lowered above) -> ‘Servo PMW3’ 5v pin on RADDS board (image above).

Positive & Negative probe leads -> PSU 12v +- terminals.

Update the Firmware:

G32 is the command that triggers the probing on the board.  But the probing can be setup two different ways:

  • Use a bed.g macro filled with M30 commands (and others).
  • Use config.g filled with M557 commands, no bed.g.

I like the idea of having a separate macro file to configure my probing:  If bed.g exists, when you execute a G32, the bed.g is parsed.  If there is no bed.g, G32 instead looks for pre-configured M557’s, that live in config.g.

Initial setup

Below, I discuss how I setup config.g and bed.g


When you first add the code for the probing in config.g, it’s important that you set the ‘Z offset’ in G31 to 0: You’ll later calibrate it and edit it with the final setting.  Here’s my probing section:

M558 P4 X0 Y0 Z1 ; M558 must come before G31.
G31 X49 Y52 Z.4 P500

To break it down:

  • M558 – Set Z Probe Type
    • P4 : Set the sensor type.  When using an inductive sensor plugged in to the PMW3 pin, you need to set this to 4.
    • X0 Y0 Z1 : Use the sensor for the Z axis only.
  • G31 – Set Current Probe
    • X49 Y52 : This is the distance in mm that the sensor is away from the nozzle (used my calipers to roughly figure this out).  Since my sensor is behind and to the right of my nozzle, these are both positive values, since 0,0 is in the front left of the bed.  You can leave these zero, but I’ve read that having them set makes the calibration more accurate.  However, it makes setting up bed.g more complicated (more on that below).
    • Z.4 : This is the difference in height between the sensor and the nozzle.  Set this to zero the first time you set it up, it will be calibrated later.
    • P500 : The ‘trigger value’ : Really only important if using an IR probe, but I read for switches just set this to 500.


This is where you define the points to probe/sample.  I’m doing a 5-point probe, but you can use as few as 3.

The only really confusing part is if you’ve entered any probe offsets in config.g’s G31 (above):  They need to be accounted for below, since you’re telling the system where to send the probe.  If the probe has a 50x, 50y offset from the nozzle, and you tell the probe to go to 0,0, it’ll try to run the nozzle outside the bounds of your printer, and much stepper chattering / printer shaking will ensue until you kill the power.

To calculate the below values, this was my process:

  • Home the printer, G28.
  • In my software (Simply3D), manually jog the toolhead around to the 5 points I want to sample  When I get the probe to a sample spot, I note the current X,Y value (which is for the nozzle), and I add the offset values  to it.
  • Make sure the probe is always over the bed!  If you position the probe off-bed, when it goes to sample that point, it’ll drive the bed straight up into your nozzle :(

My bed.g:

; Probe the bed and do 5-factor auto calibration
; These are the same toolhead points, but with the sensor offsets added. Note, to use these points, you must set config.g's G31 X49 Y52
G30 P0 X49 Y52 Z-99999 ; Four... - Front Left
G30 P1 X49 Y305 Z-99999 ; ...probe points... - Back Left
G30 P2 X299 Y305 Z-99999 ; ...for bed... - Back Right
G30 P3 X299 Y52 Z-99999 ; ...levelling - Front Right
G30 P4 X149 Y152 Z-99999 S5 ; 5th probe point + store the levelling - Center
G1 X0 Y0 ; Send X & Y back to zero before print starts. This is commented out during the initial calibration.

To break it down:

  • M561 – Set Identity Transform : Clear out any previous probing transformation done.
  • G28 –  Home : Must always home before probing.
  • G30 – Single Z Probe :
    • P# : Each sample point must be assigned an index, from 0-4.
    • X# Y# : the location on the bed to send the probe.  These include the offset set in config.g’s G31.
    • Z -99999 : A value less than -9999 tells the system to probe here.
    • S5 : The final probe has the S value entered, telling it to store all 5 points.
  • G1 X0 Y0 : Send the toolhead back to X0 Y0 before print starts.  Just something I like to do, since I purge the nozzle there.  Note, during the initial calibration stage this is commented out, which makes setting the probe to nozzle z-height easier (more below).

Calibrate the nozzle-to-probe height

As discussed above, I set my proximity sensor to be about 1mm above my nozzle height.  These sensors have a 4mm detection distance for highly inductive materials like iron, but for aluminum, it’s much closer, around 1mm it seems.

Once the config.g and bed.g have been updated, fire up the printer, heat up the nozzle and bed (if you can) and execute a G32:  This will both home, and then start the probing sequence (based on what you’ve defined in bed.g).  Be excited as you watch your printer automatically drive around probing for points!  It’s important the nozzle/bed is heated up, because thermal expansion.

When the probing is done (and everything is still hot), use this process to determine the nozzle-to-probe height difference:

  • You can either enter the below commands, or use some other control software (Simplify3D) to do it.
  • G1 Z0 ;  Send the bed\nozzle to the current Z0 position.  This should move the plate close to the nozzle, but not touch it: Should be 1mm or less away.
  • G92 Z10 ; This tricks the machine so it thinks the toolhead is actually 10mm above the bed.
  • Slip a piece of paper between the nozzle and build plate.
  • G91 ; Set Relative moves.
  • G1 Z-.1 ; Start raising the bed\lowering the nozzle by -.1mm values.
  • Track how many moves you make.  Keep raising the bed\lowering the nozzle until the paper just barely moves:  You should still be able to slip the paper under the nozzle.
  • Write that number down.  Mine was -.4mm.
  • Let your machine cool, power it down.

Update config.g and bed.g

Take the positive value of that number from above, and update your config.g’s G31 Z# with it:  This is now your calibrated offset!

G31 X49 Y52 Z.4 P500

In your bed.g, enable the last line to send the toolhead back to G1 X0 Y0 if you want.

The next time you run a G32 and then send the nozzle to Z0, it should be just touching the build plate, allowing you to slip a piece of paper under it with the same friction as above.  If not, something is amiss.

However, it’s possible this position still isn’t optimal for printing the first layer:  I did a test print with a hollow cube (no roof, no floor, 2 shells) just slightly smaller than my build volume.  The nozzle was still slightly too high for good first layer adhesion.  Rather than constantly updating your firmware value to try and tweak this, you can use your slicer software, covered below.

Update your print Profiles:

My slicer software is Simply3D, but I’m guessing other slicers (Slic3r, Cura, etc) work similarly.

Start Script

The start script is the gcode that is execute before a print starts.  The only change I had to make was switch out the line that did the home operation (G28) with the new G3d command, which calls to bed.g, which homes and probes.  This is what mine looks like:

G92 Z0 E0 ; Set current z position to zero.
G1 Z2 ; Lower Z to be safe 2mm.
G32 ; bed.g - home and probe bed - If not probing, this would be G28 instead to just home.
G1 E50 F600 ; Purge nozzle 50mm 10mm sec When a print ends it's retracted by 30mm.
G92 E0 ; zero extruder
G1 X0 Y10 ; Move nozzle to left front corner of build platform.
G92 X0 Y0 ; Zero X & Y here to start the build.

Refine the Z-height

As mentioned above, my first layer was a bit too high, and wasn’t quite sticking right.  Simplify3D has a section in its ‘G-Code’ menu called ‘Global G-Code Offsets’: These allow you to provide an additional global offset to all values in the gcode.  As it turns out, setting XYZ to 0,0,-.025 mm made for a great first layer.  Iterating with this value is far easier/faster than updating the firmware.

Final Thoughts

Now that it’s working, I’m so sad I did’t do this sooner.  Full-volume first layers are just ‘spot on’ now.  It’s almost magical to watch it work.  Get an aluminum plate and do this mod!

Resource List:

Jump to C-Bot blog index to see all the posts.

New 3D Print: Millennium Falcon

Decided to print (nearly) a whole roll of MakerGeeks Gray Matter Gray PLA on a cool Millennium Falcon model I found on Thingiverse.

Took 17h30m on my C-Bot, using a .6mm E3d-v6 Volcano nozzle, 450 micron, 60mm\sec @ 230 deg:


It’s pretty big.  Check out the timelapse here:  17 hours in 17 seconds:

New Commission: Denali

denali02_webWas recently commissioned to make another Denali cut on my X-Carve.  This time I swapped out the 1/4″ ballnose used for the rough cut for a 1/8″ ballnose on the finish cut:  Really helped the mountain detail pop.

I had split the rough and finish cuts into two files:  Only downside was that using Chilipeppr, it started to choke on the 4.8meg finish pass file. It would cut for 8 seconds, then pause for 4, etc, repeat… making it take waaay longer than it should (3.5 hour finish pass). Talking on the GoogleGroup, I guess this is a known problem, and the SPJS grbl code needs a port from tinyG. Next time I’m going to give UGS a shot…

I’ll give another shoutout to Terrain2STL, the great app I used to generate the terrain data.

Building the C-Bot 3d Printer : Part 35 : Updating the heated bed controller

Jump to C-Bot blog index to see all the posts.

A few weeks ago the relay controlling my heated bed had a meltdown, literally.  Magic smoke released.  It’d been running for a year, and I guess it was time.  Since I never wanted that to happen again, and I was tired of the “click click click” sounds it made I decided to go solid state.

After querying  the C-Bot Google Group for this issue, this board was suggested: (ebay link, $12.69):  It’s a HA210NO6 mosfet in a nice breakout board.  And it has the longest product name ever: “3D Printer Power Module for Higher Power Heated Bed upgrade RepRap RAMPS 1.4″.  I’m guessing that’s a direct translation from the Chinese…


But I didn’t like the idea of all the exposed electronics, so I built a nice little enclosure for it in Autodesk Maya, which includes an active cooling fan in the back.  According to the specs (Ebay link) and the current I’m drawing the passive cooling via heatsink should be enough, but better safe than sorry.

This pic shows the three stage prototyping process I went though:


It includes a top-hole for a screwdriver to access the terminals inside, plus other top-holes giving your hex-wrench easy access to the bolts below.

Each box took about an hour to 3d print, using a .6mm E3d-v6 volcano nozzle on the C-Bot, 450 micron, 60mm/sec-ish.  The final two were in MakerGeeks HD Vivid Blue PLA (& dishwasher safe to boot!).

After an hour or so of splicing & soldering, the electronics were in place, and it was up and running without a hitch:


You can download the enclosure from Thingiverse here.

Heats up in no time, and no more “click click click” like the relay used to.  A red LED shows it has power, and a nice soothing blue LED kicks on when the bed is heating.

When I find a bit more time I’ll look into configuring RepRap Firmware to use PID to control it, rather than the default bang/bang.

Jump to C-Bot blog index to see all the posts.

Modular Panel System & new garage shelving


I’ve had the idea for sometime to create a new shelving unit in our garage:  When we moved it we tossed some spare Ikea shelves against the wall.  Wasn’t the best use of space.

Rather than go looking for a pre-built solution, I figured this would be a great learning experience:  Make an entire shelving unit from scratch, including all the parts that join it together.  At first I thought I’d use my X-Carve CNC for this, but after much research and though, I instead decided to create a new 3d-printed modular corner bracket system to hold 3/4″ plywood sheets together.  While creating it, more 3d printed items were needed, so I decided to coin the whole operation the “Modular Panel System“, or MPS.  As of this authoring the system includes:

  • MPS – Corner Clamp
  • MPS – Shelf Support
  • MPS – Shim

This blog post describes the process I went through to create the MPS, how you can use them, and the shelving unit I designed to prototype it all with.


This is all common sense, but because lawyers:  I am not responsible in any way for any type of accident, damage, injury, death, or cost incurred from using this system:  By downloading from any source and / or making these files on any printer / fabrication system, you wave me from from any liability now or in the future.  Be smart, use at your own risk, test.

File Download

You can download all the above-mentioned MPS 3d printable files on Thingiverse HERE.

The End Results

Pretty pictures first:


Closeup of Corner Clamps in action


The final shelving unit installed, using the MPS.

The 3d Printable Parts

All the 3d printable parts I printed on my C-bot.

Corner Clamps

The Corner Clamps are what hold two pieces of plywood together at 90 deg angles.  By using them in different configurations, you can create just about any rectangular-shaped structure.

Prototyping the Corner Clamps

I wanted an adjustable bracket to hold plywood together at 90 deg angles.  Since plywood can have varying width, I needed a solution that allowed for that slop.  I’d seen some interesting brackets at Maker Faire one year that did something similar, so I got to prototyping a system:  An outer L-shaped piece that could have an inner piece cinched against it, taking up any slack.  This was my initial prototype modeled in Autodesk Maya:


The idea is you put a nut in the outer L-shaped piece, and a screw through the end of the inner piece to hold it in place, and both sides press against the plywood.  Prototype was ‘strong like bull’ to humans, and my hope was the dense infill would provide the internal strength it needed, but I quickly broke it when torquing the held plywood.  However, it was still really strong, so I went about a redesign.

Stress testing, & Corner Clamp prototype 2

Based on where the cracks had formed in my prototype I redesigned it to use less material, but put what was there all in the right places.  From there I printed a number of them, assembled a small plywood box out of them, and started bouncing on top if it:

box_prototype box_prototype_closeup

With only one bracket per side (less that in the above shots), four of them could easily hold my bouncing 180lb frame.  I found this encouraging.

Corner Clamp Final Design

At this point, I realized I had purchased 1/2″ plywood for my above tests:  For my final shelving unit I wanted to use 3/4″ ply, to provide more strength.  Because of this I went through one more iteration, requiring me to enlarge the brackets significantly to handle the increased width of the plywood:


Corner Clamp Dimensions

The below images show the overall dimensions of the parts in both inch and cm.  When I first started making them they had nice round numbers. But that very quickly went off the rails as design needs were encountered.

dimensions_cm dimensions_inch

And to help with design, when two corner clamps are holding plywood opposite one another, the gap is just about 2″:


3d Printing the Corner Clamps

I print mainly in PLA:  I had used a couple different types during prototyping, and around that time I learned about MakerGeeks Raptor Series PLA : It’s supposed to be stronger than ‘normal pla’, and while I have no numbers to back up my findings, it does seem much stronger than ‘normal’ pla.  It’s more pliable, less brittle.  Based on that I bought 8 spools (enough I’d need to print the 100ish brackets, supports, and shims):


And got to printing:

printint_brackets bunch_o_brackets

Corner Clamp 3d Print Settings

These are the settings I used to print them in Simplify 3D, based on the Raptor PLA using a .6mm nozzle.  If you’er using a .4mm nozzle you’ll need to compensate for the layer height and number of roof\floor\shells.

  • .6mm E3d-v6 volcano nozzle
  • 300 micron z-height
  • 90mm\sec
  • 230c extruder, 60c bed.
  • 6 floor, 6 roof, 0% infill.
  • Based on my nozzle diameter, 4 shells completely filled all the structures.
  • No raft, nor brim, no supports, did use a offset skirt.
  • Be sure to print them flat, not up on one end.  They’re designed to be printed flat, to provide maximum strength based on those layer lines.

They came to 68g for both pieces, and took about 70 min.  Which means I could print 14 per 1kg spool.  So, I’d do 7 at a time on my c-bot’s 12×12″ bed: One over night and one while I was work (monitored via OctoPrint), allowing me to print 14 (one spools worth) a day.

Other notes:

  • If during assembly you can’t get the washer or nut inserted, it’s likely your printer is over-extruding.  If it’s tuned properly, they should drop right into place with minimal to no pressure.

Corner Clamp Print Cost

I paid around 35$ per spool for the Raptor Series PLA.  For 68g of material, that works out to just about $2.40 per Corner Clamp for the raw materials.

Corner Clamp Initial Assembly

Tools required

You’ll need:

  • A philips head screwdriver.

You may want:

  • An electric drill with 1/4″ bit.

Hardware required

I purchased all of this at my local “Orchard Supply Hardware”.

Per Corner Clamp:

  • 1 Philips flat-head machine screw (or equivalent) :  1/4″-20 x 3″ – K
  • 1 Hex Nut : 1/4″-20 – K
  • 2 Flat Washers : 1/4″ – K


Assembly Instructions

  • Insert a 1/4″ washer and 1/4″ hex nut into the L-shaped outer-clamp.  They should drop in easily.
    • If they’re too tight to fit, there’s a good chance your printer is over-extruding.
  • Insert a 3″ long 1/4″ machine screw screw through a 1/4″ washer, and insert that through the smaller inner-clamp.
    • If it’s too tight to easily slide through, you can easily enlarge the hole with a 1/4″ bit on an electric drill.  I used this method often…
    • Optionally you can simply thread the screw through the plastic.  This will give you more holding power (not sure if that is necessary though), but a lot more manual twisting.


  • Push the machine-screw through the larger bracket, into the nut, and continue to tighten until the tip of the screw just pokes through the nut.  That should give you ample space to later fit the plywood in both sides.


Shelf Supports

The Shelf Supports are used to hold up… shelves.  They are simply triangular supports that are placed under a flat piece of plywood, and screwed into the plywood being held by the Corner Clamps.


3d Printing the Shelf Supports

These are the settings I used to print them in Simplify 3D, based on the Raptor PLA.  If you’er using a .4mm nozzle you’ll need to compensate for the layer height and number of roof\floor\shells.

  • .6mm E3d-v6 volcano nozzle
  • 450 micron z-height
  • 60mm\sec
  • 230c extruder, 60c bed.
  • 4 floor, 4 roof, 0% infill.
  • Based on my nozzle diameter, 4 shells completely filled all the structures.
  • No raft, no brim, did use an offset skirt.
  • Supports are needed:  Since these are printed flat, and not on end (to give them max strength), you’ll most likely need supports to hold one of the sides up, unless your printer is a monster at printing bridges.

Shelf Support Assembly

Tools Required

You’ll need:

  • Philips Screwdriver (magnetic head is handy).

You may want:

  • Electric drill with Philips bit (magnetic head is handy).

Hardware required

I purchased all of this at my local “Orchard Supply Hardware”.

Per Shelf Support:

  • 2 Philips Flat Head Wood Screw (or equivalent) : 10 x 3/4″ – K
  • 1 Flat Washer : 1/4″ – K


Assembly Instructions

  • With the side that has the slot facing down, slide a 1/4″ washer up to the top of the support.
  • With a screw on your driver, thread it through the washer, and into the plastic slot just until it catches.
  • Just start the other screw into the other hold as well.  Note, not all supports need this screw:  I only usually have two per shelf.  They’re just there to keep the shelf from shifting one installed.
  • You can leave it in this state until final shelf assembly.

Here’s how it looks assembled in place.  Note, the screw I have in the top is not what I reference above.



Since plywood can have varied thickness, this can have an effect on the overall assembled shelving unit.  For Corner Clamps that hold vertical sections, I noticed they wouldn’t always touch the plwood under them, putting an unnecessary strain on their horizontal bits.  I designed these simple shims to be placed on top, or under a Corner Clamp, to help take up the slack, and help distribute the weight more evenly.

Here, you an see two shims in action, on place on top of a Corner Clamp, and the other underneath one:


3d Printing the Shims

Just print them completely solid.  I made a bunch and used them liberally as needed.  You can make your own by taking what I provided and scaling it by any amount in your slicer software (presuming it has that ability)

Garage Shelf design

This section describes the shelf I designed that made use of all the above Modular Panel System pieces.

Digital Design

At the same time I was designing the Modular Panel System, I was also designing the shelf to prototype it on in my garage.  I used Autodesk Maya for this : Yes, there is probably much better software out there for this sort of thing, but I know Maya best, so it was the software of choice.

After measuring my space, I went about mockup up what I’d think the shelving unit would look like in 3d:

garage_shelving_mockup_02 garage_shelving_mockup_01

All the solid pieces are what will be assembled using the Corner Clamps, and all the gray-outline ones will be held with the Shelf Supports.

Plan Creation

After I (and the Mrs) was happy with the design, I did a manual space-fitting operation in Maya:  I laid all the panels down into shapes that match 4’x8′ pieces of plywood.  This both let me know how much plywood I had to buy, and how to make all my cuts.  Since the Mrs asked that all flat pieces were pained white on top, I also called out that in my plan:


This also led to some design changes:  I had some shelves that were just over 4′ long:  If I could make them fit 4′, then I could maximize my material.  Based on that, I deduced I needed 9 sheets of plywood.

Cutting & painting the plywood

I ended up getting 3/4″ sanded pine plywood.  Has a nice smooth pine veneer on both sides that required no sanding on my part.  9 sheets @ $30 a sheet = $450 in plywood.

Based on my above plans, I’d measure out each cut, and get to it with my circular saw:


4+ hours later, I had this pile:


Which the boy and I spent a couple hours sanding all the cut sides on.  Whew…

From there, all the horizontal parts got laid out on plastic in my yard, and I rolled on the paint:


A few days later the paint had dried, and final assembly could ensue…

Garage Shelf Assembly

It took a whole weekend to just get rid of all the existing stuff on that wall of the garage.  So the next weekend, with the occasional help of my wife and son, the new shelf was assembled.  Guessing it took around 6 hours, which included extra fabrication like cutting holes for electrical plugs, and other gotchas.  But for the most part it wen off without a hitch.  To do something this size, and extra pair of hands is really handy.  BTW, 3/4″ plywood is… heavy.

Special note : Before assembly, I used my stud-finder to figure out where on the wall the studs were:  On the large, back-pieces of plywood facing your, I used 3″ wood-screws to anchor them directly into the studs post-assembly.  I’m in California, earthquake territory.


Installing Corner Clamps

This was the method I used:

  • It will vary based on what section of the shelf you’re assembling,but the general process goes:
  • Make sure the machine-screw is loose enough so you can get plywood on either side of the clamp.  Or, if you’re attaching a clamp to an already assembled section, you can completely unscrew it, put the pieces on either side of the corner, and then re-thread the screw.
  • I use a screwdriver to tighten it up:  I watch the plywood on either side “suck” up into position.  While tightening, I make sure the plywood is pressed up flush against the middle of the bracket, so there’s no gaps exposed.
  • On a large section with many Corner Clamps, I’ll leave them all slightly loose until all are in place, square up the section, then tighten each one.
  • Don’t forget to add shims in where needed, before you tighten everything up, and before you put a load on the shelf.

How many Corner Clamps to use per section?

For the above shelving unit, I used two Corner Clamps to hold each side of each section.  For example, for the middle desk table by the chair, it had two clamps on the left, two on the right, but based on it’s length, three on the back.  It’s all based on the sizeof the shelf, an the load it will be holding.  If in doubt, add more.  You can always safely add more.

How tight should I make the Corner Clamp?

Tight enough, but not too tight? :)  I never actually broke one from tightening, but very quickly I got a feel for how tight I thought it should be.  If you hear it start to crack either you’ve tightened way to much, or you have a bad print.

Installing Shelf Supports

This was the method I used:

  • I first marked where the top of each Shelf Support should be.
  • With the screw just barely poking out the back, I held the Shelf Support in-place on the wall, and used my screwgun to tighten it up.

How many Shelf Supports should I use per shelf?

For the above shelving unit, I used two on either side of each shelf, and 2-3 on the back based on their length.  Again, it’s entirely based on what they’ll be holding.  If you’re going to fill them with books I may place one ever 6″.

How tight should I make the Shelf Support?

For the screw that goes into the wall, through the washer, I cinch it up with my drill until I can no longer twist the bracket back and forth.  For the screw that goes up into the piece of wood above it, this can be left nearly loose:  I tighten until the screw head his the plastic and I stop.  If you over-tighten that one, you can split the bracket.  And it doesn’t need to be tight to do its job.

Total Shelf Cost

Rough figures:

  • 9 Sheets of plywood at $30 a sheet: $270.
  • 8 rolls of filament at $35 a roll: $280.  Used nearly all of it, but that’s also counting print failures that happened as well.
  • Various nuts, bolts, washers: $30 (estimate)
  • Can of paint: $15.

Total:  Just under $600.

Final Thoughts

Was a great experience.  Was a lot of work.  Was hopefully cheaper than buying Ikea shelving :)

As of this blog post the shelving has been installed for three weeks, fully loaded with stuff, and nothing yet has broken.  It’s my hope you can uses these files, tools, and ideas to aid in your own creativity.  And  always, be safe!