Go Down

Topic: 1D Printing. Need your advice (Build versus...) (Read 891 times) previous topic - next topic

wirelessguyny

Quick question for the group.

I'm (yet another guy) looking at developing an open-source 3D printing project. I've been through tons of firmware and hardware options but to be honest I find too much noise (and wasted code) which simply complicates the overall setup, config and maintenance.

If I were to suggest something truly simple (like moving to a 1D solution) would you...

(a) Write your new code from scratch

or

(b) Start with a base of an existing project and begin with a fork that strips out everything you don't require.

[Obviously I'm not a developer, so I'm interested in opinions from those with more experience than I have]

Qdeathstar

#1
Nov 06, 2016, 06:33 am Last Edit: Nov 06, 2016, 06:34 am by Qdeathstar
It depends on your experience and requirements, but most slicers are able to slice a 2d object and without z-steppers a 3D printer becomes a 2d one rather quickly...
A creaking creeping shadow
stiff against the freezing fog
glares at a tickless watch.

Time has failed him -- all things shall pass.

pert

I'm having trouble imagining a 1D printer. Would it just extrude a single dot?

As for the firmware, since you don't consider yourself a developer, I don't think that either option will make your project less complex. However, writing your own simplified firmware would be a great learning experience even though you would likely eventually decide to switch to using one of the standard firmwares once you realize that much of that complex code is there for a good reason.

For example, this hand operated CNC plotter:
https://youtu.be/IPClUTfKB-o?t=4m29s
Is completely impractical but it would be great for teaching the basic concepts. You just write down the program on a piece of paper and then follow the steps, talk about some simplified firmware!

wirelessguyny

It depends on your experience and requirements, but most slicers are able to slice a 2d object and without z-steppers a 3D printer becomes a 2d one rather quickly...
While a agree with your assessment here I think you can also see how adding unnecessary elements simply adds to confusion for the end user. I don't want lots of configuration options and menus that would only confuse the end user. (Also, since Arduino's have limited memory I'd rather save space for my own modifications than have lines of code that do nothing.

I might be answering some of my own question here but would I benefit from having someone take the Teacup or Grbl code and remove components (this way, in theory, I might benefit from any revisions and bug testing) or do I just start from scratch and hope a community sees value in what I'm doing and adds things piecemeal, as required?

PaulS

It appears, to me, that you do not understand the roles that the various pieces of software perform.

If you have an stl file that defines a volume, and a 3D printer, you can't just "print an object".

The printer head can move in the X direction. The printer head can move in the Y direction. The printer's extruder can extrude, or not, material. The extruder may heat the material. The print platform can move up or down. Each of the motions is controlled by a G statement. Heating, extruding, etc. is controlled by an M statement.

So, where do the M and G codes come from? Some software needs to understand the orientation and scale of the stl file, and the properties of the printer, so that it can create slices and output the M and G codes necessary to process each layer of the stl file, so that the end result is a "printed" 3D object.

Slicing is not terribly difficult, since the stl file contains a collection of triangles that define the outside of the solid. Intersecting a plane and all the triangles creates a bunch of line segments that define the outline of the slice.

The next step is to organize the line segments in order, defining an outer boundary and one or more inner boundaries.

Next, the software needs to determine how to move the head back and forth over the slice, starting and stopping extruding where the path intersects the boundaries. Parallel paths, at the required spacing, are needed, to cover the entire boundary. Now, clearly, sometimes the head needs to be moving one direction, and sometimes it needs to be moving in the other direction. Minimizing wasted motion is a non-trivial task.

Between slices, obviously the platform needs to move.

The collection of M and G codes is what is actually sent to the printer, where the printer then decides how many steps, of which stepper motor, are needed to make the head or platform or extruder do what is necessary.

What is NOT clear is what part of the process you think is too complicated, and needs simplification. It is also not clear what simplification is possible.

You sound like someone trying to understand how a TV works, saying "its too complicated; it should be simpler". Life doesn't happen that way.
The art of getting good answers lies in asking good questions.

wirelessguyny

Perhapss I should clarify so that you can stop explaining the mechanics to me.

I have a DLP Printer and have already completed V2. All I utilize is the Z axis, so now you see why 66% of what you just told me is wasted.

My PC converts all the X/Y points and sends that to a projector. Now my Adruino doesn't need to worry about any of that. All he/she needs to do is worry about keeping in time with my projector flashing its layers down on the platen.

I will eventually need other electronics (servos etc.. But overall life is easier).

What I'd like to do is avoid confusing the end user with tons of superfluous confir. I can barely get thru the Teacup config wizard and I'm fairly technical myself.

Back to the original question... If you were developing a new project, do you borrow from those who came before or start from a blank Sketch?

PaulS

Quote
Back to the original question... If you were developing a new project, do you borrow from those who came before or start from a blank Sketch?
That depends on what the sketch is to do, based on what input.

I don't understand what you want the Arduino to do.
Quote
All he/she needs to do is worry about keeping in time with my projector flashing its layers down on the platen.
How is it supposed to know when to do whatever it is it is supposed to do?

The art of getting good answers lies in asking good questions.

wirelessguyny

I believe that many of the software solutions out there do (or can) support projecting the layers and controlling the Adruino.

One of the most well know packages is Creation Workshop. It is a nice tool but it's gone commercial and what was once a nice open source tool for hobbyists is likely out of reach for many/most.

While I hunt for other alternatives I'm also in a quest to see if I can keep costs down by developing for something smaller than a MEGA board. This is in part why I'd like to see a version of software skinnier than Grbl or Teacup.

If there is someone who's been following along and thinks they might be up for such a development project feel free to drop me a line and we can discuss what it would take to generate some momentum here. (I'm open to plain old cash, barter for hardware or other goods, longer term options etc...) 

Thanks.

Go Up