Daisy Chaining Controllers via I2C possible
So maybe this is not possible but I figured I should ask the pro's. I am looking at the Azteeg X3 PRO. I have my hypercube frame built (might as well call it a SuperCube, 900mm x 900mm x 1200mm print volume).
I am using 1 X stepper, 1 Y stepper, double Z steppers, and right now until I find out otherwise, 4 Extruders. What I would like to be able to run is 6 or more extruders without using shift registers or multiplexing. I have done a little reading and maybe I2C can be used to run a second x3 pro connected via I2C or do I have the I2C thing completely misunderstood?
I am using 1 X stepper, 1 Y stepper, double Z steppers, and right now until I find out otherwise, 4 Extruders. What I would like to be able to run is 6 or more extruders without using shift registers or multiplexing. I have done a little reading and maybe I2C can be used to run a second x3 pro connected via I2C or do I have the I2C thing completely misunderstood?
Comments
I think you need a hardware solution - extra board for steppers, heater outputs (at least some) and some extra analog inputs or use a digital temperature input, also these often conflict with SPI. Then make extruder selection map the same 3 pins to enable/dir/step or maybe better only dir/step. For enable you can use own pins or all share same pin, but that would mean all are on same time drawing power.
Or you use something similar to Prusa MMU2 which can in theory handle any number of filaments, but it requires big rewriting to write all the sensing and switching logic and how often this fails is also a question. You have quite a lot of switches, so for printing your solution is surely easier and faster.
I have a Christmas light controller that is capable of sending out 48000 channels worth of data. Each channel is an is an on/off at a given power level. So I know nothing exists but what if something similar could be made for 3d printers. I mean the light controller manufacturer was able to independently control 48000 channels, why couldn't we use the same type of architecture to be able to control 16000 stepper motors? (1 channel for each enable, step and direction)Theoretically of course. The controller has an IP address so could repetier be reconfigured to send the 48000 on/offs to the controller?
Www.pixelcontroller.com
For steppers enable must stay on as long as they are used or you loose position. That is the slow pin so to speak.
dir and especially step are changed it high frequency depending on speed. These are what need the dedicated pins for speed. They are modified inside a timer that has to be very quick. Speeds > 10000Hz are even to quick for AVR so we toggle the pin simply multiple times in same interrupt. Using spi/I2C in this function is strictly forbidden. These may only be used in the main thread to ensure only one component is talking at a time with connected devices.
What you can do is make extruder board where only one pin is used for dir/step but you have a way to set to which stepper the signals are routed. So on extruder changes you adjust routing info and can simply use same step/dir for all motors. You can also handle enable signal in the extruder select function and map that also. That way you have 8 or 16 extruders manageable with same number of pins. Leaves only the problem of temperature sensors and heater outputs.