Because of limitations of the Atmega328
the Atmega328 has 3 internal hardware timers
the current firmware uses Timer0 for Fast PWM on axis Y.1 an Y.2, Timer1 for controlling speed, and Timer2 will be used in a future release to better control stepper motors (which are used on Z axis and the extruder).
Using PWM also on the X axis would require an additional hardware timer, which is not available on the Atmega328…
Anyway the A4988 is a good alternative to generating the pwm on the MCU, and has a cost comparable to that of an H bridge.
Direct PWM control of all the axis could be done on a more powerful microcontroller such as the Mega2560 which has 6 internal hardware timers.
I like this project. I have a few old DVD Writer, which uses a linear motor and optical encoder for head movement, no stepper.
So now I will try to use your algorithm to postion them using 2 Drives to make a tiny laser burner, maybe if the resolution is high enough, kind of laser scanning microscope.
It is hard to quantify the exact number of hours, but it took me about one month and a half to develop everything. A lot of time went in developing the firmware and the electronics…
I’m making one of these! Getting the third printer in a few days and have already stripped the others (one was multifunction) and bought the electronics.
Hello,
Impressive and interesting work 🙂
Thanks for sharing it and congratulations!
I though have a question: I noticed there are 6 tracks on optical encoder (and 6 sensors). So, total available positions number is (2^6)=64 positions. Only. Thus, is it a repeated pattern along the axis? How do you know exactly where you are, among all the patterns? Do you increment a memory of the pattern numbers? Or do you have another way to keep real absolute positionning?
Thanks for answering.
Grazie e congratulazioni di nuovo!
Hello,
the encoder has a single track, with two photodiodes (in order to determine the direction of the motion). On the encoder strip there are approximately 5k vertical lines, when the sensor moves past one of the vertical lines the photodiodes detect it and an internal counter is updated. This is to keep relative positioning respect a “zero position”; the printer still has to determine a “zero position” at startup. The total number of available positions is about 10k (there are two sensors on a 5k positions strip).
14 commenti su “Stampante 3D da 10€ realizzata con stampanti inkjet riciclate”
Sweet build. I’ll send you my fist print if I ever get around to making one.
Why not pwm both “dc” axies?
Because of limitations of the Atmega328
the Atmega328 has 3 internal hardware timers
the current firmware uses Timer0 for Fast PWM on axis Y.1 an Y.2, Timer1 for controlling speed, and Timer2 will be used in a future release to better control stepper motors (which are used on Z axis and the extruder).
Using PWM also on the X axis would require an additional hardware timer, which is not available on the Atmega328…
Anyway the A4988 is a good alternative to generating the pwm on the MCU, and has a cost comparable to that of an H bridge.
Direct PWM control of all the axis could be done on a more powerful microcontroller such as the Mega2560 which has 6 internal hardware timers.
I like this project. I have a few old DVD Writer, which uses a linear motor and optical encoder for head movement, no stepper.
So now I will try to use your algorithm to postion them using 2 Drives to make a tiny laser burner, maybe if the resolution is high enough, kind of laser scanning microscope.
Nice build. How many hours did you put in, in total?
It is hard to quantify the exact number of hours, but it took me about one month and a half to develop everything. A lot of time went in developing the firmware and the electronics…
Great job! Kudos!!!
http://mobil.derstandard.at/2000063369055/10-Euro-Gesamtkosten-Schueler-baut-3D-Drucker-aus-alten-Inkjets
Great job! Congratulations!
I’m making one of these! Getting the third printer in a few days and have already stripped the others (one was multifunction) and bought the electronics.
Love the idea, let’s see if I can make it work 🙂
Hello,
Impressive and interesting work 🙂
Thanks for sharing it and congratulations!
I though have a question: I noticed there are 6 tracks on optical encoder (and 6 sensors). So, total available positions number is (2^6)=64 positions. Only. Thus, is it a repeated pattern along the axis? How do you know exactly where you are, among all the patterns? Do you increment a memory of the pattern numbers? Or do you have another way to keep real absolute positionning?
Thanks for answering.
Grazie e congratulazioni di nuovo!
Hello,
the encoder has a single track, with two photodiodes (in order to determine the direction of the motion). On the encoder strip there are approximately 5k vertical lines, when the sensor moves past one of the vertical lines the photodiodes detect it and an internal counter is updated. This is to keep relative positioning respect a “zero position”; the printer still has to determine a “zero position” at startup. The total number of available positions is about 10k (there are two sensors on a 5k positions strip).
Wow this is so impressive. Good work.
thanks for a job for hobbist