3D Printer Project

I wanted to write a big story but let’s keep it simple:

3D printer parts:

3x Step motors
3X driver step motors
Screw rods, nuts, printer components.
Arduino.
nozzle with motor
panel (surface glass or metal), 2 switches to stop the axes.
and PLA

I never worked with step motors, that’s a new project, can I run this project with a single chip?
as I saw on the internet I can use step motors that can use up to 3 pins from a single step driver
if I’m not wrong

the main idea is to connect all the step motors to a single chip and add a SD Card reader,
I’m not familiar with G-Code but I heard about it, the G-Code is created when we insert the 3D model
cutting the model into layers and writing the axes x/y/z and nozzle diameter, then G-Code is created from the software. My question is if I’ll possible to create a code for the arduino/chip that will handle the Step motors and reading the G-Code from a SD Card thru a file like a cordinates for out 3D printer.

The main point of this project is to keep it simple as possible.

Read about Marlin, RepRap, the Mega2560 board and the Ramps 1.4 board for some good "existing" documentation to fill in some blanks and give you a better idea of the scope of your project.

URL: http://reprap.org/wiki/Arduino_Mega_Pololu_Shield
..I keep reading about that.

So Ramps 1.4 is some kind of step motor driver for arduino that drives from full step to 1/128 step.

Can't we use something more simple? like

for each step motor apart ?

About Mega2560 yes I know about it but I'd like to use something more simple like atmega328p and
with my own PCB design.

Marlin? ???

You can certainly control 3 stepper motor drivers with an Uno. I do that to control a small lathe. The code need not be particularly complex if all the hard work takes place on your PC. If you want the Arduino to interpret GCode as well as drive the motors the Arduino software will be more complex.

Marlin is one of several Arduino programs that have been created for controlling 3D printers. You should do some reading on the RepRap Forum which specializes in 3D printing.

AFAIK the RAMPS board is just a convenient holder for the stepper driver boards.

...R

The code need not be particularly complex if all the hard work takes place on your PC. If you want the Arduino to interpret GCode as well as drive the motors the Arduino software will be more complex.

What I'm thinking is to make the 3D printer usable only with SD Cards having inside a single file with G-Code
already on the SD-Card. I don't need the arduino to create the G-Code, no need to make out life more complex. Taking a free software and compiling the 3D model intro GCode, drop it on a sd card and ready to print.

the only part that I don't know about it how to control step motors that's why I can't imagine how the code
on arduino gonna be, I'll need to set up the dimensions of the 3DP in the code the stop switches in a error case and program the step motors in the way to understand the GCode, creating variables that will take each GCode separated and compile it in the amount of time and delete it and take the next one over and over.. 20~50 lines per second depends on the thiknes of the nozzle..etc

I'm thinking to make a list to buy some items in the future, I want to use ATmega328p (Arduino Uno) creating my own PCB or using arduino as a start test. What do you think about step motors and step drivers? I don't need a big 3D printer a small scale for start will be perfect for practicing and gain experience, upgrading it's easy after that.

This Simple Stepper Code illustrates the basics of controlling a stepper motor. Don't consider using the version with delay() for anything other than proving that the motor works.

I was not thinking of the Arduino generating the GCode. But interpreting the GCode and converting it into stepper motion is going to be a lot more complex than the Arduino code to control the motors based on movement data provided by a PC. And if you want a self-contained Arduino system you will probably need an LCD display and control buttons which further add to the complexity.

AFAIK Marlin and its equivalents can read GCode from an SD Card.

If you want useful advice on suitable motors ask on the RepRap Forum where you will find lots of people who have working 3D printers. Only after you have identified the motors can you identify suitable drivers.

There is a good deal of basic background info in Stepper Motor Basics

...R

Note that you need to control 4 motors - not 3 - because one of the motors is for the extruder (and if you have more than one extruder, you will need to control those as well - but save it for the future).

The RAMPS board is not only a convenient holder for the stepper driver boards, but it also has connectors for controlling other devices - like the extruder heating element and the (optional) heated bed - as well as connections for temperature sensors (again for the extruder(s) and heated bed) and limit switches.

http://reprap.org/wiki/Ramps

For the RAMPS board, it can use the A4988 and DRV8255 driver modules; the latter one is actually the one everybody is “upgrading” to, from my investigation into the subject. It has some features the A4988 lacks, and IIRC, it runs cooler, too. It’s drop-in compatible on the pinout, so if you start with the A4988, you can upgrade to the DRV at a later point (though the cost difference is minimal - so if you go the RAMPS route, buy the DRV drivers anyhow).

http://reprap.org/wiki/Stepper_motor_driver
http://reprap.org/wiki/Pololu_stepper_driver_board
http://reprap.org/wiki/DRV8825

Stepper motors for most desktop-size 3D printers tend to be simple bipolar motors, of the NEMA17 or 23 sized frame standard, running at 5 volts and around an amp of current. They are easily found, and low cost, and most aftermarket parts aimed at the 3D printing community (pulleys, belts, shaft couplers, linear motion elements, etc) are sized for them. That isn’t to say you can’t use other stepper motors, just that the community seems to have standardized on one particular setup when it comes to desktop size machines:

http://reprap.org/wiki/Stepper_motor

Which leads me to the next question - do you have a particular reason to reinvent the wheel, rather than sticking with existing known working solutions? By that I mean mainly the software end of things; if you want to have a customized electronics hardware stack (in addition to the custom machine itself), have at it. But the software - that’s another different story. I’ve delved thru GRBL and Marlin, just on a lark. While it is very easy to read, it isn’t so easy to understand. There are more than a few somewhat obscure concepts and algorithms being implemented; I would suggest that if you insist on going this route, that you take the time and care to study the code that already exists. There’s a lot of hard-won knowledge involved and included in these pieces of software (not to mention the fact that there are a ton of derivatives and forks out there as well - for instance, Marlin descends from GRBL - in fact, quite a few descend from GRBL):

http://reprap.org/wiki/Grbl#Grbl
http://reprap.org/wiki/Marlin

Furthermore - I would suggest that you do a lot more studying on the subject before committing to building your machine.

You might find it worthwhile and educational to use an existing machine - if you have access to one - and/or to build a kit machine first - before embarking on building your own machine from scratch. There are plenty of low-cost and good quality Prusa i3 machine kits on Ebay and Amazon - for most, everything is included for around $300 to $400 USD. You will definitely spend this much or more assembling your own system. What you gain from a kit is a better understanding of the mechanics and configuration of such a machine, and a realization on how much effort a kit will be to put together, to understand the level of difficulty designing and building from scratch will be. The Prusa i3 is also easy to understand from the mechanical point of view:

http://reprap.org/wiki/Prusa_i3

This isn’t to deter you from pursuing your own design, but more to make you aware of the amount of effort and knowledge that is in these machines, culled from years (over a decade) of experience by other users and builders. If you do insist on going at it from scratch, do take the time to do a ton of research on all of the components, sub-assemblies, operations, materials, etc. Go over the effort in your mind - design, construct and assemble your machine from a personal “virtual” perspective in your imagination. Work out as many problems and solutions as you can there, before committing to them in the real world. Gather together every document, picture, note, source code, etc - that you can get your hands on. Take extra care and time in the planning and staging of the project; doing so will help to ensure a successful outcome at the end.

You may have also noticed that all of the links I have posted have been to the RepRap site. There’s a reason for this, and it is to illustrate the wealth and depth of knowledge housed on that site. Those pages are but a small portion of the overall amount of information you will find there. The RepRap forums, as others have pointed out, is a thriving community of makers and 3d printing enthusiasts who represent a living legacy to the technology, craft, and experience; if you haven’t explored this resource, I highly recommend that you do so. Not having knowledge about it, what it offers, and such - would be like buying an Arduino and never visiting this forum or the arduino.cc web site. It wouldn’t make much sense, and you would lose the opportunity to gain a wealth of understanding that would come with visiting.

But interpreting the GCode and converting it into stepper motion is going to be a lot more complex than the Arduino code to control the motors based on movement data provided by a PC

I couldn't really understand what you mean, isn't that the same thing?
Converting the GCode into step motor motion is not the point of the actual GCode?
Controlling the motors based on movement data privided by a PC doesn't that need to be a
real time connection, how's that possible with arduino?

If you want useful advice on suitable motors ask on the RepRap Forum where you will find lots of people who have working 3D printers. Only after you have identified the motors can you identify suitable drivers.

I'll take a look into RepRap forum.

and if you have more than one extruder, you will need to control those as well - but save it for the future

really really nice idea :smiley:

NEMA17 or 23 sized frame standard

So I should chose one of them for my project, small size perfect for 3D Printing.

do you have a particular reason to reinvent the wheel, rather than sticking with existing known working solutions? By that I mean mainly the software end of things; if you want to have a customized electronics hardware stack (in addition to the custom machine itself), have at it. But the software - that's another different story.

About the hardware maybe I'd like to make some changes but about the software I'll keep the same as other people use.

You might find it worthwhile and educational to use an existing machine - if you have access to one - and/or to build a kit machine first - before embarking on building your own machine from scratch. There are plenty of low-cost and good quality Prusa i3 machine kits on Ebay and Amazon - for most, everything is included for around $300 to $400 USD. You will definitely spend this much or more assembling your own system.

To be honest I calculated all the materials I need and they don't pass more than 100$ without the printable plastic PLA..etc I want to build a 3D Printer on my own, If I buy a already make one (kit) I will lose interest of building and learning more about 3DPrinter, so buying a 3DP kit is not my solution to this project, I'd like to start as my 3D Printer to be a my own self made.

I will check RepRap website many times to read info that I will need for sure.

At this point I try to understand how exactly to white the code and use the GCode, is there a real time
posibility to use a direct software from computer or should I try just a GCode on sd card?

Domino60:
Converting the GCode into step motor motion is not the point of the actual GCode?

No. GCode is just a list of movements in human readable text.
You need a program to convert that text line by line into the numbers of steps and the speed of steps required by each of the motors. And you will probably need co-ordinated movement by 2 or 3 motors at the same time so that the extrusion rate matches the rate of movement of the extruder head across the table.

Controlling the motors based on movement data privided by a PC doesn't that need to be a
real time connection, how's that possible with arduino?

Yes.
A USB cable.

...R

ontrolling the motors based on movement data privided by a PC doesn't that need to be a
real time connection, how's that possible with arduino?

Yes.
A USB cable.

Ow so you mean on the arduino should be already a code and we connect the arduino via usb thru a
3DP GCode software and the software do the rest of the job?

Can I get an example of that, that sounds interesting.

I'm following on youtube few tutorials about Marlin and arduino

Well I saw many videos on youtube step by step..etc about 3D printers, RepRap..etc
well being honest I need a 3D printer for other project so wasting a lot of time to build a 3D printer
is like reinventing it, I think I'll go with a kit, there is a lot of work to be done in a 3D printer and a lot of time
to spend to understand how they work, collecting information, making tests, spending money on materials and
if something will go wrong spending more money on materials which will go up the price same price as a already
kit on the market.

So I think I will skip this as a project, there is already hundreds of kits on the internet ready to buy/build and
print. A 300$+ perfect 3DP to start with.

if you know cartesian coordinate system that is laid out in X/Y/Z form, you know that any possible location within that plane can be represented by a series of numbers.

X-1, y-1, z -1

or x-6, y-1, z-1

when you draw in CAD, it is vector format.

as above you can draw said line.

however, for your machine, it also need to know which end to start with, which end to end with, and how fast to move from one point to the other. your machine also needs to know the how to ramp up from not moving to moving.

a circle might be 360 separate points, with 360 start and 360 stops

in addition, you might need to lift the pen, move to a new place, lower the pen
turn on the machine, then move from the new spot to the next

on your CAD, you only see two lines.

g-code instructs the machine on how to make or follow those lines.

Domino60:
Ow so you mean on the arduino should be already a code and we connect the arduino via usb thru a
3DP GCode software and the software do the rest of the job?

Sorry but I don't understand that.

...R

Domino60:
To be honest I calculated all the materials I need and they don't pass more than 100$

a micro chip only costs pennies in materials, if that.

if you made your own, you could learn a lot about them.

Hey1, sorry for the up but which stepper motor drivers did you use? I'm a newbie and there is a lot of info that contradicts. Thinking about the Bigtreetech

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.