work selfie

The Wildbot 3D Printer

Why the Wildbot Exists

the wildbot 3d printer

My first 3d printer (pictured to the right) was a $145 ebay special made of plywood so thing it was almost cardboard. As I learned more about the hobby, I improved the printer until I was getting pretty great prints. Eventually, I felt my print quality was limited by the machine and there were no more upgrades that would be an appreciable difference.

I decided to buy a higher quality printer and started looking at what was available. At the time, there were no retail 3d printers that didn't have major design flaws. Usually they were built from parts and materials that weren't suited to the job. Many had extruders zip-tied to linear bearings that rode on roundstock that would sag in the middle. They also had over-constrained build surfaces with a height adjustment in each of the four corners when basic geometry tells us that three points define a plane.

As a result, I decided to build my own. I settled on the D-bot but as I read through the build guide, I came upon more and more design flaws and coming up with my own solution to each one. The Wildbot was the end result.

Parts List

  • THK Linear Rails
  • Rino Ondrives 30:1 Wormdrive Gearbox
  • Vexta Stepper Motor
  • Duet2 Wifi
  • Crydom Opto22 SSR
  • E3D Titan Aero
  • Noctua 4010 Axial Fan
3d printer made of cheap plywood
My very first 3d printer came as a box of loose parts and no instructions. Fun times.


the x-carriage for the wildbot

Pictured here you can see how I designed the X-carriage in Fusion360 and how the X-carriage came out in the end. I had to change the way I was planning on securing the belts to the carriage but other than that, the design worked like a charm.

I ordered the front and back plates cut form 16ga Stainless from Innovative Laser and Design in Lafayette, GA. I highly recommend them if you need some parts made. They're super friendly and helpful even when you just have a couple small jobs. Great people to work with.

The top part that mounts to the linear bearing I machined myself out of aluminum on a manual mill. With these style linear rails, it's important to mount your bearing to something rigid. That's because, in order to reduce backlash, you want to apply some preload to the bearings. Basically, you want to slightly flex the carriage to eliminate clearance between the balls and the rail.

The Print Bed

the bed sits on ball screws

The build plate is 1/4"(6mm) mic-6 cast aluminum tooling plate. In the center and to each side, I drilled and chamfered holds on the bottom. Ball headed screws are embedded in blocks of PTFE and the chamfered holes of the bed rest on the heads. In the front-center, I have a micrometer head to adjust the roll(rotation along the X-axis) of the bed. It allows me to make extremely fine adjustments. I machined a small bit of PTFE that attaches to the spindle and holds a ball bearing to minimize contact.

bed roll adjuster

Having the bed resting on top of supports instead of having bolts running through it allows the bed to expand as it heats up without causing it to warp. The PTFE blocks prevent the heat from the bed from transferring to the frame and causing it to deform.

It also means that to level/tram the bed, I simply set my Z-endstop by moving the nozzle just over the left-hand ball head screw (the reference) and, using a feeler gauge between the nozzle and the print surface, adjust the endstop until the nozzle is 0.4mm above the print surface. Then, I move the nozzle over the right-hand ball head screw (pitch adjuster) and adjust it until the nozzle is 0.4mm above the print surface. Finally, I move the nozzle over to the front and center of the bed which is where the micromenter head (roll adjuster) is located and adjust it until the nozzle is 0.4mm above the print surface.

This process only takes a couple minutes and, since three points define a plane, means the nozzle will always be the right distance from the print surface at any point on the bed.

wiring schematic for the print bed heater

Attached to the bottom of the aluminum plate is a 110VAC silicone heater. The heater is controlled by an Opto22 Solid-State Relay. Clamped mechanically to the aluminum is a thermal cutoff in case the SSR fails (they tend to fail shorted).

This is why it's important to buy a good quality SSR from a reputable brand. There are SSRs available on Amazon for $8 with counterfeit UL logos that could burn your house down. I would be suspicious of any SSR that cost under $20. I prefer to stick to brands that I'm familiar with as an industrial maintenance technician. Crydom (Opto22), Omron, Siemens, Schneider Electric, Dayton, these are all trustworthy brands.

The Control Panel

Before I installed the PanelDue touchscreen, troubleshooting my printer often required walking back and forth from my computer to the printer to issue commands. As a result, I decided to install pushbuttons that would execute the most common ones. The Duet2 controllers have an expansion header with extra endstop pins. I was able to wire the buttons to short those pins to GND and then set up the firmware to execute a set of commands when it detected a short to GND on one of those pins.


  • Home All
  • Disable Steppers
  • Pause Print
  • *Reset
  • Power On

Changes to the Firmware

; Input/Output
M581 E2 S1 T1 C1 ; Pause – PIN4
M581 E3 S1 T2 C0 ; ATX On – PIN9
M581 E5 S1 T3 C0 ; Disable Steppers – PIN19
M581 E4 S1 T4 C0 ; Home All – PIN14

Macro Files

; trigger2.g
M80 ; ATX ON

M400 ; Finish Current Moves
M18 ; Disable Steppers

M400 ; Finish current moves
G28 ; Home all axes

You can learn more about how I did it on the Duet Wiki, where I was asked to post instructions for setting up external triggers.

Wildbot control panel

Powering the Wildbot

Relay board I built for the paneldue

I used an EVGA 500W ATX Power Supply to power the Wildbot. I was able to break out the 5VSB (standby) and use that to power the Duet. This meant I could power the printer on or off remotely by sending a M80 or M81 command. Though, once I installed the PanelDue touchscreen, I found that it stayed powered all the time, too. To resolve this, I installed a relay between the Duet and the PanelDue that only sent the 5V to the PanelDue when the 12V from the PSU was present.

I put the PSU, SSR, and any 120VAC connections in a metal enclosure that could be grounded, seperate from the Duet and any 12VDC connections. This made it safer for me to tinker with the connections on the Duet when necessary.

You can tell from the picture to the right that I'm a maintenance man, not an electrician. But you know what, wire ducting is stupid. There, I said it.

Power supply for the Wildbot

Belt-Lifted Z-Axis

30:1 gearbox and shaft to lift the  z-axis

The Rino gearbox accepts an 8mm diameter shaft with a 2mm key. I ordered a suitable shaft and keystock from Mcmaster-Carr (man, I love MMC). I was unable to locate drive pulleys that were keyed (how can you sell it as a "drive pulley" if it's not keyed?) so I had to settle for dilling a hole through the side of of the pulleys and using a roll pin to keep it from turning on the shaft. Pillowblock bearings support the shaft at each end.

The bed is supported by a T-shaped assembly of 2040 extrusions that ride on THK linear rails. I machined pieces of aluminum to attach the extrusions to the carriages of the linear rails and to the belt clamps that I designed and printed in PETG. For idle pulleys, I stacked some printed bushings and two 608 bearings on a shoulder bolt. Because the Z-Axis moves slowly and never during print moves (no mesh compensation is needed on the Wildbot), it's not necessary for these belts to be very tight so I didn't bother with a tensioner.