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 34 : Switching RADDS to RepRap Firmware

HA, I hit ‘publish post’ on accident, and there doesn’t seem to be an undo:  This is my scratchpad as I try to get RepRap Firmware on my C-Bot.  This is *not* the final page.  It’ll be way prettier when I figure out what I’m doing…


RRF Background: http://forums.reprap.org/read.php?13,569468,575223#msg-575223


  • http://forums.reprap.org/read.php?13,569468,603334#msg-603334
  • http://forums.reprap.org/read.php?13,569468,603338#msg-603338




Below install nodes follow these steps:




I did not do this.  Scons was too much a pain in my arse.



I could only get scons installed by doing a MacPort :

$ port install scons

And then spending an hour getting various packages updated.


To get bossac (which you need to flash the bin to the Due), you need Arduino 1.5.8:


I can’t seem to find bossac anywhere on my mac on the latest release.



when setting up Repetier


STEP 5 :

git clone https://github.com/dcnewman/RepRapFirmware.git

Edit  paths as appropriate

$ cp sample_rrf_arduino_paths.py ~/.rrf_arduino_paths.py


git clone https://github.com/dcnewman/CoreNG.git

STEP 7 : SKIP, using precompiled .bin

FLASH Binary


http://www.shumatech.com/web/products/bossav  > This is known to NOT work with RADDS.

BOSSA is an acronym for Basic Open Source SAM-BA Application   c?


$ /Applications/Development/Arduino_158.app/Contents/Resources/Java/hardware/tools/bossac –port=tty.usbmodem2621 -e -w -v -U true -b /Users/ak_eric/git/RepRapFirmware-RADDS/Release/RepRapFirmware-1.10+4-dc42-radds.bin


Copy content of /git/RepRapFirmware-RAADS/SD-Image/sys-CoreXY to your sd card root, and rename it to sys



USB cable in in Native USB port (the one furthest from the barrel jack).


Via S3d, connect at 115200 baud to /dev/cu.usbmodem2621

Sometimes take a few tries of unplugging the usb (or pressing the reset button on the RADDS\Due), Refreshing S3d, and re-connecting.


Note:  I am completely unable to connect via the Arduino Serial monitor unless I first:  Connect via S3D above. Quit S3d.  Open Arduino.  Choose the board (below).  Unplug and replug the USB, then connect.  If I don’t do those steps, while the Arduino IDE Port menu lists the device, it doesn’t list the text in the parenthesis after it (shown below), and it appears is that parenthetical text isn’t shown, then it can’t talk to it.  Simplify3D must somehow be registering the USB device in a way that helps kick the Arduino into gear?  I have no idea.

Tools -> Board -> Arduino Due ( Native USB Port)

Port -> /dev/cu.usbmodem2621 (Arduino Due (Native USB Port))

Open the Serial Monitor.  Set baud to 115200.  If it won’t connect, unplug\replug the USB.


Based on this forum post, need this plugin in Octoprint to make it compatible with RRF:


Just browse the Octoprint plugin manager to this file to install:


I had to unplug and replug the Due into the Pi on multiple ports… eventually started working.  It usually involved these steps:

Plug USB cable into Pi USB port 0.  Refresh the Ocotprint web page.  Try to connect.  Fail.  Plug USB cable into another Pi port, repeat.  Eventually it connects. And once it’s connected, you can unplug \ replug into any usb port and it’ll work.  Chaos!

Note, there may be some fan-related issues:


To test (in S3D, Octoprint, or Arduino you actually got connected):

M503 to report config status and know it’s actually working:  If the SD is in there, it should print what’s in config.g, otherwise it’ll report no config file.  If you’er in Arduino and you get no response, then you probably have the issue I describe above.

Macro Config





Macros can live in the /sys folder, or in the /macros directory with any extension.

While in a macro, you can call another macro. Macros are searched in /sys directory and it is recommended to always specify explicitly the path.

M98 calls to other macros.


Defining nozzle and bed thermistor via M305

I’m using a E3d-V6 thermistor for my Volcano hotend.

They state:

Use the Beta value 4267K.​
It’s 100k Ohm

M305 P T B R L H X

  • P : Heater Number : Not to be confused with the ‘P’ (tool) value of M563. 0 = heated bed (RADDS bed), 1 = first extruder (RADDS H0). 2 = second extruder (RADDS H1), 3 = third extruder (RADDS H2).
  • T : Thermistor resistance at 25c
  • B : Beta Value
  • R : Series Resistor Value

When communicating with the RADDS, if you enter a M305 P0, it’ll print the current state.

My Values (just a generic 100k one for the bed), RADDS has a 4700 ohm inline resistor.

M305 P0 T100000 R4700       ; P0 = Heater 0 = The bed.  Not sure the 'beta' value for this.
M305 P1 T100000 R4700 B4267 ; P1 = Heater 1 = The extruder nozzle. Beta per the E3D docs.

Note, you’ll know these values are wrong if at room temp (25C / 77F) your control software (like Simplify 3D) doesn’t read 25(ish)c : I had originally set R1000, and it reported the resting temp to be 60c, very, very wrong.

Defining ‘Tools’ via M563

M563 P D H

  • P : Specifies the ‘tool‘ number, 0 -> infinity.
    • D : The drive(s) used by the tool : 0, 2, 3 : D0 <-(zero) Is the first drive after the XYZ steppers, so presumably the extruder stepper.
    • H : The heater(s) used by the tool : 0, 1, 3 : 0 = Heated bed, 1 = first extruder heater.

My Values:

M563 P0 D0 H1 ; Tool (P) 0 : D0 = Extruder stepper 1. H1 = First extruder heater.

To select a tool in gcode, use T# to select it, T99 to deselect (needed?)

Defining axis direction and enable values via M569

M569 P S R X Y Z E

  • P : Specifics the ‘drive‘ number, not to be confused with the ‘P’ (tool) value of M563.  0=X, 1=Y, 2=Z, 3=E (right?).
  • S : Whether the drive should move forward. 1 = forward, 0 = backward.
  • R : Enable Drive. 1 = enable, 2 = disable.

My Values:

M569 P0 S1 ;  X
M569 P1 S0 ;  Y - I needed to reverse this.
M569 P2 S1 ;  Z
M569 P3 S1 ;  E1
M569 P4 S1 ;  E2(?) : I don't think I'm using this drive.

Set Endstop configuration via M574

M574 X Y Z S

  • X, Y, Z : The switch type for the axis : 0 = none, 1 = low (min) 2 = high (max).
  • S : Logic level : Defines whether the endstop input is ‘active high’ (S1, the default), or low (S0).

My Values:

M574 X1 Y1 Z1 S0

Defining steps per mm via M92

My Values, copied from Repetier, since I’m using the same SD6128 drivers at 1/32 microstepping.

M92 X399.486 Y401.083 Z804.91
M92 E325


They were an amazing pain:  I have a hotend cooling fan, and a PLA cooling fan.

This is what finally worked:

M106 P0 T60 H1 ; Enable the auto hotend cooling fan to kick on at 60c. 
M106 P1 H-1    ; Must do H-1, or it'll turn on with P0 for some reason.
M106 S0 P1     ; Must do, or P1 will go full blast on start :S


  • If I didn’t declare P1 non-thermostatic (H-1) it would turn on with P0.
  • If I didn’t set P1 to a speed of 0, it would go full blast on machine start.
  • Still havn’t figured out how to hijack pin H2 to double as a case cooling fan.

Stuff to comment out:

  • All M540, M552, M553, and M554 (network) commands, not supported by RADDS.
  • M906 (motor current) commands : Not supported by RADDS.

Set Extruder PID  via M301

M301 H P I D T S W B

Is there autotune in RRF?


+ homex.g, homey.g, homez.g

Per http://reprap.org/wiki/Configuring_RepRapFirmware_for_a_CoreXY_printer

Make sure you set the G1 commands when moving the head some amount past your build volume, so they’ll be sure to hit the end-switches no matter what.  For example, my X platform width is 305mm.  So when homing:

G1 X-330 F3000 S1

I set it to go -330, just to make sure it hits.

Macro M & G code usage



  • config.g : Machine starting up
  • stop.g : M0
  • resume.g :  M24
  • pause.g : M25
  • stop.g : M25
  • homeall.g : G28
  • bed.g G28 / G32 (if using auto leveling)
  • tpre0.g : Before tool1 is selected
  • tpost0.g : After tool1 is selected
  • tfree0.g : When tool1 is freed

Wiring the hardware

https://github.com/dcnewman/RepRapFirmware/blob/dev/doc/RADDS-v1.5.md < This is actually the best overall setupguide for the whole thing I’ve found.

Some notes from that doc, for the RADDS board:

  • The minimum endstop headers are used for the endstops: X min, Y min, and Z min.
  • Thermistor position T4 is used for the heated bed.  This is the thermistor header farthest from the board’s corner.
  • Thermistor position T0 is used for the first extruder, T1 for the second, etc.
  • Fan0 with ‘M106 S# P0′.  Where S is 0-255 .  P0 is default, and can be omitted.  This if the hotend cooler.
  • Fan1 with ‘M106 S# P1′ :  This is the PLA  cooler on the hotend.

My own stuff:

  • RADDS cooling fan is hooked to H2 : How to configure that as a fan?
  • How to make hotend fan turn on automatically? http://forums.reprap.org/read.php?13,569468,606169#msg-606169

Switching IO pins:

M42 :

  • On RADDS hardware running RepRapFirmware-dc42, the supported Arduino Due pin numbers and their names are:
  • 5 TIOA6, 6 PWML7, 39 PWMH2, 58 AD3, 59 AD2, 66 DAC0, 67 DAC1, 68 CANRX0, 69 CANTX0, 70 SDA1, 71 SCL1, 72 RX LED, 73 TX LED.
  • Use M583 to wait for a pin.

Current Issues:

  • Endstops not being detected no matter what combo of values is entered into M574.
    • Last remaining issue before print!
  • PLA Cooler fan turns on automatically when using M563 to define the first tool.
    • Solved : Setting Fan0 to thermostatic (turn on when hotend reaches certain temp) it aut0-fixed this.  Weird.
  • PLA Cooler fan doesn’t respect PWM control:  It’s either 100% on, or off.
    • Solved:  Needed tricky config.g, see above.
  • Extruder doesn’t seem to be reading the correct temperature.
    • Solved:  Wrong inline-resistor value: had 1000, should be 4700 (what’s on the RADDS boar).
  • Can’t figure out how to enable the case cooling fan by plugging it into H2.
  • Whenever I start the Due\RADDS, I have to press reset to actually make it work.  This happens in Repetier too.
    • Described here as well: http://forums.reprap.org/read.php?13,569468,579517#msg-579517
    • Appears to be a bug in the firware of a chip on the Due itself:
      • http://forums.reprap.org/read.php?13,569468,580945#msg-580945
      • https://www.arduino.cc/en/Hacking/Upgrading16U2Due
    • I wonder if this is why I couldn’t use my programming port to flash the bin to the Due?
    • From above post : “all arduino due r3 have this problem and there is an new version called r3-e that do not have the problem”


Building the C-Bot 3d Printer : Part 33 : Machining a mic6 aluminum removable build plate

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


I’ve been using removable glass build plates for years on both my Makerbot Replicator 1, and my custom C-Bot:  I get double-thick glass cut at my local hardware store (Orchard Supply Hardware has had a great price on this), always thinking it was ‘totally flat’.  But is it really?  My C-Bot has a 12×12″ heated build platform.  When I go to level it with the glass, I get each of the four corners dialed in perfectly.  But the middle always sags slightly… even though it’s glass.  Double-thick glass.  But glass is actually somewhat plastic, and this sag has always bugged me.

Back in December I assembled my 1000mm X-Carve CNC, and it’s been so much fun cutting wood.  I knew it could do aluminum as well, but needed  a project.  And that’s what this post is all about:  Using my X-Carve to machine a new removable build plate out of .25″ mic6 aluminum for my 3d printer.  I am so happy with the results.

Sourcing the material

Before I started this, I had no idea what ‘mic6’ aluminum was.  It’s also referred to as ‘cast aluminum tooling plate’ or ‘ATP’, since mic6 appears to be a trademarked brand name.  Simplistically, it’s a standard for (among other things) a very flat aluminum plate, to .001″.  After reading a plethora of forms, and researching my local options, I settled on Midwest Steel And Aluminum’s “Cast Aluminum Tool & Jig Plate“, .25″ thick, 12×12”, which came to about $20, and the ground shipping another $20.  I could have bought it locally for $45 + tax (ugh).

A note on the order:  The plate was packaged in one layer of cardboard, that was it.  It appeared to have been dropped several times in-transit, 3 of the 4 corners were blunted, and there was an small indentation in the middle of plate itself.  If I was using this for something really precision I would have returned it.  Just a note to tell them to ship it better if you go this route.

Once it showed up, time to make some cuts!

Initial cuts

When I first got the plate I knew I had to notch a section out of each corner, since the heads of the bolts that hold the MakerFarm heated build platform stick up about 1/8″ish from it:  I didn’t want the plate resting on the bolt-heads, so I need to make little pockets for each.  Before I even considered my X-Carve CNC, I figured I could use my drill-press to pocket these.  Long story short:  It did not work well, and made a mess of the corners.  Based on that frustration I went down the ‘how about I use that dormant CNC right next to the drill press…” road.

For all below cuts, I used the same 1/8″ 2-flue upcut carbide endmill.

Since these cuts were so simple, I used Inventable’s Easel: I designed a circle with a diameter of .4″ across, .175″ deep, and used that to pocket each of the four corners already mangled by my drill press.  I used the default ‘aluminum’ Easel setting (5 ipm, .003″ doc, DeWalt on speed 1) with the first pocket (which took about 20 minutes), then started cranking it up: By the final pocket I had it running at 20 ipm at .01″ doc, with the DeWalt on speed 2, taking about 5 minutes..  It did great, and the bit was cool to the touch after the cuts.  When all four pockets were complete, it fit right on the bed with no collision with the bolt-heads:

cornerPocketAll the rough stuff to the right of the bolt-head was the abuse by the drill-press.

I have four bulldog clips that hold the plate on, one on the middle of each side.  The issue is even though I’ve bent them down to move them out of the way, parts of them still stick up slightly, and on a large print the nozzle could collide with them.  So going back to Easel, I designed a new rectangular pocket that would keep the bulldogs out of the way of the toolhead.  These were 2.25″ x .3″, cut .075″ deep.  I positioned them in the center of the left\right sides of the build plate, but had to offset them on the front\back based on my leadscrew config.

An in-process cut:


And all four final cuts:


Installed on the printer:  No more clearance problems with the bulldogs! :)


Prepping the plate

I use a highly secret (50% wood-glue, 50% water) slurry on my build plate to get PLA to stick.  But the mic6 is so smooth, I first scoured it with steel wool for several minutes to give the glue something to bite into.

Note for the future:  First, use something like lacquer thinner\acetone\mineral spirits to clean the plate of any oils:  Quite to my surprise, after many minutes of scrubbing, I could clearly see my handprint on it.  The oils deposited from my hand actually protected it from the steel wool.  So I went back and liberally scrubbed it with lacquer-thinner soaked rag, then went back to the steel-wool treatment again:  No more handprint.  Be sure to wipe it down with lacquer thinner after the steel wool too:  The wool actually leaves quite a bit of itself deposited into the aluminum.

After the plate was scrubbed, cleaned, and glue-slurry applied, I did some test prints.  And while the flatness was super awesome, I realized something very quickly:  The slicer said the bed heated up waaaay faster than it actually did:  For big prints in PLA, I’ll heat the bed up to 60c.

It dawned on me that the thermistor that does the temp reading is taped to the bottom of the MakerFarm heated build platform, while the thing being printed is sitting above it on .25″ of aluminum… that is taking much longer to heat up.

After brainstorming, I came up with the idea of cutting a groove into the bottom of the plate, that I could tape the thermistor into:  It should then be reading the temp from the removable plate itself, providing a much more accurate temperature.  This means I’ll also need to snip the leads running to the thermistor and install a barrel-jack into the mix to allow for the plate to be removed, since there’s now a sensor taped to it.

Secondary cut

Going back to Easel, I designed a .5″ wide groove cut .0312″ deep that I could recess the tape into, then another smaller groove .2″ across and .1″ deep to run the wires to the thermistor.

Here it is mid-cut:


Cut gotchas:

  • Easel has (based on what I’ve experienced) no idea of conventional cuts (bit spinning in the direction of travel) and climb cuts (bit spinning opposite direction of travel).  From what I’ve read, climb cuts can provide better finish, but only on ‘professional\beefy’ machines:  not the X-Carve.  Conventional cuts fare much better on the X-Carve.  This (as I found out) can cause dangerous problems.
  • When the top cut started, it was all conventional cuts, and cut fine.  But when the next layer started, and for every layer down, it was climb cuts.  Because of that, I noticed a lot of bit defection, chattering, and even gouging.  To avoid catastrophe, I had to manually monitor the cut, and really crank up the spindle speed as needed to compensate.
  • Note that MeshCAM gives you the option in the rough-cut to do either conventional or climb cut:  For future aluminum projects I’ll be using it for sure.

To help with heat transfer (that is only a theory of mine) and to prevent any sort of plate-slip (which is legit), I shoot the bottom of the plate with rubberized undercoating.  I then snipped my thermistor line, soldered barrel-jacks onto either side of it, then taped it into the groove on the bottom of the plate:


Putting it back onto the HPB, I reconnected the barrel-jacks:


Final thoughts

It works, great.


When the HPB heats up, and it finally gets to temp…. it really feels like the top\bottom are the same temp.  And I can level each of the four corners, and the middle is the exact same distance as the rest of them from the toolhead.

Super rewarding project with one machine improving another.

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

Howto: Pause Repetier for filament reload at a specific layer number

Last year I posted Howto: Pause Marlin for filament reload at a specific layer number.  Since then I upgraded (I consider it an upgrade) to Repetier, and wanted to do the same thing.

The above link has a chunk of G and M codes  that could be inserted into the .gcode script at a given line number to pause it, allowing you to do a filament reload by hand. I figured you could do the same thing in Repetier.  As it turns out you can, and actually it’s a lot easier… presuming it works in the first place:

Repetier allows you to ‘Reload Filament’ via the LCD.  However, I immediately ran into a problem:  After the reload, it wouldn’t return to the correct position on the build plate:  It was always offset by some amount.  Basically ruining the print every time I tried.  Long story short:  You need to configure the firmware to “not home” after filament reload.  Two ways to do this:

Via the online configuration tool:  In the features tab under the “Filament Change” section, I set the “Homing after Filament Change” to “No Homing”.

Or in your Configuration.h set:


Now, I can reload filament successfully via the LCD.

And via the M600 Mcode:  Up until then, whenever I’d try this code (which starts the filament reload process the LCD uses) I’d run into the exact same problem.  But now it works, so we can add it to our gcode file.

Why was this needed though?  You can follow the play-by-play on the Repetier firmware form here, but in a nutshell:  In my ‘start gcode’, I move my toolhead to the corner of my buildplate and ‘zero’ it there.  During Repetier’s ‘rehome’ operation during the reoload, it basically nukes those coordinates, thus putting an offset into my print.

Repetier’s ‘reload filament’ code is so simple (just that one line) compared to Marlin, you can easily enough by hand go into your gcode file, find the line number like this:

; layer 4, Z = 0.78

And insert it in where needed:

; layer 4, Z = 0.78

Or, like mentioned in the previous post, you can use your slicer software (if it supports it) to post-process the gcode to add this in where you need.  Snip from last years post:

I slice using Simplify3D:  In a given process, it has a section in its ‘Scripts’ tab, at the bottom, called ‘Additional terminal commands for post processing’.  This allows you to enter in script to do a text-replace in your file, to edit it for you.  I learned about it on a forum post here.

To do the above using that system, you’d need to enter this text into that field:

{STRIP ";   postProcessing,"}
{REPLACE "; layer 4," "M600\n; layer 4,"}

And (like last years post),  some really important things to note:

  • The fist line that says ‘STRIP’ is super important:  If you don’t do this, Simplify3D will embed a copy of the REPLACE line in the header of the gcode, but won’t properly comment it out, basically ruining the gcode.
  • In the STRIP line, there needs to be exactly three spaces between the semicolon ‘;’ and the ‘postProcessing text.  Any more or less will screw up the strip.  If you copy-paste this code, make sure there are three spaces in there.
  • As you can see, you need to insert newline characters (\n) into the string you’re building for it to show up properly in the gcode later.

I have been made aware that you can also do something similar via Repetier Host:  The goal of this is to print entirely untethered, with precisely defined pause-points in the code for filament change, so host software (Repetier or otherwise) is out  of the question what what I’m trying to solve.

Visual comparison of ballnose stepover values on the X-Carve

I built my X-Carve back in December:  It’s been a great new tool to learn.  I’m still very new to the world of CNC, and like to visually grasp the concepts.  So I decided to do a series of tests to understand how ‘stepover’ values effect the finish-pass quality of the surface both on X, and on the XY axes.

The MeshCAM blog does a great job of describing the fundamentals of stepover here.

Here are the stats for the cuts:

  • Hardware:  Inventables 1000mm X-Carve.
  • 1/4″ ballnose bit, 2-flute upcut.
  • Feedrate 60ipm, DeWalt set 1 to 2.
  • Wood type:  Unknown (came from an old bookshelf bottom), but if I had to take a guess, I’d say pine.
  • 3d Design Software: Autodesk Maya
  • CAM: MeshCAM
  • Sender: Chilipeppr

The specifics from MeshCAM below. All values for all cuts were the same except of the stepover, and either “Cut along X”, or “Cut X then Y”.


I wanted really extreme examples, so I set the following stepover percentages for my test: 100% (1/4″), 75%, 50%, 25%, 10%, 5% (only done on X, not XY).

I started by designing a model in Maya that incorporates a variety of surface angles.  The inside volume is just over 2×2″, by about 1/4″ deep.

stepoverCompare_maya (that’s a flattened sphere in the middle)

I then made multiple different gcode (nc) via MeshCAM, and started cutting them.

The whole piece for the X-cut:


And the whole piece for the XY cut:

stepoverCompare_allXY (note, no 5% test here)

Individual close-ups below.  X pass on the left, XY on the right.

Note the rough-cut for all pieces took just about exactly 2 minutes.  All the times listed below are for the X & XY-Axis Finish pass in min:sec.  So to get the total cut time, just add two minutes to the below values.

stepoverCompare_100 stepoverCompare_100xy

  • 100% stepover, .25″ : This is obviously super rough.  I honestly expected the segment to be closer together.
  • X Finish Pass Time:  0:47
  • XY Finish Pass Time : 1:34

stepoverCompare_75 stepoverCompare_75xy

  • 75% stepover, .1875″ : Not too much different than 100 really.
  • X Finish Pass time : 1:03
  • XY Finish Pass time : 2:03

stepoverCompare_50 stepoverCompare_50xy

  • 50% stepover, .125″ : Still really rough, but arguably could do something artistic with the ridges at this point.
  • X Finish Pass time: 1:30
  • XY Finish Pass time : 3:00

stepoverCompare_25 stepoverCompare_25xy

  • 25% stepover, .0625″ : Carry on, nothing to see here.  Even with the XY pass, it’s still pretty rough.
  • X Finish Pass time: 2:50
  • XY Finish Pass time : 6:40

stepoverCompare_10 stepoverCompare_10xy

  • 10 % stepover, .025″ : Now we’re getting somewhere: Ridges are still visible, but small.  Pretty smooth to the touch, but you can still make them out.  Sanding could take care of this.
  • X Finish Pass time: 7:10
  • XY Finish Pass time : 14:00


  • 5% stepover, .0125″ : Done.  Finished.  Can’t make out the ridges with the naked eye.  Very smooth to the touch.  No sanding needed really.
  • X Finish Pass time: 14:20
  • No XY pass done.  Not much point considering the quality already achieved.

Final thoughts:

  • Notice on all X-cuts that the lower-left section of the hemisphere is rough.  Must have to do with the direction of the toolhead (left<>right on X) and the spinning of the bit (clockwise).  The XY cuts removed these issues.
  • If you are ok with sanding, 10%/.025 stepover is ok.  If you want to avoid sanding entirely, go with the 5%/.0125″ stepover.
  • Even though the 5% X-only stepover and  10% XY stepover took the same amount of time, the X-only has a far better surface quality.  You’d still need to sand the 10% XY one.
  • What do I take away the XY Finish pass?  The XY Finish Pass times are generally 2x the X-only times, but don’t really increase the quality.  Not much point unless you’re looking for ‘that look’ in the cuts.
  • I feel like the speeds could be greatly increased on the finish pass:  I was only running the router on speed 1 to 2.  The smaller the stepover, the smaller the amount of material you’re removing, so arguably the faster the toolhead could move to compensate for this under load:  There’s a lot of speed left in the router…. sounds like another good test to try.

Building the C-Bot 3d Printer : Part 32 : New Cooling Fan shroud, and bulldog clips

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

New Cooling Fan Shroud:

Running PLA out of a volcano nozzle means you need a lot of cooling.  I’ve tried a number of solutions in the past, all of which were mainly just “point a really big fan at the hotend”.  I don’t think this is the best technique (although better than nothing) :  You want airflow directed at the filament immediately after it is extruded.

So I buckled down and designed a new cooling fan shroud in Autodesk Maya, specifically designed for the C-Bot, and the E3d-V6 Volcano nozzle I have attached to it.  You can download this file for print from Thingiverse here.  The most recent update allows you to adjust its mount location, hopefully allowing it to work with a greater variety of extruders on the C-Bot:


Screenshot from Maya of B03

Here’s the previous version (B02) on my C-Bot:


Low Profile Bulldog Clips

After installing the new shroud, it sits so close to the build platform, that it hits the side and rear bulldog clips I am using to secure the glass plate.  I looked all over the web for any sort of ‘low profile’ versions of these clips, but couldn’t find anything.

After a bit of thinking, I realized I could modify my existing clips instead:  Presuming you have two pairs of needle-nose pliers, a hammer, and a vice, you can do this too:

low_profile_bulldog New in front, old in back.

  • To get the clips out, jam one needle-nose into the hole of the clip, slightly opening it.  Use the other one to pull out each of the tabs.
  • Put the tabs together in a vice (with the lips of the tab in the vice), and pound it with the hammer over until they’re both 45 deg or more.
  • Slide one tab back into the clip.  Holding the clip with a needle-nose, work the other one in.  That’s it.

Next up, install on your removable bed.

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