Design a smart 3D printer which can detects its limit and optimize its motion parameters on its own to ultimately print a perfect 3D object. And also built a printer with select-able multiple extruders running at the same time and printing multiple copies of same object.
Mechanical Design:Main structure of 3D printer is built using local 2040 and 2020 aluminum extrusions and custom designed laser cut 3mm stainless steal corner brackets and motor mounts are used for strong rigid mechanical assembly. Over all dimensions of the printer frame are 680x800x640mm (WxLxH). All the wiring of moving parts is contain inside a drag chains to avoid unwanted stresses due to motion and to avoid wiring failure during the printer operation.
For the cooling of all the hot parts including ULTRA96V2 heat-sink, custom designed 3D printed assembly is used to hold the various type of cooling fans.
In electrical design of this printer Trinamic TMC2209 and TMC2208 stepper motor driver are used to control the NEMA23 stepper motors. For hot end, thermistor is used for temperature measurements and 24V 50W heater cartridge as a heat source and to melt the filament. Both hot-end and part cooling fans are controlled through PWM out. Mechanical push switches are used as limit switched to detect axis minima, maxima and filament break/run-out. Heated bed contain 220VAC 1400W silicon heater and to control this high powered device OMRON solid state relay is used due to its high reliability and safety.
AWG-24 wires are used for all the electrical wiring.
After the initial testing the heat-sink of Ultra96v2 board was getting warm so a fan is attached and connected to its fan header for better cooling.
For easy assembly and testing platform Arduino CNC shield is used to mount all the stepper drivers. For temperature controller
Xilinx MPSoc is the brain of this large 3d printer. Advantage of this microprocessor and FPGA combo is you can directly implement certain control algorithms or custom hardware components i.e Mathematically intensive parts, Timer, PID controllers, PWM controller etc directly on FPGA programmable hardware. Two main parts of this soc are named as PL (programmable logic) and PS (processing system).
PL design:
FPGA part of this MPSoc is used to implement
8-bit servo controller for BL touch control signal
3x 8-bit PWM controller for cooling fans controls
3x 16-bit timers for 2x hot-ends heater and a heated bed SSR control signal out
3x programmable PID controllers for extruder and bed heater
And parallel Stepper motor step/dir signal generation for ultimate synchronization of each stepper motor.
PS design:
Using VITIS IDE all the software part is implemented to send the control signals and commands to PL. G-code decoding is also done in software and then appropriate motion commands and sent to PL for further processing and step/dir signal generation.
Conclusion:The main idea of running a 3D printer with only one extruder, using FPGA based design is achieved though ULTRA96V2 board.
The FREE training material provided by the Xilinx and Hackster team was very helpful in building the motion control system for this machine. And thanks to all the contest organizers for choosing me as FREE hardware winner and all the support throughout this contest.
There is still lot of room for improvement in this machine including mechanical design and several additional functionalities to make it an ultimate 3D printing machine and some of these are also mentioned in the future works.
Note: Building a Large scale 3D printer with full metal construction will cost a lot. So anyone who is going to replicate it using high quality parts then this will easily cost more than 2000$ (excluding Ultra96V2 board).
All the related files will be available in git-hub project repository.
This is a huge project and still lots of work is required to built and ultimate 3D printer. Few of the important upgrades are mentioned below
=> Implementation of Trinamic stepper drivers (TMC2208 and TMC2209) builtin UART interface controller
=> WiFi interface to interact and control the 3D printer (working on it)
=> Optimization of S-curve generation for each axis motion control. (working on it)
=> True bed leveling using 4x stepper motors (waiting for the parts).
Covid-19 restriction has effected a lot in the making of this project still waiting for several mechanical parts for building ultimate machine with at-least four extruder and true bed leveling.
Comments