Software apps and online services
Hand tools and fabrication machines
This project is an inexpensive hardware platform which can be used as a 3D printer, CNC sketcher (plotter), homework writing machine and as a sticker cutting machine. Initially a DIY 3D printer is made and then, some changes are made to use it as a platform for the rest above mentioned applications. The project works with Arduino Mega in associated with a Ramps 1.4 shield mounted on it. The whole project can be made under a budget of $210.How it works...?
The whole multitasking project works behind the principle of CNC operation. A CNC system works with the movement of X, Y & Z axis. Actually, we are making a basic CNC setup which we can customize according to our need. Here we are customizing a 3D printer, a homework writing machine, a CNC sketcher (Plotter) and sticker cutter to this CNC setup.
- While working as a 3D printer, a filament material is melted using a heating element (Hotend) and is deposited on a plane according to the movement of the X, Y & Z axis.
- While working as a CNC sketcher, a pen is made to install in the Z axis while making the Hotend to OFF state. The sketch given as a input is traced in a paper on a plane by the movement of X, Y & Z axis.
- While working as a homework writing machine, A software is used for obtaining the different hand written fonts. After, the text given as input is traced in a paper on a plane by the movement of X. Y & Z axis.
- While working as Sticker Cutting machine, a pen knife or blade is made to fix in the Z axis instead of a pen, The given image is made to a sticker by the movement of the X, Y & Z axis.
Construction of the base square
- Untight the allen key screw of the 5mm to 8mm coupler and fix the coupler in the 5mm shaft of the Z Axis stepper motors. Tight the screws firmly after fixing.
- Fix two Z Axis motors in the middle of the aluminum channel using Cable ties firmly.
- Untight the allen screw, and fix the GT2 Pulley in the X & Y stepper motor firmly by tightening the screw.
- Fix the Y Axis motor in the aluminum channel, such that the shaft carrying the GT2 pulley is on the middle of the aluminum channel.
- Take a small screw or bolt through the pulley and fix it in the middle of another aluminum channel, such that the pulley and the Y Axis motor pulley is on the same line.
- Make the base square frame using the aluminum channel by fixing the four channel using Angle bracket. While fixing, the frame should be in such a way that the channels with two Z Axis motor must be opposite to each other or the channel with Y axis motor with pulley must be opposite to channel with the free running pulley.
Y Axis Building
- Link the two pulleys using GT2 Belt such that the belt is not too tight or too loose. Fix the ends of the belt using a small nut, bolt and washer setup.
- Insert two LM6UU linear bearing in a 6mm smooth rod. Repeat the same for one more smooth rod.
- From the center of the aluminum channel carrying pulleys, mark 8cm to both left and right. Repeat the same process for the channel carrying Y Axis motor with pulley.
- Fix the two smooth rod carrying bearings in the marked points using cable tie, such that the two smooth rods and the belt connecting two pulleys should be parallel to each other.
- Fix a acrylic sheet or a plain wooden plank above the bearing at equal distance in the plank.
- Fix an end stop limit switch at the maximal end of the Y - Axis using nut and bolt setup or using Double sided tape
X Axis Building
- Fix the X Axis motor in a 6cm long aluminum channel using a cable tie after drilling hole and taking out the shaft area outside the aluminum frame. In addition make a hole in that channel for taking the threaded rod through it.
- Take another 4cm long aluminum channel and fix the free running pulley with a nut bolt setup after drilling holes along the aluminum channel. Make a hole in that channel also for taking threaded rod through it.
- Fix the T nut above the hole for threaded rod in 6cm and 4cm long aluminum channel using any strong glues or through small nut bolt washer system.
- Take another aluminum channel of length 4cm and fix four number of linear bearing along it's edges using a cable tie.
- Drill two holes along one of it's face for fixing hotend in it. Fix the hot end in that channel. Don't fix hotend with cable ties because it will start melting due to the extreme heat of the hotend. "C clamp" is a better option for fixing hotend.
- Fix the two 6mm smooth rod in both the aluminum channel of 6cm and 4cm through the bearings of hot end's 4cm aluminum channel.
- Fix an end stop limit switch at the maximal end of the X - Axis using nut and bolt setup or using Double sided tape
Z Axis Building
- Fix the vertical frame of the system, and connect the top of the vertical channels with another channel. Fix the channel with Angle brackets and ensure the strength of the system.
- Fix the threaded rod to the coupler through the X axis setup. Tighten the screws of the coupler to make the Z axis rigid.
- Allow the extended portion of the threaded rod to pass through drilled holes in the upper aluminum channel after the fixing of 608ZZ bearing above the two holes.
- Connect Arduino Mega board to you PC using USB A-B cable.
- After Making changes in the Configuration.h (mentioned in the code), select the board, port and upload the Marlin Firmware to the Arduino Mega.
- It's important that while flashing the board, no shield or any other connections should not be made in the Arduino Board.
- After flashing Remove the USB cable from the PC and follow the steps in the Circuit.
- First of all fix the jumpers to short certain pins in the Ramps 1.4 board. Short the pins inside the green boxes in the below image with jumpers.
- Mount the Heat Sinks in all the A4988 stepper drivers by removing the sticker behind heat sink.
- Mount all the five heat sink in the Ramps 1.4 Board as shown in the image.
- Now insert or mount the Ramps 1.4 shield above the Arduino Mega Board.
- Make rest of the connection as such that in the schematics.
- While connecting heat bed, place a glass plate or a acrylic sheet above the heated print bed, rather than direct printing above the print bed.
- Place the Stepper-Extruder setup above the top Aluminum channel, and connect the tube with the extruder block and the hot end Assembly.
Here, in total four software are used for this project. They are :
- Pronterface - It 's a real time computing software which communicates through out with the Arduino board with a maximum baud rate of 250000 bps. Pronterface only accept and run .gcode files. Pronterface then send these gcode to the Arduino board and Gcodes in associated with the commands and codes in marlin firmware, which is flashed in Arduino Mega will make the system work. This software is a must needed software for the working of the whole system (when it works as 3D printer, CNC Sketcher, Homework writer and sticker cutter).
- Slice 3r- The 3D design file we have will be in .stl (stereolithography) format and this type of files can't communicate directly with the board. Thus Slice 3r software is used for converting .stl files (3D design file) to .gcode file and this conversion process is called as slicing.
- 3DWriter- In this software, the homework to be written can typed in accordingly and there are various handwritten like fonts in it, which can selected by the user and is exported as .gcode file.
- Inkscape- Inkscape is actually a vector designing software. Here were using it's Bitmap option for making sketches in it. In addition we are adding gcode extension and two plugins (Jtech photonics plugin and KM laser Plugin) to it. While working as a CNC sketcher we actually uses the Plugin of the CNC Laser cutting machine in Inkscape. By changing the settings, we are using it for CNC sketcher. The KM Laser plugin here we use to generate some hatch path inside the borders of the image to make it attractive. And finally the .jpg or .jpeg format of an image will be get converted to .gcode using the laser extension.
- Once the hardware setup is properly installed, can start the working of the project using Pronterface software.
- Install and run the Pronterface software.
- Initially make the changes in the settings of the Pronterface software, according to setup you made.
- Connect the USB A-B cable to your PC, and check weather the port has detected the board in the pronterface software.
- Connect the board with the software by selecting the correct port to which the board has connected.
- Select the baud rate to 250000. Now the software is ready to send commands or to communicate with the board.
- Test all the Axis motors, Limit switches, Extruder motor at first.
- Now feed the PLA filament to the extruder block. Now set the Hot end temperature to 210 degree and heat bed temperature to 70 degree.
- Refer the graph and make sure that the temperature is not increasing beyond the limit set.
- Now check the extrude and reverse extrude of the 3d printer by clicking the appropriate buttons. Always make sure that the extrude length is not above 25mm, otherwise it will lead to the wastage of material. And also don't increase the extrude speed beyond a limit. Always try to set the speed around 100.
- If any problem is found while checking the hardware, then it might be due to the pinout terminal changes of the hardware components. Oherwise, the changes in the values of components can be rectified by changing the program values in Configuration.h.
3D files with extension .stl can be either designed using cad softwares like Autodesk Fusion 360, Solidworks, etc or it can be obtained from the Websites like www.thingiverse.com . The 3D files in .stl format can't feed directly to run 3D printer since it runs in .gcode file. So the .stl file is to be converted to .gcode using Slice3r software. To generate gcode file using Slice3r, follow the below steps:
- Install the Slice3r software and run the software.
- Click 'Add File' and import a .stl file to Slice3r window.
- Change the Printer settings according to the printer you have built. Then change the filament settings according to specs of your filament.
- Then change the print settings under the conditions in which your model should be printed.
- At last, give export GCode and select destination at which the GCode file has to be saved.
- Now Open the Pronterface Software.
- If you select Settings > Slicing Settings, it will automatically move to Slice3r settings and you can change the settings from there.
- Select Settings > Options to Set the printer dimensions. All other settings can be directly feed using the Opening User Interface of the software.
- Now import .GCODE file to pronterface by Clicking Add File.
- After that edit the settings according to the print and the printer. Then Select Print to start the printing of the solid.
- The printed portion will be indicated in green and rest in red colour in the Pronterface Software.
The first print of the 3d printer was a 20 mm cube, and it goes like this. The print goes like this due to the Z axis shift, belt loose and in inappropriate high heating temperature of 230 degree.
After editing from the 1st settings, got a print like this. The problem while printing this one was the in between loosing of the Y-Axis Belt. This resulted in the Shift of Y-Axis layer.
After lot's n lot's of trials and errors, the printer started producing finest and rigid models. The best prints were obtained after editing the codes of configuration.h. The configuration.h that run this 3d printer is given in Code. You might need to edit the program accordingly to your printer.G-Code Generation for CNC Sketching
- NOTE 1: Uncomment or define ARC SUPPORT in Configuration_Adv.h for the system to work as CNC Plotter and homework writing machine.
- NOTE 4: No changes in Configuration.h.
Image files with extension .jpg or .jpeg can't directly fed to our system, since our system only runs in ,gcode. Converting an image file to gcode is a slight process. An image file is transformed to it's gcode using Inkscape software through many steps. Follow the below steps to generate gcode from an image file.
- Install inkscape software.
- Now download J tech photonics laser tool and unzip the file.
- Copy the files inside the tool.
- Now open Program Files > Inkscape > Share > Extensions.
- Paste the copied files in the Extensions.
- Now download KM Laser and unzip the file.
- Go inside KM Laser-Master > Extensions.
- Copy the files inside the Extensions.
- Now open Program Files > Inkscape > Share > Extensions.
- Paste the copied files in the Extensions.
- Go inside KM Laser-Master > Palettes.
- Copy the files inside Palettes.
- Now open Program Files > Inkscape > Share > Palettes.
- Paste the copied files in the Palettes.
Edit Laser.py extion's script
- Open Program files > Inkscape > Share > Extensions > Laser.py
- Paste the below commands in the header of the file.
M117 Deploy Pen NOW! 10
M117 Deploy Pen NOW! 9
M117 Deploy Pen NOW! 8
M117 Deploy Pen NOW! 7
M117 Deploy Pen NOW! 6
M117 Deploy Pen NOW! 5
M117 Deploy Pen NOW! 4
M117 Deploy Pen NOW! 3
M117 Deploy Pen NOW! 2
M117 Deploy Pen NOW! 1
- Paste the below commands in the footer of the file.
G1 X0 Y0
G28 X0 Y0
- Save the file
- Run the Inkscape Application.
- Import the image that is to be sketched.
The above steps does the customization of the Inkscape software or those makes the software ready for our work. Now follow the below steps to Generate Gcode from an Image.
- Run the inkscape software.
- Import an image from file.
- Select the image, then select Path > Trace bitmap. Make some adjustment if needed. The sketch that will got will be approximately as same as that of the bitmap image.
- Then click OK..
- Now delete the colour image. Only bitmap image is required.
- Now select the bitmap image and select Object > Fill and stroke .
- From the tool bar came, Select Fill and then select No colour.
- Now select stroke paint and then select flat colour.
- Now the outline of the image will be obtained.
- Now select the image, then select Extension > KM Laser > Generate : Hatchfill.
- Now make the hatch settings as that of below image and click OK.
- After that select the cross hatched image and select Extensions > Generate Laser Gcode > J Tech Photonics Laser Tool...
- Change the tool's settings as shown in the below image and give apply.
- It will take some time for the Gcode coversion. Once the conversion is over then the Gcode of that image will be saved in the location given in the laser tool's settings.
- Open the Gcode file of the image.
- Now connect the printer to the board, select the port and give print to start the sketching of the image.
- Given below some sketches, sketched with this 3D Printer. Some sketches are cross hatched and some are not cross hatched.
Text file can be directly fed to our system for writing homework. Moreover, the text plotted in the system should identical to the hand written text. Thus both the generation of hand written font and the gcode can be made possible using 3DWriter application. Follow the below steps to generate gcode for writing homework.
- Download the 3DWriter Zip file from github. Then extract the zip file and install the 3D writer Application.
- Run the 3DWriter application.
- Give the text you want to print in the Text Input
- Select the font in which the text has to be printed.
- Give preview and edit if needed.
- .Set the printer parameters and give Generate Gcode to generate the Gcode of the given text..
- Open the output Gcode file in Pronterface software.
- Now connect the pronterface software to the printer and start the print as usual.
- Now the homework writing machine starts to write the home work.
For making sticker cutting machine, software wise the steps all are same as that of CNC Sketching. We can make a sticker cutting machine by just making a small replacement, i.e by replacing the pen with a Pen knife and the normal paper with a sticker paper.
This guide is a brief explanation only. Try changes in settings & codes and explore the different aspects of 3D printing and CNC. This is a base setup and you can explore n number of things within this same base setup. Best wishes.......