Search This Blog

Sunday, January 26, 2020

CubeX Part3

I did some more planning for the CubeX Trio rehab build.

Controller: leaning towards Duet Wifi 2 + PanelDue 5 at the moment. I may go with a smoothieboard if v2 comes out soon.

Bed: A 400x400mm bed could fit, but it looks like I'll only have 350x350mm of printable area with a single extruder. I'll confirm this once the CAD's done (see below). My plan is to buy a big silicon heating pad and solid state relay (SSR) and hook up the SSR to mains and the bed heater pins from the control board. I'm aiming for 0.6 W/cm^2, or about 750W. The heating pad will be bonded to the bottom of an aluminum build plate, which will be a little oversized. I'm planning to use cast aluminum jig plate so that it's actually flat, probably 3-5 ish mm thick. I'll likely use glass, PEI, or some other removable build surface on top, and I'll probably insulate the bottom of the heating pad. The oversized aluminum plate will have holes in it for the leveling screws. The two screws at the back are about 360mm apart, so that works well. Unfortunately, the screw in the front is pretty close to the center of the build plate. Since I can't drill through a heating pad, I'll have to machine an extension bracket that replaces the current support piece there (the one that joins the two angled arms that hold the current bed). That will move the third leveling screw out to close to the front of the machine. If the bed being cantilevered ends up being a stiffness or vibration problem, my plan is to add linear bearings to the two front vertical posts, join them with a plate, and bolt that plate to the extension bracket I mentioned earlier. I may also replace the NEMA23 with a NEMA17 and add another 10mm Z rod at the front of the machine, though that'll make getting parts out tricky...could also rotate the base 90 degrees since it's square.Anyways, all of that will only be necessary if the cantilevered bed ends up being a problem.

X-axis carriage: I have a few options here. I could replace the bearing in the short X bearing block with two bearings (or one long one), then machine a new extruder mounting plate. The problem with that is that the super long x-axis bearing block will limit y travel a lot. I could replace both bearing blocks with SC12UU standard blocks, but those would interfere with the belt. I could replace just the longer bearing block with a SC12UU. I could also make my own bearing blocks.

Extruder/hot end: Compact hot ends like the titan aero don't extend down far enough in Z to clear the X axis linear bearing blocks. A titan + e3d-v6 hot end would, though. I can't use one of the stock extruders with an e3d-v6 unless I machine down the e3d-v6 mount OD to ~11-12mm and machine out the extruder clamp from 10mm to the same, both of which will be a huge pain to do. I don't want to use the stock hot ends since they don't have exchangeable nozzles and people complained about them clogging often.

X-axis replacement: Another option would be to completely replace the X axis. This option would replace the two Y-axis bearing blocks with standard SC12UU or similar bearing blocks and adapters to 20mm 8020 aluminum extrusion that would replace the X-axis linear shafts. An MGN12 rail/slide screwed to the aluminum extrusion would replace the X axis linear bearings. This solves a few problems: 1. Can now use compact extruder-hot ends setups, and mounts for MGN slides already exist on thingiverse, 2. the x-axis will be lighter and should be less finicky than two linear shafts, 3. x-axis travel will be maximized. The current X-axis motor mount is ~5mm thick laser cut acrylic. The y-axis belt holders are also 5mm laser cut acrylic, and they just sandwich the belt ends. Both poor designs that need to be fixed anyways, so they would be designed into the y-axis bearing block-extrusion adapters.

Given the above, there's kind of two major options for the X axis: 1. Keep the shorter X-axis linear block, replace its bearings, replace the longer x-axis linear block with a SC12UU, machine an extruder plate, use a titan (or similar) extruder + e3d-v6 hot end, redesign the X-axis motor mounts and y-axis belt tensioners. 2. Replace the whole X-axis with extrusion + MGN12 rail, use standard SC12UU bearing blocks on y-axis shafts, design and 3D print/machine adapters from the bearing blocks to the extrusion that include a new X-axis motor mount and y-axis belt tensioners, use a titan aero (or similar) extruder + hot end, and 3d print/machine a MGN extruder mount. Option 1 should be a little cheaper and uses more of the current hardware. Option 2 maximizes X, Y, and Z travel. I'll probably design both and weigh the options once I know rough costs and how much more travel option 2 gets me.

There are some other minor plans, but those are the major changes planned.


I started the CAD. Right now just modeling what it is currently. I'm not being super detailed...leaving out most of the screws, the belts, etc. Once all the relevant components are modeled, I'll start modeling modifications and adding details where necessary. 


Friday, January 24, 2020

3D printer updates

Tried printing something on the i3. The X axis was reversed because I had the belt tensioner flipped over. I can't flip it the other way because the extruder motor's connector interferes because I rotated it so it wouldn't rub on the top frame on tall prints. So I can't use the belt tensioner. That's the third or fourth x axis belt tensioner I've tried...may just have to design my own. I went back to screws + zip ties.

Did some more work on the CubeX, mainly taking it apart. I found more examples of decent engineering and terrible engineering.

Nice little rubber + plastic grommets around the screws to protect the acrylic. 

Many of the corner holes were cracked like this. 

Shell off

Feet screw off. Didn't end up needing to remove these.

Some parts are fancy expensive CNC milled, some, like these
belt clamps, are just pieces of laser cut acrylic stacked. 

Removed those dumb stainless steel cylinders. 

These acrylic clips were nice. Removed the filament tubes.

Why are these shaped like that? $$

These were the little filament tube ends. Turned and threaded. $$ 

Got the X-Y portion off


Getting there... 

The single linear bearing on one of the X axis rails was shot. The wider one is ok, but it's far too wide for a single extruder. I'll replace both with nicer bearings + holders. The Y-axis bearings seem ok. 

To do: 
  • Replace X axis bearing blocks with more standard ones with new, nicer bearings
  • Design and make a new single extruder X axis carriage plate.
  • Select extruder + hot end. Might use stock extruder + e3d v6 hot end
  • Replace bed plate with a square one (still aluminum). May not need this depending on how I mount the build surface.
  • Add a large AC heated bed + glass build surface.
  • Replace the flimsy lexan Z axis plate thing
  • Replace the reed switches with mechanical switches.
  • Add a standard control board. Put the screen/control interface where the old one was. Will need a relay for the AC bed. May need something fancy to drive the big Z axis stepper.
  • New x axis belt tensioner
  • Design and laser cut top cover and side covers. Maybe use magnets to hold them on


Sunday, January 19, 2020

Cubex Trio Revival Part 1

I saved a Cubify Cubex trio from the trash. This tri-extruder printer, and it's cheaper dual extruder but otherwise identical cousin "duo", were made by Cubify (a 3Dsystems brand) in 2013. The retail was ~$4000, which is squarely in the premium category of printers. It has a X-Y gantry with a Z bed that lowers as it prints.



It came with a custom controller, firmware, and software, three proprietary filament cartridges (1.75mm PLA), proprietary extruders and hotends, etc. They sponsored a lot of ads and fuss over this pre-launch. For $4000, people were probably expecting ultimaker level quality. But it turned out to have several major design flaws that made them basically useless as 3D printers. The motherboard would short, cartridges were unreliable and very expensive, jams common, poor bed frame design causing leveling problems, poor quality control, acrylic broke easily, max print speed 25mm/s, etc. I'll show some pics of other questionable design decisions below.

Here are some pics of the printer as I received it.



Missing controller, cartridges, cooling fans (which just blew down onto the build surface), build plate, and a few other things. First major design flaw I noticed is the fact that filament has to be pulled through about 5 feet of tubing that makes four 90 deg bends...even if that's teflon, that's still a lot of friction. I guess they were trying to keep all the filament contained inside the ~24" cube, but the filament routing is just dumb. The cable routing was actually pretty well done. Another pic of the routing:


I'm not sure what the weird acrylic box thing hanging off the two posts was for...maybe filament dribble? I threw it out. Once I figure out how to take the back wall plate off, I'll take those posts off, too.

Here's a pic of the x axis stepper on one side of the y axis gantry.


The little black nub sticking out slightly over the left x axis rail is a reed switch. They used these + little magnetic cylinders for limit switches on all of the axes. They're certainly more expensive than mechanical switches, and are inherently less repeatable than mechanical switches. Not really sure why they decided to use those.
Closer view of reed switch
Z axis reed switch removed

Magnet cylinder next to 12mm linear shaft
Here's a look a closer look at a corner of the base frame.


I guess they wanted to T off of one of the 12mm steel shafts, so they milled a hole in it...yeah, expensive and stupid. Here's a closer look at the bed + arms.

Let's attach a stepper to two linear shafts by milling flats in the
 shafts and drilling holes through them ...freakin' brilliant. *facepalm.
Not sure what the giant standoffs were for.

That lexan piece behind the Z stepper is milled. Looks extraordinarily expensive and not very rigid. 


The bed's aluminum A arm is supported by two linear rails + bearings at the back of the printer, and moves up and down with a single lead screw driven by a big NEMA23 stepper. This means the bed is basically cantilevered, which isn't ideal, though not necessarily a bad thing if it's stiff enough. Many corexy/hypercube printers have cantilevered beds. There's a lot of slop in the linear bearings, though. I can tilt the end of it about +/-1/8" up and down, which is not ok. The bed has a bunch of cutouts for clearing filament cartridges, along with other things. Again, expensive...

I started taking the extruder assembly apart next.


One of the motors. Has a custom bevel gear on it.
Given the pattern on the front, it looks like these
had optical encoders....not sure why. 

Custom hot ends. I think one set of wires is a
thermistor, and the other a heater band. The
ceramic covering looks like it was paste or something. 

Hard to see, but there is a small stainless steel
heat break pressed into the aluminum.

View of the nozzle. 

One of the extruders. I'm guessing these had fans on the fronts.
Two part aluminum pined together. Bearing supported roller
that pressed filament into the extruder gear.

Clamp for the hot end.
X carriage plate. Laser or waterjet steel.

Fold down tabs for fan mounts (I think)

You can probably guess what I'm about to say...expensive. Jeez. I don't have close up shots of them, but even the X axis belt tension-ers were little aluminum cylinders that probably had about 15 lathe/milling operations. There are definitely simpler/better ways to design most of this stuff.

This X bearing was shot...it had ~2mm of lateral play.
Oh, did I mention all of the bearing blocks were custom machined?

You know what? I get why this thing cost $4000. There is a ton of custom fabrication work that had to go into it. But it really didn't have to be that way...there were clearly many stupid design decisions that caused it to be unreliable and way more expensive that it should have been.

There have been other open source conversions of cubex duos/trios. Reprap wiki has a decent guide. My basic plan at the moment:

  • Goals: maximize build volume, print quality and reliability at least as good as my wanhao i3 v2.1 printer
  • Replace X axis bearing blocks with more standard ones with new bearings
  • Design and make a new single extruder X axis carriage plate. These two things should add about 2 inches of X travel. 
  • The extruder design seems decent, so I might use one of them. But I might also replace it. 
  • Add e3d v6 hot end
  • Replace bed plate with a square one (still aluminum). May not need this depending on how I mount the build surface. 
  • Add a large AC heated bed + glass build surface. 
  • Replace the flimsy lexan Z axis plate thing
  • Remove the filament routing tubes
  • Replace the reed switches with mechanical switches. 
  • Add a standard control board. Put the screen/control interface where the old one was. Will need a relay for the AC bed. May need something fancy to drive the big Z axis stepper. 
  • New x axis belt tensioner
  • Design and laser cut top cover and side covers. Maybe use magnets to hold them on. 
Possible other changes:
  • Replace the NEMA23 with two NEMA 17's, one on each side of the build plate. This would probably help with stability. Common in larger corexy printers. Another common thing to do is use belts instead of two motors. Not really sure why they used a NEMA23 anyways...seems way overkill. 
  • Maybe add a third Z linear shaft. Depends if replacing bearings helps eliminate the slop
  • Might change the X rails to one on top of the other instead of side by side. This is more versatile for extruders/hot ends and might save about an inch in y travel. Will likely do this if the Y axis bearings are also shot. 
  • Design/make a tool changer to change out heads. 

No idea of time frame on this. Might be awhile...

Wednesday, January 1, 2020

3D printing more things

I've been printing stuff for work and fun recently.


Sharkenbear, or "Bark" as I like to call it. I tried Cura's adaptive layer method with these settings: 0.175 primary layer thickness, with a max variation of 0.075, results in a min of 0.1 and max of 0.25. This causes some off-nominal layer blobs because the coast and extra prime settings for pressure compensation don't change, but not too much. You can tell where it switched layer thicknesses by the shiney-ness changes. Managed to resolve the teeth, which is pretty cool. I had to print some extra fins from another shark model and glue them on because three fins came off with the support removal. Removing the supports from inside the mouths and under the toes was a huge pain, too.


I designed and printed some horseshoe name plates for a horse barn. First time (successfully) switching filaments mid print. The cura plugin for pause at height or filament change don't seem to work well with the i3, so I followed the instructions in this post: https://3dprinterwiki.info/duplicatori3/pause-at-layer-height/ . It was pretty simple to modify the gcode.


I designed and printed this for work, can't really say what it is. Made from three pieces glued together. Too much extra prime on the long bit, so I had to sand the seam down.

I'm currently printing a new x-axis belt tensioner. Hopefully this one works better than the previous ones I've tried. The previous ones all had little nubs that the belt wrapped around; the problem is that those nubs always shear off, even if printed at 100% infill. They just aren't large enough to handle the belt tension. This one has a much larger nub/hub thing. I'm not too sure that the tightening ratchet thing will work, but I can always use zip ties if it doesn't.
UPDATE (Jan 2020): It works much better. I tried using a button head screw + locknut for the ratching knob first, but the hex stripped. Tried to use a screw extractor to get the screw out, but then the hex holding the locknut in stripped. I had to drill a couple holes near the hex nut in order to hold it with pliers, then use the screw extractor to get the screw out. I used a socket head cap screw (bigger hex) after that, worked much better. The belt seemed to be held in place fine without zip ties, but I added them anyways. I then re-leveled the Z axis and lubed all the bearings and lead screws. I haven't printed anything yet, but it should have less X axis ghosting now.

Friday, December 27, 2019

Selling my compute cluster. Interested?

I'm selling the mini HPC cluster. The details of its creation and iterations are in this blog, but final specs are:
  • 5 nodes, 10 processors
  • 108 cores, 216 threads at 3+GHz each
  • 320 GB of RAM
  • Headnode: ASUS Z10PE-D8, 2x Xeon E5-2690V4 ES, 8x8GB 2Rx8 PC4-19200 ECC RDIMMs, 500GB Samsung 960 Evo NVMe, 2x 3TB HDD in RAID1, 480GB SSD, GTX Titan, CX354A FDR IB HCA. 
  • Compute nodes: Supermicro 6027TR-HTR, which has 4x identical nodes: 2x E5-2690v2, 8x8GB dual rank PC3-14900R ECC RDIMMs, 120GB SSD, CX354A FDR IB HCA 
  • Mellanox SX6005 FDR switch: 12 ports at 56 Gbit/s 
  • 2x 8 port unmanaged 1Gbe switches, one for IPMI, one for intranet 
  • Riello UPS: 3300VA, 2300W 
  • APC NetShelter CX Soundproof Server Cabinet with custom, automatic heat extraction system 
  • All cables
  • Working CentOS 7, OpenFOAM, python, OpenMPI, SLURM installations
3D printer not included

I know roughly what I could part it out for, but I'd like to try to find a buyer who would want to use it as a cluster. 

Asking price: $7k OBO


Been busy...

Back stateside again. Still very limited on room, though, so hobby progress has been limited.

Got the 3D printer recalibrated and set up on a shelf in the garage.

Wanhao i3 V2.1
Moved the filament spool off the top to the side. Bought a 16x16" tile for it to sit on, perfect size. Smoke alarm taped to the underside of the next shelf up (top left of picture). The filament dryer is the same one I had in England, so I have a 110V-220V power adapter sitting behind it. I found the same one in the US but for 110V power on eBay for $39 ("Rosewill" brand here), and I bought it so I can ditch the giant power adapter. The clear plastic cylinder parts should be the same, so I can extend it to hold 3-4 spools, which is nice. Printed an XYZ calibration cube and benchy first, then a new spool holder since the green one was on its last legs. Currently printing some wall mount holders for remotes for new ceiling fans we bought my mother in law for Christmas (guess who gets to install them...). 3D printer to-do: replace X belt and add belt tensioner.

I've been mentoring FloridaTech's Base11 space challenge team (Florida Tech Rocketry, FTR). The goal is to be the first university team to launch a liquid bipropellant rocket to space. I've been teaching them fluid systems analysis, fluid systems component selection, CFD, structural analysis, thermal analysis, basic design process, etc etc etc. They have a pretty solid preliminary rocket design and detailed engine and test stand design now. FIT promised to fund the whole thing, but you know how that goes...so currently looking at other funding options.

I've also been spending a lot of time over the past couple years working research contracts for various aerospace companies, most of them slosh CFD or slosh testing related. FIT has a large linear stage capable of shaking full scale spacecraft tanks, and we've designed and are fabricating a second one now. We got about half way through a NASA spacecraft diaphragm tank test program before realizing we'd need a linear stage capable of much higher frequency excitation than the current one , or anyone has as far as I know...I mean, I guess there are vibration tables, but the excitation amplitude on those is tiny. The new linear stage should be capable of shaking 8000lb tanks at 6 Hz over ~4mm, which is kinda terrifying. Currently finishing fabrication on 1/5 scale upper stage propellant tank simulators (for a company that's making a rocket named after a planet/people in the star trek universe). Slosh testing will start in about a month on those. My advisor and I wrote (so basically I wrote...) a proposal for another NASA slosh research project that got approved, so that's probably coming March-ish. I'm leading about 3 grad students and 4 undergrads working on these and some other aerospace/propulsion related projects.

Busy busy. So even though most of this blog is about my hobbies and not-rocket stuff, I am doing a lot of "rocket science", though I should have foreseen I wouldn't be at "MIT" for ever. Kinda dumb naming the blog that, oh well...live and learn.

As I tell the FTR team: "Skip all your classes, build rockets".

Thursday, February 21, 2019

OpenBSD and growfs: growing a partition

I didn't notice until recently, but the automatic partitioning scheme I used during installation left about half of the volume unused. I decided I want to add all of that space to my /home partition. If you have more than two partitions, e.g. root and swap, adding space to a partition that isn't the last is almost impossible without reinstalling. Luckily, and probably by design, /home is the last partition on the disklabel, so this should be simple.

First, backup all of your files. If your disk is sd0, run: disklabel sd0 . Compute how much space you have (units are sectors, which are 512 bytes) between the end of the last partition (probably /home) and the end of the volume. Now compute the new total size of the partition. Write those numbers down. Note the letter of the last partition, e.g. sd0k. Make sure nothing is running in the /home directory. cd to /, then run umount /home or umount /dev/sd0k (where k is the letter of your last partition). You may have to use the -f option to force it to unmount. Now run disklabel -E sd0 . This opens the interactive disklabel editor. Type "c" and enter (you can also use "m" instead of "c", see the man pages). It will show you the maximum size, which you can type in, or you can type in how much ever you want to grow the partition with a + number of sectors. Check the numbers it gives against what you calculated: the number it gives should be close, but slightly smaller. After that, type "q", enter, "yes", enter. That will exit the interactive editor and save changes. Now do: growfs sd0k . This will grow the filesystem to the size of the partition. Next, check the partition: fsck /dev/sd0k . Let this run until it's finished. Now mount the partition again: mount /dev/sd0k /home . Make sure your files are still there. Run disklabel sd0 one more time just to check. That's it!

Note: These steps works just fine for partitions on an encrypted volume: that's how mine is setup.

Unfortunately, there isn't an easy tool for shrinking partitions.

Links: 1 2 3