I've finally gotten this collection of aluminum and wires to the point
where I want to write a blog article about it. This homebrew 3D
printer is the result of about 9 months of gradual development, and
this is its story.

Sadly, I don't have pictures handy of the printer through the
months. I think I've got a few on my phone, so if I unearth anything
I'll update this post.

The early days: June 2017 - July 2017

The printer started off as a "Raiscube R2" kit I bought from Gearbest
(I didn't know any better at the time, sue me). It was basically a
knockoff Anet A8 - and I don't mean that in the sense of "the A8 is a
knockoff of the Prusa", this was actually a shitty cheap version of
the A8. That should give you an idea of what we were working with -
8mm acrylic frame (which is actually still in my closet for unknown
reasons) held together by M3 machine screws and M8 threaded
rod. Standard RepRap Mendel kinematics (Cartesian XZ-head) and a
imitation MK8 extruder.

The machine as delivered had no end of issues. The frame had some
significant flex to it (as expected from acrylic). I know people
usually solve that with Z-braces, but I didn't have the threaded rods
necessary. In any case, it wasn't a significant problem overall. The
extruder was, as mentioned, a Mk8-style thing, and the cooling fan for
its cold side was connected to the extrudate coolers, so it wasn't
cooling the extruder before the part fan kicked on. This, again, was
actually not that relevant due to the extruder's PTFE liner, so those
were really just nit-picks.

Now into the real problems: The machine had no Y endstop, so I had to
design a Y-endstop mount myself. The Z endstop was unreliable. There
were no provisions for autoleveling. The print head weighed a million
pounds (direct drive, bent steel, lots of fans). The stock electronics
were a Melzi board (so questionable heated bed controller and no
provisions for expansion). The stock PSU was a ~20A LED power supply
with exceedingly questionable output regulation. The printed parts
were all bright yellow. The supplied filament was so full of voids
printing it sounded like popcorn.

And to top it off, when I was assembling the provided spool holder,
one of the acrylic bits broke and cut the hell out of my hand. I still
use that spool holder.

The first improvements - July 2017 - September 2017

Obviously, I don't like it when things don't work well, so I set to
work improving the machine. One of the first things I designed to be
3d-printed was that Y axis endstop mount. I bought an external FET for
the heated bed (thankfully, the heated bed wires on that machine are
soldered on and it doesn't have the same connector problem as the
A8). I flashed whatever the current Marlin was onto the controller (I
wanna say it was 1.0.x to 1.1.x at the time (it currently runs 1.9.1))
- in short, I did everything the /r/3dprinting folks say you should do
to that sort of cheap kit.

Still, that wasn't enough. The extruder was questionable at best and I
was limited by the kinematics to about 60 mm/s and low accelerations
before layer shifts started to become an issue. The next major upgrade
was a real E3Dv6 hot end, and that started my relationship with bowden
extruders. That hot end, for reference, cost about a quarter of what
the entire printer ran me. That worked for a while as I went through
several permutations of the X axis carriage. Eventually, I got the
silly idea to attempt dual extrusion and bought a knockoff v6 for the
secondary extruder. That did not work.

The 3030 frame, version 1 (CoreXY) - September 2017 - January 2018

The next major change in the printer happened a few months later. I
managed to obtain a large amount of 3030 profile extrusion for free
and decided to rebuild the whole thing as a CoreXY. I headed over to
the machine shop and cut three sets of four rails to form a large
cube, and designed the motion components in Solidworks. The first
iteration had issues. The Z axis was supported on the leftover
threaded rods from the original frame; they sagged. The extruders
(still holding out hope for dual extrusion at this point) were clamped
between the two rods of the horizontal X axis. Huge mistake. The
clamping was unreliable and put outward forces on the X axis rods
causing their linear bushings to jam (at some point I had moved over
to Igus bushings and TMC2100 drivers to mitigate noise, but I don't
remember exactly where in the timeline that ends up), and the belt
mounting system I had devised made tensioning impossible.

I did have a few good ideas with that first build, however. The 3030
frame was rock-solid and the gantry system eliminated the Y-axis layer
shifts I'd been suffering... or so I thought. Turns out that rather
than the kinematics being the cause there it was actually a bad
stepper motor. Thankfully, the new frame only used one motor for the Z
axis so I had a spare.

At the same time, I switched the electronics over to RAMPS after
realizing that it literally costs $7 because I already had an Arduino
Mega.

I abandoned the CoreXY system quickly. It's a good idea but the
lengths of the belt required make it impractical with poor tensioning
and cheap belts. I put the second extruder on hold for a bit and
converted the system to a dual-motor Y axis and Cartesian
XY-head. That configuration allowed me to limp the printer along for a
while, but it was still using that crappy X carriage. I'm not quite
sure but I'm pretty certain that I was still using that X carriage by
the time we moved in late March - the timeline doesn't work any other
way but I don't really remember it like that... I guess the old X
carriage still sitting next to the printer in its current state
confirms that one.

After a brief stint of experiments with the clamping horizontal X
axis, I next decided that the X carriage needed to go and went back to
a vertical X axis design so I could reuse X axis components from
before. I designed a new set of brackets and connectors with the
intent to a) minimize printing time (the horizontal X system was
really falling apart) and also minimize weight of the Y axis
(because I still thought that mattered), with the result that they
were inaccurate (due to the crappy motion system installed on the
printer at the time) and flimsy (due to the poor design constraints).

Somewhere along here I re-CAD the entire thing in Fusion 360.

The 3030 frame, version 4 (3030 rails) - June 2018 - July 2018

Unfortunately, that vertical X axis was flimsy, but I didn't recognize
it at the time and figured the linear rods were the problem and
decided to rid myself of them entirely. I designed a whole new linear
motion system based around running bearings directly on the 3030 and
printed it on the robotics team's TAZ 6 in black PETG. This caused
complaints from the robotics people, to which I pointed out that it
wasn't the largest waste of filament we'd had that year (long story)...

This was right at the end of the school year, so I really only had one
chance at a lot of these parts... they did not all fit. The Y axis
motor mounts and bearings were particularly problematic and one of
them broke on the way in (but was salvageable). The rest of it managed
to work surprisingly okay. Everything was looking great, print quality
improved dramatically, and the only (very minor) hitch was that the
new extruder fan shroud made a high-pitched whistling noise whenever
the fan was turned on.

Somewhere along here the printer gets a spare ATX power supply to
replace the stock supply. This is the furthest from the kit the
printer gets, with the only stock parts being two stepper drivers, the
Z axis rods and leadscrew, the bed, and three stepper motors. I also
added a couple of 10W COB LEDs for a better work light, powered by the
old power supply (which works just fine for 2A worth of LEDs).

The 3030-based system, however, gums up and quits working. The printer
sits idle for a while until I have an epiphany - the linear-rod
vertical X axis build sucked because the brackets holding the X axis
on were garbage. Those ridiculously overbuilt red pyramid things were
the next step. Those were among the last parts built by the 3030
linear motion system, and they've got obvious backlash and
inconsistencies. Thankfully, they fit and work great. I busted out the
old rods and bushings and put the vertical X setup back together with
some significantly more rigid connections - and all of the print
quality problems just kind of go away.

The other big change was I decided to ditch dual extrusion for
good. It doesn't work and nobody really makes models for it except as
a gimmick, and soluble supports are expensive and not really useful
for the work I do. I decided with this version that the focus should be on
high-print-quality single extruder, and it was an amazing
decision. With the motion system working, I was free to focus on the
other quality of life features that make the printer easy to use and
not a manual-intervention riddled chore such as endstops, cooling, and
bed leveling. The most recent additions are that X axis cable chain
and the Raspberry Pi/camera controller. (I need to print a new camera
mount, this one sucks)

The future of the machine

So that's how the printer got to where it is today. It produces some
perfectly respectable output (sorry for junk lighting):

It's not perfect, but I'm pretty sure I know the main issue - the
spool holder's not able to deal with the new 1kg spool I just picked
up from Atomic. New spool holder's on the list.

There are still a number of things that are going to happen to the
printer in the future. It's not static by any means at this
point. Some of the improvements I've got planned includes better cable
management (lol), better mounting for the RPi/camera, possibly a
rebuild of the Z axis to put the bed closer to the front of the
machine so I can put the extruder on the front side (you may have
noticed that the extruder is on the +Y side of the X axis, contrary to
how most Prusa-style printers are arranged - this is because the bed
is biased towards the back of the machine and I can access more bed
area with it on that way), better mounting of some of the electrical
components such as the cooling fan I've got pointed at the RAMPS board
(those TMC2100s are some serious flamethrowers) - the list goes on.

And, of course, the machine isn't issue-free just yet either. The
print cooling still isn't where I want it - I'm using a i3-style
radial fan mount and I don't think it puts the air in the right place,
and the ATX supply can't keep up on the 5V bus for some reason which
is causing the RPi to constantly complain about undervoltage. I've got
some 600W 12/5 supplies from a HP rack-mount server I'm thinking of
adapting to replace the ATX supply but the fan noise on them is
something else. I definitely should do something to consolidate the
power systems - there are currently 3 power supplies on here: one 750W
ATX supply for the main 12V bus (totally overkill), a 12V 7A power
supply from an old monitor for the lights (probably redundant), and a
5V 2A phone charger for the RPi (definitely redundant as soon as I
figure out the 5V bus).

But for now, it's working, it's reliable, and the output is decent -
and I still don't think I've put a Prusa i3's worth of money into this
thing (though I'm probably getting close by now).