DIY 3D Printer v2: The Ulticloner



Last year, I built a 3D printer out of salvaged parts (mostly), a few original parts that I cut with CNC, and the minimum parts that I ordered online.

My goal for the first version of the printer was that I wanted to make a 3D printer with at least the capability to print (regardless of print quality) parts to build a proper 3D printer. Once the second 3D printer was functional I would re-print the parts in proper quality.

At least that was the goal as some things changed:

  • The first version of the printer proved to be good enough and the print quality high enough that the need for a better version was not as strong as I originally thought.
  • There were, along the way, many opportunities to tinker with the printer and enhance the quality, speed and even maximum print volume of the printer that kept me from taking the leap
  • The original vision of printing the plastic parts of a Prusa clone were not as tempting as before as I was now enamored with the current axis layout (Head moves on the X, Y axis and table moves on the Z axis). Moving to a layout that moves the table on the Y axis looked like a step back to me.

Ultimately, some unsolvable problems that creeped up necessitated a rebuild of the original printer. I would either rewire the whole thing and solve some friction problems or disassemble the printer to make a new one.


The layout I was using on my first printer is currently best represented by the Ultimaker Printers. The mechanical beauty of the rotating and sliding axes was mesmerizing and the simplicity of the design seemed like a good start point.

On the beginning I downloaded the blueprints of the original Ultimaker but as this was intended for a laser cutter I really never used them.

Then I found a project called Ultifaker. The Author of the project includes Solidworks files and partlists.


I used the Ultifaker Solidworks files as a template for the head gantry assembly, to make sure all measurements are Ultimaker compatible. My goal for the new version of the printer would be to make a 40X40X50 printer (maximum printable volume of around 30X30X30) that is compatible with the Ultimaker gantry assembly, uses Arduino+Ramps 1.4 boards, the RepRapDiscountLCD+SD, and Marlin firmware. And of course, I wanted it to be a repeatable project, with parts that I can either make myself or get from the market. No more salvaged parts.

As a side goal, I wanted to design the printer on my computer with as much detail as possible. I wanted to eliminate as many extra steps as possible and build an IKEA like kit that would take a few hours and only basic tools to assemble. Of course, if you are building just one copy, there are bound to be fixes that would be included in the updated designs but not worth the trouble of starting over. With that in mind, I wanted to avoid as much retrofitting as possible through the magic of “planning”.



The material I decided to use for the “enclosure” is called a sandwich of two thin sheets of Aluminum with a plastic core called DiBond (also available under other brandnames). It is (as far as I know) the same material that the latest Ultimaker models use. It is a rigid material, light, ideal for printing and cutting with CNC. It has a 4mm thickness and through experimentation you can cut grooves to create corners. By digging less than 4mm deep I also created exact circular millings that the ball bearings of the axes snapped into. This was part of my vision for a multipurpose single sheet of material that would become the enclosure plus as many extra parts as it can be.



The assembly of the box went as planned (mostly) with a few adaptations noted and designs updated (in case I build a second printer).

WP_20180821_22_45_08_ProThere are notches on the backplate to accommodate the stepper motors, the PC-PSU and the Arduino/Ramps boards. Unfortunately I never got to plan for wiring and this is something that I will maybe address at some point.

WP_20180821_22_49_25_ProThe head gantry I made has a few deviations from the Ultimaker specs but I created custom parts to accommodate for my changes. I also remodeled an E3D carriage to my  updated specs so as to use my current E3D clone printer head.

Currently I don’t have a heated table and I am not 100% satisfied with how I level the table but for now I will concentrate on finding out the limits of the printer in its current form

Compact design with minimal footprint



Headless operation with the use of SD cards. LED lightstrip with ON/OFF switch
Huge printing volume (27 X 27 X 27cm) with regards to the external dimensions (40 X 40 X 48cm)


A PC power supply unit still seems to be the best choice 



Apart from the aesthetic element, there are many ways that the new version of the printer is better than the first version:

  • Speed: The layout of the axes in this printer has major advantage speed-wise. The suspended weight of each axis is surprisingly small and is also equal in both axes. There is also no lateral movement of the printed object, just the minimal Z. This means that the speed and the change of momentum that this layout is capable of is absolutely stunning.
  • Noise: Although I never planned for silent operation and some choices I made are clearly going against designing for noise reduction, the minimal weight of the axes and the reduced power that feeds the stepper motors have resulted in a surprisingly silent machine.
  • Quality: There are definite improvements in print quality, with minimal vibrations on the X Y axes and perfect Z movement of the table. Still, I just started experimenting and I am far from optimizing quality to what it can achieve. (In the time of writing, I have not even connected the print cooling fans)
  • Reliability: Without changing anything major (and even before redoing the wires) the printer worked reliably without any surprises. This is in contrast with the previous version that was getting more and more unreliable and quirky every day.
  • Compact form: Although the printing volume is almost double (in each axis) the footprint of the printer is smaller than the previous version and in a more manageable package.
  • Upgradeability: The printing head can be replace by a 2 or even a 4 head one for the same printhead size. As far as I know, the Ramps 1.4 board supports up to 2 extruders so you would need to get an official Ultimaker board for more extruders.


This project was a good learning experience especially with regards to planning before doing. As far as the availability of parts does not jeopardize your plans, there are tremendous advantages in being patient and working out future problems in the designing phase rather than working out solutions on the spot.

I am happy with how the project turned out and I will stop tinkering with it as soon as I have nailed the speed/quality relation.

Now, let’s print something!

“McGyver” DIY 3D printer project


The birth of the project

Some months ago, I decided to try my skills with building my own 3D printer. How hard can it be?

No, really, how hard can it be? In fact, 3D printers are one of the best documented projects on the internet. There are full instructions, open source hardware and software and a huge community. It sounds scary but there is more than enough support to be found for everyone, from beginner to expert.

Too easy, mate!

You can buy every single part of a 3d printer and simply assemble it. You can buy them all as a kit, or you can spend a day on ebay or amazon and source them from various vendors, but it is really the same.

So I chose a different path.

There are projects around the internet that describe building a 3d printer from salvaged scanner and printer parts. I decided to try doing that and, if that worked well enough that I can use it to 3D print any parts (at whatever level of accuracy and quality) of the “next” printer, then I would call it a success.

Starting from zero knowledge

Having used a CNC router, I had basic knowledge of how a 3D printer works but visiting was an overwhelming experience: There are hundreds of different open source blueprints to follow and there is really no place to start figuring out what you will need. There is so much material that it’s actually confusing and it might discourage you at first.

Before deciding what project I would base my printer on, I used my experience with various machines and built a table that moves on the Z axis based on two screws. I CNCed 3 cogs and locked the two screws. 1


Next thing I did was find my old AGFA 1212U scanner. After disassembling the scanner I found that I could use it for the Y axis of movement by building a gantry and securing it on the scanner head.


I CNCed some more parts for the gantry bridge. Now I would need to actually start sourcing the electronics.

Prusa, Ramps, Marlin, J-head…

After sourcing numerous old printers and scanners from friends I was finally in possession of more than 4 stepper motors (the minimum amount I would need).

After researching, I concluded that the project that mostly resembled what I was trying to make was some sort of Prusa derivative. I have XYZ axes so I was looking for a Cartesian configuration which is the most common one. There are also Delta and Polar configurations but I would not suggest one of those for a beginner.

Most Cartesian printers have the Z axis moving the gantry up and down and Y moving the table. In this regard my printer mostly resembles an Ultimaker as I move the table up and down and the gantry on the Y axis. However, it was obvious to me that for the electronics and the software there was no difference at all. So I went ahead.

I did a search on e-bay and the results were surprisingly enlightening: The electronics are mostly sold as sets containing more or less everything you will need: The Arduino Mega 2560 board, the Ramps 1.4 board, 5 Pololu motor drivers and I would suggest getting a set that includes the LCD screen.

The Arduino Mega 2560 is the heart of the project.


You need the 2560 model and not a smaller one because it plugs directly to the Ramps board.

The Ramps 1.4 board is an open source board that converts the Arduino pins into a configuration that you can plug the motor drivers in.


There are 5 sockets for Pololu stepper motor drivers and you will use 4 of them if you make a single extruder printer.


The LCD screen that was included in my order contains an SD card reader that makes the Printer completely independent from a PC should the situation in your space require such a setup.


I also ordered a 1.75mm J-Head hot-end part. This should contain the hotend complete with a thermistor, a small fan for the tip of the head and some tube for the filament.


The filament that I was going to use was PLA. It is a biodegradable thermoplastic with very good characteristics and very easy to use for beginners. It is also not so prone to warping so you won’t need a heated bed (more on that later).

Hooking up the electronics

After the Arduino arrived I started hooking up the electronics. So far I had only the salvaged steppers to use. These were of various makes and with extra gearing. As they also came with their metal rods and their belts I decided to use them for the first iteration of the printer. That meant I would need to do some calculations for the steps per mm.

There go the 5 volts 😦

I salvaged a PC power supply to power the Arduino and Ramps boards. It needs both 5 volts for the electronics and 12 volts for the heating elements and the motors.

However, disaster struck as a momentary lapse of concentration on my part resulted in connecting an end-stop to the wrong pins. An easy mistake to make as I found out from a quick search on the internet. The usual result is a fried 5v regulator on the Arduino.

But luckily…

Although the 5v input on the Arduino was no longer working, the Arduino is quite happy with the 5v off of the USB input!

Software and firmware

In order for the Arduino/Ramps to work as the brains of the printer, you need to load it with the proper firmware. The firmware I decided to use is Marlin. You open the Marlin project in the Arduino SDK and then you need to manually edit values to configure it. The speed of the motors, the number of extruders, the type of endstops etc are all configured in the Marlin project. When using an LCD screen you would probably need to add some extra library from the internet to the project. When you make your edits you compile the project and upload it to the Arduino. You will do this again and again fixing errors and refining values.

The extruder incident

The extruder is the part of the printer that pushes filament to the hotend. I was going to use a Bowden type extruder, which is a motor mounted on a non moving part of the printer (and not on the moving head) and pushes filament into a tube.


The extruder assembly that I ordered never arrived so I tried to construct an extruder assembly by myself. As I found out the hard way, it is really not worth the effort. I reordered an extruder plus a proper Nema17 stepper motor, as I realized that the small salvaged steppers would never have enough power to push the filament into the tube.

When setting up and tuning the speed of the extruder motor, keep in mind that the motors WILL NOT MOVE unless you preheat the hotend! It can drive you crazy but there is a failsafe that will not let you push filament into a cold hotend and risk havoc! You may think that there is something wrong with your board or your stepper drivers, so, please, check if the temp on the head is proper.

Flat steppers vs Nema17

The salvaged steppers I got from the scanners had reduction gears and were really quiet. However, they were really finicky with voltage and they needed very fine tuning of the potentiometers on the Pololu drivers.

Unfortunately, after initial success with the flat steppers I started having layer shifting in my prints. After more fine tuning the shifting on the X axis disappeared completely and I only had occasional shifting on the Y axis.

I decided to swap the flat stepper with a proper industry standard Nema 17 stepper motor and the shifting in the Y axis disappeared completely.

My victory was short-lived as I now started having layer shifting on the X axis. It appears that the small motors are so sensitive to voltage fluctuations that mixing them with larger motors would never work.

So I swapped the last salvaged motor to a proper Nema17 one. Now everything seems to work ok and the accuracy is evidently better while I can print with much faster speeds.


On the left the first try of the #3Dbenchy model. On the right, after all motors were swapped.


SD versus USB

There is no consensus in the community on the SD vs USB debate. If you don’t have an LCD with an SD card then you are stuck with printing from the PC and if you can’t have a PC next to the printer, the SD card is maybe your best solution. However if you have both there are some thing to consider. The LCD+SD unit is connected to the Ramps board with 2 ribbon cables. I have twice witnessed my printer going crazy (and potentially self-destroying) while printing off an SD card. The most probable cause is that I placed the LCD unit with the ribbons too close to motor resulting in data corruption. Maybe this is something that you will find unacceptable or maybe it will never happen to you. Still, I am not comfortable with plugging and unplugging the card dozens of times every day.

On the other hand many people are not comfortable with PC that can randomly crash or reboot for updates. These are real concerns but I not enough for me to avoid the PC solution.

In fact I decided to make the most of it!

Netbook to the rescue

I have an old netbook that I regret every time I start it up. The battery is also completely dead now. It is however upgraded to the latest Win10 version so there’s that.

What I decided to do is use the netbook as a completely remote solution.

First, I downloaded the Arduino SDK from the Win10 store (yes you can find it there!) and moved the Arduino project to the netbook. This way, should there need to be any more fiddling with the Marlin firmware I will not need another PC, or to move the printer.

Then I downloaded Pronterface. This is an application that can control the printer, feed it with G-code files and give you some visual representation of what the current layer looks like.

I shared a folder on the network where I send the g-code files that I slice on my main PC (using CURA for the slicing).

I also installed TeamViewer and set it up to work locally.

Finally I installed the “IPCAM Lite” app from the Win10 store. IPCam Lite is an app that takes your laptop camera video and broadcasts it on the local network as an IP cam would do. This way I can use the IP cam viewer of my choice to have video of the printer on any device in my LAN, mobiles, tablets, PC etc.


And that’s about it. There are numerous improvements I want to make on the printer but as it is, I can trust it to print any object and work for hours without a hiccup without me having to be in the same room.








My Mini Arcade Cabinet for Sega Megadrive/Genesis



Having access to a cutting plotter by Elitron  ( and an Agfa Jeti plotter ( is a maker’s dream.

I decided to put my practical skills and my Lightwave experience to work and build the ultimate Mini Arcade Cabinet to house my recently restored Sega Megadrive.

I wanted to build a cabinet that would satisfy the following:

  1. Use a CRT screen for the ultimate Retro experience. I hooked up the MD on the 50 inch LCD and was appalled by the terrible square pixels. I decided to skip all the filtering and upscaling nonsense and go ahead with the true look.
  2. Use my Megadrive as it is with minimal destruction to its original form and function. It is, of course, moded with a 50/60 switch and a JAP/ENG switch. WP_20170121_18_11_02_Pro.jpg
  3. My Megadrive is a “high definition” model (one of the ones with the proper sound chip) ( and I wanted to use the front stereo headphone jack as the audio output.
  4. I wanted my Multitap adapter to be as user accessible as possible.
  5. I wanted to use original industry standard Arcade Stick and buttons.
  6. I wanted a single ON switch or just a single power plug to turn the thing on.
  7. I wanted everything to be included in the cabinet which should be as small as possible because I wanted my wife to accept its existence in our living room 🙂

I started out by finding a CRT screen. I already owned a Philips VS0080 monitor ( ) but it has seen better days. I sourced a couple of 15 inch TVs which were in much better condition but their PIN8 implementation in their SCART connector left a lot to be desired.


The Pin #8 in a SCART connector forces the TV to turn on and switch to AV (the external input) once it receives 5 or 12 volts (for 16/9 and 4/3 aspects respectively). This was essential to satisfy my #6 goal: You can’t have a true arcade cabinet if you need to press a couple of buttons on the front of the TV.

Now, my MD is fitted with a SCART cable (or retrofitted, damn if I can remember) but it simply does not send current to pin 8. There would have to be another source for the 12 volts. But I never got there because…

12 volts to PIN 8 would be my only option with TV #1 since it needed a button press to turn on and a second one to switch to AV. This TV always turns on to standby mode and the PIN8 signal does not force it to wake up. (It does switch it to AV but to 50Hz even when the signal is in 60Hz. Pressing the AV button fixes this but it still is two button presses). FAIL.

TV #2 completely FAILS to respond to any PIN8 voltage. To make matters worse, it doesn’t have an AV button on the box and you need the remote control. Nope.

So back to the Philips Monitor.


Taking the measurements of physical objects is not the easiest thing in the world especially when they are consumer products. The Philips monitor was reasonably square but the angles were still a problem. I started by drawing the perimeter of the monitor on a large foam board. It sort of worked but I wanted more precision. I gave up trying to put everything together in my mind and decided to make simplified models in Lightwave. MD cabinet.JPG

Once I was satisfied with the form of the cabinet I translated all the sides into 2D drawings taking into account how each of the sides connects. I also created the artwork for the sides and the marquee taking into account the colors of our living room. This was critical. Seriously. I opted to create an Atari style retro stripe pattern.WP_20170201_14_35_07_Pro.jpg

For the joystick panel I took into account the industry standard hole sizes for the buttons. Search for “HAPP joystick hole dimension diagram” and you shall find.


I then combined all the printed sides into a single drawing and added the cutting lines.

I had access to a spare piece of 5mm FOREX (foam sheet of PVC) which has excellent properties regarding printing, very lightweight and easy to post process with tools like a box-cutter etc. I originally planned to use 10mm but opted to glue together 3 sheets for the sides resulting in 15mm thickness. The bottom is 10mm and the top and back covers are a single 5mm thickness. (check a video of the cutting here:


FOREX is amazing to work with as you can get away with only using Hot Glue to put together the whole thing. I had several small scraps of 10mm FOREX that I could use as spacers and support fixtures. I just put a little hot glue and snapped the small piece into place. Some screws were also used for removable panels and support bars.WP_20170201_19_48_31_Pro.jpgFitting the monitor inside the cabinet was a matter of trial and error, adding and removing spacers to achieve the angle that I used in my Lightwave mockup.

WP_20170203_20_47_31_Pro.jpgThe speakers were hot glued into placeWP_20170203_20_48_24_Pro.jpgRemovable panels were added in the back. The top one is carrying the Multi adapter for the gamepads. The yellow button in the photo is a 3 contact button that is wired so that when pressed it opens the circuit. It is wired to the Megadrive’s power supply cable so that when pressed it emulates the reset button on the console. This way you don’t have to open the top cover to press it. C9DBA221-1F2D-4CBB-985F-3D377FA43560.jpgThe buttons were next. I originally planned to buy an industry standard HAPP stick and buttons from ebay but opted to check out a local supplier so that I could try their feel before buying.WP_20170201_22_57_30_Pro.jpgIt turns out that the supplier is an actual manufacturer that has been providing the local cabinet makers with sticks and buttons since the good old days. Excellent! ( ).

Since there is some multiplexing in the Megadrive controller I had to gut an existing controller to hook up the buttons. The joystick selected to be sacrificed was an “aviator” style Quickshot joystick. It was never any good at anything, especially all the arcade style games of the platform so, no harm done. Sourcing the chips necessary would be too much trouble, if at all possible, so I wouldn’t bother with that


Here is the finished product with the last finishing touches on the controller bar trim.WP_20170205_19_18_10_Pro.jpgAnd here is the cabinet with the sliding top cover opened10276CAE-FBF9-4BC8-B043-7144508A19ED.jpg

Finally I went to rip an amplifier from a broken 5.1 PC speaker system: 5 months in the basement had a weird effect to the system. It appear to work ok. I hooked up the 2 speakers of the cabinet and left the Woofer/Amp unit outside. I would rather have everything included in the box as planned but the sound with the woofer is so awesome that I am willing to look the other way 🙂

Last Touches

I added a plexiglass cover on the joystick board to protect the artwork. Maybe I will add another one to cover the CRT screen. It’s now rigid and the artwork is completely protected.wp_20170210_20_41_49_pro

I also made some air vents as the CRT plus the MD make too much heat for a sealed box. Better have some air flow.wp_20170210_20_41_18_pro

The Mega Everdrive SD X3  adapter is here. So far so good! More on that soon.