The electronics I have used are mostly based around the existing 3D printer controllers. Based on that I have a microcontroller controlling a series of motor drivers. I have even tried using ramps 1.4 with 4 pololu a4988 stepper drivers, but they got fried in the process. So I was left with one working pololu stepper driver and a arduino MEGA 2560 with a bricked power stabiliser. I managed to replace the faulty element with one from arduino uno that died few years ago. With one driver working, I had to design 3 more with one being for a servo. This way i have decided to use h-bridges (i only had 2 of them) and an ULN2803 with outputs and inputs connected in pairs. This is why my printer uses 4 different electronics to drive the steppers. With that out of the way I also had to design a way to control the power on the printhead. I did that using 2 relays one for each high voltage (35V) line on the Xaar 128. I also added few diodes and capacitors to smooth the spikes caused by either power supply or the printhead. There is also one relay more that is meant to turn on or off the spreader motor.
MOTOR DRIVERS
As I have said I am using few different motor drivers. Controlling these isn't such a problem as I am using accelstepper which takes care of different ways to drive a stepper.
The servo is a bit more complicated as it needs few components more to function. These components are the power driver which is a h-bridge (L298), Arduino UNO controller, DC motor and a 500PPR quadrature encoder. It is nothing special as other people have made all of the programming in the past. The most tedious part is finetuning the PID algorithm.
THE PRINTHEAD
Xaar 128
For now I am still using the Xaar 128 printhead. It is controlled via SPI. In the head there are 2 SPI slave chips, each one receives 8 bytes of data, which are equal to 64 bits which represent the state of single nozzle.
Besides the spi Xaar 128 printhead has an output to tell the micro whether it is ready and few inputs that are used for triggering and enabling the nozzle. There are also 2 35V power lines (one is for low noise low current voltage and the second one is high current voltage line) and a single 5V logic power line.
HP 45
As I have stated few days ago I will be replacing the Xaar 128 with a HP 45 printhead. I will be using Ytec3D HP45 driver (read the forum for more info). In conjunction with the driver I will also use a Leaflabs Maple Mini (STM32F103 microcontroller) to convert SPI commands to signals for the driver.
THE CONTROLLER
Arduino MEGA
For now I am using the Arduino MEGA 2560. It is a really good board for most projects, but it is barely capable of driving this printer. The biggest problem is the RAM on it. It is just not sufficient enough. With run length encoding I could barely squeze 128 data sets of 20 nozzle state changes. If I change to HP 45 this controller wont be usable because of the fact that the new head has 300 nozzles instead of just 128.
Maple Mini
With the change of the printhead I also have to change the controller. I will be changing it for a maple mini. With this i will more than double the RAM needs, and also lower the cost of the printer. I was also thinking of using STM discovery F3, but I am not capable enough to use it yet. Maple mini is also a better choice as i will have two of them. They will be communicating over SPI. This way I could also unload all printhead data to one on the printhead and leave all of the movement on the other. This way i could also make the head trigger based off the encoder input.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.