Introduction: Team Allspark Printer

DIY Instructable. Following the guide below to build the Allstark Printer.


To build the Allspark printer, you will need the following materials:

  • 12 V Switch Power Supply
  • Aokin 3D Printer Controller Kit that includes: Arduino RepRap, RAMPS 1.4 + Mega 2560 Board, LCD 12864 Graphic Smart Display with Adapter
  • 3 12V 1.5A Stepper Motors
  • 3 DRV8825 Stepper Motor Drivers
  • 4 Mechanical End-Stop Limit Switches
  • 100 ml Plastic Syringe
  • 6mm Width Timing Belt 6mm Width
  • 4pcs 20 Teeth 5mm Bore Belt Pulley Wheel
  • 4pcs Idler for Belt
  • 6 Linear Bearings (8 Mm inside diameter, 15 mm outside diameter, 24 mm length)
  • 4 16'' Case Hardened Chrome Linear Motion Rods
  • BIQU 400mm 8mm T8 Lead Screw Set
  • 10 1/4''x 1.5'', and 8 1/8'' x 3/4'' screws, 12 1/16''x 1/4'' screws. 1 1/8'' nut
  • 2 sheets of 20''x 20'' 1/4'' Plywood Used for Laser Cuts
  • 28 inch length 1.5''x4'' 's
  • 6'' x 6'' 1/8'' Acrylic
  • 2, 2'' 5mm Aluminum rods
  • 2-3 Binder Clips Depending on Print (Optional)
  • Betty Crocker Whipped Icing Recommended

You will also need access to the following equipment and machinery:

  • Hot Glue Gun
  • Electric Drill
  • Misc. Screwdrivers
  • Hex Key Set
  • Laser Cutter (or Electric Hand Saw)
  • 3D Printer
  • Adjustable Clamps
  • Wood Glue
  • Staple Gun
  • Scissors
  • Dremel

Step 1: Bottom Axis Foundation

Using the 1/4'' plywood, laser cut a rectangle that is 17.5'' x 6'', to be used as the base of the axis structure. From the available 1.5x4's, cut two pieces that are 6'' in length using a band saw.

Next, two holes are to be drilled into the 1.5x4 pieces that will hold the linear rods. These rods will be held in by friction since the holes will be just big enough for the insertion of the rods. Drill the holes for the rods at a diameter 0.375'' in diameter and at a length of 0.5'' into the 6'' woodblocks. Drill two holes 0.5'' deep into each 6'' block as shown in the photos where the holes are 0.85'' away from both the vertical and horizontal.

Insert two ends of the 16'' rods into one of 6'' blocks with the newly drilled holes. Next slide down two linear bearings on to the rods, one on each rod. Connect the other end of the rods into the other drilled holes on the second 6'' block. Next, using 4 1/4'' wood screws, the 17.5'' x 6'' platform can be attached to the two blocks as shown in the photo with the 6'' sides of the platform flush with the 6'' side of the two blocks. Equalize and center the screws with respect to the 6'' blocks

Next, using a 3D printer, print the attached motor mount** file, stepper_mount.STL, that will house the stepper mount and allow it to attach to one of the 6'' blocks. This will require 2 1/8'' screws to attach the mount to the block and 4 more 1/8'' screws to attach the mount to the stepper motor.

Once the motor mount is printed, you can attach it with the motor inside in the middle of one of the insides of the 6'' blocks so that the motor shaft is pointing up. Slide one of the bore belt pulley wheels over the motor shaft and tighten with hex set.

Using the board of 1/4'' plywood, laser cut 6 1''x1'' squares. Once cut, glue them stacked on top of each other. Once set, drill a 0.2'' hole into the center of the newly formed block. Insert your 5mm 2'' rod into the hole, and attach the pully idlers to the rod at the same height as the pully wheel on the motor. Glue this newly formed rod and block component to the platform opposite of the motor as shown in the photo.

Next, take your belt and cut a piece that is 29'' long. Wrap the piece of the belt around the pulley wheel and the idler. Hot glue the two ends of the belt to make the belt taut and let it set. Use spring-loaded clips if necessary to keep belt together or staple the ends.

For the printed, first laser cut a 6''x6'' piece of 1/4'' plywood and acrylic. Next 3D print the print bed mount, printbed_mount.STL, that will rest on the linear bearings and connect the platform to the belt. Once printed, attach the mount to the wooden cut with 4 1/16'' x 1/4'' screws. Next, hot glue the mount on to the two linear bearings. Next, you can binder clip the acrylic cut to the top of the platform. These are the same clips used to hold graham crackers if desired to print on them.

**[Please note that the motor mount is not seen in these primary photos, but can be viewed in final design photos.]

Step 2: Building Up the Second Axis

Using a sheet of 1/4'' plywood, laser cut a nonconventional octagon to the dimensions shown in the photos above. Longest length being 17.5'' in the octagon. Also with the same wood, laser cut two rectangles that are 5.75'' x 6''.

Using the 1.5x4s, cut two pieces of wood that are 8'' in length that will hold two more linear rods for the other axis. These two pieces will thus be referred to as the 'vertical blocks'. In each vertical block, drill two 0.375'' diameter holes 0.5'' deep to hold the rods in place. One of the photos attached shows the location of these holes (1.25'' from the horizontal plane, and 0.65'' from the vertical side plane).

Attach the octagon cut piece to the bottom axis platform. To do so, screw in 4 1/4'' wood screws through the bottom of the octagon, through the 17.5'' platform, and into the 6'' horizontal blocks that currently hold two rods in them. Place the newly cut rectangles onto the octagon so that it forms a cross shape with the bottom axis structure and that the 6'' side is flush with the 6'' sides of the octagon. Wood glue these rectangles onto the octagon platform.

Insert two linear bearings on each of two new linear rods. Insert the rods into the 4 holes of the vertical blocks. Through the bottom of the octagon, attach the 8'' vertical blocks with your 1/4'' wood screws (two for each vertical block). Each screw goes through the bottom of the octagon, through the wood glued rectangles, and into the vertical blocks.

3D print another stepper motor mount. Once printed, using the same types of screws as before, attach the backside of one of the vertical blocks so that its motor shaft is protruding off the vertical side of the block by 3/4''. On the opposite vertical block drill a 0.2'' diameter hole 0.5'' deep on the side of the vertical block. This will hold the other aluminum rod with an attached idler. Make sure the idler is the same length and height protruding from the side of the vertical block as the motor shaft and wheel are. Cut a 29'' piece of belt and pull it over the idler and pulley wheel till it taunts, and glue its ends.

Print the "endstop_mounts.STL" files for the four endstops. Once printed, insert the endstops into the mounts and attach via screw or zip tie to the end of the rods. You should have an endstop for X min, X max, Y min, and Y max that sit on the end of the rods and on the inside of blocks holding the rods.

Step 3: Extrusion Holder

3D print the stl. files titled "Syringe_Holder.STL", "base2.STL" and "base_holder2.STL". These will help form the system to hold the last stepper motor and the syringe. The base2 print is one large part that rests over the 4 linear bearings, and the base_holder print is 4 separate pieces that attach the top pieces from below to enclose the bearings into this base. Attach the components around the bearing using 2 1/6'' screws around each bearing mount.

Cut the lead screw to the length of 6'' using a table saw or dremel.

Attach the lead screw coupler to the motor shaft and then attach the 6'' lead screw into the coupler. The motor and lead screw can now fit snuggly into the base2 print as shown in the photos. You can hot glue the base of the motor for more stability if needed.

Hot glue the syringe holder print around the 80 ml mark of the syringe. Once glued, insert the syringe with its holder into the hole of base2. Insert screws 2-4 1/4'' screws into the holes of the syringe mount so that it can attach to the base2 structure.

Print the file titled "syringe conn.STL". In the top of the syringe plunger, drill a 1/8'' small hole that will be used to attach the printed piece shown in the photo. This printed piece can be attached to copper nut on the lead screw and fit over the plunger head. Connect with the screw and nut.

Step 4: Electrical Components

The printer requires the use of an Arduino Mega, stepper motor drivers, and a Ramps 1.4 shield.

Connect the Ramps 1.4 over on top of the Arduino Mega using the correct pins. Insert the DRV8825 drivers as shown in the photo. One driver for X, one for Y, and one for the E0 extruder. The current limits for these drivers need to be set before operation. For the DRV8825 drivers, current Limit = VREF × 2. So, if you have a stepper motor rated for 1.5A as we did, you can set the current limit to 1.5A by setting the reference voltage to 0.75 V. To do so, get a voltmeter than can measure DC voltage. Connect the ramps 1.4 to the power supply and turn it on. Hold one end of the voltmeter on the potentiometer of the driver and one end on the driver's GND. See the reference voltage on the voltmeter and adjust the potentiometer until the value is at 0.75 V. Do this for each driver.

With the power supply off, connect the motors to the ramps shield via the included wire sets. In our case, blue to 2B, red to 2A, green to 1A, and black for 1B. Also, connect the 4 end stops into the end stops pins, in the order of Xmin, Xmax, Ymin, Ymax. The USB connector is eventually connected to a laptop via a USB port when ready. The power supply can be connected to Ramps 1.4 shield via its +V & -V output wires. For safety, it is recommended for the power supply plug to be connected to a surge protector to act as an emergency switch.

3D Print the file "Single_part_Case_1.STL" which is the mount for the 12864 LCD Full Graphic Smart Display. After printing slide the LCD display into the mount from the backside and screw the top holes in using 2 1/8'' screws. Hot glue the LCD mount into the corner of the printer for display.

Step 5: Firmware and G-code Generation

To operate the printer you will need the following software: Arduino Software (IDE), Repetier Host, and Slic3r. You can find free downloads for these online.

Open up IDE software and download the attached Marline firmware file called "Marlin_DRV8825.ino" associated with this printer. Already included in the .ino file are the changes needed to make for the printer to work. The major changes to double-check are the following lines of code in the configuration.h tab:

[These are not in the same order as they appear in the configuration file and are only posted here for reference purposes]

*///#define PREVENT_COLD_EXTRUSION (Changed to Comment)

#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.

#define X_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

#define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

#define X_DRIVER_TYPE DRV8825

#define Y_DRIVER_TYPE DRV8825

#define E0_DRIVER_TYPE DRV8825


Once downloaded and checked, upload the file to your Arduino Mega making sure you use the correct associated USB port in the settings tabs. It will say "Done Uploading" once complete. Open up the Repetier Host. Go to Print settings and change the settings in the "Connection" and "Dimension" tab. The included photo show you what values work with the All Spark printer. Next, open up the Slic3r configuration settings. For print settings, change the appropriate values according to the attached photos involving things such as print speed and layer heights.

Included in the attachments for this instructable are the G-code files for two prints. One for a longhorn perimeter print, and one for a perimeter print of the letters "UT". The longhorn code is generated to run a two-layer print while the UT letter print is a single layer. The G-code has temperature settings de-activated and code at the end of the print to return to the end stop and disable motor functions. The LCD during the print will tell you when the printer is running and the coordinates in terms of X and Y of the print head.

To print your own design, simply upload a .STL file, make sure the Slic3r settings are intact, and then click "slice with Slic3r" to generate your G-code. Go into the G-code and make sure the temp settings are changed to comments so the print avoids them. To run the print, click the red "Connect" button in Repetier Host, check the log for any waiting commands, and once "idle" you can click run to start the print. Click the "Emergency Stop" button in the upper right to automatically stop the motors and halt the print. We recommend using the settings described here with Betty Crocker Whipped icing. Now you are all set to start printing on your own! Good luck from Team Allspark!