These are my final entry describing how I have built my 3d printer. They are not so complicated because I have tried to keep it simple as it was just a simple proof of concept. Now that I have seen some flaws and bugs in the algorithms, I can start working on a better firmware and software.
FIRMWARE
The firmware is nothing more than a serial communication command interpreter, run length decoder and some code to execute simple procedures like adding a new layer, printing a layer and piston movement. The largest part of the firmware is run length decoding and layer printing (they are combined to make it as fast as possible).
Printing of one layer from firmware perspective looks something like this:
- Addition of one layer
- Reception of data for single pass
- Printing of single pass (processing and applying data form 2. step)
- Returning to zero X position and required Y position
These are then repeated until the whole layer is printed.
The data is sent to printhead in lines where the first three numbers specify nozzle (0 to 127), then there is a delimiter {, up to 20 ints separated by commas and finally a final delimiters } and ;. The ints tell the controller how many steps (not motor step but a move for 0, 136 or the nozzle pitch) does the printer need to make along the x axis untill the state of the specified nozzle is changed. The firmware is then basicly just counting how many steps has it made from previous nozzle state change or zero X position. Then it just compares this to buffered data. If the two are equal then a the state of the nozzle is negated.
SOFTWARE
Whole software is built to take in the Slic3r svg file. The file is then read layer by layer. Only one layer is used at a time (depending on the actual layer that is being printed). All of the polygons are read from the active layer and stored in to RAM. Then point in polygon algorithm is run on these polygons for all nozzle positions in one pass (move along the X axis). Because we need run lengths this program also counts steps head needs to make before it changes nozzle state. The software also coordinates printer movement and steps in the printing process.
All of the files used are now on the project site.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.