Welcome! Log In Create A New Profile

Advanced

Azteeg X3 7 motors, slaved drives,etc setup ???

Posted by DonnyM 
Azteeg X3 7 motors, slaved drives,etc setup ???
September 30, 2013 01:36PM
I have a 7 motor printer I built last year using a Megatronics board and two of there external stepper drives. X,Y,Y2,Z,Z2,E1,E2. It worked great with rapids of 1000ipm and nice accurate prints. But I wanteda Viki LCD. So this weekend I wired up a Azteeg X3 controller and Viki LCD. I am using the latest Marlin Build. In this build they have a motherboard number for the X3 as 67 and provisions for the Viki. I now have my LCD, endstops, X motor, and one Y motor and one Z motor. I would like to run each of the Y and Z motors on there own drives. How would I set that up using the Motor6 and Motor7 on the Azteeg X3 Shield? I hooked the pin outs of Motor 6 to my external driver for Y motor #2. +5,Step,Direction and Enable. I ran the 24vdc VCC and ground to the 24VDC port onthe X3 board. And I will do the same for the Motor 7 connection to the external drive for Z motor #2. Not sure of the pin numbers or how to set this up in marlin. Anyone have some hints.

I did have some end stop issues. The X min and Max was backward so i changed the pins.h to make them work correctly. Now it homes right. This was a error in the board itself. Min and Max limits are backwards.

I have two extruders. and two 24vdc fans on them. They are Qu-BD style. I would like to use Hotend 3 and 4 for the fans for those extruders. Which is on the Shield. But I need them to come on as if they are on E0 and E1. How do I set this up in Marlin?

Lastly I added a nice externally powered AC hotbed that I am controlling with a SSR off the Hot Bed port 24vdc. I am using the Thermocouple (TC1) on the Shield. It is a Type K thermocouple. How do I specify that in Merlin? The thermistors were easy to add the correct table to merlin but I am not sure what to do with a type k thermocouple.

Any suggestions to get me pointed in the right direction would be great.
thanks in advance,

Donny
Re: Azteeg X3 7 motors, slaved drives,etc setup ???
October 03, 2013 06:32PM
Hey,
Sound like you have a hell of a machine! Pictures, link?
Are the Y and Z axis synchronized? Do you need more endstops?

For mot 6 and 7 check page 2 of this:
[files.panucatt.com]

For the thermocouple, isn't it the same set up as in .h file as the thermistors?

You do know you have PWM outputs on the X3, you don't have to go through hotend 3 and 4.
Re: Azteeg X3 7 motors, slaved drives,etc setup ???
October 05, 2013 09:52PM
Its a pretty cool machine. Its working envelope is 16"x16"x16"
Thanks for the link. My pic didn't have the shield.
The PWM on the X3 said 12vdc where my fans are 24vdc. I need to mesure the board. Sicne I am running 24vdc in those might me 24vdc like the cartridge heaters and steppers. Not sure if he stepped the voltage down to 12vdc like he did for the 5vdc.
I have been told Marlin does not support thermocouples. Which sucks since that means I will have to run a thermistor for the bed..
The Y will have two min endstops and will sqaure the bed. I would like to do the same for the Z. But I might do a dual X setup so each X has a extruder and travels on the same Y bridge but not linked together. This way you could move one extruder out of the way so as not to worry about ooze. If I do this I will not be able to have sperate Z motors. Not enough stepper outputs.
I wonder if the X3 can use NPN proximity switches for endstops. I run them on the 4 axis cnc router I built.
Thanks for the help.

Donny
Attachments:
open | download - HotHeads3D, Printer 018_sm.jpg (350.3 KB)
Re: Azteeg X3 7 motors, slaved drives,etc setup ???
November 16, 2013 02:39AM
Were you ever able to accomplish this? I am trying to set up my Y-axis motors the same as you but I don't really know where to start.. sad smiley From what I read in your post I need an external stepper driver, how do I do that? Any pointers would be awesome!
Re: Azteeg X3 7 motors, slaved drives,etc setup ???
November 19, 2013 11:36PM
I use Polouo type drives so I bought External stepper drivers from RepRap World and plugged a Polouo into it. These take step dir and enable in plus voltage and send out the proper pulses to the motor. IF you use more than 12vdc to run your motor you will havee to pull off the voltage regulator and provide 5vdc to the 5vdc out pins on the card. I run 24vdc on my motors so this is what I did.
I have managed to make the external stepper which is attached to Motor 6 work together with the Y motor by editing the Marlin firmware. Homeing also works.

The code came from Shapeoko Marlin Difference
The version of Marlin I use is way newer so allot of the difference text does not apply. Like line numbers. Plus the OP did not remove all the extra stuff.
If you use motor 6 you will need to change pins.h on motherboard 67 to 23,25,40 for the Y2 step ,dir ,and enable pins
Below is my Y portion of the direction from the stepper.cpp. Which worked. I threw out what was in the difference file and just used what was there for the second Z motor. Just copied it into the Y location and changed all the Z's to Y's. lines 442-487
Sorry not posted in Code Brackets. I tried twice but it left alot of the code out.
    #ifndef COREXY
    if ((out_bits & (1<<Y_AXIS)) != 0) {   // -direction
    WRITE(Y_DIR_PIN,INVERT_Y_DIR);
      
      #ifdef Y_DUAL_STEPPER_DRIVERS
        WRITE(Y2_DIR_PIN,INVERT_Y_DIR);
      #endif

      count_direction[Y_AXIS]=-1;
   #else
    if ((((out_bits & (1<<X_AXIS)) != 0)&&(out_bits & (1<<Y_AXIS)) == 0)) {   // -Y occurs for -A and +B
    #endif
      CHECK_ENDSTOPS
      {
        #if defined(Y_MIN_PIN) && Y_MIN_PIN > -1
          bool y_min_endstop=(READ(Y_MIN_PIN) != Y_MIN_ENDSTOP_INVERTING);
          if(y_min_endstop && old_y_min_endstop && (current_block->steps_y > 0)) {
            endstops_trigsteps[Y_AXIS] = count_position[Y_AXIS];
            endstop_y_hit=true;
            step_events_completed = current_block->step_event_count;
          }
          old_y_min_endstop = y_min_endstop;
        #endif
      }
    } 
    else { // +direction
    WRITE(Y_DIR_PIN,!INVERT_Y_DIR);

      #ifdef Y_DUAL_STEPPER_DRIVERS
        WRITE(Y2_DIR_PIN,!INVERT_Y_DIR);
      #endif

      count_direction[Y_AXIS]=1;
       CHECK_ENDSTOPS
            {
        #if defined(Y_MAX_PIN) && Y_MAX_PIN > -1
          bool y_max_endstop=(READ(Y_MAX_PIN) != Y_MAX_ENDSTOP_INVERTING);
          if(y_max_endstop && old_y_max_endstop && (current_block->steps_y > 0)){
            endstops_trigsteps[Y_AXIS] = count_position[Y_AXIS];
            endstop_y_hit=true;
            step_events_completed = current_block->step_event_count;
          }
          old_y_max_endstop = y_max_endstop;
        #endif
      }
    }


Hope this helps.

Donny

Edited 2 time(s). Last edit at 11/20/2013 12:28AM by DonnyM.
Sorry, only registered users may post in this forum.

Click here to login